diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 9c12d4b1d1..334299b3c2 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -416,7 +416,7 @@ void RCconfig_macrlc(int macrlc_has_f1[MAX_MAC_INST]) { } -int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { +int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1) { int num_enbs = 0; @@ -637,10 +637,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { LOG_I(RRC,"Instance %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) { - rrc->node_type = ngran_eNB; - } - else if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "f1") == 0) { + if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "f1") == 0) { paramdef_t SCTPParams[] = SCTPPARAMS_DESC; char aprefix[MAX_OPTNAME_SIZE*2 + 8]; @@ -675,9 +672,11 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { } - else { // no F1 - // set to ngran_eNB for now, it will get set to ngran_DU if macrlc entity which uses F1 is present - rrc->node_type = ngran_eNB; + else { + // set to ngran_eNB for now, it will get set to ngran_eNB_DU if macrlc entity which uses F1 is present + // Note: we will have to handle the case of ngran_ng_eNB_DU + if (macrlc_has_f1 == 0) rrc->node_type = ngran_eNB; + else rrc->node_type = ngran_eNB_DU; } // MCC and MNC @@ -1825,7 +1824,7 @@ int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - } + } // node_type!=ngran_eNB_DU } if (rrc->node_type == ngran_eNB_CU || rrc->node_type == ngran_ng_eNB_CU) { char srb1path[MAX_OPTNAME_SIZE*2 + 8]; @@ -3010,8 +3009,7 @@ void read_config_and_init() RC.rrc[enb_id] = malloc(sizeof(eNB_RRC_INST)); AssertFatal(RC.rrc[enb_id], "RRC context for eNB %d not allocated\n", enb_id); memset((void *)RC.rrc[enb_id], 0, sizeof(eNB_RRC_INST)); - RCconfig_RRC(enb_id, RC.rrc[enb_id]); - if (macrlc_has_f1[enb_id]) RC.rrc[enb_id]->node_type = ngran_eNB_DU; + RCconfig_RRC(enb_id, RC.rrc[enb_id],macrlc_has_f1[enb_id]); } if (RC.nb_macrlc_inst == 0) diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h index f0f964feb0..eead6e54e5 100644 --- a/openair2/ENB_APP/enb_config.h +++ b/openair2/ENB_APP/enb_config.h @@ -115,7 +115,7 @@ extern void RCConfig(void); void enb_config_display(void); void ru_config_display(void); -int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc); +int RCconfig_RRC(uint32_t i, eNB_RRC_INST *rrc, int macrlc_has_f1); int RCconfig_S1(MessageDef *msg_p, uint32_t i); void read_config_and_init(void);