diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a4cfd3e552d18456598a90926ca1c4ef9402dec..b19e884592acc36c61f136d194987b3ddae6098b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1931,7 +1931,6 @@ add_executable(lte-softmodem ${OPENAIR_DIR}/executables/create_tasks_mbms.c ${OPENAIR_DIR}/radio/COMMON/common_lib.c ${OPENAIR_DIR}/radio/COMMON/record_player.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c ${PHY_INTERFACE_DIR}/queue_t.c ${OPENAIR_DIR}/common/utils/lte/ue_power.c @@ -1988,7 +1987,6 @@ add_executable(lte-uesoftmodem ${OPENAIR_DIR}/executables/create_tasks_ue.c ${OPENAIR_DIR}/radio/COMMON/common_lib.c ${OPENAIR_DIR}/radio/COMMON/record_player.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c ${OPENAIR_DIR}/common/utils/lte/ue_power.c ${OPENAIR_DIR}/common/utils/lte/prach_utils.c @@ -2024,7 +2022,6 @@ add_executable(nr-softmodem ${OPENAIR_DIR}/executables/softmodem-common.c ${OPENAIR_DIR}/radio/COMMON/common_lib.c ${OPENAIR_DIR}/radio/COMMON/record_player.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${OPENAIR_DIR}/common/utils/lte/ue_power.c ${OPENAIR_DIR}/common/utils/lte/prach_utils.c ${PHY_INTERFACE_DIR}/queue_t.c @@ -2066,7 +2063,6 @@ target_link_libraries(nr-softmodem PRIVATE add_executable(nr-cuup executables/nr-cuup.c executables/softmodem-common.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${NR_RRC_DIR}/rrc_gNB_UE_context.c ${OPENAIR2_DIR}/E1AP/e1ap_setup.c ${NR_PDCP_SRC} @@ -2094,7 +2090,6 @@ add_executable(nr-uesoftmodem ${OPENAIR_DIR}/executables/softmodem-common.c ${OPENAIR_DIR}/radio/COMMON/common_lib.c ${OPENAIR_DIR}/radio/COMMON/record_player.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_mac_common.c ${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c ${OPENAIR1_DIR}/PHY/TOOLS/phy_scope_interface.c @@ -2205,7 +2200,6 @@ add_executable(nr_psbchsim ${OPENAIR1_DIR}/SIMULATION/NR_PHY/psbchsim.c ${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c ${OPENAIR_DIR}/executables/softmodem-common.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${NR_UE_RRC_DIR}/rrc_nsa.c ${NFAPI_USER_DIR}/nfapi.c ${NFAPI_USER_DIR}/gnb_ind_vars.c @@ -2232,7 +2226,6 @@ add_executable(nr_dlsim ${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlsim.c ${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c ${OPENAIR_DIR}/executables/softmodem-common.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${NR_UE_RRC_DIR}/rrc_nsa.c ${NFAPI_USER_DIR}/nfapi.c ${NFAPI_USER_DIR}/gnb_ind_vars.c @@ -2268,7 +2261,6 @@ add_executable(nr_ulsim ${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulsim.c ${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c ${OPENAIR_DIR}/executables/softmodem-common.c - ${OPENAIR2_DIR}/RRC/NAS/nas_config.c ${NR_UE_RRC_DIR}/rrc_nsa.c ${NFAPI_USER_DIR}/nfapi.c ${NFAPI_USER_DIR}/gnb_ind_vars.c diff --git a/common/utils/CMakeLists.txt b/common/utils/CMakeLists.txt index 932f458a77df99b252514dd152875faaf9a183e2..025091249b4e22a85d697e24f85054f4396372d5 100644 --- a/common/utils/CMakeLists.txt +++ b/common/utils/CMakeLists.txt @@ -13,6 +13,6 @@ add_subdirectory(T) add_subdirectory(nr) add_subdirectory(LOG) add_subdirectory(threadPool) -add_library(utils utils.c system.c time_meas.c time_stat.c) +add_library(utils utils.c system.c time_meas.c time_stat.c tun_if.c) target_include_directories(utils PUBLIC .) target_link_libraries(utils PRIVATE ${T_LIB}) diff --git a/openair2/RRC/NAS/nas_config.c b/common/utils/tun_if.c similarity index 98% rename from openair2/RRC/NAS/nas_config.c rename to common/utils/tun_if.c index c1e85a336018fd832eed6d7313955b34a3a16750..4d6308c02d542836f303a3060aeca41c15fe2732 100644 --- a/openair2/RRC/NAS/nas_config.c +++ b/common/utils/tun_if.c @@ -28,7 +28,7 @@ #include <arpa/inet.h> #include <linux/ipv6.h> -#include "nas_config.h" +#include "tun_if.h" #include "common/utils/LOG/log.h" #include "common/utils/system.h" @@ -115,7 +115,7 @@ fail_interface_state: } // non blocking full configuration of the interface (address, and the two lest octets of the address) -bool nas_config(int interface_id, const char *ipv4, const char *ipv6, const char *ifpref) +bool tun_config(int interface_id, const char *ipv4, const char *ipv6, const char *ifpref) { char interfaceName[IFNAMSIZ]; snprintf(interfaceName, sizeof(interfaceName), "%s%d", ifpref, interface_id); diff --git a/openair2/RRC/NAS/nas_config.h b/common/utils/tun_if.h similarity index 92% rename from openair2/RRC/NAS/nas_config.h rename to common/utils/tun_if.h index f937b6ccf54ab0a485d6e82350cb5396ade40bd6..779d5e8102b4051df1eeca63f61773a159bdd213 100644 --- a/openair2/RRC/NAS/nas_config.h +++ b/common/utils/tun_if.h @@ -19,12 +19,12 @@ * contact@openairinterface.org */ -#ifndef NAS_CONFIG_H_ -#define NAS_CONFIG_H_ +#ifndef TUN_IF_H_ +#define TUN_IF_H_ #include <stdbool.h> -/*! \fn int nas_config(char*, int, int) +/*! \fn int tun_config(char*, int, int) * \brief This function initializes the nasmesh interface using the basic values, * basic address, network mask and broadcast address, as the default configured * ones @@ -38,7 +38,7 @@ * \note * @ingroup _nas */ -bool nas_config(int interface_id, const char *ipv4, const char *ipv6, const char *ifprefix); +bool tun_config(int interface_id, const char *ipv4, const char *ipv6, const char *ifprefix); /*! * \brief Setup a IPv4 rule in table (interface_id - 1 + 10000) and route to @@ -54,4 +54,4 @@ bool nas_config(int interface_id, const char *ipv4, const char *ipv6, const char */ void setup_ue_ipv4_route(int interface_id, const char *ipv4, const char *ifpref); -#endif /*NAS_CONFIG_H_*/ +#endif /*TUN_IF_H_*/ diff --git a/doc/Doxyfile b/doc/Doxyfile index 6e1c7828e112851a158917ff90711cb48c49284c..0ea84a8d0f9df3050abdc3bdb3cd16d79378359e 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -866,6 +866,8 @@ INPUT = \ @CMAKE_CURRENT_SOURCE_DIR@/../common/config/config_cmdline.c \ @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/time_meas.c \ @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/time_meas.h \ +@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/tun_if.h \ +@CMAKE_CURRENT_SOURCE_DIR@/../common/utils/tun_if.c \ @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/utils.c \ @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/oai_asn1.h \ @CMAKE_CURRENT_SOURCE_DIR@/../common/utils/system.h \ @@ -1874,8 +1876,6 @@ INPUT = \ @CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/NR_UE/rrc_defs.h \ @CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/NR_UE/L2_interface_ue.c \ @CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h \ -@CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/NAS/nas_config.h \ -@CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/NAS/nas_config.c \ @CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/NR/rrc_gNB_internode.c \ @CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/NR/nr_rrc_defs.h \ @CMAKE_CURRENT_SOURCE_DIR@/../openair2/RRC/NR/cucp_cuup_if.h \ diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c index 122bd14794257959d7e93d995c107e6d8036babd..62f103add06c80dbe7abf3cbe64b3fe4c31f7e73 100644 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c @@ -50,7 +50,7 @@ #include "common/openairinterface5g_limits.h" #include "executables/lte-softmodem.h" #include "SIMULATION/ETH_TRANSPORT/proto.h" -#include "openair2/RRC/NAS/nas_config.h" +#include "common/utils/tun_if.h" #include "intertask_interface.h" #include "openair3/S1AP/s1ap_eNB.h" #include <pthread.h> @@ -2300,22 +2300,22 @@ uint64_t pdcp_module_init( uint64_t pdcp_optmask, int id) { int num_if = (NFAPI_MODE == NFAPI_UE_STUB_PNF || IS_SOFTMODEM_SIML1 || NFAPI_MODE == NFAPI_MODE_STANDALONE_PNF) ? MAX_MOBILES_PER_ENB : 1; netlink_init_tun("oaitun_ue", num_if, id); if (IS_SOFTMODEM_NOS1) - nas_config(1, "10.0.1.2", NULL, "oaitun_ue"); + tun_config(1, "10.0.1.2", NULL, "oaitun_ue"); netlink_init_mbms_tun("oaitun_uem", id + 1); - nas_config(1, "10.0.2.2", NULL, "oaitun_uem"); + tun_config(1, "10.0.2.2", NULL, "oaitun_uem"); LOG_I(PDCP, "UE pdcp will use tun interface\n"); } else if (ENB_NAS_USE_TUN) { netlink_init_tun("oaitun_enb", 1, 0); - nas_config(1, "10.0.1.1", NULL, "oaitun_enb"); + tun_config(1, "10.0.1.1", NULL, "oaitun_enb"); if (pdcp_optmask & ENB_NAS_USE_TUN_W_MBMS_BIT) { netlink_init_mbms_tun("oaitun_enm", 1); - nas_config(1, "10.0.2.1", NULL, "oaitun_enm"); + tun_config(1, "10.0.2.1", NULL, "oaitun_enm"); LOG_I(PDCP, "ENB pdcp will use mbms tun interface\n"); } LOG_I(PDCP, "ENB pdcp will use tun interface\n"); } else if (pdcp_optmask & ENB_NAS_USE_TUN_W_MBMS_BIT) { netlink_init_mbms_tun("oaitun_enm", 0); - nas_config(1, "10.0.2.1", NULL, "oaitun_enm"); + tun_config(1, "10.0.2.1", NULL, "oaitun_enm"); LOG_I(PDCP, "ENB pdcp will use mbms tun interface\n"); } diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c index 051999ad9d362e19ae2ec0e8cafc20d70375fae8..71409833d3c10f4ea0a95c7f4a0e8383ba1f86fb 100644 --- a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c +++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c @@ -594,7 +594,7 @@ void nr_pdcp_layer_init(bool uses_e1) #include "nfapi/oai_integration/vendor_ext.h" #include "executables/lte-softmodem.h" -#include "openair2/RRC/NAS/nas_config.h" +#include "common/utils/tun_if.h" uint64_t nr_pdcp_module_init(uint64_t _pdcp_optmask, int id) { @@ -618,7 +618,7 @@ uint64_t nr_pdcp_module_init(uint64_t _pdcp_optmask, int id) netlink_init_tun(ifprefix, num_if, id); if (IS_SOFTMODEM_NOS1) { const char *ip = !get_softmodem_params()->nsa ? "10.0.1.2" : "10.0.1.3"; - nas_config(1, ip, NULL, ifprefix); + tun_config(1, ip, NULL, ifprefix); set_qfi_pduid(7, 10); } LOG_I(PDCP, "UE pdcp will use tun interface\n"); @@ -626,7 +626,7 @@ uint64_t nr_pdcp_module_init(uint64_t _pdcp_optmask, int id) } else if (ENB_NAS_USE_TUN) { char *ifprefix = get_softmodem_params()->nsa ? "oaitun_gnb" : "oaitun_enb"; netlink_init_tun(ifprefix, 1, id); - nas_config(1, "10.0.1.1", NULL, ifprefix); + tun_config(1, "10.0.1.1", NULL, ifprefix); LOG_I(PDCP, "ENB pdcp will use tun interface\n"); start_pdcp_tun_enb(); } diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c index 1d1de490bb35a66c9a8332723126f0861d050511..13787f23341bc7cc481c329f32aa8dc7d1bd21f5 100644 --- a/openair2/RRC/LTE/rrc_UE.c +++ b/openair2/RRC/LTE/rrc_UE.c @@ -67,7 +67,7 @@ #include "NR_RAT-Type.h" #include "NR_UE-CapabilityRAT-Container.h" -#include "RRC/NAS/nas_config.h" +#include "common/utils/tun_if.h" #if ENABLE_RAL #include "rrc_UE_ral.h" #endif @@ -771,7 +771,7 @@ rrc_ue_establish_drb( "10.0.%d.%d", UE_NAS_USE_TUN ? 1 : (ip_addr_offset3 + ue_mod_idP + 1), ip_addr_offset4 + ue_mod_idP + 1); - oip_ifup = nas_config(ip_addr_offset3 + ue_mod_idP + 1, ip, NULL, "oaitun_oip"); + oip_ifup = tun_config(ip_addr_offset3 + ue_mod_idP + 1, ip, NULL, "oaitun_oip"); if (oip_ifup == 0 && (!UE_NAS_USE_TUN)) { // interface is up --> send a config the DRB LOG_I(OIP,"[UE %d] Config the ue net interface %d to send/receive pkt on DRB %ld to/from the protocol stack\n", diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 1b42985bde28a4a74c1b60027e32c6d222112e78..92173508914cc61d7dda408a6d973b91a4de04d6 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -78,7 +78,7 @@ #include "T.h" #include "LTE_MeasResults.h" -#include "RRC/NAS/nas_config.h" +#include "common/utils/tun_if.h" #include "rrc_eNB_S1AP.h" #include "rrc_eNB_GTPV1U.h" @@ -5257,7 +5257,7 @@ rrc_eNB_process_RRCConnectionReconfigurationComplete( ctxt_pP->module_id); char ip[20]; snprintf(ip, sizeof(ip), "10.0.%d.%d", ctxt_pP->module_id + 1, ctxt_pP->module_id + 1); - oip_ifup = nas_config(ctxt_pP->module_id, ip, NULL, "oaitun_oai"); + oip_ifup = tun_config(ctxt_pP->module_id, ip, NULL, "oaitun_oai"); if (oip_ifup == 0) { // interface is up --> send a config the DRB module_id_t ue_module_id; diff --git a/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c b/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c index decb80d7e378b103337e52714a49662464fef11b..f5d053ae582f1263bad3eae57460e577a41fe62b 100644 --- a/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c +++ b/openair3/NAS/COMMON/ESM/MSG/PduSessionEstablishmentAccept.c @@ -22,7 +22,7 @@ #include "PduSessionEstablishmentAccept.h" #include "common/utils/LOG/log.h" #include "nr_nas_msg_sim.h" -#include "openair2/RRC/NAS/nas_config.h" +#include "common/utils/tun_if.h" #include "openair2/SDAP/nr_sdap/nr_sdap.h" static uint16_t getShort(uint8_t *input) @@ -132,14 +132,14 @@ void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_ addr[i] = *curPtr++; char ip[20]; capture_ipv4_addr(&addr[0], ip, sizeof(ip)); - nas_config(1, ip, NULL, "oaitun_ue"); + tun_config(1, ip, NULL, "oaitun_ue"); setup_ue_ipv4_route(1, ip, "oaitun_ue"); } else if (psea_msg.pdu_addr_ie.pdu_type == PDU_SESSION_TYPE_IPV6) { for (int i = 0; i < 8; ++i) addr[i] = *curPtr++; char ipv6[40]; capture_ipv6_addr(addr, ipv6, sizeof(ipv6)); - nas_config(1, NULL, ipv6, "oaitun_ue"); + tun_config(1, NULL, ipv6, "oaitun_ue"); } else if (psea_msg.pdu_addr_ie.pdu_type == PDU_SESSION_TYPE_IPV4V6) { // 24.501 Sec 9.11.4.10: "If the PDU session type value indicates // IPv4v6, the PDU address information in octet 4 to octet 11 @@ -151,7 +151,7 @@ void capture_pdu_session_establishment_accept_msg(uint8_t *buffer, uint32_t msg_ capture_ipv6_addr(addr, ipv6, sizeof(ipv6)); char ipv4[20]; capture_ipv4_addr(&addr[8], ipv4, sizeof(ipv4)); - nas_config(1, ipv4, ipv6, "oaitun_ue"); + tun_config(1, ipv4, ipv6, "oaitun_ue"); setup_ue_ipv4_route(1, ipv4, "oaitun_ue"); } else { LOG_E(NAS, "unknown/unhandled PDU session establishment accept PDU type %d\n", psea_msg.pdu_addr_ie.pdu_type); diff --git a/openair3/NAS/NR_UE/nr_nas_msg_sim.c b/openair3/NAS/NR_UE/nr_nas_msg_sim.c index 5b8edeab7ea6a325f83555d9372636b11b74a9ea..722a1ba1ec9b34bfd017a7eeefc68ec86bcf62a2 100644 --- a/openair3/NAS/NR_UE/nr_nas_msg_sim.c +++ b/openair3/NAS/NR_UE/nr_nas_msg_sim.c @@ -46,7 +46,7 @@ #include "RegistrationAccept.h" #include "FGSDeregistrationRequestUEOriginating.h" #include "intertask_interface.h" -#include "openair2/RRC/NAS/nas_config.h" +#include "common/utils/tun_if.h" #include <openair3/NAS/COMMON/NR_NAS_defs.h> #include <openair1/SIMULATION/ETH_TRANSPORT/proto.h> #include "openair2/SDAP/nr_sdap/nr_sdap.h" @@ -845,7 +845,7 @@ void decodeDownlinkNASTransport(as_nas_info_t *initialNasMsg, uint8_t * pdu_buff char ip[20]; sprintf(ip, "%d.%d.%d.%d", *(ip_p), *(ip_p + 1), *(ip_p + 2), *(ip_p + 3)); LOG_A(NAS, "Received PDU Session Establishment Accept\n"); - nas_config(1, ip, NULL, "oaitun_ue"); + tun_config(1, ip, NULL, "oaitun_ue"); setup_ue_ipv4_route(1, ip, "oaitun_ue"); } else { LOG_E(NAS, "Received unexpected message in DLinformationTransfer %d\n", msg_type); @@ -1432,7 +1432,7 @@ void *nas_nrue(void *args_p) char ip[20]; snprintf(ip, sizeof(ip), "%d.%d.%d.%d", *(ip_p), *(ip_p + 1), *(ip_p + 2), *(ip_p + 3)); LOG_I(NAS, "Received PDU Session Establishment Accept, UE IP: %s\n", ip); - nas_config(1, ip, NULL, "oaitun_ue"); + tun_config(1, ip, NULL, "oaitun_ue"); setup_ue_ipv4_route(1, ip, "oaitun_ue"); break; } diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.c b/openair3/NAS/UE/ESM/esm_ebr_context.c index 02278ddf1a2450358ccae33e0799901ef3d6ab8a..72b5d240e06c11a71ba6c680a75ed3e5208a1490 100644 --- a/openair3/NAS/UE/ESM/esm_ebr_context.c +++ b/openair3/NAS/UE/ESM/esm_ebr_context.c @@ -45,7 +45,7 @@ Description Defines functions used to handle EPS bearer contexts. #include "esm_ebr.h" #include "esm_ebr_context.h" -#include "openair2/RRC/NAS/nas_config.h" +#include "common/utils/tun_if.h" #include "emm_sap.h" #include "system.h" @@ -207,7 +207,7 @@ int esm_ebr_context_create( char *ip_addr = pdn->ip_addr; snprintf(ip, sizeof(ip), "%d.%d.%d.%d", ip_addr[0], ip_addr[1], ip_addr[2], ip_addr[3]); const char *ifn = get_softmodem_params()->nsa ? "oaitun_nru" : "oaitun_ue"; - nas_config(1, ip, NULL, ifn); + tun_config(1, ip, NULL, ifn); setup_ue_ipv4_route(1, ip, ifn); } break;