diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c index f0dd39d3e62470f6251d5f4165c417616e06e433..d4c3346ed249fee43f9a26b73e453dfc5575ca0c 100644 --- a/openair2/ENB_APP/enb_app.c +++ b/openair2/ENB_APP/enb_app.c @@ -139,8 +139,6 @@ static uint32_t eNB_app_register(ngran_node_t node_type,uint32_t enb_id_start, u RCconfig_S1(msg_p, enb_id); - if (node_type == ngran_eNB_CU || node_type == ngran_ng_eNB_CU) RCconfig_CU_F1(enb_id); - if (enb_id == 0) RCconfig_gtpu(); LOG_I(ENB_APP,"default drx %d\n",((S1AP_REGISTER_ENB_REQ(msg_p)).default_drx)); @@ -205,14 +203,14 @@ void *eNB_app_task(void *args_p) LOG_I(ENB_APP,"Allocating eNB_RRC_INST for %d instances\n",RC.nb_inst); RC.rrc = (eNB_RRC_INST **)malloc(RC.nb_inst*sizeof(eNB_RRC_INST *)); - LOG_I(PHY, "%s() RC.nb_inst:%d RC.rrc:%p\n", __FUNCTION__, RC.nb_inst, RC.rrc); + LOG_I(ENB_APP, "%s() RC.nb_inst:%d RC.rrc:%p\n", __FUNCTION__, RC.nb_inst, RC.rrc); if (RC.nb_macrlc_inst>0) AssertFatal(RC.nb_macrlc_inst == enb_id_end-enb_id_start, "Number of MACRLC instances %d != number of RRC instances %d\n", RC.nb_macrlc_inst,enb_id_end-enb_id_start); for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) { RC.rrc[enb_id] = (eNB_RRC_INST*)malloc(sizeof(eNB_RRC_INST)); - LOG_I(PHY, "%s() Creating RRC instance RC.rrc[%d]:%p (%d of %d)\n", __FUNCTION__, enb_id, RC.rrc[enb_id], enb_id+1, enb_id_end); + LOG_I(ENB_APP, "%s() Creating RRC instance RC.rrc[%d]:%p (%d of %d)\n", __FUNCTION__, enb_id, RC.rrc[enb_id], enb_id+1, enb_id_end); memset((void *)RC.rrc[enb_id],0,sizeof(eNB_RRC_INST)); configure_rrc(enb_id); diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index de468b79ca546e2a1b1de7dbbbabebec6f16bdfe..51a3ca6cd78f8b174479d6cab789bcd620faeddb 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -784,6 +784,20 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { rrc->node_type = ngran_eNB; } else if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "f1") == 0) { + + paramdef_t SCTPParams[] = SCTPPARAMS_DESC; + paramdef_t NETParams[] = NETPARAMS_DESC; + char aprefix[MAX_OPTNAME_SIZE*2 + 8]; + + sprintf(aprefix,"%s.[%i].%s",ENB_CONFIG_STRING_ENB_LIST,i,ENB_CONFIG_STRING_SCTP_CONFIG); + config_get( SCTPParams,sizeof(SCTPParams)/sizeof(paramdef_t),aprefix); + + int gNB_CU_id = *(ENBParamList.paramarray[0][ENB_ENB_ID_IDX].uptr); + LOG_I(ENB_APP,"F1AP: gNB_CU_id[%d] %d\n",k,gNB_CU_id); + + char *gNB_CU_name = *(ENBParamList.paramarray[0][ENB_ENB_NAME_IDX].strptr); + LOG_I(ENB_APP,"F1AP: gNB_CU_name[%d] %s\n",k,gNB_CU_name); + rrc->eth_params_s.local_if_name = strdup(*(ENBParamList.paramarray[i][ENB_LOCAL_S_IF_NAME_IDX].strptr)); LOG_I(RRC,"Configuring CU-DU interfaces for MACRLC on %s\n",rrc->eth_params_s.local_if_name); rrc->eth_params_s.my_addr = strdup(*(ENBParamList.paramarray[i][ENB_LOCAL_S_ADDRESS_IDX].strptr)); @@ -800,6 +814,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { LOG_I(RRC,"remote port (F1U) %d\n",rrc->eth_params_s.remote_portd); rrc->eth_params_s.transp_preference = ETH_UDP_MODE; rrc->node_type = ngran_eNB_CU; + rrc->sctp_in_streams = (uint16_t)*(SCTPParams[ENB_SCTP_INSTREAMS_IDX].uptr); + rrc->sctp_out_streams = (uint16_t)*(SCTPParams[ENB_SCTP_OUTSTREAMS_IDX].uptr); } else { // no F1 @@ -2341,17 +2357,6 @@ int RCconfig_gtpu(void ) { return 0; } -int RCconfig_CU_F1(uint32_t i) { - - AssertFatal(1==0,"Shouldn't get here yet\n"); - - // 1. wait for F1AP_SETUP_REQ - // 2. configure cells with selected PLMN(s) - // 3. send F1AP_SETUP_RESP and return to setup S1AP - - while( -} - int RCconfig_DU_F1(MessageDef *msg_p, uint32_t i) { int k; diff --git a/openair2/RRC/LTE/rrc_defs.h b/openair2/RRC/LTE/rrc_defs.h index 9767cc6ee97926e54af1f651b045317e846681d6..ae3dd3402d386f0c19dcef43cd377b5ce4247a80 100644 --- a/openair2/RRC/LTE/rrc_defs.h +++ b/openair2/RRC/LTE/rrc_defs.h @@ -720,6 +720,9 @@ typedef struct eNB_RRC_INST_s { int srs_enable[MAX_NUM_CCs]; int cell_info_configured; pthread_mutex_t cell_info_mutex; + uint16_t sctp_in_streams; + uint16_t sctp_out_streams; + } eNB_RRC_INST; #define MAX_UE_CAPABILITY_SIZE 255 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/cu.lte.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/cu.lte.conf index 49140cdfe71ce2ce2471b4cabdf1375da0236f3e..ba0bd886a67887604770d5aed1e3124bae988302 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/cu.lte.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/cu.lte.conf @@ -1,4 +1,4 @@ -Active_eNBs = ( "eNB-Eurecom-LTEBox"); +Active_eNBs = ( "eNB-CU-Eurecom-LTEBox"); # Asn1_verbosity, choice in: none, info, annoying Asn1_verbosity = "none";