diff --git a/openair-cn/SGW-LITE/pgw_lite_paa.c b/openair-cn/SGW-LITE/pgw_lite_paa.c index e538aed5c6..d8e0dc198e 100755 --- a/openair-cn/SGW-LITE/pgw_lite_paa.c +++ b/openair-cn/SGW-LITE/pgw_lite_paa.c @@ -75,8 +75,8 @@ void pgw_lite_load_pool_ip_addresses(void) { ipv4_p = calloc(1, sizeof(struct pgw_lite_ipv4_list_elm_s)); ipv4_p->addr.s_addr = ntohl(conf_ipv4_p->addr.s_addr); STAILQ_INSERT_TAIL(&pgw_app.pgw_lite_ipv4_list_free, ipv4_p, ipv4_entries); - SPGW_APP_DEBUG("Loaded IPv4 PAA address in pool: %s\n", - inet_ntoa(conf_ipv4_p->addr)); + //SPGW_APP_DEBUG("Loaded IPv4 PAA address in pool: %s\n", + // inet_ntoa(conf_ipv4_p->addr)); } STAILQ_FOREACH(conf_ipv6_p, &spgw_config.pgw_config.pgw_lite_ipv6_pool_list, ipv6_entries) { ipv6_p = calloc(1, sizeof(struct pgw_lite_ipv6_list_elm_s)); @@ -86,9 +86,9 @@ void pgw_lite_load_pool_ip_addresses(void) { STAILQ_INSERT_TAIL(&pgw_app.pgw_lite_ipv6_list_free, ipv6_p, ipv6_entries); if (inet_ntop(AF_INET6, &ipv6_p->addr, print_buffer, INET6_ADDRSTRLEN) == NULL) { SPGW_APP_ERROR("Could not Load IPv6 PAA address in pool: %s\n", strerror(errno)); - } else { + } /*else { SPGW_APP_DEBUG("Loaded IPv6 PAA prefix in pool: %s\n",print_buffer); - } + }*/ } #if defined(PGW_LITE_FREE_ADDR_POOL_CONFIG) diff --git a/openair-cn/SGW-LITE/spgw_config.c b/openair-cn/SGW-LITE/spgw_config.c index a94c26ac3c..e92ac25be0 100755 --- a/openair-cn/SGW-LITE/spgw_config.c +++ b/openair-cn/SGW-LITE/spgw_config.c @@ -201,7 +201,7 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { int prefix_mask = 0; uint64_t counter64 = 0; unsigned char buf_in_addr[sizeof(struct in_addr)]; - struct in_addr addr_start; + struct in_addr addr_start,in_addr_var; struct in_addr addr_mask; pgw_lite_conf_ipv4_list_elm_t *ip4_ref = NULL; pgw_lite_conf_ipv6_list_elm_t *ip6_ref = NULL; @@ -220,7 +220,7 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { { SPGW_APP_ERROR("%s:%d - %s\n", lib_config_file_name_pP, config_error_line(&cfg), config_error_text(&cfg)); config_destroy(&cfg); - AssertFatal (1 == 0, "Failed to parse eNB configuration file %s!\n", lib_config_file_name_pP); + AssertFatal (1 == 0, "Failed to parse SP-GW configuration file %s!\n", lib_config_file_name_pP); } } else @@ -252,6 +252,13 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { config_pP->sgw_config.ipv4.sgw_ip_netmask_for_S1u_S12_S4_up = atoi(mask); free(cidr); + in_addr_var.s_addr = config_pP->sgw_config.ipv4.sgw_ipv4_address_for_S1u_S12_S4_up; + SPGW_APP_INFO("Parsing configuration file found sgw_ipv4_address_for_S1u_S12_S4_up: %s/%d on %s\n", + inet_ntoa(in_addr_var), + config_pP->sgw_config.ipv4.sgw_ip_netmask_for_S1u_S12_S4_up, + config_pP->sgw_config.ipv4.sgw_interface_name_for_S1u_S12_S4_up); + + config_pP->sgw_config.ipv4.sgw_interface_name_for_S5_S8_up = strdup(sgw_interface_name_for_S5_S8_up); cidr = strdup(sgw_ipv4_address_for_S5_S8_up); address = strtok(cidr, "/"); @@ -259,6 +266,11 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { IPV4_STR_ADDR_TO_INT_NWBO ( address, config_pP->sgw_config.ipv4.sgw_ipv4_address_for_S5_S8_up, "BAD IP ADDRESS FORMAT FOR S5_S8 !\n" ) config_pP->sgw_config.ipv4.sgw_ip_netmask_for_S5_S8_up = atoi(mask); free(cidr); + in_addr_var.s_addr = config_pP->sgw_config.ipv4.sgw_ipv4_address_for_S5_S8_up; + SPGW_APP_INFO("Parsing configuration file found sgw_ipv4_address_for_S5_S8_up: %s/%d on %s\n", + inet_ntoa(in_addr_var), + config_pP->sgw_config.ipv4.sgw_ip_netmask_for_S5_S8_up, + config_pP->sgw_config.ipv4.sgw_interface_name_for_S5_S8_up); config_pP->sgw_config.ipv4.sgw_interface_name_for_S11 = strdup(sgw_interface_name_for_S11); cidr = strdup(sgw_ipv4_address_for_S11); @@ -267,6 +279,11 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { IPV4_STR_ADDR_TO_INT_NWBO ( address, config_pP->sgw_config.ipv4.sgw_ipv4_address_for_S11, "BAD IP ADDRESS FORMAT FOR S11 !\n" ) config_pP->sgw_config.ipv4.sgw_ip_netmask_for_S11 = atoi(mask); free(cidr); + in_addr_var.s_addr = config_pP->sgw_config.ipv4.sgw_ipv4_address_for_S11; + SPGW_APP_INFO("Parsing configuration file found sgw_ipv4_address_for_S11: %s/%d on %s\n", + inet_ntoa(in_addr_var), + config_pP->sgw_config.ipv4.sgw_ip_netmask_for_S11, + config_pP->sgw_config.ipv4.sgw_interface_name_for_S11); } } } @@ -274,7 +291,7 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { setting_pgw = config_lookup(&cfg, PGW_CONFIG_STRING_PGW_CONFIG); if(setting_pgw != NULL) { - subsetting = config_setting_get_member (setting_pgw, SGW_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); + subsetting = config_setting_get_member (setting_pgw, PGW_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); if(subsetting != NULL) { if( ( config_setting_lookup_string(subsetting, @@ -298,6 +315,11 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { IPV4_STR_ADDR_TO_INT_NWBO ( address, config_pP->pgw_config.ipv4.pgw_ipv4_address_for_S5_S8, "BAD IP ADDRESS FORMAT FOR S5_S8 !\n" ) config_pP->pgw_config.ipv4.pgw_ip_netmask_for_S5_S8 = atoi(mask); free(cidr); + in_addr_var.s_addr = config_pP->pgw_config.ipv4.pgw_ipv4_address_for_S5_S8; + SPGW_APP_INFO("Parsing configuration file found pgw_ipv4_address_for_S5_S8: %s/%d on %s\n", + inet_ntoa(in_addr_var), + config_pP->pgw_config.ipv4.pgw_ip_netmask_for_S5_S8, + config_pP->pgw_config.ipv4.pgw_interface_name_for_S5_S8); config_pP->pgw_config.ipv4.pgw_interface_name_for_SGI = strdup(pgw_interface_name_for_SGI); cidr = strdup(pgw_ipv4_address_for_SGI); @@ -306,7 +328,16 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { IPV4_STR_ADDR_TO_INT_NWBO ( address, config_pP->pgw_config.ipv4.pgw_ipv4_address_for_SGI, "BAD IP ADDRESS FORMAT FOR SGI !\n" ) config_pP->pgw_config.ipv4.pgw_ip_netmask_for_SGI = atoi(mask); free(cidr); + in_addr_var.s_addr = config_pP->pgw_config.ipv4.pgw_ipv4_address_for_SGI; + SPGW_APP_INFO("Parsing configuration file found pgw_ipv4_address_for_SGI: %s/%d on %s\n", + inet_ntoa(in_addr_var), + config_pP->pgw_config.ipv4.pgw_ip_netmask_for_SGI, + config_pP->pgw_config.ipv4.pgw_interface_name_for_SGI); + } else { + SPGW_APP_WARN("CONFIG P-GW / NETWORK INTERFACES parsing failed\n"); } + } else { + SPGW_APP_WARN("CONFIG P-GW / NETWORK INTERFACES not found\n"); } subsetting = config_setting_get_member (setting_pgw, PGW_CONFIG_STRING_IP_ADDRESS_POOL); if(subsetting != NULL) { @@ -401,6 +432,8 @@ int spgw_config_init(char* lib_config_file_name_pP, spgw_config_t* config_pP) { } } } + } else { + SPGW_APP_WARN("CONFIG P-GW not found\n"); } return 0; } diff --git a/openair-cn/SGW-LITE/spgw_config.h b/openair-cn/SGW-LITE/spgw_config.h index d314223f39..a41260cd6b 100755 --- a/openair-cn/SGW-LITE/spgw_config.h +++ b/openair-cn/SGW-LITE/spgw_config.h @@ -58,7 +58,7 @@ Address : EURECOM, #define PGW_CONFIG_STRING_PGW_INTERFACE_NAME_FOR_S5_S8 "PGW_INTERFACE_NAME_FOR_S5_S8" #define PGW_CONFIG_STRING_PGW_IPV4_ADDRESS_FOR_S5_S8 "PGW_IPV4_ADDRESS_FOR_S5_S8" #define PGW_CONFIG_STRING_PGW_INTERFACE_NAME_FOR_SGI "PGW_INTERFACE_NAME_FOR_SGI" -#define PGW_CONFIG_STRING_PGW_IPV4_ADDR_FOR_SGI "PGW_IPV4_ADDR_FOR_SGI" +#define PGW_CONFIG_STRING_PGW_IPV4_ADDR_FOR_SGI "PGW_IPV4_ADDRESS_FOR_SGI" #define PGW_CONFIG_STRING_IP_ADDRESS_POOL "IP_ADDRESS_POOL" #define PGW_CONFIG_STRING_IPV4_ADDRESS_LIST "IPV4_LIST" diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/RT.ENB_IS_CALISSON.MME_IS_YANG/epc.yang.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/RT.ENB_IS_CALISSON.MME_IS_YANG/epc.yang.conf index 8a51cfdc57..7b23e26a55 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/RT.ENB_IS_CALISSON.MME_IS_YANG/epc.yang.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/RT.ENB_IS_CALISSON.MME_IS_YANG/epc.yang.conf @@ -111,7 +111,7 @@ P-GW = PGW_IPV4_ADDRESS_FOR_S5_S8 = "0.0.0.0/24"; PGW_INTERFACE_NAME_FOR_SGI = "none"; - PGW_IPV4_ADDR_FOR_SGI = "0.0.0.0/24"; + PGW_IPV4_ADDRESS_FOR_SGI = "0.0.0.0/24"; }; IP_ADDRESS_POOL : diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_calisson.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_calisson.conf index 6d07960c1d..10bc3b2aca 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_calisson.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_calisson.conf @@ -100,7 +100,7 @@ P-GW = PGW_INTERFACE_NAME_FOR_S5_S8 = "none"; PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; - PGW_INTERFACE_NAME_FOR_SGI = "eth1"; + PGW_INTERFACE_NAME_FOR_SGI = "none"; PGW_IPV4_ADDRESS_FOR_SGI = "192.168.13.17/24"; }; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_olympie-Latitude-E6520.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_olympie-Latitude-E6520.conf index 10bc3b2aca..3c132ece68 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_olympie-Latitude-E6520.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VIRTUAL.ENB_MME_IN_1_HOST/epc_sfr_olympie-Latitude-E6520.conf @@ -24,9 +24,11 @@ MME : S6A : { - MME_INTERFACE_NAME_FOR_S6A = "tun61"; - MME_IPV4_ADDRESS_FOR_S6A = "192.168.60.145/24"; + #MME_INTERFACE_NAME_FOR_S6A = "tun61"; + #MME_IPV4_ADDRESS_FOR_S6A = "192.168.60.145/24"; S6A_CONF = "./UTILS/CONF/s6a.conf"; + MME_INTERFACE_NAME_FOR_S6A = "eth0"; + MME_IPV4_ADDRESS_FOR_S6A = "192.168.12.175/24"; }; # ------- SCTP definitions @@ -93,15 +95,15 @@ S-GW : }; }; -P-GW = +P-GW : { NETWORK_INTERFACES : { PGW_INTERFACE_NAME_FOR_S5_S8 = "none"; PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; - PGW_INTERFACE_NAME_FOR_SGI = "none"; - PGW_IPV4_ADDRESS_FOR_SGI = "192.168.13.17/24"; + PGW_INTERFACE_NAME_FOR_SGI = "eth1"; + PGW_IPV4_ADDRESS_FOR_SGI = "192.168.13.175/24"; }; IP_ADDRESS_POOL : @@ -122,12 +124,14 @@ P-GW = }; }; -HSS = +HSS : { NETWORK_INTERFACES : { - HSS_INTERFACE_NAME_FOR_S6A = "tun60"; - HSS_IPV4_ADDRESS_FOR_S6A = "192.168.60.17/24"; +# HSS_INTERFACE_NAME_FOR_S6A = "tun60"; +# HSS_IPV4_ADDRESS_FOR_S6A = "192.168.60.17/24"; + HSS_INTERFACE_NAME_FOR_S6A = "none"; + HSS_IPV4_ADDRESS_FOR_S6A = "192.168.12.190/24"; }; }; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VLAN.VIRTUAL.YANG-HADES/epc.sfr.hades.vlan.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VLAN.VIRTUAL.YANG-HADES/epc.sfr.hades.vlan.conf index 8ddbf2b167..43eebac54b 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VLAN.VIRTUAL.YANG-HADES/epc.sfr.hades.vlan.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VLAN.VIRTUAL.YANG-HADES/epc.sfr.hades.vlan.conf @@ -108,7 +108,7 @@ P-GW = PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; PGW_INTERFACE_NAME_FOR_SGI = "none"; - PGW_IPV4_ADDR_FOR_SGI = "192.168.14.17/24"; + PGW_IPV4_ADDRESS_FOR_SGI = "192.168.14.17/24"; }; IP_ADDRESS_POOL : diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VSWITCH.VIRTUAL.YANG/epc.sfr.yang.vswitch.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VSWITCH.VIRTUAL.YANG/epc.sfr.yang.vswitch.conf index 9b83ff1d5e..128fcc1b83 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VSWITCH.VIRTUAL.YANG/epc.sfr.yang.vswitch.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/VSWITCH.VIRTUAL.YANG/epc.sfr.yang.vswitch.conf @@ -99,7 +99,7 @@ P-GW = PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; PGW_INTERFACE_NAME_FOR_SGI = "eth1"; - PGW_IPV4_ADDR_FOR_SGI = "192.168.13.17/24"; + PGW_IPV4_ADDRESS_FOR_SGI = "192.168.13.17/24"; }; IP_ADDRESS_POOL : diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.pft.sud.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.pft.sud.conf index 29b81ca112..a684b2ed96 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.pft.sud.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.pft.sud.conf @@ -104,7 +104,7 @@ P-GW = PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; PGW_INTERFACE_NAME_FOR_SGI = "eth0"; - PGW_IPV4_ADDR_FOR_SGI = "192.168.12.31/24"; + PGW_IPV4_ADDRESS_FOR_SGI = "192.168.12.31/24"; }; IP_ADDRESS_POOL : diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.default.vlan.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.default.vlan.conf index 121385514c..77bc1f0049 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.default.vlan.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.default.vlan.conf @@ -94,7 +94,7 @@ P-GW = PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; PGW_INTERFACE_NAME_FOR_SGI = "eth1"; - PGW_IPV4_ADDR_FOR_SGI = "192.168.14.175/24"; + PGW_IPV4_ADDRESS_FOR_SGI = "192.168.14.175/24"; }; IP_ADDRESS_POOL : diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.hades.vlan.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.hades.vlan.conf index d800a62a98..b6e33646a1 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.hades.vlan.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.hades.vlan.conf @@ -104,7 +104,7 @@ P-GW = PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; PGW_INTERFACE_NAME_FOR_SGI = "eth4"; - PGW_IPV4_ADDR_FOR_SGI = "192.168.14.145/24"; + PGW_IPV4_ADDRESS_FOR_SGI = "192.168.14.145/24"; }; IP_ADDRESS_POOL : diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.yang.vswitch.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.yang.vswitch.conf index d467cedd6c..f154c843c6 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.yang.vswitch.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.sfr.yang.vswitch.conf @@ -99,7 +99,7 @@ P-GW = PGW_IPV4_ADDRESS_FOR_S5_S8 = "192.168.5.1/24"; PGW_INTERFACE_NAME_FOR_SGI = "eth2"; - PGW_IPV4_ADDR_FOR_SGI = "192.168.13.17/24"; + PGW_IPV4_ADDRESS_FOR_SGI = "192.168.13.17/24"; }; IP_ADDRESS_POOL : diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/start_mme_and_enb_and_ue_virt.bash b/targets/PROJECTS/GENERIC-LTE-EPC/start_mme_and_enb_and_ue_virt.bash index bdfdfd32fa..348116859a 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/start_mme_and_enb_and_ue_virt.bash +++ b/targets/PROJECTS/GENERIC-LTE-EPC/start_mme_and_enb_and_ue_virt.bash @@ -79,8 +79,8 @@ declare UE_IPv4_CIDR=$UE_IPv4"/24" declare MME_ITTI_LOG_FILE=./itti_mme.$HOSTNAME.log declare MME_STDOUT_LOG_FILE=./stdout_mme.$HOSTNAME.log declare MME_PCAP_LOG_FILE=./tshark_s1_mme.$HOSTNAME.pcap -declare ITTI_LOG_FILE=./OUTPUT/itti_enb_ue.$HOSTNAME.log -declare STDOUT_LOG_FILE=./OUTPUT/stdout_enb_ue.$HOSTNAME.log +declare ITTI_LOG_FILE=./itti_enb_ue.$HOSTNAME.log +declare STDOUT_LOG_FILE=./stdout_enb_ue.$HOSTNAME.log declare PCAP_LOG_FILE=./tshark_enb.$HOSTNAME.pcap ########################################################### THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) @@ -257,6 +257,7 @@ then echo_success "Created OUTPUT/$HOSTNAME directory" fi +cd OUTPUT/$HOSTNAME rotate_log_file $MME_ITTI_LOG_FILE rotate_log_file $MME_STDOUT_LOG_FILE rotate_log_file $MME_PCAP_LOG_FILE @@ -265,8 +266,8 @@ cd $OPENAIRCN_DIR/$OBJ_DIR nohup tshark -i MME_INTERFACE_NAME_FOR_S1_MME -w $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_PCAP_LOG_FILE & -$OPENAIRCN_DIR/$OBJ_DIR/OAI_EPC/oai_epc -K $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_ITTI_LOG_FILE -c $THIS_SCRIPT_PATH/$CONFIG_FILE_EPC 2>&1 | tee $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_STDOUT_LOG_FILE & -#nohup xterm -e $OPENAIRCN_DIR/$OBJ_DIR/OAI_EPC/oai_epc -K $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_ITTI_LOG_FILE -c $THIS_SCRIPT_PATH/$CONFIG_FILE_EPC 2>&1 | tee $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_STDOUT_LOG_FILE & +#gdb --args $OPENAIRCN_DIR/$OBJ_DIR/OAI_EPC/oai_epc -K $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_ITTI_LOG_FILE -c $THIS_SCRIPT_PATH/$CONFIG_FILE_EPC 2>&1 | tee $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_STDOUT_LOG_FILE +nohup xterm -hold -e gdb --args $OPENAIRCN_DIR/$OBJ_DIR/OAI_EPC/oai_epc -K $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_ITTI_LOG_FILE -c $THIS_SCRIPT_PATH/$CONFIG_FILE_EPC 2>&1 | tee $THIS_SCRIPT_PATH/OUTPUT/$HOSTNAME/$MME_STDOUT_LOG_FILE & ################################################## @@ -304,6 +305,8 @@ fi ip rule add fwmark 5 table lte ip route add default dev $LTEIF table lte + +cd OUTPUT/$HOSTNAME rotate_log_file $ITTI_LOG_FILE rotate_log_file $STDOUT_LOG_FILE rotate_log_file $STDOUT_LOG_FILE.filtered @@ -311,15 +314,15 @@ rotate_log_file $PCAP_LOG_FILE cd $THIS_SCRIPT_PATH -nohup tshark -i $ENB_INTERFACE_NAME_FOR_S1_MME -i $ENB_INTERFACE_NAME_FOR_S1U -w $PCAP_LOG_FILE & +nohup tshark -i $ENB_INTERFACE_NAME_FOR_S1_MME -i $ENB_INTERFACE_NAME_FOR_S1U -w OUTPUT/$HOSTNAME/$PCAP_LOG_FILE & nohup xterm -e $OPENAIRCN_DIR/NAS/EURECOM-NAS/bin/UserProcess & -gdb --args $OPENAIR_TARGETS/SIMU/USER/oaisim -a -u1 -l9 -K $ITTI_LOG_FILE --enb-conf $CONFIG_FILE_ENB 2>&1 | tee $STDOUT_LOG_FILE +gdb --args $OPENAIR_TARGETS/SIMU/USER/oaisim -a -u1 -l9 -K $ITTI_LOG_FILE --enb-conf $CONFIG_FILE_ENB 2>&1 | tee OUTPUT/$HOSTNAME/$STDOUT_LOG_FILE pkill tshark -cat $STDOUT_LOG_FILE | grep -v '[PHY]' | grep -v '[MAC]' | grep -v '[EMU]' | \ +cat OUTPUT/$HOSTNAME/$STDOUT_LOG_FILE | grep -v '[PHY]' | grep -v '[MAC]' | grep -v '[EMU]' | \ grep -v '[OCM]' | grep -v '[OMG]' | \ grep -v 'RLC not configured' | grep -v 'check if serving becomes' | \ - grep -v 'mac_rrc_data_req' | grep -v 'BCCH request =>' > $STDOUT_LOG_FILE.filtered + grep -v 'mac_rrc_data_req' | grep -v 'BCCH request =>' > OUTPUT/$HOSTNAME/$STDOUT_LOG_FILE.filtered diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash b/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash index 1df960c3c9..ac98e1a093 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash +++ b/targets/PROJECTS/GENERIC-LTE-EPC/utils.bash @@ -728,13 +728,32 @@ build_tun_network() { set_interface_up $MME_INTERFACE_NAME_FOR_S11_MME $MME_IPV4_ADDRESS_FOR_S11_MME $MME_IPV4_NETMASK_FOR_S11_MME set_interface_up $SGW_INTERFACE_NAME_FOR_S11 $SGW_IPV4_ADDRESS_FOR_S11 $SGW_IPV4_NETMASK_FOR_S11 - set_interface_up $MME_INTERFACE_NAME_FOR_S11_MME $MME_IPV4_ADDRESS_FOR_S11_MME $MME_IPV4_NETMASK_FOR_S11_MME - set_interface_up $SGW_INTERFACE_NAME_FOR_S11 $SGW_IPV4_ADDRESS_FOR_S11 $SGW_IPV4_NETMASK_FOR_S11 - set_interface_up $MME_INTERFACE_NAME_FOR_S6A $MME_IPV4_ADDRESS_FOR_S6A $MME_IPV4_NETMASK_FOR_S6A set_interface_up $HSS_INTERFACE_NAME_FOR_S6A $HSS_IPV4_ADDRESS_FOR_S6A $HSS_IPV4_NETMASK_FOR_S6A } +# arg1 is IF1 IP addr +# arg2 is IF2 IP addr +test_local_iperf() { + TRY_NO=3 + + until [ $TRY_NO -lt 1 ]; do + iperf --bind $1 -u -s 2>&1 > /dev/null & + iperf --bind $2 -u --num 1K -c $1 2>&1 | grep -i WARNING > /dev/null + if [ $? -eq 0 ]; then + pkill iperf 2>&1 > /dev/null + echo_warning "NETWORK TEST FAILED between $1 and $2" + else + echo_success "NETWORK TEST SUCCESS between $1 and $2" + pkill iperf 2>&1 > /dev/null + return + fi + let TRY_NO-=1 + pkill iperf 2>&1 > /dev/null + done + echo_fatal "FATAL: NETWORK TEST FAILED between $1 and $2" +} + test_tun_network() { # TEST INTERFACES @@ -757,51 +776,14 @@ test_tun_network() { ## TEST NETWORK BETWEEN ENB-MME-SP-GW - iperf --bind $MME_IPV4_ADDRESS_FOR_S1_MME -u -s 2>&1 > /dev/null & - iperf --bind $ENB_IPV4_ADDRESS_FOR_S1_MME -u --num 1K -c $MME_IPV4_ADDRESS_FOR_S1_MME 2>&1 | grep -i WARNING > /dev/null - if [ $? -eq 0 ]; then - pkill iperf 2>&1 > /dev/null - echo_fatal 'NETWORK ERROR CONFIGURATION (tun) between ENB and MME S1' - else - echo_success 'NETWORK TEST SUCCESS (tun) between ENB and MME S1' - - fi - pkill iperf 2>&1 > /dev/null - - iperf --bind $SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP -u -s 2>&1 > /dev/null & - iperf --bind $ENB_IPV4_ADDRESS_FOR_S1U -u --num 1K -c $SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP 2>&1 | grep -i WARNING > /dev/null - if [ $? -eq 0 ]; then - pkill iperf 2>&1 > /dev/null - echo_fatal 'NETWORK ERROR CONFIGURATION (tun) between ENB and S-GW S1-U' - else - echo_success 'NETWORK TEST SUCCESS (tun) between ENB and S-GW S1-U' - fi - pkill iperf 2>&1 > /dev/null - - iperf --bind $SGW_IPV4_ADDRESS_FOR_S11 -u -s 2>&1 > /dev/null & - iperf --bind $MME_IPV4_ADDRESS_FOR_S11_MME -u --num 1K -c $SGW_IPV4_ADDRESS_FOR_S11 2>&1 | grep -i WARNING > /dev/null - if [ $? -eq 0 ]; then - pkill iperf 2>&1 > /dev/null - echo_fatal 'NETWORK ERROR CONFIGURATION (tun) between MME and S-GW S11' - else - echo_success 'NETWORK TEST SUCCESS (tun) between MME and S-GW S11' - fi - pkill iperf 2>&1 > /dev/null - - iperf --bind $HSS_IPV4_ADDRESS_FOR_S6A -u -s 2>&1 > /dev/null & - iperf --bind $MME_IPV4_ADDRESS_FOR_S6A -u --num 1K -c $HSS_IPV4_ADDRESS_FOR_S6A 2>&1 | grep -i WARNING > /dev/null - if [ $? -eq 0 ]; then - pkill iperf 2>&1 > /dev/null - echo_fatal 'NETWORK ERROR CONFIGURATION (tun) between MME and HSS S6A' - else - echo_success 'NETWORK TEST SUCCESS (openvswitch) between MME and S-GW S11' - fi - pkill iperf 2>&1 > /dev/null - + test_local_iperf $ENB_IPV4_ADDRESS_FOR_S1_MME $MME_IPV4_ADDRESS_FOR_S1_MME + test_local_iperf $ENB_IPV4_ADDRESS_FOR_S1U $SGW_IPV4_ADDRESS_FOR_S1U_S12_S4_UP + test_local_iperf $MME_IPV4_ADDRESS_FOR_S11_MME $SGW_IPV4_ADDRESS_FOR_S11 + test_local_iperf $MME_IPV4_ADDRESS_FOR_S6A $HSS_IPV4_ADDRESS_FOR_S6A # Get MAC address of router.eur ping -c 1 hss.eur > /dev/null || { echo_fatal "hss.eur does not respond to ping" >&2 ; } -#TEMP ping -c 1 router.eur > /dev/null || { echo_fatal "router.eur does not respond to ping" >&2 ; } + ping -c 1 router.eur > /dev/null || { echo_fatal "router.eur does not respond to ping" >&2 ; } return 0 } @@ -824,10 +806,10 @@ build_epc_tun_network() { build_tun_network -#TEMP ping -c 1 router.eur > /dev/null || { echo_fatal "router.eur does not respond to ping" >&2 ; } -#TEMP IP_ROUTER=`python -c 'import socket; print socket.gethostbyname("router.eur")'` -#TEMP export MAC_ROUTER=`ip neigh show | grep $IP_ROUTER | cut -d ' ' -f5 | tr -d ':'` -#TEMP echo_success "ROUTER MAC ADDRESS= $MAC_ROUTER" + ping -c 1 router.eur > /dev/null || { echo_fatal "router.eur does not respond to ping" >&2 ; } + IP_ROUTER=`python -c 'import socket; print socket.gethostbyname("router.eur")'` + export MAC_ROUTER=`ip neigh show | grep $IP_ROUTER | cut -d ' ' -f5 | tr -d ':'` + echo_success "ROUTER MAC ADDRESS= $MAC_ROUTER" bash_exec "modprobe 8021q"