diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c index 096b2299e803a30e75d473d1989a382f5f1597f1..d00c3060711d49f4dcea22a0c2a1a94291d0f456 100644 --- a/openair2/ENB_APP/enb_app.c +++ b/openair2/ENB_APP/enb_app.c @@ -29,6 +29,7 @@ *******************************************************************************/ #include <string.h> +#include <stdio.h> #include "enb_app.h" #include "enb_config.h" @@ -97,10 +98,12 @@ static void configure_rrc(uint32_t enb_id, const Enb_properties_array_t *enb_pro # if defined(ENABLE_USE_MME) static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end, const Enb_properties_array_t *enb_properties) { - uint32_t enb_id; - uint32_t mme_id; - MessageDef *msg_p; - uint32_t register_enb_pending = 0; + uint32_t enb_id; + uint32_t mme_id; + MessageDef *msg_p; + uint32_t register_enb_pending = 0; + char *str = NULL; + struct in_addr addr; # if defined(OAI_EMU) @@ -143,6 +146,12 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end, con sizeof(s1ap_register_eNB->mme_ip_address[0].ipv6_address)); } + s1ap_register_eNB->enb_ip_address.ipv6 = 0; + s1ap_register_eNB->enb_ip_address.ipv4 = 1; + addr.s_addr = enb_properties->properties[enb_id]->enb_ipv4_address_for_S1_MME; + str = inet_ntoa(addr); + strcpy(s1ap_register_eNB->enb_ip_address.ipv4_address, str); + itti_send_msg_to_task (TASK_S1AP, enb_id, msg_p); register_enb_pending++; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index eaa277cf550cc902e0522dc865bd1243ddab061b..3444fca6a2970e8cfd2c75b2ceaf53dcb9988a9a 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -427,13 +427,13 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) { subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); if(subsetting != NULL) { if( ( - config_setting_lookup_string( setting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME, + 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( setting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_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( setting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, (const char **)&enb_interface_name_for_S1U) - && config_setting_lookup_string( setting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, (const char **)&enb_ipv4_address_for_S1U) ) ){ @@ -441,7 +441,6 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) { cidr = enb_ipv4_address_for_S1U; address = strtok(cidr, "/"); if (address) { - address = strdup(address); IPV4_STR_ADDR_TO_INT_NWBO ( address, enb_properties.properties[enb_properties_index]->enb_ipv4_address_for_S1U, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); } @@ -449,7 +448,6 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) { cidr = enb_ipv4_address_for_S1_MME; address = strtok(cidr, "/"); if (address) { - address = strdup(address); IPV4_STR_ADDR_TO_INT_NWBO ( address, enb_properties.properties[enb_properties_index]->enb_ipv4_address_for_S1_MME, "BAD IP ADDRESS FORMAT FOR eNB S1_MME !\n" ); } }