diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c index 56cb94065119800b0d2b114f571c3a11f7637775..93abd3e96c70ea2ec8259386746ee1308b0d9c06 100644 --- a/openair2/GNB_APP/gnb_config.c +++ b/openair2/GNB_APP/gnb_config.c @@ -62,7 +62,7 @@ extern uint16_t sf_ahead; -void RCconfig_NR_flexran() +void RCconfig_nr_flexran() { uint16_t i; uint16_t num_gnbs; @@ -2573,6 +2573,51 @@ int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) { }//End RCconfig_NRRRC function +int RCconfig_nr_gtpu(void ) { + + int num_gnbs = 0; + + + + char* enb_interface_name_for_S1U = NULL; + char* enb_ipv4_address_for_S1U = NULL; + uint32_t enb_port_for_S1U = 0; + char *address = NULL; + char *cidr = NULL; + char gtpupath[MAX_OPTNAME_SIZE*2 + 8]; + + + paramdef_t GNBSParams[] = GNBSPARAMS_DESC; + + paramdef_t GTPUParams[] = GTPUPARAMS_DESC; + LOG_I(GTPU,"Configuring GTPu\n"); + +/* get number of active eNodeBs */ + config_get( GNBSParams,sizeof(GNBSParams)/sizeof(paramdef_t),NULL); + num_gnbs = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt; + AssertFatal (num_gnbs >0, + "Failed to parse config file no active gNodeBs in %s \n", GNB_CONFIG_STRING_ACTIVE_GNBS); + + + sprintf(gtpupath,"%s.[%i].%s",GNB_CONFIG_STRING_GNB_LIST,0,GNB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); + config_get( GTPUParams,sizeof(GTPUParams)/sizeof(paramdef_t),gtpupath); + + + + 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; +return 0; +} + int RCconfig_NR_S1(MessageDef *msg_p, uint32_t i) { int j,k = 0; diff --git a/openair2/GNB_APP/gnb_config.h b/openair2/GNB_APP/gnb_config.h index 3ce598bb1b14bc9b59ac3b3d1a6c60774abff0c2..21acf6b2d288715a24ba00be1d405d1fa333ae88 100644 --- a/openair2/GNB_APP/gnb_config.h +++ b/openair2/GNB_APP/gnb_config.h @@ -92,17 +92,17 @@ typedef struct ru_config_s { } ru_config_t; */ extern void RCconfig_RU(void); -extern void RCconfig_NR_flexran(void); +extern void RCconfig_nr_flexran(void); extern void RCconfig_NR_L1(void); extern void RCconfig_nr_macrlc(void); -extern int RCconfig_gtpu(void ); +extern int RCconfig_nr_gtpu(void ); extern void NRRCConfig(void); //void enb_config_display(void); //void ru_config_display(void); int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc); -int RCconfig_S1(MessageDef *msg_p, uint32_t i); +int RCconfig_NR_S1(MessageDef *msg_p, uint32_t i); #endif /* GNB_CONFIG_H_ */ /** @} */ diff --git a/targets/RT/USER/nr-softmodem.c b/targets/RT/USER/nr-softmodem.c index 2a6686a575b13370931e9cce0330231fcc6d8428..2ff8168f0fb81de3932ebf62016f8383f2e7f77b 100644 --- a/targets/RT/USER/nr-softmodem.c +++ b/targets/RT/USER/nr-softmodem.c @@ -551,7 +551,7 @@ static void get_options(void) { NRRCConfig(); NB_gNB_INST = RC.nb_nr_inst; NB_RU = RC.nb_RU; - printf("Configuration: nb_rrc_inst %d, nb_L1_inst %d, nb_ru %d\n",NB_gNB_INST,RC.nb_L1_inst,NB_RU); + printf("Configuration: nb_rrc_inst %d, nb_nr_L1_inst %d, nb_ru %d\n",NB_gNB_INST,RC.nb_nr_L1_inst,NB_RU); } } @@ -1045,7 +1045,7 @@ int main( int argc, char **argv ) #if defined(ENABLE_ITTI) - if (RC.nb_inst > 0) { + if (RC.nb_nr_inst > 0) { // don't create if node doesn't connect to RRC/S1/GTP if (create_gNB_tasks(1) < 0) { @@ -1061,7 +1061,7 @@ int main( int argc, char **argv ) #endif /* Start the agent. If it is turned off in the configuration, it won't start */ - RCconfig_NR_flexran(); + RCconfig_nr_flexran(); for (i = 0; i < RC.nb_L1_inst; i++) { flexran_agent_start(i); } @@ -1150,7 +1150,7 @@ int main( int argc, char **argv ) // start the main threads number_of_cards = 1; - printf("RC.nb_L1_inst:%d\n", RC.nb_L1_inst); + printf("RC.nb_nr_L1_inst:%d\n", RC.nb_nr_L1_inst); if (RC.nb_L1_inst > 0) { printf("Initializing gNB threads single_thread_flag:%d wait_for_sync:%d\n", single_thread_flag,wait_for_sync); init_gNB(single_thread_flag,wait_for_sync);