diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 4e1b5489b844b5b57224030883297d8ce0a5e331..5178608811334fc132f2cb46fa1964c24c96bce4 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -462,6 +462,7 @@ add_boolean_option(ENABLE_SECURITY True "Enable LTE integrity and ciphe add_boolean_option(ENABLE_USE_MME True "eNB connected to MME (INTERFACE S1-C), not standalone eNB") add_boolean_option(NO_RRM True "DO WE HAVE A RADIO RESSOURCE MANAGER: NO") add_boolean_option(USER_MODE True "????") +add_boolean_option(RRC_DEFAULT_RAB_IS_AM False "set the RLC mode to AM for the default bearer") add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????") add_boolean_option(DISABLE_USE_NAS False "???") @@ -1649,7 +1650,7 @@ foreach(myExe s1ap ${OPENAIR3_DIR}/TEST/test_${myExe}.c ) target_link_libraries (test_${myExe} - -Wl,--start-group SECU_CN UTIL LFDS -Wl,--end-group m rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} fdproto fdcore + -Wl,--start-group SECU_CN UTIL LFDS -Wl,--end-group m rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${CONFIG_LIBRARIES} ) endforeach(myExe) diff --git a/cmake_targets/autotests/010113/CMakeLists.txt b/cmake_targets/autotests/010113/CMakeLists.txt deleted file mode 100644 index 2ac0caecde90d32c80f1400e4ddd6db9a57e8401..0000000000000000000000000000000000000000 --- a/cmake_targets/autotests/010113/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -cmake_minimum_required(VERSION 2.8) -set(OAI_NW_DRIVER_TYPE_ETHERNET True) -set(OAI_NW_DRIVER_USE_NETLINK True) -set(NAS_NETLINK True) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010114/CMakeLists.txt b/cmake_targets/autotests/010114/CMakeLists.txt deleted file mode 100644 index 23497976f14d20f5595cfe07744614ae7cc3d55d..0000000000000000000000000000000000000000 --- a/cmake_targets/autotests/010114/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -set(ADDR_CONF False) -set(DEBUG_OMG False) -set(DISABLE_XER_PRINT False) -set(DRIVER2013 False) -set(ENABLE_FXP True) -set(ENABLE_ITTI True) -set(ENABLE_NAS_UE_LOGGING False) -set(ENABLE_NEW_MULTICAST True) -set(ENABLE_PGM_TRANSPORT True) -set(ENABLE_RAL False) -set(ENABLE_SECURITY False) -set(ENABLE_USE_CPU_EXECUTION_TIME True) -set(ENABLE_USE_MME False) -set(ENABLE_VCD_FIFO True) -set(HARD_RT False) -set(JUMBO_FRAME True) -set(LARGE_SCALE False) -set(LINK_ENB_PDCP_TO_GTPV1U False) -set(LINUX_LIST False) -set(LINUX True) -set(LOCALIZATION False) -set(LOG_NO_THREAD True) -set(LOWLATENCY False) -set(MAC_CONTEXT 1) -set(MAX_NUM_CCs 1) -set(MIH_C_MEDIEVAL_EXTENSIONS False) -set(MSG_PRINT False) -set(MU_RECEIVER False) -set(NAS_ADDRESS_FIX true) -set(NAS_NETLINK True) -set(NAS_UE True) -set(NEW_FFT True) -set(NO_RRM True) -set(OAI_EMU True) -set(OAI_EMU True) -set(OAI_NW_DRIVER_TYPE_ETHERNET True) -set(OPENAIR1 False) -set(OPENAIR2 True) -set(OPENAIR_EMU True) -set(OPENAIR_LTE True) -set (PACKAGE_NAME "oaisim") -set(PACKAGE_NAME "oaisim") -set(PBS_SIM False) -set(PC_DSP False) -set(PC_TARGET False) -set(PDCP_MSG_PRINT False) -set(PERFECT_CE False) -set(PHY_ABSTRACTION True) -set(PHY_ABSTRACTION True) -set(PHY_EMUL False) -set(PHYSIM False) -set(PUCCH True) -set(RANDOM_BF False) -set(RF_BOARD "NoBoard") -set(RLC_STOP_ON_LOST_PDU True) -set(RRC_ASN1_VERSION Rel8) -set(RRC_ASN1_VERSION "Rel8") -set(RRC_MSG_PRINT False) -set(RTAI False) -set(SECU False) -set(SMBV False) -set(SPECTRA False) -set(TEST_OMG False) -set(USE_3GPP_ADDR_AS_LINK_ADDR False) -set(USE_MME False) -set(USER_MODE True) -set(XER_PRINT False) -set(XFORMS False) - -include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010115/CMakeLists.txt b/cmake_targets/autotests/010115/CMakeLists.txt deleted file mode 100644 index 01c00574a4bcb574eeacaed4373b092b967d0caa..0000000000000000000000000000000000000000 --- a/cmake_targets/autotests/010115/CMakeLists.txt +++ /dev/null @@ -1,107 +0,0 @@ -cmake_minimum_required(VERSION 2.8) - -set ( ADDR_CONF False ) -set ( DEBUG_OMG False ) -set ( DISABLE_USE_NAS False ) -set ( DISABLE_XER_PRINT False ) -set ( DRIVER2013 False ) -set ( EMOS False ) -set ( ENABLE_FXP True ) -set ( ENABLE_ITTI True ) -set ( ENABLE_NAS_UE_LOGGING False ) -set ( ENABLE_NEW_MULTICAST True ) -set ( ENABLE_PGM_TRANSPORT True ) -set ( ENABLE_RAL False ) -set ( ENABLE_SECURITY False ) -set ( ENABLE_STANDALONE_EPC False ) -set ( ENABLE_USE_CPU_EXECUTION_TIME True ) -set ( ENABLE_USE_MME False ) -set ( ENABLE_VCD_FIFO True ) -set ( ENB_MODE True ) -set ( EPC_BUILD False ) -set ( HARD_RT False ) -set ( JUMBO_FRAME True ) -set ( LARGE_SCALE False ) -set ( LINK_ENB_PDCP_TO_GTPV1U False ) -set ( LINK_ENB_PDCP_TO_IP_DRIVER False ) -set ( LINUX_LIST False ) -set ( LINUX True ) -set ( LOCALIZATION False ) -set ( LOG_NO_THREAD True ) -set ( LOWLATENCY False ) -set ( MAC_CONTEXT 1 ) -set ( MAX_NUM_CCs 1 ) -set ( MESSAGE_CHART_GENERATOR False ) -set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) -set ( MESSAGE_CHART_GENERATOR_PHY False ) -set ( MIH_C_MEDIEVAL_EXTENSIONS False ) -set ( MSG_PRINT False ) -set ( MU_RECEIVER False ) -set ( NAS_ADDRESS_FIX False ) -set ( NAS_BUILT_IN_EPC False ) -set ( NAS_BUILT_IN_UE False ) -set ( NAS_MME False ) -set ( NAS_NETLINK False ) -set ( NAS_UE False ) -set ( NB_ANTENNAS_RX 2 ) -set ( NB_ANTENNAS_TX 2 ) -set ( NB_ANTENNAS_TXRX 2 ) -set ( NEW_FFT True ) -set ( NO_RRM True ) -set ( OAI_EMU True ) -set ( OAI_NW_DRIVER_TYPE_ETHERNET True ) -set ( OAI_NW_DRIVER_USE_NETLINK False ) -set ( OAISIM True ) -set ( OPENAIR1 False ) -set ( OPENAIR2 True ) -set ( OPENAIR_EMU False ) -set ( OPENAIR_LTE True ) -set ( PBS_SIM False ) -set ( PC_DSP False ) -set ( PC_TARGET False ) -set ( PDCP_MSG_PRINT False ) -set ( PDCP_USE_NETLINK_QUEUES False ) -set ( PDCP_USE_NETLINK True ) -set ( PERFECT_CE False ) -set ( PHY_ABSTRACTION True ) -set ( PHY_CONTEXT 1 ) -set ( PHY_EMUL False ) -set ( PHYSIM False ) -set ( PUCCH True ) -set ( RANDOM_BF False ) -set ( RF_BOARD False ) -set ( RLC_STOP_ON_LOST_PDU True ) -set ( RRC_ASN1_VERSION Rel10 ) -set ( RRC_DEFAULT_RAB_IS_AM False ) -set ( RRC_MSG_PRINT False ) -set ( RTAI False ) -set ( S1AP_LIMIT_STREAM_ID_TO_1 False ) -set ( S1AP_VERSION R10 ) -set ( SMBV False ) -set ( SPECTRA False ) -set ( STOP_ON_IP_TRAFFIC_OVERLOAD False ) -set ( TEST_OMG False ) -set ( TRACE_RLC_AM_BO False ) -set ( TRACE_RLC_AM_FREE_SDU False ) -set ( TRACE_RLC_AM_HOLE False ) -set ( TRACE_RLC_AM_PDU True ) -set ( TRACE_RLC_AM_RESEGMENT False ) -set ( TRACE_RLC_AM_RX_DECODE False ) -set ( TRACE_RLC_AM_RX False ) -set ( TRACE_RLC_AM_STATUS_CREATION False ) -set ( TRACE_RLC_AM_TX False ) -set ( TRACE_RLC_AM_TX_STATUS False ) -set ( TRACE_RLC_PAYLOAD False ) -set ( TRACE_RLC_UM_DAR False ) -set ( TRACE_RLC_UM_DISPLAY_ASCII_DATA False ) -set ( TRACE_RLC_UM_PDU True ) -set ( TRACE_RLC_UM_RX False ) -set ( TRACE_RLC_UM_SEGMENT False ) -set ( TRACE_RLC_UM_TX_STATUS False ) -set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) -set ( USE_MME False ) -set ( USER_MODE True ) -set ( XER_PRINT False ) -set ( XFORMS False ) - -include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010204/CMakeLists.txt b/cmake_targets/autotests/010204/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e6c4bdfe476b509a37e93e9c2357f4107aacad7e --- /dev/null +++ b/cmake_targets/autotests/010204/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( ADDR_CONF False ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( EMOS False ) +set ( ENABLE_FXP True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_PGM_TRANSPORT True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( HARD_RT False ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U False) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD 1 ) +set ( LOWLATENCY False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False ) +set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) +set ( MESSAGE_CHART_GENERATOR_PHY False ) +set ( MIH_C_MEDIEVAL_EXTENSIONS False ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX True ) +set ( NAS_BUILT_IN_UE False) +set ( NAS_MME False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NB_ANTENNAS_TXRX "2" ) +set ( NEW_FFT True ) +set ( NO_RRM True ) +set ( OAI_EMU True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET True ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR1 True ) +set ( OPENAIR2 True ) +set ( OPENAIR_EMU False ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PBS_SIM False ) +set ( PDCP_USE_NETLINK True ) +set ( PC_DSP True ) +set ( PC_TARGET True ) +set ( PDCP_MSG_PRINT False ) +set ( PERFECT_CE False ) +set ( PHY_ABSTRACTION True ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( PUCCH True ) +set ( RANDOM_BF False ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( RTAI False ) +set ( SECU False ) +set ( SMBV False ) +set ( SPECTRA False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( USER_MODE True ) +set ( XER_PRINT False ) +set ( XFORMS False ) +set ( PRINT_STATS False ) +set ( RRC_ASN1_VERSION "Rel10") +set ( ENABLE_VCD_FIFO False ) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010205/CMakeLists.txt b/cmake_targets/autotests/010205/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e6c4bdfe476b509a37e93e9c2357f4107aacad7e --- /dev/null +++ b/cmake_targets/autotests/010205/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( ADDR_CONF False ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( EMOS False ) +set ( ENABLE_FXP True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_PGM_TRANSPORT True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( HARD_RT False ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U False) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD 1 ) +set ( LOWLATENCY False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False ) +set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) +set ( MESSAGE_CHART_GENERATOR_PHY False ) +set ( MIH_C_MEDIEVAL_EXTENSIONS False ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX True ) +set ( NAS_BUILT_IN_UE False) +set ( NAS_MME False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NB_ANTENNAS_TXRX "2" ) +set ( NEW_FFT True ) +set ( NO_RRM True ) +set ( OAI_EMU True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET True ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR1 True ) +set ( OPENAIR2 True ) +set ( OPENAIR_EMU False ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PBS_SIM False ) +set ( PDCP_USE_NETLINK True ) +set ( PC_DSP True ) +set ( PC_TARGET True ) +set ( PDCP_MSG_PRINT False ) +set ( PERFECT_CE False ) +set ( PHY_ABSTRACTION True ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( PUCCH True ) +set ( RANDOM_BF False ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( RTAI False ) +set ( SECU False ) +set ( SMBV False ) +set ( SPECTRA False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( USER_MODE True ) +set ( XER_PRINT False ) +set ( XFORMS False ) +set ( PRINT_STATS False ) +set ( RRC_ASN1_VERSION "Rel10") +set ( ENABLE_VCD_FIFO False ) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010400/CMakeLists.txt b/cmake_targets/autotests/010400/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e6c4bdfe476b509a37e93e9c2357f4107aacad7e --- /dev/null +++ b/cmake_targets/autotests/010400/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( ADDR_CONF False ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( EMOS False ) +set ( ENABLE_FXP True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_PGM_TRANSPORT True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( HARD_RT False ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U False) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD 1 ) +set ( LOWLATENCY False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False ) +set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) +set ( MESSAGE_CHART_GENERATOR_PHY False ) +set ( MIH_C_MEDIEVAL_EXTENSIONS False ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX True ) +set ( NAS_BUILT_IN_UE False) +set ( NAS_MME False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NB_ANTENNAS_TXRX "2" ) +set ( NEW_FFT True ) +set ( NO_RRM True ) +set ( OAI_EMU True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET True ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR1 True ) +set ( OPENAIR2 True ) +set ( OPENAIR_EMU False ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PBS_SIM False ) +set ( PDCP_USE_NETLINK True ) +set ( PC_DSP True ) +set ( PC_TARGET True ) +set ( PDCP_MSG_PRINT False ) +set ( PERFECT_CE False ) +set ( PHY_ABSTRACTION True ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( PUCCH True ) +set ( RANDOM_BF False ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( RTAI False ) +set ( SECU False ) +set ( SMBV False ) +set ( SPECTRA False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( USER_MODE True ) +set ( XER_PRINT False ) +set ( XFORMS False ) +set ( PRINT_STATS False ) +set ( RRC_ASN1_VERSION "Rel10") +set ( ENABLE_VCD_FIFO False ) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010401/CMakeLists.txt b/cmake_targets/autotests/010401/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e6c4bdfe476b509a37e93e9c2357f4107aacad7e --- /dev/null +++ b/cmake_targets/autotests/010401/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( ADDR_CONF False ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( EMOS False ) +set ( ENABLE_FXP True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_PGM_TRANSPORT True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( HARD_RT False ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U False) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD 1 ) +set ( LOWLATENCY False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False ) +set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) +set ( MESSAGE_CHART_GENERATOR_PHY False ) +set ( MIH_C_MEDIEVAL_EXTENSIONS False ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX True ) +set ( NAS_BUILT_IN_UE False) +set ( NAS_MME False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NB_ANTENNAS_TXRX "2" ) +set ( NEW_FFT True ) +set ( NO_RRM True ) +set ( OAI_EMU True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET True ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR1 True ) +set ( OPENAIR2 True ) +set ( OPENAIR_EMU False ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PBS_SIM False ) +set ( PDCP_USE_NETLINK True ) +set ( PC_DSP True ) +set ( PC_TARGET True ) +set ( PDCP_MSG_PRINT False ) +set ( PERFECT_CE False ) +set ( PHY_ABSTRACTION True ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( PUCCH True ) +set ( RANDOM_BF False ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( RTAI False ) +set ( SECU False ) +set ( SMBV False ) +set ( SPECTRA False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( USER_MODE True ) +set ( XER_PRINT False ) +set ( XFORMS False ) +set ( PRINT_STATS False ) +set ( RRC_ASN1_VERSION "Rel10") +set ( ENABLE_VCD_FIFO False ) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010402/CMakeLists.txt b/cmake_targets/autotests/010402/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e6c4bdfe476b509a37e93e9c2357f4107aacad7e --- /dev/null +++ b/cmake_targets/autotests/010402/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( ADDR_CONF False ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( EMOS False ) +set ( ENABLE_FXP True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_PGM_TRANSPORT True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( HARD_RT False ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U False) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD 1 ) +set ( LOWLATENCY False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False ) +set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) +set ( MESSAGE_CHART_GENERATOR_PHY False ) +set ( MIH_C_MEDIEVAL_EXTENSIONS False ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX True ) +set ( NAS_BUILT_IN_UE False) +set ( NAS_MME False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NB_ANTENNAS_TXRX "2" ) +set ( NEW_FFT True ) +set ( NO_RRM True ) +set ( OAI_EMU True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET True ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR1 True ) +set ( OPENAIR2 True ) +set ( OPENAIR_EMU False ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PBS_SIM False ) +set ( PDCP_USE_NETLINK True ) +set ( PC_DSP True ) +set ( PC_TARGET True ) +set ( PDCP_MSG_PRINT False ) +set ( PERFECT_CE False ) +set ( PHY_ABSTRACTION True ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( PUCCH True ) +set ( RANDOM_BF False ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( RTAI False ) +set ( SECU False ) +set ( SMBV False ) +set ( SPECTRA False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( USER_MODE True ) +set ( XER_PRINT False ) +set ( XFORMS False ) +set ( PRINT_STATS False ) +set ( RRC_ASN1_VERSION "Rel10") +set ( ENABLE_VCD_FIFO False ) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010403/CMakeLists.txt b/cmake_targets/autotests/010403/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e6c4bdfe476b509a37e93e9c2357f4107aacad7e --- /dev/null +++ b/cmake_targets/autotests/010403/CMakeLists.txt @@ -0,0 +1,87 @@ +cmake_minimum_required(VERSION 2.8) + +set ( CMAKE_BUILD_TYPE "RelWithDebInfo" ) +set ( ADDR_CONF False ) +set ( DEBUG_OMG False ) +set ( DISABLE_XER_PRINT False ) +set ( DRIVER2013 True ) +set ( EMOS False ) +set ( ENABLE_FXP True ) +set ( ENABLE_ITTI True ) +set ( ENABLE_NAS_UE_LOGGING False ) +set ( ENABLE_NEW_MULTICAST True ) +set ( ENABLE_PGM_TRANSPORT True ) +set ( ENABLE_RAL False ) +set ( ENABLE_SECURITY False ) +set ( ENABLE_STANDALONE_EPC False) +set ( ENABLE_USE_CPU_EXECUTION_TIME True ) +set ( ENABLE_USE_MME False ) +set ( ENABLE_USE_RAW_SOCKET_FOR_SGI False) +set ( ENABLE_VCD_FIFO False ) +set ( ENB_MODE True ) +set ( EXMIMO_IOT True ) +set ( HARD_RT False ) +set ( JUMBO_FRAME True ) +set ( LARGE_SCALE False ) +set ( LINK_ENB_PDCP_TO_GTPV1U False) +set ( LINUX_LIST False ) +set ( LINUX True ) +set ( LOCALIZATION False ) +set ( LOG_NO_THREAD 1 ) +set ( LOWLATENCY False ) +set ( MAC_CONTEXT 1 ) +set ( MAX_NUM_CCs 1 ) +set ( MESSAGE_CHART_GENERATOR False ) +set ( MESSAGE_CHART_GENERATOR_RLC_MAC False ) +set ( MESSAGE_CHART_GENERATOR_PHY False ) +set ( MIH_C_MEDIEVAL_EXTENSIONS False ) +set ( MSG_PRINT False ) +set ( MU_RECEIVER False ) +set ( NAS_ADDRESS_FIX True ) +set ( NAS_BUILT_IN_UE False) +set ( NAS_MME False ) +set ( NAS_UE False ) +set ( NB_ANTENNAS_RX "2" ) +set ( NB_ANTENNAS_TX "2" ) +set ( NB_ANTENNAS_TXRX "2" ) +set ( NEW_FFT True ) +set ( NO_RRM True ) +set ( OAI_EMU True ) +set ( OAISIM True ) +set ( OAI_NW_DRIVER_TYPE_ETHERNET True ) +set ( OAI_NW_DRIVER_USE_NETLINK True ) +set ( OPENAIR1 True ) +set ( OPENAIR2 True ) +set ( OPENAIR_EMU False ) +set ( OPENAIR_LTE True ) +set ( PACKAGE_NAME "oaisim" ) +set ( PBS_SIM False ) +set ( PDCP_USE_NETLINK True ) +set ( PC_DSP True ) +set ( PC_TARGET True ) +set ( PDCP_MSG_PRINT False ) +set ( PERFECT_CE False ) +set ( PHY_ABSTRACTION True ) +set ( PHY_CONTEXT False ) +set ( PHY_EMUL False ) +set ( PHYSIM True ) +set ( PUCCH True ) +set ( RANDOM_BF False ) +set ( RF_BOARD "False" ) +set ( RRC_ASN1_VERSION "Rel10" ) +set ( RLC_STOP_ON_LOST_PDU False ) +set ( RRC_MSG_PRINT False ) +set ( RTAI False ) +set ( SECU False ) +set ( SMBV False ) +set ( SPECTRA False ) +set ( TEST_OMG False ) +set ( USE_3GPP_ADDR_AS_LINK_ADDR False ) +set ( USE_MME "R10" ) +set ( USER_MODE True ) +set ( XER_PRINT False ) +set ( XFORMS False ) +set ( PRINT_STATS False ) +set ( RRC_ASN1_VERSION "Rel10") +set ( ENABLE_VCD_FIFO False ) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/010309/CMakeLists.txt b/cmake_targets/autotests/015000/CMakeLists.txt similarity index 93% rename from cmake_targets/autotests/010309/CMakeLists.txt rename to cmake_targets/autotests/015000/CMakeLists.txt index 36a9eb75da8391cf560ac6a1210e6c7bcb10f517..47cf5074b5b067a9c8e75608e6c5757504ba46c0 100644 --- a/cmake_targets/autotests/010309/CMakeLists.txt +++ b/cmake_targets/autotests/015000/CMakeLists.txt @@ -5,7 +5,7 @@ set(RF_BOARD None) set(XFORMS False) set(DEBUG_PHY False) -set(MU_RECIEVER Flase) +set(MU_RECIEVER False) set(RANDOM_BF False) set(PBS_SIM False) set(PERFECT_CE False) diff --git a/cmake_targets/autotests/010307/CMakeLists.txt b/cmake_targets/autotests/015001/CMakeLists.txt similarity index 93% rename from cmake_targets/autotests/010307/CMakeLists.txt rename to cmake_targets/autotests/015001/CMakeLists.txt index 36a9eb75da8391cf560ac6a1210e6c7bcb10f517..47cf5074b5b067a9c8e75608e6c5757504ba46c0 100644 --- a/cmake_targets/autotests/010307/CMakeLists.txt +++ b/cmake_targets/autotests/015001/CMakeLists.txt @@ -5,7 +5,7 @@ set(RF_BOARD None) set(XFORMS False) set(DEBUG_PHY False) -set(MU_RECIEVER Flase) +set(MU_RECIEVER False) set(RANDOM_BF False) set(PBS_SIM False) set(PERFECT_CE False) diff --git a/cmake_targets/autotests/010308/CMakeLists.txt b/cmake_targets/autotests/015002/CMakeLists.txt similarity index 93% rename from cmake_targets/autotests/010308/CMakeLists.txt rename to cmake_targets/autotests/015002/CMakeLists.txt index 36a9eb75da8391cf560ac6a1210e6c7bcb10f517..47cf5074b5b067a9c8e75608e6c5757504ba46c0 100644 --- a/cmake_targets/autotests/010308/CMakeLists.txt +++ b/cmake_targets/autotests/015002/CMakeLists.txt @@ -5,7 +5,7 @@ set(RF_BOARD None) set(XFORMS False) set(DEBUG_PHY False) -set(MU_RECIEVER Flase) +set(MU_RECIEVER False) set(RANDOM_BF False) set(PBS_SIM False) set(PERFECT_CE False) diff --git a/cmake_targets/autotests/010306/CMakeLists.txt b/cmake_targets/autotests/015003/CMakeLists.txt similarity index 93% rename from cmake_targets/autotests/010306/CMakeLists.txt rename to cmake_targets/autotests/015003/CMakeLists.txt index 36a9eb75da8391cf560ac6a1210e6c7bcb10f517..47cf5074b5b067a9c8e75608e6c5757504ba46c0 100644 --- a/cmake_targets/autotests/010306/CMakeLists.txt +++ b/cmake_targets/autotests/015003/CMakeLists.txt @@ -5,7 +5,7 @@ set(RF_BOARD None) set(XFORMS False) set(DEBUG_PHY False) -set(MU_RECIEVER Flase) +set(MU_RECIEVER False) set(RANDOM_BF False) set(PBS_SIM False) set(PERFECT_CE False) diff --git a/cmake_targets/autotests/015004/CMakeLists.txt b/cmake_targets/autotests/015004/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015004/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/015005/CMakeLists.txt b/cmake_targets/autotests/015005/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015005/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/015006/CMakeLists.txt b/cmake_targets/autotests/015006/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015006/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/015007/CMakeLists.txt b/cmake_targets/autotests/015007/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015007/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/015008/CMakeLists.txt b/cmake_targets/autotests/015008/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015008/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/015009/CMakeLists.txt b/cmake_targets/autotests/015009/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015009/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/015100/CMakeLists.txt b/cmake_targets/autotests/015100/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015100/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/015101/CMakeLists.txt b/cmake_targets/autotests/015101/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..47cf5074b5b067a9c8e75608e6c5757504ba46c0 --- /dev/null +++ b/cmake_targets/autotests/015101/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 2.8) +set(PACKAGE_NAME "unitary_tests_simulators") +set(PHYSIM True) +set(RF_BOARD None) +set(XFORMS False) + +set(DEBUG_PHY False) +set(MU_RECIEVER False) +set(RANDOM_BF False) +set(PBS_SIM False) +set(PERFECT_CE False) +set(NAS_UE False) +set(MESSAGE_CHART_GENERATOR False) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt) diff --git a/cmake_targets/autotests/README.txt b/cmake_targets/autotests/README.txt index 24f3a71c8d78e2d9478d8b68a2a704aa472d4926..c983933125cd8717cd1edc5e1b99fc45f3b5b608 100644 --- a/cmake_targets/autotests/README.txt +++ b/cmake_targets/autotests/README.txt @@ -5,40 +5,90 @@ Obj.# Case# Test# Description 01 pre-commit test case 01 01 Build OAI -01 01 00 Check Makefiles and -01 01 01 Build oaisim Rel8 -01 01 02 Build oaisim Rel8 + network device driver(nasmesh_fix) -01 01 03 Build lte-softmode Rel8 -01 01 04 Build dlsim Rel8 -01 01 05 Build ulsim Rel8 -01 01 06 Build oaisim Rel10 -01 01 07 Build oaisim Rel8 with cellular RRC for eNB -01 01 08 Build oaisim Rel8 with cellular RRC for UE -01 01 09 "commented test in targets/TEST/OAI/case01.py" -01 01 10 "commented test in targets/TEST/OAI/case01.py" -01 01 11 "commented test in targets/TEST/OAI/case01.py" -01 01 12 "commented test in targets/TEST/OAI/case01.py" -01 01 13 Build network device driver(oai_nw_drv type ethernet) -01 01 14 Build oaisim Rel8 with RRC lite (new cellular+ITTI) + RAL (802.21) -01 01 15 Build oaisim Rel10 with RRC lite (new cellular+ITTI) + RAL (802.21) - -01 02 Run OAI Rel8, and check the operation -01 02 00 Run OAI Rel8, and search for segmentation fault or exit -01 02 01 Run OAI Rel8, and search for execution errors -01 02 02 Run OAI Rel8 in abstraction mode and check that RRC proc is finished completely for the configured number of eNB and UE -01 02 03 Run OAI Rel8 in abstraction mode, send ping from from one eNB to each UE, and check that there is no packet losses -01 02 04 Run OAI Rel8 with full PHY, and check that the RRC proc for eNBsxUEs -01 02 05 Run OAI Rel8 with full PHY in FDD mode, and check that the RRC proc for eNBsxUEs - -01 03 Run OAI Rel10, and check the operation -01 03 00 Run OAI Rel10, and search for segmentation fault or exit -01 03 01 Run OAI Rel10, and search for execution errors -01 03 02 Run OAI Rel10 in abstraction mode, and check the RRC proc for eNBsxUEs -01 03 03 Run OAI Rel10 in full phy mode, and check the RRC proc for eNBsxUEs -01 03 04 Run OAI Rel10 in full phy mode in FDD mode, and check the RRC proc for eNBsxUEs -01 03 05 Run OAI Rel10 with eMBMS enabled, and check the SIB13 and MCCH -01 03 06 Run OAI Rel10 with eMBMS enabled, and check the MTCH -01 03 07 Run OAI Rel10 with eMBMS enabled and FDD mode, and check the MTCH +01 01 01 Build oaisim.Rel8 +01 01 02 Build oaisim.Rel8 + network device driver(nasmesh_fix) +01 01 03 Build (lte-softmodem.Rel8.EXMIMO + lte-softmodem.Rel10.EXMIMO + lte-softmodem.Rel10.USRP) +01 01 04 Build (dlsim.Rel10 + ulsim.Rel10 + pucchsim.Rel10 + prachsim.Rel10 + pdcchsim.Rel10 + pbchsim.Rel10 + mbmssim.Rel10 + secu_knas_encrypt_eia1.Rel10 secu_kenb.Rel10 aes128_ctr_encrypt.Rel10 aes128_ctr_decrypt.Rel10 secu_knas_encrypt_eea2.Rel10 + secu_knas.Rel10 secu_knas_encrypt_eea1.Rel10 kdf.Rel10 aes128_cmac_encrypt.Rel10 secu_knas_encrypt_eia2.Rel10) +01 01 06 Build oaisim.Rel8 + ITTI +01 01 07 Build oaisim.Rel10 +01 01 08 Build oaisim.Rel10 + ITTI +01 01 20 Build Nasmesh +01 01 30 Build RRH Gateway + + +01 02 Run OAISIM Rel10 (TDD + 5MHz/10MHz/20MHz + TM 1,2,5,6), and check the operation +01 02 00 Run OAISIM Rel10 TDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit +01 02 01 Run OAISIM Rel10 TDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode and search for errors +01 02 02 Run OAISIM Rel10 TDD, 1 eNB + 3 UEs (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit +01 02 03 Run OAISIM Rel10 TDD, 1 eNB + 3 UEs (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode and search for errors +01 02 04 Run OAI Rel10 TDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) without PHY_ABSTRACTION mode, ping from from eNB to UE, + and for check for no packet losses +01 02 05 Run OAI Rel10 TDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode, send ping from from eNB to UE, + and check for no packet losses + +01 03 Run OAISIM Rel10 (FDD + 5MHz/10MHz/20MHz + TM 1,2,5,6), and check the operation +01 03 00 Run OAISIM Rel10 FDD, 1 eNB + 1 UE 1 eNB (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit +01 03 01 Run OAISIM Rel10 FDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode and search for errors +01 03 02 Run OAISIM Rel10 FDD, 1 eNB + 3 UEs (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit +01 03 03 Run OAISIM Rel10 FDD, 1 eNB + 3 UEs (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode and search for errors +01 03 04 Run OAI Rel10 FDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) without PHY_ABSTRACTION mode, ping from from eNB to UE, + and for check for no packet losses +01 03 05 Run OAI Rel10 FDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode, send ping from from eNB to UE, + and check for no packet losses + + + +01 04 MBSFN Tests +01 04 00 Check if eMBMS procedure is not finished completely, make sure that the SIB13/MCCH have been correclty received by UEs +01 04 01 Check if eMBMS multicast/broadcast data is received, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs +01 04 02 Check for eMBMS multicast/broadcast data received in fdd mode, make sure that the SIB13/MCCH/MTCH have been correctly + received by UEs +01 04 03 Check for eMBMS multicast/broadcast DF relaying working properly in fdd mode, make sure that the SIB13/MCCH/MTCH have been + correclty received by UEs + + +01 50 Run PHY unitary secuirity tests +01 50 00 test_aes128_cmac_encrypt +01 50 01 test_aes128_ctr_decrypt +01 50 02 test_aes128_ctr_encrypt +01 50 03 test_secu_kenb +01 50 04 test_secu_knas +01 50 05 test_secu_knas_encrypt_eea1 +01 50 06 test_secu_knas_encrypt_eea2 +01 50 07 test_secu_knas_encrypt_eia1 +01 50 08 test_secu_knas_encrypt_eia2 +01 50 09 test_kdf + + + +01 51 Run PHY simulator tests +01 51 00 dlsim test cases (Test 1: 10 MHz, R2.FDD (MCS 5), EVA5, -1dB), + (Test 5: 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)), + (Test 6: 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)), + (Test 6b: 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)), + (Test 7: 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)), + (Test 7b: 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)), + (Test 10: 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)), + (Test 10b: 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)), + (Test 11: 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)) + (TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)), + (TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)), +01 51 01 ulsim Test cases. (Test 1, 5 MHz, FDD (MCS 5), AWGN, 6dB), + (Test 2, 5 MHz, FDD (MCS 16), AWGN , 12dB (70%)), + (Test 3, 10 MHz, R3.FDD (MCS 5), AWGN, 6dB (70%)), + (Test 4, 10 MHz, R3-1.FDD (MCS 16), AWGN, 12dB (70%)), + (Test 5, 20 MHz, FDD (MCS 5), AWGN, 6dB (70%)), + (Test 6, 20 MHz, FDD (MCS 16), AWGN, 12 dB (70%)) +01 51 02 pucchsim (TBD) +01 51 03 prachsim (TBD) +01 51 04 pdcchsim (TBD) +01 51 05 pbchsim (TBD) +01 51 06 mbmssim (TBD) + + +01 55 lte-softmodem tests 02 Functional test case @@ -48,3 +98,10 @@ Obj.# Case# Test# Description 05 Performance test case + +#TODO: Add test cases for 10,20 MHz +#TODO: Add test cases for TDD/FDD +#TODO: Test and compile seperately for Rel8/Rel10 +#TODO: Case03.py eMBMS test case + + diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash index 9a2a86ed41d4ecd6140bc9cc4f4e48d24e31f5cc..c4d11b7ba4d744ce7eeba90395bac691bb192dee 100755 --- a/cmake_targets/autotests/run_exec_autotests.bash +++ b/cmake_targets/autotests/run_exec_autotests.bash @@ -11,8 +11,9 @@ source $OPENAIR_DIR/cmake_targets/tools/test_helper #SUDO="sudo -E " tdir=$OPENAIR_DIR/cmake_targets/autotests +rm -fr $tdir/bin $tdir/log mkdir -p $tdir/bin $tdir/log -results_file="$tdir/log/execution_autotests.xml" +results_file="$tdir/log/results_autotests.xml" updated=$(svn st -q $OPENAIR_DIR) if [ "$updated" != "" ] ; then @@ -21,7 +22,6 @@ fi cd $tdir - #\param $1 -> name of test case #\param $2 -> name of compilation program #\param $3 -> arguments for compilation program @@ -32,10 +32,14 @@ cd $tdir #\param $8 -> search expression #\param $9 -> search expression which should NOT be found (for ex. segmentation fault) #\param $10 -> number of runs +#\param $11 -> pre_compile program execution +#\param $12 -> class of the test case (compilation, execution) +#\param $13 -> output of compilation program that needs to be found for test case to pass +#\param $14 -> tags to help identify the test case for readability in output xml file +test_compile() { -test_compile_and_run() { xUnit_start - test_case_name=$1.$2 + test_case_name=$1 log_dir=$tdir/log log_file=$tdir/log/test.$1.txt compile_prog=$2 @@ -46,101 +50,231 @@ test_compile_and_run() { search_expr_array=("${!8}") search_expr_negative=$9 nruns=${10} + pre_compile_prog=${11} + class=${12} + compile_prog_out=${13} + tags=${14} build_dir=$tdir/$1/build exec_file=$build_dir/$6 #Temporary log file where execution log is stored. temp_exec_log=$log_dir/temp_log.txt - - echo "Compiling test case $test_case_name. Log file = $log_file" - rm -fr $build_dir - mkdir -p $build_dir + #echo "log_dir = $log_dir" #echo "log_file = $log_file" #echo "exec_file = $exec_file" - #echo "args = $args" + #echo "exec_args = $exec_args" #echo "search_expr = $search_expr" #echo "pre_exec_file = $pre_exec_file" #echo "nruns = $nruns" + echo "class = $class" - - - - echo "<COMPILATION LOG>" > $log_file - cd $build_dir - { - cmake .. - #rm -fv $exec_file - make -j`nproc` $compile_prog - }>> $log_file 2>&1 - echo "</COMPILATION LOG>" >> $log_file 2>&1 - + compile_prog_array=() + read -a compile_prog_array <<<"$compile_prog" + + tags_array=() + read -a tags_array <<<"$tags" + + pre_compile_prog_array=() + readarray -t pre_compile_prog_array <<< "$pre_compile_prog" for (( run_index=1; run_index <= $nruns; run_index++ )) - do + do + tags_array_index=0 + for pre_compile_prog_array_index in "${pre_compile_prog_array[@]}" + do + + for compile_prog_array_index in "${compile_prog_array[@]}" + do + echo "Compiling test case $test_case_name.$compile_prog_array_index.${tags_array[$tags_array_index]} Log file = $log_file" + echo "<COMPILATION LOG file=$compile_prog_array_index , Run = $run_index>" >> $log_file + rm -fr $build_dir + mkdir -p $build_dir + cd $build_dir + { + eval $pre_compile_prog_array_index + cmake .. + #rm -fv $exec_file + make -j`nproc` $compile_prog_array_index $compile_args + }>> $log_file 2>&1 + echo "</COMPILATION LOG>" >> $log_file 2>&1 + if [ "$class" == "compilation" ]; then + if [ -s "$compile_prog_array_index" ] || [ -s "$compile_prog_out" ] ; then + echo_success "$test_case_name.$compile_prog_array_index.${tags_array[$tags_array_index]} compiled" + xUnit_success "compilation" "$test_case_name.$compile_prog_array_index.${tags_array[$tags_array_index]}" "PASS" "$run_index" + else + echo_error "$test_case_name.$exec_prog.${tags_array[$tags_array_index]} compilation failed" + xUnit_fail "compilation" "$test_case_name.$compile_prog_array_index.${tags_array[$tags_array_index]}" "FAIL" "$run_index" + fi + fi + let "tags_array_index++" + done # End of for loop compile_prog_array + done # End of for loop (pre_compile_prog_array_index) + done #End of for loop (run_index) +} - echo "Executing test case $test_case_name, Run Index = $run_index, Log file = $log_file" - echo "-----------------------------------------------------------------------------" >> $log_file 2>&1 - echo "<EXECUTION LOG Run = $run_index >" >> $log_file 2>&1 - - if [ -n "$pre_exec_file" ]; then - { source $pre_exec_file $pre_exec_args; } >> $log_file 2>&1 - fi - { $exec_file $exec_args ;} > $temp_exec_log 2>&1 +#\param $1 -> name of test case +#\param $2 -> name of compilation program +#\param $3 -> arguments for compilation program +#\param $4 -> name of pre-executable to install kernel modules, etc +#\param $5 -> arguments of pre-executable +#\param $6 -> name of executable +#\param $7 -> arguments for running the program +#\param $8 -> search expression +#\param $9 -> search expression which should NOT be found (for ex. segmentation fault) +#\param $10 -> number of runs +#\param $11 -> pre_compile program execution +#\param $12 -> class of the test case (compilation, execution) +#\param $13 -> output of compilation program that needs to be found for test case to pass +#\param $14 -> tags to help identify the test case for readability in output xml file - cat $temp_exec_log >> $log_file 2>&1 - echo "</EXECUTION LOG Run = $run_index >" >> $log_file 2>&1 +test_compile_and_run() { + xUnit_start + test_case_name=$1 + log_dir=$tdir/log + log_file=$tdir/log/test.$1.txt + compile_prog=$2 + compile_args=$3 + pre_exec_file=$4 + pre_exec_args=$5 + main_exec=$6 + exec_args=$7 + search_expr_array=("${!8}") + search_expr_negative=$9 + nruns=${10} + pre_compile_prog=${11} + class=${12} + compile_prog_out=${13} + tags=${14} + build_dir=$tdir/$1/build + exec_file=$build_dir/$6 - result=1 - for search_expr in "${search_expr_array[@]}" - do - - search_result=`grep -E "$search_expr" $temp_exec_log` + #Temporary log file where execution log is stored. + temp_exec_log=$log_dir/temp_log.txt + + + - #echo "search_expr = $search_expr" - #echo "search_result = $search_result" - if [ -z "$search_result" ]; then - let "result = result & 0" - else - let "result = result & 1" + #echo "log_dir = $log_dir" + #echo "log_file = $log_file" + #echo "exec_file = $exec_file" + #echo "exec_args = $exec_args" + #echo "search_expr = $search_expr" + #echo "pre_exec_file = $pre_exec_file" + #echo "nruns = $nruns" + echo "class = $class" + + compile_prog_array=() + read -a compile_prog_array <<<"$compile_prog" + + tags_array=() + read -a tags_array <<<"$tags" + + main_exec_args_array=() + readarray -t main_exec_args_array <<< "$exec_args" + + for search_expr in "${compile_prog_array[@]}" + do + echo "Compiling test case $test_case_name.$search_expr Log file = $log_file" + echo "<COMPILATION LOG file=$search_expr>" >> $log_file + + rm -fr $build_dir + mkdir -p $build_dir + + cd $build_dir + { + eval $pre_compile_prog + cmake .. + #rm -fv $exec_file + make -j`nproc` $search_expr $compile_args + }>> $log_file 2>&1 + echo "</COMPILATION LOG>" >> $log_file 2>&1 + if [ "$class" == "compilation" ]; then + if [ -s "$search_expr" ] ; then + echo_success "$test_case_name $search_expr compiled" + xUnit_success "compilation" "$test_name.$search_expr" "PASS" 1 + else + echo_error "$test_case_name $exec_prog compilation failed" + xUnit_fail "compilation" "$test_name.$search_expr" "FAIL" 1 + fi fi - done + done - #echo "result = $result" + #process the test case if it is that of execution + if [ "$class" == "execution" ]; then + tags_array_index=0 + for main_exec_args_array_index in "${main_exec_args_array[@]}" + do + for (( run_index=1; run_index <= $nruns; run_index++ )) + do + echo "Executing test case $test_case_name.$main_exec.${tags_array[$tags_array_index]}, Run Index = $run_index, Log file = $log_file" + + echo "-----------------------------------------------------------------------------" >> $log_file 2>&1 + echo "<EXECUTION LOG Run = $run_index >" >> $log_file 2>&1 + + if [ -n "$pre_exec_file" ]; then + { eval "source $pre_exec_file $pre_exec_args"; } >> $log_file 2>&1 + fi + echo "Executing $exec_file $main_exec_args_array_index " + echo "Executing $exec_file $main_exec_args_array_index " >> $log_file + { eval "$exec_file $main_exec_args_array_index" ;} > $temp_exec_log 2>&1 + + cat $temp_exec_log >> $log_file 2>&1 + echo "</EXECUTION LOG Test Case = $test_case_name.$main_exec.${tags_array[$tags_array_index]}, Run = $run_index >" >> $log_file 2>&1 + + result=1 + for search_expr in "${search_expr_array[@]}" + do + + search_result=`grep -E "$search_expr" $temp_exec_log` - test_case_result="" - if [ "$result" -eq "0" ]; then - test_case_result="FAIL" - fi + #echo "search_expr = $search_expr" + #echo "search_result = $search_result" - if [ "$result" -eq "1" ]; then - test_case_result="PASS" - fi + if [ -z "$search_result" ]; then + let "result = result & 0" + else + let "result = result & 1" + fi + done - #If we find a negative search result then there is crash of program and test case is failed even if above condition is true + #echo "result = $result" - search_result=`grep -iE "$search_expr_negative" $temp_exec_log` - if [ -n "$search_result" ]; then - test_case_result="FAIL" - fi - - if [ "$test_case_result" == "FAIL" ]; then - echo_error "execution $test_case_name FAIL $run_index" - xUnit_fail "execution" "$test_case_name" "FAIL" "$run_index" - fi + test_case_result="" + if [ "$result" -eq "0" ]; then + test_case_result="FAIL" + fi - if [ "$test_case_result" == "PASS" ]; then - echo_success "execution $test_case_name PASS $run_index" - xUnit_success "execution" "$test_case_name" "PASS" "$run_index" - fi + if [ "$result" -eq "1" ]; then + test_case_result="PASS" + fi -# End of for loop - done + #If we find a negative search result then there is crash of program and test case is failed even if above condition is true + search_result=`grep -iE "$search_expr_negative" $temp_exec_log` + if [ -n "$search_result" ]; then + test_case_result="FAIL" + fi + + if [ "$test_case_result" == "FAIL" ]; then + echo_error "execution $test_case_name.$compile_prog.${tags_array[$tags_array_index]} FAIL $run_index" + xUnit_fail "execution" "$test_case_name.$compile_prog.${tags_array[$tags_array_index]}" "FAIL" "$run_index" + fi + + if [ "$test_case_result" == "PASS" ]; then + echo_success "execution $test_case_name.$compile_prog.${tags_array[$tags_array_index]} PASS $run_index" + xUnit_success "execution" "$test_case_name.$compile_prog.${tags_array[$tags_array_index]}" "PASS" "$run_index" + fi + + + done + let "tags_array_index++" + done # End of for loop (nindex) + fi } dbin=$OPENAIR_DIR/cmake_targets/autotests/bin @@ -168,75 +302,143 @@ else fi fi } +print_help() { + echo_info ' +This program runs automated test case system for OpenAirInterface +You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14 +Options +-h | --help + This help +-g | --run-group + Run test cases in a group. For example, ./run_exec_autotests "0101* 010102" +' +} -#$1 -> name of test case -#$2 -> name of compilation program -#$3 -> arguments for compilation program -#$4 -> name of pre-executable to install kernel modules, etc -#$5 -> arguments of pre-executable -#$6 -> name of executable -#$7 -> arguments for running the program -#$8 -> search expression ARRAY which needs to be found -#$9 -> search expression which should NOT be found (for ex. segmentation fault) -#$10 -> number of runs - -#oaisim tests -search_array=("Received RRCConnectionReconfigurationComplete from UE 0") -test_compile_and_run 010200 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -n100" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 - -search_array=("Received RRCConnectionReconfigurationComplete from UE 0") -test_compile_and_run 010201 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -a -n100" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 - -search_array=("Received RRCConnectionReconfigurationComplete from UE 0" "Received RRCConnectionReconfigurationComplete from UE 1" "Received RRCConnectionReconfigurationComplete from UE 2") -test_compile_and_run 010202 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u3 -n100" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 - -search_array=("Received RRCConnectionReconfigurationComplete from UE 0" "Received RRCConnectionReconfigurationComplete from UE 1" "Received RRCConnectionReconfigurationComplete from UE 2") -test_compile_and_run 010203 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u3 -a -n100" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 - -#PHY unitary simulations for secuirity tests -search_array=("finished with 0 errors") -test_compile_and_run 010300 "test_aes128_cmac_encrypt" "" "" "" "test_aes128_cmac_encrypt" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 - -search_array=("finished with 0 errors") -test_compile_and_run 010301 "test_aes128_ctr_decrypt" "" "" "" "test_aes128_ctr_decrypt" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 - -search_array=("finished with 0 errors") -test_compile_and_run 010302 "test_aes128_ctr_encrypt" "" "" "" "test_aes128_ctr_encrypt" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 +main () { +RUN_GROUP=0 +test_case_group="" +test_case_group_array=() +test_case_array=() -search_array=("finished with 0 errors") -test_compile_and_run 010303 "test_secu_kenb" "" "" "" "test_secu_kenb" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 +until [ -z "$1" ] + do + case "$1" in + -g | --run-group) + RUN_GROUP=1 + test_case_group=$2 + echo_info "Will execute test cases only in group $test_case_group" + shift 2;; + -h | --help) + print_help + exit 1;; + *) + print_help + echo_fatal "Unknown option $1" + break;; + esac + done -search_array=("finished with 0 errors") -test_compile_and_run 010304 "test_secu_knas" "" "" "" "test_secu_knas" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 -search_array=("finished with 0 errors") -test_compile_and_run 010305 "test_secu_knas_encrypt_eea1" "" "" "" "test_secu_knas_encrypt_eea1" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 +xml_conf="$OPENAIR_DIR/cmake_targets/autotests/test_case_list.xml" -search_array=("finished with 0 errors") -test_compile_and_run 010306 "test_secu_knas_encrypt_eea2" "" "" "" "test_secu_knas_encrypt_eea2" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 +test_case_list=`xmlstarlet sel -T -t -m /testCaseList/testCase -s A:N:- "@id" -v "@id" -n $xml_conf` -search_array=("finished with 0 errors") -test_compile_and_run 010307 "test_secu_knas_encrypt_eia1" "" "" "" "test_secu_knas_encrypt_eia1" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 +echo "test_case_list = $test_case_list" -search_array=("finished with 0 errors") -test_compile_and_run 010308 "test_secu_knas_encrypt_eia2" "" "" "" "test_secu_knas_encrypt_eia2" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fataln" 3 +readarray -t test_case_array <<<"$test_case_list" -search_array=("finished with 0 errors") -test_compile_and_run 010309 "test_kdf" "" "" "" "test_kdf" " --verbose" "search_array[@]" "segmentation fault|assertion|exiting|fatal" 3 +read -a test_case_group_array <<< "$test_case_group" + +for search_expr in "${test_case_array[@]}" + do + flag_run_test_case=0 + # search if this test case needs to be executed + if [ "$RUN_GROUP" -eq "1" ]; then + for search_group in "${test_case_group_array[@]}" + do + if [[ $search_expr == $search_group ]];then + flag_run_test_case=1 + echo_info "Test case $search_expr match found in group" + break + fi + done + else + flag_run_test_case=1 + fi + + #We skip this test case if it is not in the group list + if [ "$flag_run_test_case" -ne "1" ]; then + continue + fi + + name=$search_expr + class=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/class" $xml_conf` + desc=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/desc" $xml_conf` + pre_compile_prog=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/pre_compile_prog" $xml_conf` + compile_prog=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/compile_prog" $xml_conf` + compile_prog_args=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/compile_prog_args" $xml_conf` + pre_exec=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/pre_exec" $xml_conf` + pre_exec_args=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/pre_exec_args" $xml_conf` + main_exec=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/main_exec" $xml_conf` + main_exec_args=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/main_exec_args" $xml_conf` + search_expr_true=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/search_expr_true" $xml_conf` + search_expr_false=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/search_expr_false" $xml_conf` + nruns=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/nruns" $xml_conf` + compile_prog_out=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/compile_prog_out" $xml_conf` + tags=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/tags" $xml_conf` + + echo "class = $class" + echo "name = $name" + echo "Description = $desc" + echo "pre_compile_prog = $pre_compile_prog" + echo "compile_prog = $compile_prog" + echo "pre_exec = $pre_exec" + echo "pre_exec_args = $pre_exec_args" + echo "main_exec = $main_exec" + echo "main_exec_args = $main_exec_args" + echo "search_expr_true = $search_expr_true" + echo "search_expr_false = $search_expr_false" + echo "nruns = $nruns" + + #eval $pre_exec + + search_array_true=() + + IFS=\" #set the shell's field separator + set -f #don't try to glob + #set -- $search_expr_true #split on $IFS + for i in $search_expr_true + do echo "i = $i" + if [ -n "$i" ] && [ "$i" != " " ]; then + search_array_true+=("$i") + #echo "inside i = \"$i\" " + fi + done + unset IFS + + #echo "arg1 = ${search_array_true[0]}" + #echo " arg2 = ${search_array_true[1]}" + if [ "$class" == "compilation" ]; then + test_compile "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" "$compile_prog_out" "$tags" + elif [ "$class" == "execution" ]; then + test_compile_and_run "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" "$compile_prog_out" "$tags" + else + echo "Unexpected class of test case...Exiting...." + fi -#TODO: Add test cases for 10,20 MHz -#TODO: Test and compile seperately for Rel8/Rel10 + done + + +} -#test_compile_and_run 0200 "oaisim_nos1" "" "$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1" "" "oaisim_nos1" " -O /home/calisson/rohit/oai_snav/taets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -b1 -u1 -a " "RRC_CONN" 3 +main "$@" -#run_test 0200 "$dbin/oaisim.r8 -a -A AWGN -n 100" false grep -q '(Segmentation.fault)|(Exiting)|(FATAL)' +xUnit_write "$results_file" -#run_test 0201 "$dbin/oaisim.r8 -a -A AWGN -n 100" false fgrep -q '[E]' +echo "Test Results are written to $results_file" -# write the test results into a file +exit -xUnit_write "$results_file" -echo "Test Results are written to $results_file" diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml new file mode 100644 index 0000000000000000000000000000000000000000..1425eb56a993895bed1910237be9367ee467883d --- /dev/null +++ b/cmake_targets/autotests/test_case_list.xml @@ -0,0 +1,814 @@ + <testCaseList> + +<MachineList>mozart stevens calisson nano amerique</MachineList> + <NFSResultsShare>/mnt/sradio/TEST_RESULTS</NFSResultsShare> + <GitOAI5GRepo>https://gitlab.eurecom.fr/oai/openairinterface5g.git</GitOAI5GRepo> + <GitOpenair-cnRepo>https://gitlab.eurecom.fr/oai/openair-cn.git</GitOpenair-cnRepo> + <GitOAI5GRepoBranch>feature-34-test_framework</GitOAI5GRepoBranch> + <GitOpenair-cnRepoBranch>develop</GitOpenair-cnRepoBranch> + <CleanUpOldProgs>oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* iperf* ltebox* </CleanUpOldProgs> + + <testCase id="010101" > + <class>compilation</class> + <desc>Build oaisim.Rel8</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="010102" > + <class>compilation</class> + <desc>Build oaisim.Rel8 + network device driver(nasmesh_fix)</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="010103" > + <class>compilation</class> + <desc>Build lte-softmodem EXMIMO.Rel8 + EXMIMO.Rel10 + USRP.Rel10</desc> + <pre_compile_prog>cp -vf ../CMakeLists.txt.Rel8 ../CMakeLists.txt + cp -vf ../CMakeLists.txt.Rel10 ../CMakeLists.txt + cp -vf ../CMakeLists.txt.USRP ../CMakeLists.txt </pre_compile_prog> + <compile_prog>lte-softmodem</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="010104" > + <class>compilation</class> + <desc>Build phy unitary simulators + secuirity unitary tests</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>dlsim ulsim pucchsim prachsim pdcchsim pbchsim mbmssim test_secu_knas_encrypt_eia1 test_secu_kenb test_aes128_ctr_encrypt test_aes128_ctr_decrypt test_secu_knas_encrypt_eea2 test_secu_knas test_secu_knas_encrypt_eea1 test_kdf test_aes128_cmac_encrypt test_secu_knas_encrypt_eia2</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="010106" > + <class>compilation</class> + <desc>Build oaisim.Rel8 + ITTI</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="010107" > + <class>compilation</class> + <desc>Build oaisim_nos1.Rel10</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="010108" > + <class>compilation</class> + <desc>Build oaisim.Rel10 + ITTI</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="010120" > + <class>compilation</class> + <desc>Build Nasmesh</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>nasmesh</compile_prog> + <compile_prog_args></compile_prog_args> + <compile_prog_out>CMakeFiles/nasmesh/nasmesh.ko</compile_prog_out> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + + <testCase id="010130" > + <class>compilation</class> + <desc>Build RRH Gateway</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>rrh_gw</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec></main_exec> + <main_exec_args></main_exec_args> + <search_expr_true></search_expr_true> + <search_expr_false></search_expr_false> + <nruns>1</nruns> + </testCase> + + + <testCase id="010200"> + <class>execution</class> + <desc>Run OAISIM Rel10 TDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 1 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 1 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 1 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 2 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 2 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 2 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 5 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 5 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 5 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 6 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 6 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 6</main_exec_args> + <tags>tdd.5MHz.TM1 tdd.10MHz.TM1 tdd.20MHz.TM1 tdd.5MHz.TM2 tdd.10MHz.TM2 tdd.20MHz.TM2 tdd.5MHz.TM5 tdd.10MHz.TM5 tdd.20MHz.TM5 tdd.5MHz.TM6 tdd.10MHz.TM6 tdd.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010201"> + <class>execution</class> + <desc>Run OAISIM Rel10 TDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode and search for errors, segmentation fault or exit</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 1 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 1 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 1 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 2 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 2 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 2 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 5 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 5 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 5 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 6 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 6 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 6 -a</main_exec_args> + <tags>tdd.5MHz.TM1 tdd.10MHz.TM1 tdd.20MHz.TM1 tdd.5MHz.TM2 tdd.10MHz.TM2 tdd.20MHz.TM2 tdd.5MHz.TM5 tdd.10MHz.TM5 tdd.20MHz.TM5 tdd.5MHz.TM6 tdd.10MHz.TM6 tdd.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010202"> + <class>execution</class> + <desc>Run OAISIM Rel10 TDD, 1 eNB + 3 UEs (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 1 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 1 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 1 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 2 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 2 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 2 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 5 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 5 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 5 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 6 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 6 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 6 </main_exec_args> + <tags>tdd.5MHz.TM1 tdd.10MHz.TM1 tdd.20MHz.TM1 tdd.5MHz.TM2 tdd.10MHz.TM2 tdd.20MHz.TM2 tdd.5MHz.TM5 tdd.10MHz.TM5 tdd.20MHz.TM5 tdd.5MHz.TM6 tdd.10MHz.TM6 tdd.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0" "Received RRCConnectionReconfigurationComplete from UE 1" "Received RRCConnectionReconfigurationComplete from UE 2"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010203"> + <class>execution</class> + <desc>Run OAISIM Rel10 TDD, 1 eNB + 3 UEs (5 MHz) in PHY_ABSTRACTION mode and search for errors, segmentation fault or exit</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 1 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 1 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 1 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 2 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 2 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 2 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 5 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 5 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 5 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 6 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 6 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 6 -a</main_exec_args> + <tags>tdd.5MHz.TM1 tdd.10MHz.TM1 tdd.20MHz.TM1 tdd.5MHz.TM2 tdd.10MHz.TM2 tdd.20MHz.TM2 tdd.5MHz.TM5 tdd.10MHz.TM5 tdd.20MHz.TM5 tdd.5MHz.TM6 tdd.10MHz.TM6 tdd.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0" "Received RRCConnectionReconfigurationComplete from UE 1" "Received RRCConnectionReconfigurationComplete from UE 2"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010204"> + <class>execution</class> + <desc>Run OAI Rel10 TDD, 1 eNB + 1 UE (5 MHz) without abstraction mode, send ping from from eNB to UE, and check that there is no packet losses</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 1 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 1 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 1 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 2 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 2 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 2 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 5 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 5 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 5 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 6 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 6 -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 6 -c26 </main_exec_args> + <tags>tdd.5MHz.TM1 tdd.10MHz.TM1 tdd.20MHz.TM1 tdd.5MHz.TM2 tdd.10MHz.TM2 tdd.20MHz.TM2 tdd.5MHz.TM5 tdd.10MHz.TM5 tdd.20MHz.TM5 tdd.5MHz.TM6 tdd.10MHz.TM6 tdd.20MHz.TM6</tags> + <search_expr_true>"DL and UL loss rate below 10"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010205"> + <class>execution</class> + <desc>Run OAI Rel10 TDD, 1 eNB + 1 UE (5 MHz) in PHY_ABSTRACTION mode, send ping from from eNB to UE, and check that there is no packet losses</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 1 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 1 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 1 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 2 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 2 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 2 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 5 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 5 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 5 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 6 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 6 -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 6 -c26 -a </main_exec_args> + <tags>tdd.5MHz.TM1 tdd.10MHz.TM1 tdd.20MHz.TM1 tdd.5MHz.TM2 tdd.10MHz.TM2 tdd.20MHz.TM2 tdd.5MHz.TM5 tdd.10MHz.TM5 tdd.20MHz.TM5 tdd.5MHz.TM6 tdd.10MHz.TM6 tdd.20MHz.TM6</tags> + <search_expr_true>"DL and UL loss rate below 10"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010300"> + <class>execution</class> + <desc>Run OAISIM Rel10 FDD, 1 eNB + 1 UE 1 eNB (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 1 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 1 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 1 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 2 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 2 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 2 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 5 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 5 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 5 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 6 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 6 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 6 -F</main_exec_args> + <tags>FDD.5MHz.TM1 FDD.10MHz.TM1 FDD.20MHz.TM1 FDD.5MHz.TM2 FDD.10MHz.TM2 FDD.20MHz.TM2 FDD.5MHz.TM5 FDD.10MHz.TM5 FDD.20MHz.TM5 FDD.5MHz.TM6 FDD.10MHz.TM6 FDD.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010301"> + <class>execution</class> + <desc>Run OAISIM Rel10 FDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode and search for errors</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 1 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 1 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 1 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 2 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 2 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 2 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 5 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 5 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 5 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 6 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 6 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 6 -F -a</main_exec_args> + <tags>FDD.5MHz.TM1 FDD.10MHz.TM1 FDD.20MHz.TM1 FDD.5MHz.TM2 FDD.10MHz.TM2 FDD.20MHz.TM2 FDD.5MHz.TM5 FDD.10MHz.TM5 FDD.20MHz.TM5 FDD.5MHz.TM6 FDD.10MHz.TM6 FDD.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010302"> + <class>execution</class> + <desc> Run OAISIM Rel10 FDD, 1 eNB + 3 UEs (5 MHz/10MHz/20MHz), (TM 1,2,5,6) and search for errors, segmentation fault or exit</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 1 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 1 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 1 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 2 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 2 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 2 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 5 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 5 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 5 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 6 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 6 -F + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 6 -F </main_exec_args> + <tags>FDD.5MHz.TM1 FDD.10MHz.TM1 FDD.20MHz.TM1 FDD.5MHz.TM2 FDD.10MHz.TM2 FDD.20MHz.TM2 FDD.5MHz.TM5 FDD.10MHz.TM5 FDD.20MHz.TM5 FDD.5MHz.TM6 FDD.10MHz.TM6 FDD.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0" "Received RRCConnectionReconfigurationComplete from UE 1" "Received RRCConnectionReconfigurationComplete from UE 2"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010303"> + <class>execution</class> + <desc>Run OAISIM Rel10 FDD, 1 eNB + 3 UEs (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode and search for errors</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 1 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 1 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 1 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 2 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 2 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 2 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 5 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 5 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 5 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 25 -x 6 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 50 -x 6 -F -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u3 -n100 -R 100 -x 6 -F -a</main_exec_args> + <tags>FDD.5MHz.TM1 FDD.10MHz.TM1 FDD.20MHz.TM1 FDD.5MHz.TM2 FDD.10MHz.TM2 FDD.20MHz.TM2 FDD.5MHz.TM5 FDD.10MHz.TM5 FDD.20MHz.TM5 FDD.5MHz.TM6 FDD.10MHz.TM6 FDD.20MHz.TM6</tags> + <search_expr_true>"Received RRCConnectionReconfigurationComplete from UE 0" "Received RRCConnectionReconfigurationComplete from UE 1" "Received RRCConnectionReconfigurationComplete from UE 2"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010304"> + <class>execution</class> + <desc>Run OAI Rel10 FDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) without PHY_ABSTRACTION mode, ping from from eNB to UE, and for check for no packet losses</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 1 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 1 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 1 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 2 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 2 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 2 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 5 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 5 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 5 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 6 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 6 -F -c26 + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 6 -F -c26</main_exec_args> + <tags>FDD.5MHz.TM1 FDD.10MHz.TM1 FDD.20MHz.TM1 FDD.5MHz.TM2 FDD.10MHz.TM2 FDD.20MHz.TM2 FDD.5MHz.TM5 FDD.10MHz.TM5 FDD.20MHz.TM5 FDD.5MHz.TM6 FDD.10MHz.TM6 FDD.20MHz.TM6</tags> + <search_expr_true>"DL and UL loss rate below 10"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010305"> + <class>execution</class> + <desc>Run OAI Rel10 FDD, 1 eNB + 1 UE (5 MHz/10MHz/20MHz), (TM 1,2,5,6) in PHY_ABSTRACTION mode, send ping from from eNB to UE, and check for no packet losses</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 1 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 1 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 1 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 2 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 2 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 2 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 5 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 5 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 5 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 25 -x 6 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 50 -x 6 -F -c26 -a + -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -b1 -u1 -n100 -R 100 -x 6 -F -c26 -a </main_exec_args> + <tags>FDD.5MHz.TM1 FDD.10MHz.TM1 FDD.20MHz.TM1 FDD.5MHz.TM2 FDD.10MHz.TM2 FDD.20MHz.TM2 FDD.5MHz.TM5 FDD.10MHz.TM5 FDD.20MHz.TM5 FDD.5MHz.TM6 FDD.10MHz.TM6 FDD.20MHz.TM6</tags> + <search_expr_true>"DL and UL loss rate below 10"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010400"> + <class>execution</class> + <desc>Check if eMBMS procedure is not finished completely, make sure that the SIB13/MCCH have been correclty received by UEs</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -l7 -x 1 -Q3 -n 100 -b1 -u1</main_exec_args> + <search_expr_true>"Found MBSFNAreaConfiguration from eNB 0"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010401"> + <class>execution</class> + <desc>Check if eMBMS multicast/broadcast data is received, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -l7 -x 1 -T mscbr -Q3 -n 100 -b1 -u1</main_exec_args> + <search_expr_true>"Received a multicast packet"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010402"> + <class>execution</class> + <desc>Check for eMBMS multicast/broadcast data received in fdd mode, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -l7 -F -T mscbr -x 1 -Q3 -n 100 -b1 -u1</main_exec_args> + <search_expr_true>"Received a multicast packet"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="010403"> + <class>execution</class> + <desc>Check for eMBMS multicast/broadcast DF relaying working properly in fdd mode, make sure that the SIB13/MCCH/MTCH have been correclty received by UEs</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>oaisim_nos1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec>$OPENAIR_DIR/cmake_targets/tools/init_nas_nos1</pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>oaisim_nos1</main_exec> + <main_exec_args> -O $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -A AWGN -l7 -c43 -F -T mbvbr -Q4 -j1 -n120</main_exec_args> + <search_expr_true>"MTCH for sync area 1"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015000"> + <class>execution</class> + <desc>test_aes128_cmac_encrypt</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_aes128_cmac_encrypt</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_aes128_cmac_encrypt</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015001"> + <class>execution</class> + <desc>test_aes128_ctr_decrypt</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_aes128_ctr_decrypt</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_aes128_ctr_decrypt</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015002"> + <class>execution</class> + <desc>test_aes128_ctr_encrypt</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_aes128_ctr_encrypt</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_aes128_ctr_encrypt</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015003"> + <class>execution</class> + <desc>test_secu_kenb</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_secu_kenb</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_secu_kenb</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015004"> + <class>execution</class> + <desc>test_secu_knas</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_secu_knas</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_secu_knas</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015005"> + <class>execution</class> + <desc>test_secu_knas_encrypt_eea1</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_secu_knas_encrypt_eea1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_secu_knas_encrypt_eea1</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015006"> + <class>execution</class> + <desc>test_secu_knas_encrypt_eea2</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_secu_knas_encrypt_eea2</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_secu_knas_encrypt_eea2</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015007"> + <class>execution</class> + <desc>test_secu_knas_encrypt_eia1</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_secu_knas_encrypt_eia1</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_secu_knas_encrypt_eia1</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015008"> + <class>execution</class> + <desc>test_secu_knas_encrypt_eia2</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_secu_knas_encrypt_eia2</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_secu_knas_encrypt_eia2</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015009"> + <class>execution</class> + <desc>test_kdf</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>test_kdf</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>test_kdf</main_exec> + <main_exec_args> --verbose</main_exec_args> + <search_expr_true>"finished with 0 errors"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>3</nruns> + </testCase> + + <testCase id="015100"> + <class>execution</class> + <desc>dlsim test cases (Test 1: 10 MHz, R2.FDD (MCS 5), EVA5, -1dB), + (Test 5: 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)), + (Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)), + (Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)), + (Test 7, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)), + (Test 7b, 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)), + (Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)), + (Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)), + (Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)) + (TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)), + (TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)), + </desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>dlsim</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>dlsim</main_exec> + <main_exec_args> -m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L + -m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O70 + -m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L + -m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 -L + -m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30 -L + -m14 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O30 -L + -m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 -L + -m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70 -L + -m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L + -m14 -gF -s6.8 -w1.0 -f.2 -n500 -B50 -c2 -x2 -y2 -z2 -O70 -L + -m13 -gF -s5.9 -w1.0 -f.2 -n500 -B25 -c3 -x2 -y2 -z2 -O70 -L</main_exec_args> + <tags>test1 test5 test6 test6b test7 test7b test10 test10b test11 TM2_test1 TM2_test1b</tags> + <search_expr_true>"passed"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="015101"> + <class>execution</class> + <desc>ulsim Test cases. (Test 1, 5 MHz, FDD (MCS 5), AWGN, 6dB), + (Test 2, 5 MHz, FDD (MCS 16), AWGN , 12dB (70%)), + (Test 3, 10 MHz, R3.FDD (MCS 5), AWGN, 6dB (70%)), + (Test 4, 10 MHz, R3-1.FDD (MCS 16), AWGN, 12dB (70%)), + (Test 5, 20 MHz, FDD (MCS 5), AWGN, 6dB (70%)), + (Test 6, 20 MHz, FDD (MCS 16), AWGN, 12 dB (70%))</desc> + <pre_compile_prog></pre_compile_prog> + <compile_prog>ulsim</compile_prog> + <compile_prog_args></compile_prog_args> + <pre_exec></pre_exec> + <pre_exec_args></pre_exec_args> + <main_exec>ulsim</main_exec> + <main_exec_args> -B25 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L + -B25 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L + -B50 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L + -B50 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L + -B100 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L + -B100 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L</main_exec_args> + <tags>test1 test2 test3 test4 test5 test6</tags> + <search_expr_true>"passed"</search_expr_true> + <search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false> + <nruns>1</nruns> + </testCase> + + <testCase id="015500" > + <class>lte-softmodem</class> + <desc></desc> + <eNB>calisson</eNB> + <UE>stevens</UE> + <EPC>nano</EPC> + <cleanupScript>oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* iperf* ltebox*</cleanupScript> + <TimeOut_cmd>300</TimeOut_cmd> + + <eNB_working_dir>/tmp</eNB_working_dir> + <eNB_config_file>$OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code 1 + $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code 208 + $OPENAIR_TARGETS/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf tracking_area_code 95</eNB_config_file> + <eNB_pre_compile_prog></eNB_pre_compile_prog> + <eNB_pre_compile_prog_args></eNB_pre_compile_prog_args> + <eNB_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai </eNB_compile_prog> + <eNB_compile_prog_args>--eNB -w USRP</eNB_compile_prog_args> + <eNB_pre_exec>iperf </eNB_pre_exec> + <eNB_pre_exec_args></eNB_pre_exec_args> + <eNB_main_exec>$OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec> + <eNB_main_exec_args></eNB_main_exec_args> + <eNB_search_expr_true></eNB_search_expr_true> + <eNB_search_expr_false></eNB_search_expr_false> + + <UE_working_dir>/tmp</UE_working_dir> + <UE_pre_compile_prog></UE_pre_compile_prog> + <UE_pre_compile_prog_args></UE_pre_compile_prog_args> + <UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog> + <UE_compile_prog_args>--eNB -w USRP</UE_compile_prog_args> + <UE_pre_exec>iperf </UE_pre_exec> + <UE_pre_exec_args></UE_pre_exec_args> + <UE_main_exec>$OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</UE_main_exec> + <UE_main_exec_args></UE_main_exec_args> + <UE_search_expr_true></UE_search_expr_true> + <UE_search_expr_false></UE_search_expr_false> + + <UE_working_dir>/tmp</UE_working_dir> + <UE_pre_compile_prog></UE_pre_compile_prog> + <UE_pre_compile_prog_args></UE_pre_compile_prog_args> + <UE_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</UE_compile_prog> + <UE_compile_prog_args>--eNB -w USRP</UE_compile_prog_args> + <UE_pre_exec>iperf </UE_pre_exec> + <UE_pre_exec_args></UE_pre_exec_args> + <UE_main_exec>$OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</UE_main_exec> + <UE_main_exec_args></UE_main_exec_args> + <UE_search_expr_true></UE_search_expr_true> + <UE_search_expr_false></UE_search_expr_false> + + <EPC_working_dir>/tmp</EPC_working_dir> + <EPC_pre_compile_prog></EPC_pre_compile_prog> + <EPC_pre_compile_prog_args></EPC_pre_compile_prog_args> + <EPC_compile_prog>$OPENAIR_DIR/cmake_targets/build_oai</EPC_compile_prog> + <EPC_compile_prog_args>--eNB -w USRP</EPC_compile_prog_args> + <EPC_pre_exec>iperf </EPC_pre_exec> + <EPC_pre_exec_args></EPC_pre_exec_args> + <EPC_main_exec>$OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</EPC_main_exec> + <EPC_main_exec_args></EPC_main_exec_args> + <EPC_search_expr_true></EPC_search_expr_true> + <EPC_search_expr_false></EPC_search_expr_false> + <nruns>2</nruns> + </testCase> + + </testCaseList> + + + + diff --git a/cmake_targets/autotests/tools/remove_old_programs.bash b/cmake_targets/autotests/tools/remove_old_programs.bash new file mode 100755 index 0000000000000000000000000000000000000000..772ba11f58342d542aba7ff980fa39996b82943f --- /dev/null +++ b/cmake_targets/autotests/tools/remove_old_programs.bash @@ -0,0 +1,7 @@ +#!/bin/bash + +#$1 programs to be killed and checked +var=`ps -A |grep -E -i $1` +echo $var +if [ -n "$var" ]; then echo 'Match found'; else echo 'Match not found' ;fi + diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index cbbfa98045494f384db4a02798a95957c064c7c3..af147d682af80063bfa910ae842f4ee04a02c7d3 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -47,9 +47,12 @@ PRINT_STATS="False" VCD_TIMING="False" REL="Rel10" HW="EXMIMO" +NOS1=0 EPC=0 VERBOSE_COMPILE=0 CFLAGS_PROCESSOR_USER="" +RUN_GROUP=0 +TEST_CASE_GROUP="" function print_help() { echo_info ' @@ -95,6 +98,8 @@ Options Makes the core security features unitary simulators -s | --check runs a set of auto-tests based on simulators and several compilation tests +--run-group + runs only specified test cases specified here. This flag is only valid with -s -V | --vcd Adds a debgging facility to the binary files: GUI with major internal synchronization events -x | --xforms @@ -193,6 +198,11 @@ function main() { OAI_TEST=1 echo_info "Will run auto-tests" shift;; + --run-group) + RUN_GROUP=1 + TEST_CASE_GROUP=$2 + echo_info "executing test cases only in group: $TEST_CASE_GROUP" + shift 2;; -V | --vcd) echo_info "setting gtk-wave output" VCD_TIMING=1 @@ -265,12 +275,11 @@ function main() { if [ "$HW" == "OAI_USRP" ] ; then echo_info "installing packages for USRP support" check_install_usrp_uhd_driver - fi + fi if [ "$HW" == "OAI_BLADERF" ] ; then echo_info "installing packages for BALDERF support" check_install_bladerf_driver fi - fi if [ "$INSTALL_OPTIONAL" = "1" ] ; then @@ -321,7 +330,7 @@ function main() { cmake .. fi - if [ "$eNB" = "1" ] ; then + if [ "$eNB" = "1" -o "$UE" = "1" ] ; then echo_info "Compiling $lte_exec" compilations \ $lte_build_dir $lte_exec \ @@ -338,7 +347,7 @@ function main() { fi fi - if [ "$UE" = 1 ] ; then + if [ "$UE" = 1 -a "$NOS1" = "0" ] ; then # ue_ip driver compilation echo_info "Compiling UE specific part" compilations \ @@ -576,8 +585,11 @@ function main() { echo_info "10. Running OAI pre commit tests (pre-ci) ..." rm -fr $OPENAIR_DIR/cmake_targets/autotests/log mkdir -p $OPENAIR_DIR/cmake_targets/autotests/log - $OPENAIR_DIR/cmake_targets/autotests/run_compilation_autotests.bash - $OPENAIR_DIR/cmake_targets/autotests/run_exec_autotests.bash + if [ "$RUN_GROUP" -eq "1" ]; then + $SUDO $OPENAIR_DIR/cmake_targets/autotests/run_exec_autotests.bash -g "$TEST_CASE_GROUP" + else + $SUDO $OPENAIR_DIR/cmake_targets/autotests/run_exec_autotests.bash + fi else echo_info "10. Bypassing the Tests ..." fi diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 4968a420168bd05ad2cfe4e7b09cd42b485fc842..46997c277322179c9398e1b4e7dad56c56a61a1c 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -254,7 +254,8 @@ check_install_oai_software() { openssh-server \ openssl \ python \ - subversion + subversion \ + xmlstarlet $SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so if [ `lsb_release -rs` = '12.04' ] ; then install_nettle_from_source diff --git a/cmake_targets/tools/test_helper b/cmake_targets/tools/test_helper index 59ab9bc840bd8bbc94a0a5b5d72ae03e0b49896e..35752e9d2085250234d764abeceec00480b80f15 100644 --- a/cmake_targets/tools/test_helper +++ b/cmake_targets/tools/test_helper @@ -38,7 +38,7 @@ xUnit_fail() { } ## Call this after the testcase finished successfully. -# \sa xUnit_fail() +# \sa xUnit_success() # \pre xUnit_start() must have been called before # \param $1 classname # \param $2 testcase name diff --git a/openair1/PHY/LTE_ESTIMATION/adjust_gain.c b/openair1/PHY/LTE_ESTIMATION/adjust_gain.c index 412f7cbae9c38a67a8ad731e3db787d75301112c..52f26a25629e447e6a9e086ea3d634d28257b199 100644 --- a/openair1/PHY/LTE_ESTIMATION/adjust_gain.c +++ b/openair1/PHY/LTE_ESTIMATION/adjust_gain.c @@ -53,7 +53,7 @@ phy_adjust_gain (PHY_VARS_UE *phy_vars_ue, uint8_t eNB_id) if (rssi>0) rx_power_fil_dB = rssi; else rx_power_fil_dB = phy_vars_ue->PHY_measurements.rx_power_avg_dB[eNB_id]; - printf("Gain control: rssi %d (%d,%d)\n", + LOG_D(PHY,"Gain control: rssi %d (%d,%d)\n", rssi, phy_vars_ue->PHY_measurements.rssi, phy_vars_ue->PHY_measurements.rx_power_avg_dB[eNB_id] diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c index 3dc325861cbdb9c0fd122504c98229dad92cb07b..de9acefb6ee3696609ff0001f915f209364bebc3 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c @@ -45,7 +45,6 @@ #include "PHY/sse_intrin.h" - #ifndef USER_MODE #define NOCYGWIN_STATIC static #else @@ -53,9 +52,9 @@ #endif //#define DEBUG_PHY 1 -//#define DEBUG_DLSCH_MOD 1 +//#define DEBUG_DLSCH_DEMOD 1 -int avg[4]; +int avg[4]; // [MCS][i_mod (0,1,2) = (2,4,6)] unsigned char offset_mumimo_llr_drange_fix=0; @@ -3091,19 +3090,21 @@ void dlsch_alamouti(LTE_DL_FRAME_PARMS *frame_parms, ch_mag1 = (__m128i *)&dl_ch_mag[2][jj]; ch_mag0b = (__m128i *)&dl_ch_magb[0][jj]; ch_mag1b = (__m128i *)&dl_ch_magb[2][jj]; - + for (rb=0; rb<nb_rb; rb++) { for (re=0; re<((pilots==0)?12:8); re+=2) { // Alamouti RX combining + // printf("Alamouti: symbol %d, rb %d, re %d: rxF0 (%d,%d,%d,%d), rxF1 (%d,%d,%d,%d)\n",symbol,rb,re,rxF0[0],rxF0[1],rxF0[2],rxF0[3],rxF1[0],rxF1[1],rxF1[2],rxF1[3]); rxF0[0] = rxF0[0] + rxF1[2]; - rxF0[1] = rxF0[1] - rxF1[3]; + rxF0[1] = rxF0[1] - rxF1[3]; rxF0[2] = rxF0[2] - rxF1[0]; rxF0[3] = rxF0[3] + rxF1[1]; + // printf("Alamouti: rxF0 after (%d,%d,%d,%d)\n",rxF0[0],rxF0[1],rxF0[2],rxF0[3]); rxF0+=4; rxF1+=4; @@ -3229,12 +3230,40 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, else rb_alloc_ind = 0; + if (rb_alloc_ind == 1) + nb_rb++; + // For second half of RBs skip DC carrier if (rb==(frame_parms->N_RB_DL>>1)) { rxF = &rxdataF[aarx][(1 + (symbol*(frame_parms->ofdm_symbol_size)))]; //dl_ch0++; } + // PBCH + if ((subframe==0) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=nsymb>>1) && (l<((nsymb>>1) + 4))) { + rb_alloc_ind = 0; + } + + //SSS + if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb) ) { + rb_alloc_ind = 0; + } + + + if (frame_parms->frame_type == FDD) { + //PSS + if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) { + rb_alloc_ind = 0; + } + } + + if ((frame_parms->frame_type == TDD) && + (subframe==6)) { //TDD Subframe 6 + if ((rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) { + rb_alloc_ind = 0; + } + } + if (rb_alloc_ind==1) { *pmi_ext = (pmi>>((rb>>2)<<1))&3; memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int)); @@ -3272,7 +3301,7 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, rxF_ext+=10; } - nb_rb++; + } dl_ch0+=12; @@ -3281,7 +3310,9 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, } else { // Odd number of RBs for (rb=0; rb<frame_parms->N_RB_DL>>1; rb++) { - // printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]); +#ifdef DEBUG_DLSCH_DEMOD + printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]); +#endif skip_half=0; if (rb < 32) @@ -3295,6 +3326,8 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, else rb_alloc_ind = 0; + if (rb_alloc_ind == 1) + nb_rb++; // PBCH if ((subframe==0) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4))) { @@ -3328,7 +3361,10 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, //PSS in subframe 0/5 if FDD if (frame_parms->frame_type == FDD) { //FDD - if (((subframe==0)||(subframe==5)) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) { + if (((subframe==0)||(subframe==5)) && + (rb>((frame_parms->N_RB_DL>>1)-3)) && + (rb<((frame_parms->N_RB_DL>>1)+3)) && + (l==pss_symb) ) { rb_alloc_ind = 0; } @@ -3352,55 +3388,68 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, if (rb_alloc_ind==1) { - // printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half); - +#ifdef DEBUG_DLSCH_DEMOD + printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half); +#endif if (pilots==0) { - // printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); + // printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); if (skip_half==1) { memcpy(dl_ch0_ext,dl_ch0,6*sizeof(int)); - for (i=0; i<6; i++) - rxF_ext[i]=rxF[i]; - + for (i=0; i<6; i++) { + rxF_ext[i]=rxF[i]; +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif + } dl_ch0_ext+=6; rxF_ext+=6; } else if (skip_half==2) { memcpy(dl_ch0_ext,dl_ch0+6,6*sizeof(int)); - for (i=0; i<6; i++) + for (i=0; i<6; i++) { rxF_ext[i]=rxF[(i+6)]; - +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif + } dl_ch0_ext+=6; rxF_ext+=6; } else { memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int)); - for (i=0; i<12; i++) + for (i=0; i<12; i++) { rxF_ext[i]=rxF[i]; - +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif + } dl_ch0_ext+=12; rxF_ext+=12; } } else { - // printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); + // printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); j=0; if (skip_half==1) { for (i=0; i<6; i++) { if (i!=((frame_parms->nushift+poffset)%6)) { rxF_ext[j]=rxF[i]; - // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j++]=dl_ch0[i]; } } - + rxF_ext+=5; dl_ch0_ext+=5; - rxF_ext+=5; } else if (skip_half==2) { for (i=0; i<6; i++) { if (i!=((frame_parms->nushift+poffset)%6)) { rxF_ext[j]=rxF[(i+6)]; - // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j++]=dl_ch0[i+6]; } } @@ -3412,7 +3461,9 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, if ((i!=(frame_parms->nushift+poffset)) && (i!=((frame_parms->nushift+poffset+6)%12))) { rxF_ext[j]=rxF[i]; - // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j++]=dl_ch0[i]; } @@ -3422,8 +3473,6 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, rxF_ext+=10; } } - - nb_rb++; } dl_ch0+=12; @@ -3444,36 +3493,42 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, rb_alloc_ind = 0; + if (rb_alloc_ind == 1) + nb_rb++; // PBCH - if ((subframe==0) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=(nsymb>>1)) && (l<((nsymb>>1) + 4))) { + if ((subframe==0) && + (l>=(nsymb>>1)) && + (l<((nsymb>>1) + 4))) { rb_alloc_ind = 0; } //SSS - if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==sss_symb) ) { + if (((subframe==0)||(subframe==5)) && (l==sss_symb) ) { rb_alloc_ind = 0; } if (frame_parms->frame_type == FDD) { //PSS - if (((subframe==0)||(subframe==5)) && (rb>=((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) { + if (((subframe==0)||(subframe==5)) && (l==pss_symb) ) { rb_alloc_ind = 0; } } + //PSS if ((frame_parms->frame_type == TDD) && - (subframe==6)) { - //PSS - if ((rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb) ) { - rb_alloc_ind = 0; - } + (subframe==6) && + (l==pss_symb) ) { + rb_alloc_ind = 0; } + // printf("dlch_ext %d\n",dl_ch0_ext-&dl_ch_estimates_ext[aarx][0]); // printf("DC rb %d (%p)\n",rb,rxF); if (rb_alloc_ind==1) { - // printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half); +#ifdef DEBUG_DLSCH_DEMOD + printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half); +#endif if (pilots==0) { for (i=0; i<6; i++) { dl_ch0_ext[i]=dl_ch0[i]; @@ -3496,7 +3551,9 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, if (i!=((frame_parms->nushift+poffset)%6)) { dl_ch0_ext[j]=dl_ch0[i]; rxF_ext[j++]=rxF[i]; - // printf("**extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j-1],*(1+(short*)&rxF_ext[j-1])); +#ifdef DEBUG_DLSCH_DEMOD + printf("**extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j-1],*(1+(short*)&rxF_ext[j-1])); +#endif } } @@ -3506,7 +3563,9 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, if (i!=((frame_parms->nushift+6+poffset)%12)) { dl_ch0_ext[j]=dl_ch0[i]; rxF_ext[j++]=rxF[(1+i-6)]; - // printf("**extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j-1],*(1+(short*)&rxF_ext[j-1])); +#ifdef DEBUG_DLSCH_DEMOD + printf("**extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j-1],*(1+(short*)&rxF_ext[j-1])); +#endif } } @@ -3514,7 +3573,6 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, rxF_ext+=10; } // symbol_mod==0 - nb_rb++; } // rballoc==1 else { rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))]; @@ -3540,7 +3598,8 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, else rb_alloc_ind = 0; - + if (rb_alloc_ind == 1) + nb_rb++; // PBCH if ((subframe==0) && (rb>((frame_parms->N_RB_DL>>1)-3)) && (rb<((frame_parms->N_RB_DL>>1)+3)) && (l>=nsymb>>1) && (l<((nsymb>>1) + 4))) { @@ -3590,7 +3649,9 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, } if (rb_alloc_ind==1) { - // printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half); +#ifdef DEBUG_DLSCH_DEMOD + printf("rb %d/symbol %d (skip_half %d)\n",rb,l,skip_half); +#endif /* printf("rb %d\n",rb); for (i=0;i<12;i++) @@ -3598,43 +3659,54 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, printf("\n"); */ if (pilots==0) { - // printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); + // printf("Extracting w/o pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); if (skip_half==1) { memcpy(dl_ch0_ext,dl_ch0,6*sizeof(int)); - for (i=0; i<6; i++) + for (i=0; i<6; i++) { rxF_ext[i]=rxF[i]; - +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif + } dl_ch0_ext+=6; rxF_ext+=6; } else if (skip_half==2) { memcpy(dl_ch0_ext,dl_ch0+6,6*sizeof(int)); - for (i=0; i<6; i++) + for (i=0; i<6; i++) { rxF_ext[i]=rxF[(i+6)]; - +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif + } dl_ch0_ext+=6; rxF_ext+=6; } else { memcpy(dl_ch0_ext,dl_ch0,12*sizeof(int)); - for (i=0; i<12; i++) + for (i=0; i<12; i++) { rxF_ext[i]=rxF[i]; - +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif + } dl_ch0_ext+=12; rxF_ext+=12; } } else { - // printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); + // printf("Extracting with pilots (symbol %d, rb %d, skip_half %d)\n",l,rb,skip_half); j=0; if (skip_half==1) { for (i=0; i<6; i++) { if (i!=((frame_parms->nushift+poffset)%6)) { rxF_ext[j]=rxF[i]; - // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j++]=dl_ch0[i]; } } @@ -3645,7 +3717,9 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, for (i=0; i<6; i++) { if (i!=((frame_parms->nushift+poffset)%6)) { rxF_ext[j]=rxF[(i+6)]; - // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j++]=dl_ch0[i+6]; } } @@ -3657,7 +3731,9 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, if ((i!=(frame_parms->nushift+poffset)) && (i!=((frame_parms->nushift+poffset+6)%12))) { rxF_ext[j]=rxF[i]; - // printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("extract rb %d, re %d => (%d,%d)\n",rb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j++]=dl_ch0[i]; } } @@ -3666,8 +3742,6 @@ unsigned short dlsch_extract_rbs_single(int **rxdataF, rxF_ext+=10; } } // pilots=0 - - nb_rb++; } dl_ch0+=12; @@ -3749,52 +3823,58 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, rb_alloc_ind = (rb_alloc[3]>>(prb-96)) & 1; else rb_alloc_ind = 0; + + if (rb_alloc_ind == 1) + nb_rb++; - // PBCH - if ((subframe==0) && - (prb>((frame_parms->N_RB_DL>>1)-3)) && - (prb<((frame_parms->N_RB_DL>>1)+3)) && - (l>=(nsymb>>1)) && - (l<((nsymb>>1) + 4))) { - rb_alloc_ind = 0; - // printf("symbol %d / rb %d: skipping PBCH REs\n",symbol,prb); - } - - //SSS - - if (((subframe==0)||(subframe==5)) && - (prb>((frame_parms->N_RB_DL>>1)-3)) && - (prb<((frame_parms->N_RB_DL>>1)+3)) && - (l==sss_symb) ) { - rb_alloc_ind = 0; - // printf("symbol %d / rb %d: skipping SSS REs\n",symbol,prb); - } - - - - //PSS in subframe 0/5 if FDD - if (frame_parms->frame_type == FDD) { //FDD - if (((subframe==0)||(subframe==5)) && - (prb>((frame_parms->N_RB_DL>>1)-3)) && + + if ((frame_parms->N_RB_DL&1) == 0) { // even number of RBs + + // PBCH + if ((subframe==0) && + (prb>=((frame_parms->N_RB_DL>>1)-3)) && (prb<((frame_parms->N_RB_DL>>1)+3)) && - (l==pss_symb) ) { + (l>=(nsymb>>1)) && + (l<((nsymb>>1) + 4))) { rb_alloc_ind = 0; - // printf("symbol %d / rb %d: skipping PSS REs\n",symbol,prb); + // printf("symbol %d / rb %d: skipping PBCH REs\n",symbol,prb); } - } - - if ((frame_parms->frame_type == TDD) && - (subframe==6)) { //TDD Subframe 6 - if ((prb>=((frame_parms->N_RB_DL>>1)-3)) && - (prb<=((frame_parms->N_RB_DL>>1)+3)) && - (l==pss_symb) ) { + + //SSS + + if (((subframe==0)||(subframe==5)) && + (prb>=((frame_parms->N_RB_DL>>1)-3)) && + (prb<((frame_parms->N_RB_DL>>1)+3)) && + (l==sss_symb) ) { rb_alloc_ind = 0; + // printf("symbol %d / rb %d: skipping SSS REs\n",symbol,prb); } - } - - if (rb_alloc_ind==1) { // PRB is allocated + + + + //PSS in subframe 0/5 if FDD + if (frame_parms->frame_type == FDD) { //FDD + if (((subframe==0)||(subframe==5)) && + (prb>=((frame_parms->N_RB_DL>>1)-3)) && + (prb<((frame_parms->N_RB_DL>>1)+3)) && + (l==pss_symb) ) { + rb_alloc_ind = 0; + // printf("symbol %d / rb %d: skipping PSS REs\n",symbol,prb); + } + } + + if ((frame_parms->frame_type == TDD) && + (subframe==6)) { //TDD Subframe 6 + if ((prb>=((frame_parms->N_RB_DL>>1)-3)) && + (prb<((frame_parms->N_RB_DL>>1)+3)) && + (l==pss_symb) ) { + rb_alloc_ind = 0; + } + } + + if (rb_alloc_ind==1) { // PRB is allocated + - if ((frame_parms->N_RB_DL&1) == 0) { // even number of RBs prb_off = 12*prb; prb_off2 = 1+(12*(prb-(frame_parms->N_RB_DL>>1))); @@ -3839,12 +3919,55 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, rxF_ext+=8; } // pilots==1 - nb_rb++; + } + } else { // Odd number of RBs - } else { // Odd number of RBs - skip_half=0; + // PBCH + if ((subframe==0) && + (prb>((frame_parms->N_RB_DL>>1)-3)) && + (prb<((frame_parms->N_RB_DL>>1)+3)) && + (l>=(nsymb>>1)) && + (l<((nsymb>>1) + 4))) { + rb_alloc_ind = 0; + // printf("symbol %d / rb %d: skipping PBCH REs\n",symbol,prb); + } + + //SSS + + if (((subframe==0)||(subframe==5)) && + (prb>((frame_parms->N_RB_DL>>1)-3)) && + (prb<((frame_parms->N_RB_DL>>1)+3)) && + (l==sss_symb) ) { + rb_alloc_ind = 0; + // printf("symbol %d / rb %d: skipping SSS REs\n",symbol,prb); + } + + + + //PSS in subframe 0/5 if FDD + if (frame_parms->frame_type == FDD) { //FDD + if (((subframe==0)||(subframe==5)) && + (prb>((frame_parms->N_RB_DL>>1)-3)) && + (prb<((frame_parms->N_RB_DL>>1)+3)) && + (l==pss_symb) ) { + rb_alloc_ind = 0; + // printf("symbol %d / rb %d: skipping PSS REs\n",symbol,prb); + } + } + + if ((frame_parms->frame_type == TDD) && + ((subframe==1) || (subframe==6))) { //TDD Subframe 1-6 + if ((prb>((frame_parms->N_RB_DL>>1)-3)) && + (prb<((frame_parms->N_RB_DL>>1)+3)) && + (l==pss_symb) ) { + rb_alloc_ind = 0; + } + } + if (rb_alloc_ind == 1) { + skip_half=0; + //Check if we have to drop half a PRB due to PSS/SSS/PBCH // skip_half == 0 means full PRB // skip_half == 1 means first half is used (leftmost half-PRB from PSS/SSS/PBCH) @@ -3875,13 +3998,12 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, if (((frame_parms->frame_type == FDD) && (((subframe==0)||(subframe==5)))) || //FDD Subframes 0,5 ((frame_parms->frame_type == TDD) && - (((subframe==2) || (subframe==6))))) { //TDD Subframes 2,6 + (((subframe==1) || (subframe==6))))) { //TDD Subframes 1,6 if ((prb==((frame_parms->N_RB_DL>>1)-3)) && (l==pss_symb)) skip_half=1; - else if (((subframe==0)||(subframe==5)) && - (prb==((frame_parms->N_RB_DL>>1)+3)) && + else if ((prb==((frame_parms->N_RB_DL>>1)+3)) && (l==pss_symb)) skip_half=2; } @@ -3901,9 +4023,9 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, rxF = &rxdataF[aarx][prb_off2+ (symbol*(frame_parms->ofdm_symbol_size))]; } - - // printf("symbol %d / rb %d: alloc %d skip_half %d (rxF %p, rxF_ext %p) prb_off (%d,%d)\n",symbol,prb,rb_alloc_ind,skip_half,rxF,rxF_ext,prb_off,prb_off2); - +#ifdef DEBUG_DLSCH_DEMOD + printf("symbol %d / rb %d: alloc %d skip_half %d (rxF %p, rxF_ext %p) prb_off (%d,%d)\n",symbol,prb,rb_alloc_ind,skip_half,rxF,rxF_ext,prb_off,prb_off2); +#endif *pmi_loc = (pmi>>((prb>>2)<<1))&3; // printf("symbol_mod %d (pilots %d) rb %d, sb %d, pmi %d (pmi_loc %p,rxF %p, ch00 %p, ch01 %p, rxF_ext %p dl_ch0_ext %p dl_ch1_ext %p)\n",symbol_mod,pilots,rb,rb>>2,*pmi_loc,pmi_loc,rxF,dl_ch0, dl_ch1, rxF_ext,dl_ch0_ext,dl_ch1_ext); @@ -3915,6 +4037,10 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, memcpy(dl_ch0_ext,dl_ch0p,6*sizeof(int32_t)); memcpy(dl_ch1_ext,dl_ch1p,6*sizeof(int32_t)); memcpy(rxF_ext,rxF,6*sizeof(int32_t)); +#ifdef DEBUG_DLSCH_DEMOD + for (i=0;i<6;i++) + printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif dl_ch0_ext+=6; dl_ch1_ext+=6; rxF_ext+=6; @@ -3922,6 +4048,10 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, memcpy(dl_ch0_ext,dl_ch0p+6,6*sizeof(int32_t)); memcpy(dl_ch1_ext,dl_ch1p+6,6*sizeof(int32_t)); memcpy(rxF_ext,rxF+6,6*sizeof(int32_t)); +#ifdef DEBUG_DLSCH_DEMOD + for (i=0;i<6;i++) + printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif dl_ch0_ext+=6; dl_ch1_ext+=6; rxF_ext+=6; @@ -3929,8 +4059,10 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, memcpy(dl_ch0_ext,dl_ch0p,12*sizeof(int32_t)); memcpy(dl_ch1_ext,dl_ch1p,12*sizeof(int32_t)); memcpy(rxF_ext,rxF,12*sizeof(int32_t)); +#ifdef DEBUG_DLSCH_DEMOD for (i=0;i<12;i++) - // printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); + printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); +#endif dl_ch0_ext+=12; dl_ch1_ext+=12; rxF_ext+=12; @@ -3943,7 +4075,9 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, if ((i!=frame_parms->nushift) && (i!=((frame_parms->nushift+3)%6))) { rxF_ext[j]=rxF[i]; - // printf("(pilots,skip1)extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("(pilots,skip1)extract rb %d, re %d (%d)=> (%d,%d)\n",prb,i,j,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j]=dl_ch0p[i]; dl_ch1_ext[j++]=dl_ch1p[i]; } @@ -3956,15 +4090,17 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, if ((i!=frame_parms->nushift) && (i!=((frame_parms->nushift+3)%6))) { rxF_ext[j]=rxF[(i+6)]; - // printf("(pilots,skip2)extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("(pilots,skip2)extract rb %d, re %d (%d) => (%d,%d)\n",prb,i,j,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j]=dl_ch0p[i+6]; dl_ch1_ext[j++]=dl_ch1p[i+6]; } - - dl_ch0_ext+=4; - dl_ch1_ext+=4; - rxF_ext+=4; } + dl_ch0_ext+=4; + dl_ch1_ext+=4; + rxF_ext+=4; + } else { //skip_half==0 for (i=0; i<12; i++) { if ((i!=frame_parms->nushift) && @@ -3972,7 +4108,9 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, (i!=frame_parms->nushift+6) && (i!=((frame_parms->nushift+9)%12))) { rxF_ext[j]=rxF[i]; - // printf("(pilots)extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#ifdef DEBUG_DLSCH_DEMOD + printf("(pilots)extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[j],*(1+(short*)&rxF_ext[j])); +#endif dl_ch0_ext[j] =dl_ch0p[i]; dl_ch1_ext[j++]=dl_ch1p[i]; } @@ -3982,31 +4120,33 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, rxF_ext+=8; } //skip_half==0 } //pilots==1 - nb_rb++; } else { // Do middle RB (around DC) if (pilots==0) { memcpy(dl_ch0_ext,dl_ch0p,6*sizeof(int32_t)); memcpy(dl_ch1_ext,dl_ch1p,6*sizeof(int32_t)); memcpy(rxF_ext,rxF,6*sizeof(int32_t)); - /* +#ifdef DEBUG_DLSCH_DEMOD for (i=0; i<6; i++) { printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); - }*/ + } +#endif rxF_ext+=6; dl_ch0_ext+=6; dl_ch1_ext+=6; dl_ch0p+=6; dl_ch1p+=6; - rxF = &rxdataF[aarx][((symbol*(frame_parms->ofdm_symbol_size)))]; + rxF = &rxdataF[aarx][1+((symbol*(frame_parms->ofdm_symbol_size)))]; memcpy(dl_ch0_ext,dl_ch0p,6*sizeof(int32_t)); memcpy(dl_ch1_ext,dl_ch1p,6*sizeof(int32_t)); memcpy(rxF_ext,rxF,6*sizeof(int32_t)); - /*for (i=0; i<6; i++) { +#ifdef DEBUG_DLSCH_DEMOD + for (i=0; i<6; i++) { printf("extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF_ext[i],*(1+(short*)&rxF_ext[i])); - }*/ + } +#endif rxF_ext+=6; dl_ch0_ext+=6; dl_ch1_ext+=6; @@ -4019,18 +4159,22 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, dl_ch0_ext[j]=dl_ch0p[i]; dl_ch1_ext[j]=dl_ch1p[i]; rxF_ext[j++]=rxF[i]; - //printf("(pilots)extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF[i],*(1+(short*)&rxF[i])); +#ifdef DEBUG_DLSCH_DEMOD + printf("(pilots)extract rb %d, re %d (%d) => (%d,%d)\n",prb,i,j,*(short *)&rxF[i],*(1+(short*)&rxF[i])); +#endif } } - rxF = &rxdataF[aarx][symbol*(frame_parms->ofdm_symbol_size)]; + rxF = &rxdataF[aarx][1+symbol*(frame_parms->ofdm_symbol_size)]; for (; i<12; i++) { if ((i!=((frame_parms->nushift+6)%12)) && (i!=((frame_parms->nushift+9)%12))) { dl_ch0_ext[j]=dl_ch0p[i]; dl_ch1_ext[j]=dl_ch1p[i]; - rxF_ext[j++]=rxF[(1+i-6)]; - //printf("(pilots)extract rb %d, re %d => (%d,%d)\n",prb,i,*(short *)&rxF[1+i-6],*(1+(short*)&rxF[1+i-6])); + rxF_ext[j++]=rxF[i-6]; +#ifdef DEBUG_DLSCH_DEMOD + printf("(pilots)extract rb %d, re %d (%d) => (%d,%d)\n",prb,i,j,*(short *)&rxF[1+i-6],*(1+(short*)&rxF[1+i-6])); +#endif } } @@ -4038,7 +4182,6 @@ unsigned short dlsch_extract_rbs_dual(int **rxdataF, dl_ch1_ext+=8; rxF_ext+=8; } //pilots==1 - nb_rb++; } // if Middle PRB } // if odd PRB } // if rballoc==1 @@ -4126,7 +4269,7 @@ void dump_dlsch2(PHY_VARS_UE *phy_vars_ue,uint8_t eNB_id,uint16_t coded_bits_per #endif #ifdef DEBUG_DLSCH_DEMOD - +/* void print_bytes(char *s,__m128i *x) { @@ -4164,5 +4307,5 @@ void print_ints(char *s,__m128i *x) printf("%s : %d,%d,%d,%d\n",s, tempb[0],tempb[1],tempb[2],tempb[3]); -} +}*/ #endif diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c index 7425a4ed65893e27d47d3d4f117f1cfdc47316a0..a35f89b8518baa2cdfc342a77045946702074621 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c @@ -662,16 +662,17 @@ int dlsch_qpsk_llr(LTE_DL_FRAME_PARMS *frame_parms, if ((symbol_mod==0) || (symbol_mod==(4-frame_parms->Ncp))) { if (frame_parms->mode1_flag==0) - len = (nb_rb*8);// - (2*pbch_pss_sss_adjust/3); + len = (nb_rb*8)- (2*pbch_pss_sss_adjust/3); else - len = (nb_rb*10);// - (5*pbch_pss_sss_adjust/6); + len = (nb_rb*10) - (5*pbch_pss_sss_adjust/6); } else { - len = (nb_rb*12);// - pbch_pss_sss_adjust; + len = (nb_rb*12) - pbch_pss_sss_adjust; } -// printf("dlsch_qpsk_llr: symbol %d,nb_rb %d, len %d,pbch_pss_sss_adjust %d\n",symbol,nb_rb,len,pbch_pss_sss_adjust); + // printf("dlsch_qpsk_llr: symbol %d,nb_rb %d, len %d,pbch_pss_sss_adjust %d\n",symbol,nb_rb,len,pbch_pss_sss_adjust); for (i=0; i<len; i++) { *llr32 = *rxF; + // printf("llr %d : (%d,%d)\n",i,((int16_t*)llr32)[0],((int16_t*)llr32)[1]); rxF++; llr32++; } diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h index eb32aab24e89517be42d0179387418a5df0d8406..cb127ead4821063951488a6de0dcc7e9f6ee4ded 100644 --- a/openair1/PHY/LTE_TRANSPORT/proto.h +++ b/openair1/PHY/LTE_TRANSPORT/proto.h @@ -72,17 +72,20 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint8_t N_RB_DL, ui */ void free_ue_dlsch(LTE_UE_DLSCH_t *dlsch); +LTE_eNB_ULSCH_t *new_eNB_ulsch(uint8_t Mdlharq,uint8_t max_turbo_iterations,uint8_t N_RB_UL, uint8_t abstraction_flag); + LTE_UE_DLSCH_t *new_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint8_t max_turbo_iterations,uint8_t N_RB_DL, uint8_t abstraction_flag); +LTE_UE_ULSCH_t *new_ue_ulsch(unsigned char Mdlharq,unsigned char N_RB_UL, uint8_t abstraction_flag); void clean_eNb_ulsch(LTE_eNB_ULSCH_t *ulsch, uint8_t abstraction_flag); void free_ue_ulsch(LTE_UE_ULSCH_t *ulsch); -LTE_UE_ULSCH_t *new_ue_ulsch(uint8_t Mdlharq, unsigned char N_RB_UL, uint8_t abstraction_flag); - +LTE_eNB_ULSCH_t *new_eNB_ulsch(uint8_t Mdlharq,uint8_t max_turbo_iterations,uint8_t N_RB_UL, uint8_t abstraction_flag); +LTE_UE_ULSCH_t *new_ue_ulsch(uint8_t Mdlharq, unsigned char N_RB_UL, uint8_t abstraction_flag); /** \fn dlsch_encoding(uint8_t *input_buffer, LTE_DL_FRAME_PARMS *frame_parms, @@ -1764,7 +1767,9 @@ double computeRhoB_UE(PDSCH_CONFIG_DEDICATED *pdsch_config_dedicated, LTE_UE_DLSCH_t *dlsch_ue); */ - uint8_t get_prach_prb_offset(LTE_DL_FRAME_PARMS *frame_parms, uint8_t tdd_mapindex, uint16_t Nf); +uint8_t get_prach_prb_offset(LTE_DL_FRAME_PARMS *frame_parms, uint8_t tdd_mapindex, uint16_t Nf); + +uint8_t ul_subframe2pdcch_alloc_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t n); /**@}*/ #endif diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c index 28e7bc8216ecd57ff465250e9a0261c5c1b5d062..6474e83dd91438e04a4b021d83637ff8ac2eda33 100644 --- a/openair1/SIMULATION/LTE_PHY/dlsim.c +++ b/openair1/SIMULATION/LTE_PHY/dlsim.c @@ -326,7 +326,7 @@ int main(int argc, char **argv) uint32_t DLSCH_RB_ALLOC = 0x1fff; int numCCE=0; int dci_length_bytes=0,dci_length=0; - double BW = 5.0; + //double channel_bandwidth = 5.0, sampling_rate=7.68; int common_flag=0,TPC=0; double cpu_freq_GHz; @@ -680,27 +680,19 @@ int main(int argc, char **argv) switch (N_RB_DL) { case 6: if (rballocset==0) DLSCH_RB_ALLOC = 0x3f; - - BW = 1.25; num_pdcch_symbols = 3; break; case 25: if (rballocset==0) DLSCH_RB_ALLOC = 0x1fff; - - BW = 5.00; break; case 50: if (rballocset==0) DLSCH_RB_ALLOC = 0x1ffff; - - BW = 10.00; break; case 100: if (rballocset==0) DLSCH_RB_ALLOC = 0x1ffffff; - - BW = 20.00; break; } @@ -708,8 +700,6 @@ int main(int argc, char **argv) } else NB_RB = 4; - NB_RB=conv_nprb(0,DLSCH_RB_ALLOC,N_RB_DL); - if ((transmission_mode > 1) && (n_tx != 2)) printf("n_tx must be >1 for transmission_mode %d\n",transmission_mode); @@ -777,6 +767,10 @@ int main(int argc, char **argv) sprintf(bler_fname,"bler_tx%d_chan%d_nrx%d_mcs%d.csv",transmission_mode,channel_model,n_rx,mcs1); bler_fd = fopen(bler_fname,"w"); + if (bler_fd==NULL) { + fprintf(stderr,"Cannot create file %s!\n",bler_fname); + exit(-1); + } fprintf(bler_fd,"SNR; MCS; TBS; rate; err0; trials0; err1; trials1; err2; trials2; err3; trials3; dci_err\n"); if (test_perf != 0) { @@ -784,12 +778,16 @@ int main(int argc, char **argv) hostname[1023] = '\0'; gethostname(hostname, 1023); printf("Hostname: %s\n", hostname); - char dirname[FILENAME_MAX]; - sprintf(dirname, "%s/SIMU/USER/pre-ci-logs-%s", getenv("OPENAIR_TARGETS"),hostname ); - sprintf(time_meas_fname,"%s/time_meas_prb%d_mcs%d_anttx%d_antrx%d_pdcch%d_channel%s_tx%d.csv", - dirname,N_RB_DL,mcs1,n_tx,n_rx,num_pdcch_symbols,channel_model_input,transmission_mode); - mkdir(dirname,0777); + //char dirname[FILENAME_MAX]; + //sprintf(dirname, "%s/SIMU/USER/pre-ci-logs-%s", getenv("OPENAIR_TARGETS"),hostname ); + sprintf(time_meas_fname,"time_meas_prb%d_mcs%d_anttx%d_antrx%d_pdcch%d_channel%s_tx%d.csv", + N_RB_DL,mcs1,n_tx,n_rx,num_pdcch_symbols,channel_model_input,transmission_mode); + //mkdir(dirname,0777); time_meas_fd = fopen(time_meas_fname,"w"); + if (time_meas_fd==NULL) { + fprintf(stderr,"Cannot create file %s!\n",time_meas_fname); + exit(-1); + } } if(abstx) { @@ -797,6 +795,10 @@ int main(int argc, char **argv) sprintf(csv_fname,"dataout_tx%d_u2%d_mcs%d_chan%d_nsimus%d_R%d.m",transmission_mode,dual_stream_UE,mcs1,channel_model,n_frames,num_rounds); csv_fd = fopen(csv_fname,"w"); fprintf(csv_fd,"data_all%d=[",mcs1); + if (csv_fd==NULL) { + fprintf(stderr,"Cannot create file %s!\n",csv_fname); + exit(-1); + } } /* @@ -955,7 +957,8 @@ int main(int argc, char **argv) eNB2UE[0] = new_channel_desc_scm(PHY_vars_eNB->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_DL), forgetting_factor, rx_sample_offset, 0); @@ -965,8 +968,9 @@ int main(int argc, char **argv) eNB2UE[n] = new_channel_desc_scm(PHY_vars_eNB->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, - forgetting_factor, + N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_DL), + forgetting_factor, rx_sample_offset, 0); } @@ -2777,7 +2781,7 @@ PMI_FEEDBACK: // Multipath channel if (awgn_flag == 0) { - multipath_channel(eNB2UE[0],s_re,s_im,r_re,r_im, + multipath_channel(eNB2UE[round],s_re,s_im,r_re,r_im, 2*frame_parms->samples_per_tti,hold_channel); // printf("amc: ****************** eNB2UE[%d]->n_rx = %d,dd %d\n",round,eNB2UE[round]->nb_rx,eNB2UE[round]->channel_offset); diff --git a/openair1/SIMULATION/LTE_PHY/mbmssim.c b/openair1/SIMULATION/LTE_PHY/mbmssim.c index 862edaa864493c8af5af0e6942382455da3f3e93..b9be0b27e8163404ff3310894927385fe0d05121 100644 --- a/openair1/SIMULATION/LTE_PHY/mbmssim.c +++ b/openair1/SIMULATION/LTE_PHY/mbmssim.c @@ -54,8 +54,6 @@ #include "OCG_vars.h" -//#define BW 5.0 - PHY_VARS_eNB *PHY_vars_eNB; PHY_VARS_UE *PHY_vars_UE; @@ -131,7 +129,7 @@ int main(int argc, char **argv) char c; - int i,l,aa,aarx; + int i,l,aa,aarx,k; double sigma2, sigma2_dB=0,SNR,snr0=-2.0,snr1=0.0; uint8_t snr1set=0; double snr_step=1,input_snr_step=1; @@ -172,7 +170,6 @@ int main(int argc, char **argv) unsigned int trials,errs[4]= {0,0,0,0}; //,round_trials[4]={0,0,0,0}; uint8_t N_RB_DL=25,osf=1; - double BW=5.0; uint32_t perfect_ce = 0; lte_frame_type_t frame_type = FDD; @@ -255,27 +252,9 @@ int main(int argc, char **argv) case 'R': N_RB_DL = atoi(optarg); - switch (N_RB_DL) { - case 6: - BW=1.25; - break; - - case 25: - BW=5.0; - break; - - case 50: - BW=10.0; - break; - - case 100: - BW=20.0; - break; - - default: + if ((N_RB_DL!=6) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=100)) { printf("Unsupported Bandwidth %d\n",N_RB_DL); exit(-1); - break; } break; @@ -397,7 +376,8 @@ int main(int argc, char **argv) eNB2UE = new_channel_desc_scm(PHY_vars_eNB->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_DL), 0, 0, 0); @@ -541,15 +521,26 @@ int main(int argc, char **argv) subframe%10, 0, 0); - } - - for (l=2; l<12; l++) { - rx_pmch(PHY_vars_UE, + + if (PHY_vars_UE->perfect_ce==1) { + // fill in perfect channel estimates + freq_channel(eNB2UE,PHY_vars_UE->lte_frame_parms.N_RB_DL,12*PHY_vars_UE->lte_frame_parms.N_RB_DL + 1); + for(k=0; k<NUMBER_OF_eNB_MAX; k++) { + for(aa=0; aa<frame_parms->nb_antennas_tx; aa++) { + for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) { + for (i=0; i<frame_parms->N_RB_DL*12; i++) { + ((int16_t *) PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[k][(aa<<1)+aarx])[2*i+(l*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(eNB2UE->chF[aarx+(aa*frame_parms->nb_antennas_rx)][i].x*AMP); + ((int16_t *) PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[k][(aa<<1)+aarx])[2*i+1+(l*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(eNB2UE->chF[aarx+(aa*frame_parms->nb_antennas_rx)][i].y*AMP); + } + } + } + } + } + + rx_pmch(PHY_vars_UE, 0, subframe%10, l); - - } PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->G = get_G(&PHY_vars_UE->lte_frame_parms, diff --git a/openair1/SIMULATION/LTE_PHY/pbchsim.c b/openair1/SIMULATION/LTE_PHY/pbchsim.c index 5aa3fac997461ebd69f63d67fccf35f1530b5b01..b7f9f57b6bb1539b5b150dfb9dd5f51d3275f597 100644 --- a/openair1/SIMULATION/LTE_PHY/pbchsim.c +++ b/openair1/SIMULATION/LTE_PHY/pbchsim.c @@ -53,9 +53,6 @@ #include "OCG_vars.h" -#define BW 5.0 - - PHY_VARS_eNB *PHY_vars_eNb,*PHY_vars_eNb1,*PHY_vars_eNb2; PHY_VARS_UE *PHY_vars_UE; @@ -485,7 +482,8 @@ int main(int argc, char **argv) eNB2UE = new_channel_desc_scm(PHY_vars_eNb->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNb->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNb->lte_frame_parms.N_RB_DL), 0, 0, 0); @@ -494,7 +492,8 @@ int main(int argc, char **argv) eNB2UE1 = new_channel_desc_scm(PHY_vars_eNb->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNb->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNb->lte_frame_parms.N_RB_DL), 0, 4, 0); @@ -503,7 +502,8 @@ int main(int argc, char **argv) eNB2UE2 = new_channel_desc_scm(PHY_vars_eNb->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNb->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNb->lte_frame_parms.N_RB_DL), 0, 8, 0); diff --git a/openair1/SIMULATION/LTE_PHY/pdcchsim.c b/openair1/SIMULATION/LTE_PHY/pdcchsim.c index caa7e1248d48e7dcc0078b45bffb1cb53f1d9d3c..7a361329806eb8347805d6a04637b8b823f41248 100644 --- a/openair1/SIMULATION/LTE_PHY/pdcchsim.c +++ b/openair1/SIMULATION/LTE_PHY/pdcchsim.c @@ -552,7 +552,6 @@ int main(int argc, char **argv) uint32_t *txptr; int aarx; int k; - double BW=5.0; uint32_t perfect_ce = 0; number_of_cards = 1; @@ -840,28 +839,11 @@ int main(int argc, char **argv) subframe,NUMBER_OF_OFDM_CARRIERS, PHY_vars_eNB->lte_frame_parms.Ncp,PHY_vars_eNB->lte_frame_parms.samples_per_tti,nsymb); - switch (N_RB_DL) { - case 6: - BW = 1.25; - break; - - case 25: - BW = 5.00; - break; - - case 50: - BW = 10.00; - break; - - case 100: - BW = 20.00; - break; - } - eNB2UE = new_channel_desc_scm(PHY_vars_eNB->lte_frame_parms.nb_antennas_tx_eNB, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_DL), 0, 0, 0); diff --git a/openair1/SIMULATION/LTE_PHY/prachsim.c b/openair1/SIMULATION/LTE_PHY/prachsim.c index eeca52a274da992602981381e3dd2721d26b6d8d..4df53b053f9b377569c7de648cd323bd12e51176 100644 --- a/openair1/SIMULATION/LTE_PHY/prachsim.c +++ b/openair1/SIMULATION/LTE_PHY/prachsim.c @@ -47,8 +47,6 @@ #include "OCG_vars.h" -#define BW 5.0 - int current_dlsch_cqi; //FIXME! PHY_VARS_eNB *PHY_vars_eNB; @@ -412,7 +410,8 @@ int main(int argc, char **argv) UE2eNB = new_channel_desc_scm(PHY_vars_UE->lte_frame_parms.nb_antennas_tx, PHY_vars_eNB->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_UL), + N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_UL), 0.0, delay, 0); diff --git a/openair1/SIMULATION/LTE_PHY/pucchsim.c b/openair1/SIMULATION/LTE_PHY/pucchsim.c index 919bec144dd428f1f9d8858ab056c85e162ba45c..d9a3367b902c74b039fa524026a7a9078c2a94f2 100644 --- a/openair1/SIMULATION/LTE_PHY/pucchsim.c +++ b/openair1/SIMULATION/LTE_PHY/pucchsim.c @@ -49,8 +49,6 @@ #include "OCG_vars.h" #include "UTIL/LOG/log_extern.h" -#define BW 5.0 - int current_dlsch_cqi; //FIXME! PHY_VARS_eNB *PHY_vars_eNB; @@ -418,7 +416,8 @@ int main(int argc, char **argv) UE2eNB = new_channel_desc_scm(PHY_vars_eNB->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_UL), + N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_UL), 0.0, 0, 0); diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c index dd697899b8cc79a231f7501c90c88923bb71d0d7..18a35ae63e3ad4ab925fcd08e5a0a649a040e8a5 100644 --- a/openair1/SIMULATION/LTE_PHY/ulsim.c +++ b/openair1/SIMULATION/LTE_PHY/ulsim.c @@ -58,23 +58,11 @@ extern unsigned short dftsizes[33]; extern short *ul_ref_sigs[30][2][33]; -//#define AWGN -//#define NO_DCI - -#define BW 7.68 -//#define ABSTRACTION -//#define PERFECT_CE - -/* - #define RBmask0 0x00fc00fc - #define RBmask1 0x0 - #define RBmask2 0x0 - #define RBmask3 0x0 -*/ + PHY_VARS_eNB *PHY_vars_eNB; PHY_VARS_UE *PHY_vars_UE; -#define MCS_COUNT 23//added for PHY abstraction +//#define MCS_COUNT 23//added for PHY abstraction channel_desc_t *eNB2UE[NUMBER_OF_eNB_MAX][NUMBER_OF_UE_MAX]; channel_desc_t *UE2eNB[NUMBER_OF_UE_MAX][NUMBER_OF_eNB_MAX]; @@ -155,11 +143,6 @@ void lte_param_init(unsigned char N_tx, unsigned char N_rx,unsigned char transmi -#define UL_RB_ALLOC 0x1ff; - - - - int main(int argc, char **argv) { @@ -172,8 +155,6 @@ int main(int argc, char **argv) double input_snr_step=.2,snr_int=30; double blerr; - //int **txdataF, **txdata; - int **txdata; LTE_DL_FRAME_PARMS *frame_parms; @@ -214,6 +195,7 @@ int main(int argc, char **argv) // FILE *rx_frame_file; FILE *csv_fdUL=NULL; + /* FILE *fperen=NULL; char fperen_name[512]; @@ -222,6 +204,7 @@ int main(int argc, char **argv) FILE *flogeren=NULL; char flogeren_name[512]; + */ /* FILE *ftxlev; char ftxlev_name[512]; @@ -598,6 +581,7 @@ int main(int argc, char **argv) time_meas_fd = fopen(time_meas_fname,"w"); } + /* if(abstx) { sprintf(fperen_name,"ULchan_estims_F_mcs%d_rb%d_chanMod%d_nframes%d_chanReal%d.m",mcs,nb_rb,chMod,n_frames,n_ch_rlz); fperen = fopen(fperen_name,"a+"); @@ -614,6 +598,7 @@ int main(int argc, char **argv) fprintf(flogeren,"mag_f = ["); fclose(flogeren); } + */ /* sprintf(ftxlev_name,"txlevel_mcs%d_rb%d_chanMod%d_nframes%d_chanReal%d.m",mcs,nb_rb,chMod,n_frames,n_ch_rlz); @@ -626,6 +611,10 @@ int main(int argc, char **argv) // CSV file sprintf(csv_fname,"EULdataout_tx%d_mcs%d_nbrb%d_chan%d_nsimus%d_eren.m",transmission_mode,mcs,nb_rb,chMod,n_frames); csv_fdUL = fopen(csv_fname,"w"); + if (csv_fdUL == NULL) { + fprintf(stderr,"Problem opening file %s\n",csv_fname); + exit(-1); + } fprintf(csv_fdUL,"data_all%d=[",mcs); } @@ -680,7 +669,8 @@ int main(int argc, char **argv) UE2eNB = new_channel_desc_scm(PHY_vars_eNB->lte_frame_parms.nb_antennas_tx, PHY_vars_UE->lte_frame_parms.nb_antennas_rx, channel_model, - BW, + N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_UL), + N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_UL), forgetting_factor, delay, 0); @@ -1270,11 +1260,13 @@ int main(int argc, char **argv) PHY_vars_eNB->ulsch_eNB[0]->cyclicShift = cyclic_shift;// cyclic shift for DMRS + /* if(abstx) { namepointer_log2 = &flogeren_name; namepointer_chMag = &fmageren_name; //namepointer_txlev = &ftxlev; } + */ start_meas(&PHY_vars_eNB->ulsch_demodulation_stats); rx_ulsch(PHY_vars_eNB, @@ -1285,6 +1277,7 @@ int main(int argc, char **argv) cooperation_flag); stop_meas(&PHY_vars_eNB->ulsch_demodulation_stats); + /* if(abstx) { namepointer_chMag = NULL; @@ -1296,8 +1289,7 @@ int main(int argc, char **argv) // flagMag = 1; } } - - /////// + */ start_meas(&PHY_vars_eNB->ulsch_decoding_stats); ret= ulsch_decoding(PHY_vars_eNB, @@ -1816,6 +1808,7 @@ int main(int argc, char **argv) }//ch realization + /* if(abstx) { fperen = fopen(fperen_name,"a+"); fprintf(fperen,"];\n"); @@ -1829,6 +1822,7 @@ int main(int argc, char **argv) fprintf(flogeren,"];\n"); fclose(flogeren); } + */ // ftxlev = fopen(ftxlev_name,"a+"); //fprintf(ftxlev,"];\n"); diff --git a/openair1/SIMULATION/TOOLS/abstraction.c b/openair1/SIMULATION/TOOLS/abstraction.c index d63d0b0fe9cf8a970190e8dc48db1a9829a8d811..3720d9f99895becb2388bac4830cbb56ead1809a 100644 --- a/openair1/SIMULATION/TOOLS/abstraction.c +++ b/openair1/SIMULATION/TOOLS/abstraction.c @@ -73,7 +73,7 @@ void init_freq_channel(channel_desc_t *desc,uint16_t nb_rb,int16_t n_samples) if (desc->nb_taps==1) delay = desc->delays[l]; else - delay = desc->delays[l]+NB_SAMPLES_CHANNEL_OFFSET/desc->BW; + delay = desc->delays[l]+NB_SAMPLES_CHANNEL_OFFSET/desc->sampling_rate; cos_lut[f+(n_samples>>1)][l] = cos(2*M_PI*freq*delay); sin_lut[f+(n_samples>>1)][l] = sin(2*M_PI*freq*delay); diff --git a/openair1/SIMULATION/TOOLS/defs.h b/openair1/SIMULATION/TOOLS/defs.h index 187ffcb241b815521e6cedfabc8aa6cb9c9db53b..0dfea70b890febf0a422674fb05dc33d2c13f95d 100644 --- a/openair1/SIMULATION/TOOLS/defs.h +++ b/openair1/SIMULATION/TOOLS/defs.h @@ -69,7 +69,9 @@ typedef struct { ///Maximum path delay in mus. double Td; ///Channel bandwidth in MHz. - double BW; + double channel_bandwidth; + ///System sampling rate in Msps. + double sampling_rate; ///Ricean factor of first tap wrt other taps (0..1, where 0 means AWGN and 1 means Rayleigh channel). double ricean_factor; ///Angle of arrival of wavefront (in radians). For Ricean channel only. This assumes that both RX and TX have linear antenna arrays with lambda/2 antenna spacing. Furhter it is assumed that the arrays are parallel to each other and that they are far enough apart so that we can safely assume plane wave propagation. @@ -202,7 +204,8 @@ typedef enum { channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, uint8_t nb_rx, SCM_t channel_model, - double BW, + double sampling_rate, + double channel_bandwidth, double forgetting_factor, int32_t channel_offset, double path_loss_dB); @@ -364,6 +367,10 @@ void multipath_tv_channel(channel_desc_t *desc, /**@} */ /**@} */ + +double N_RB2sampling_rate(uint16_t N_RB); +double N_RB2channel_bandwidth(uint16_t N_RB); + #endif diff --git a/openair1/SIMULATION/TOOLS/multipath_tv_channel.c b/openair1/SIMULATION/TOOLS/multipath_tv_channel.c index b1bd091ca7edc9810acb6790f1069ac616fd9eca..3568545f299e573cc3a1d265ef33f49f1bdf9012 100644 --- a/openair1/SIMULATION/TOOLS/multipath_tv_channel.c +++ b/openair1/SIMULATION/TOOLS/multipath_tv_channel.c @@ -175,13 +175,13 @@ void tv_channel(channel_desc_t *desc,double complex ***H,uint16_t length) { for(p=0;p<desc->nb_paths;p++) { - H[i][j] += sqrt(desc->amps[j]/2)*alpha[p]*cexp(-I*(2*pi*w_Hz[p]*i*(1/(desc->BW*1e6))+phi_rad[p])); + H[i][j] += sqrt(desc->amps[j]/2)*alpha[p]*cexp(-I*(2*pi*w_Hz[p]*i*(1/(desc->sampling_rate*1e6))+phi_rad[p])); } } } for(j=0;j<desc->nb_paths;j++) { - phi_rad[j] = fmod(2*pi*w_Hz[j]*(length-1)*(1/desc->BW)+phi_rad[j],2*pi); + phi_rad[j] = fmod(2*pi*w_Hz[j]*(length-1)*(1/desc->sampling_rate)+phi_rad[j],2*pi); } */ @@ -193,13 +193,13 @@ void tv_channel(channel_desc_t *desc,double complex ***H,uint16_t length) H[i+(j*desc->nb_rx)][k][l] = 0; for(p=0; p<desc->nb_paths; p++) { - H[i+(j*desc->nb_rx)][k][l] += sqrt(desc->amps[l]/2)*alpha[p]*cexp(I*(2*pi*w_Hz[p]*k*(1/(desc->BW*1e6))+phi_rad[p])); + H[i+(j*desc->nb_rx)][k][l] += sqrt(desc->amps[l]/2)*alpha[p]*cexp(I*(2*pi*w_Hz[p]*k*(1/(desc->sampling_rate*1e6))+phi_rad[p])); } } } for(j=0; j<desc->nb_paths; j++) { - phi_rad[j] = fmod(2*pi*w_Hz[j]*(length-1)*(1/desc->BW)+phi_rad[j],2*pi); + phi_rad[j] = fmod(2*pi*w_Hz[j]*(length-1)*(1/desc->sampling_rate)+phi_rad[j],2*pi); } } } diff --git a/openair1/SIMULATION/TOOLS/random_channel.c b/openair1/SIMULATION/TOOLS/random_channel.c index 9233d94132c3283a31aff7e8b46a83f32a0362cd..417ff29162785cd4b17d56713cc239df6c69eb89 100644 --- a/openair1/SIMULATION/TOOLS/random_channel.c +++ b/openair1/SIMULATION/TOOLS/random_channel.c @@ -48,7 +48,8 @@ void fill_channel_desc(channel_desc_t *chan_desc, double *delays, struct complex** R_sqrt, double Td, - double BW, + double sampling_rate, + double channel_bandwidth, double ricean_factor, double aoa, double forgetting_factor, @@ -81,7 +82,8 @@ void fill_channel_desc(channel_desc_t *chan_desc, chan_desc->delays = delays; chan_desc->Td = Td; - chan_desc->BW = BW; + chan_desc->sampling_rate = sampling_rate; + chan_desc->channel_bandwidth = channel_bandwidth; chan_desc->ricean_factor = ricean_factor; chan_desc->aoa = aoa; chan_desc->random_aoa = random_aoa; @@ -195,7 +197,8 @@ struct complex **R_sqrt_ptr2; channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, uint8_t nb_rx, SCM_t channel_model, - double BW, + double sampling_rate, + double channel_bandwidth, double forgetting_factor, int32_t channel_offset, double path_loss_dB) @@ -209,7 +212,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, chan_desc->nb_tx = nb_tx; chan_desc->nb_rx = nb_rx; - chan_desc->BW = BW; + chan_desc->sampling_rate = sampling_rate; + chan_desc->channel_bandwidth = channel_bandwidth; chan_desc->forgetting_factor = forgetting_factor; chan_desc->channel_offset = channel_offset; chan_desc->path_loss_dB = path_loss_dB; @@ -232,7 +236,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, case SCM_C: chan_desc->nb_taps = 18; chan_desc->Td = 4.625; - chan_desc->channel_length = (int) (2*chan_desc->BW*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->BW*chan_desc->Td)); + chan_desc->channel_length = (int) (2*chan_desc->sampling_rate*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->sampling_rate*chan_desc->Td)); sum_amps = 0; chan_desc->amps = (double*) malloc(chan_desc->nb_taps*sizeof(double)); @@ -291,7 +295,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, LOG_W(OCM,"This is not the real SCM-D model! It is just SCM-C with an additional Rice factor!\n"); chan_desc->nb_taps = 18; chan_desc->Td = 4.625; - chan_desc->channel_length = (int) (2*chan_desc->BW*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->BW*chan_desc->Td)); + chan_desc->channel_length = (int) (2*chan_desc->sampling_rate*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->sampling_rate*chan_desc->Td)); sum_amps = 0; chan_desc->amps = (double*) malloc(chan_desc->nb_taps*sizeof(double)); @@ -349,7 +353,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, case EPA: chan_desc->nb_taps = 7; chan_desc->Td = .410; - chan_desc->channel_length = (int) (2*chan_desc->BW*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->BW*chan_desc->Td)); + chan_desc->channel_length = (int) (2*chan_desc->sampling_rate*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->sampling_rate*chan_desc->Td)); sum_amps = 0; chan_desc->amps = (double*) malloc(chan_desc->nb_taps*sizeof(double)); @@ -403,7 +407,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, case EVA: chan_desc->nb_taps = 9; chan_desc->Td = 2.51; - chan_desc->channel_length = (int) (2*chan_desc->BW*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->BW*chan_desc->Td)); + chan_desc->channel_length = (int) (2*chan_desc->sampling_rate*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->sampling_rate*chan_desc->Td)); sum_amps = 0; chan_desc->amps = (double*) malloc(chan_desc->nb_taps*sizeof(double)); @@ -457,7 +461,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, case ETU: chan_desc->nb_taps = 9; chan_desc->Td = 5.0; - chan_desc->channel_length = (int) (2*chan_desc->BW*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->BW*chan_desc->Td)); + chan_desc->channel_length = (int) (2*chan_desc->sampling_rate*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->sampling_rate*chan_desc->Td)); sum_amps = 0; chan_desc->amps = (double*) malloc(chan_desc->nb_taps*sizeof(double)); @@ -511,7 +515,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, case MBSFN: chan_desc->nb_taps = 18; chan_desc->Td = 28.58; - chan_desc->channel_length = (int) (2*chan_desc->BW*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->BW*chan_desc->Td)); + chan_desc->channel_length = (int) (2*chan_desc->sampling_rate*chan_desc->Td + 1 + 2/(M_PI*M_PI)*log(4*M_PI*chan_desc->sampling_rate*chan_desc->Td)); sum_amps = 0; chan_desc->amps = (double*) malloc(chan_desc->nb_taps*sizeof(double)); @@ -558,7 +562,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, case Rayleigh8: nb_taps = 8; Td = 0.8; - channel_length = (int)11+2*BW*Td; + channel_length = (int)11+2*sampling_rate*Td; ricean_factor = 1; aoa = .03; maxDoppler = 0; @@ -572,7 +576,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, NULL, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -585,7 +590,7 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, case Rice8: nb_taps = 8; Td = 0.8; - channel_length = (int)11+2*BW*Td; + channel_length = (int)11+2*sampling_rate*Td; ricean_factor = 0.1; aoa = .03; maxDoppler = 0; @@ -598,7 +603,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, NULL, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -624,7 +630,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, NULL, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -650,7 +657,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, NULL, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -683,7 +691,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, R_sqrt_ptr2, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -716,7 +725,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, R_sqrt_ptr2, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -742,7 +752,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, NULL, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -768,7 +779,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, NULL, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -803,7 +815,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, R_sqrt_ptr2, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -836,7 +849,8 @@ channel_desc_t *new_channel_desc_scm(uint8_t nb_tx, NULL, R_sqrt_ptr2, Td, - BW, + sampling_rate, + channel_bandwidth, ricean_factor, aoa, forgetting_factor, @@ -985,11 +999,11 @@ int random_channel(channel_desc_t *desc, uint8_t abstraction_flag) desc->ch[aarx+(aatx*desc->nb_rx)][k].y = 0.0; for (l=0; l<desc->nb_taps; l++) { - if ((k - (desc->delays[l]*desc->BW) - NB_SAMPLES_CHANNEL_OFFSET) == 0) + if ((k - (desc->delays[l]*desc->sampling_rate) - NB_SAMPLES_CHANNEL_OFFSET) == 0) s = 1.0; else - s = sin(M_PI*(k - (desc->delays[l]*desc->BW) - NB_SAMPLES_CHANNEL_OFFSET))/ - (M_PI*(k - (desc->delays[l]*desc->BW) - NB_SAMPLES_CHANNEL_OFFSET)); + s = sin(M_PI*(k - (desc->delays[l]*desc->sampling_rate) - NB_SAMPLES_CHANNEL_OFFSET))/ + (M_PI*(k - (desc->delays[l]*desc->sampling_rate) - NB_SAMPLES_CHANNEL_OFFSET)); desc->ch[aarx+(aatx*desc->nb_rx)][k].x += s*desc->a[l][aarx+(aatx*desc->nb_rx)].x; desc->ch[aarx+(aatx*desc->nb_rx)][k].y += s*desc->a[l][aarx+(aatx*desc->nb_rx)].y; @@ -1014,22 +1028,77 @@ int random_channel(channel_desc_t *desc, uint8_t abstraction_flag) return (0); } +double N_RB2sampling_rate(uint16_t N_RB) +{ + double sampling_rate; + switch (N_RB) { + case 6: + sampling_rate = 1.92; + break; + + case 25: + sampling_rate = 7.68; + break; + + case 50: + sampling_rate = 15.36; + break; + + case 100: + sampling_rate = 30.72; + break; + + default: + LOG_E(PHY,"Unknown N_PRB\n"); + return(-1); + } + + return(sampling_rate); +} + +double N_RB2channel_bandwidth(uint16_t N_RB) +{ + double channel_bandwidth; + switch (N_RB) { + case 6: + channel_bandwidth = 1.25; + break; + + case 25: + channel_bandwidth = 5.00; + break; + + case 50: + channel_bandwidth = 10.00; + break; + + case 100: + channel_bandwidth = 20.00; + break; + + default: + LOG_E(PHY,"Unknown N_PRB\n"); + return(-1); + } + return(channel_bandwidth); +} + #ifdef RANDOM_CHANNEL_MAIN -#define BW 5.0 +#define sampling_rate 5.0 #define Td 2.0 main(int argc,char **argv) { double amps[8] = {.8,.2,.1,.04,.02,.01,.005}; - struct complex ch[(int)(1+2*BW*Td)],phase; + struct complex ch[(int)(1+2*sampling_rate*Td)],phase; int i; randominit(); phase.x = 1.0; phase.y = 0; - random_channel(amps,Td, 8,BW,ch,(double)1.0,&phase); + random_channel(amps,Td, 8,sampling_rate,ch,(double)1.0,&phase); /* - for (i=0;i<(11+2*BW*Td);i++){ + for (i=0;i<(11+2*sampling_rate*Td);i++){ printf("%f + sqrt(-1)*%f\n",ch[i].x,ch[i].y); } */ diff --git a/openair3/TEST/test_kdf.c b/openair3/TEST/test_kdf.c index 2a66527773218f57e2cbeac2bf7876d9806ecf66..121efcb9532c011e8179b4d99f560a25911a6166 100644 --- a/openair3/TEST/test_kdf.c +++ b/openair3/TEST/test_kdf.c @@ -42,9 +42,9 @@ static void do_kdf(uint8_t *key, unsigned key_length, uint8_t *data, unsigned data_length, uint8_t *exp, unsigned exp_length) { - uint8_t *result; + uint8_t result[32]; - kdf(key, key_length, data, data_length, &result, 32); + kdf(key, key_length, data, data_length, result, 32); if (compare_buffer(result, exp_length, exp, exp_length) != 0) { fail("Fail: kdf\n"); diff --git a/openair3/TEST/test_secu_kenb.c b/openair3/TEST/test_secu_kenb.c index 16f6a8eadc9faceb802eabfb151f30b5648d4332..967e45722907580815bfc0aeac45def5611c38da 100644 --- a/openair3/TEST/test_secu_kenb.c +++ b/openair3/TEST/test_secu_kenb.c @@ -39,15 +39,15 @@ static void do_derive_kenb(uint32_t nas_count, const uint8_t *kasme, const unsigned length, const uint8_t *kenb_exp) { - uint8_t *kenb; + uint8_t kenb[32]; - derive_keNB(kasme, nas_count, &kenb); + memset(kenb, 0, sizeof(kenb)); + derive_keNB(kasme, nas_count, kenb); if (compare_buffer(kenb_exp, length, kenb, length) != 0) { fail("Fail: kenb derivation\n"); } - free(kenb); } void doit (void) diff --git a/openair3/TEST/test_secu_knas.c b/openair3/TEST/test_secu_knas.c index ecf213f7b3027e8b931e0c42b77835bbf476f4d5..9b9cdc415a18db118cdaf7d6ea6e573865ce6704 100644 --- a/openair3/TEST/test_secu_knas.c +++ b/openair3/TEST/test_secu_knas.c @@ -39,21 +39,23 @@ static void derive_knas_keys(algorithm_type_dist_t atd, uint8_t *kasme, unsigned length, uint8_t *knas_enc_exp, uint8_t *knas_int_exp) { - uint8_t *knas_enc; - uint8_t *knas_int; + uint8_t *knas_enc = NULL; + uint8_t *knas_int = NULL; - derive_key_nas_enc(atd, kasme, &knas_enc); - derive_key_nas_int(atd, kasme, &knas_int); + knas_enc = calloc(1, 32); + knas_int = calloc(1, 32); + + derive_key_nas_enc(atd, kasme, knas_enc); + derive_key_nas_int(atd, kasme, knas_int); /* Compare both keys with expected */ - if (compare_buffer(knas_enc, 32, knas_enc_exp, 32) != 0) { + if (compare_buffer(knas_enc, 16, &knas_enc_exp[16], 16) != 0) { fail("Fail: knas_enc derivation\n"); } - if (compare_buffer(knas_int, 32, knas_int_exp, 32) != 0) { + if (compare_buffer(knas_int, 16, &knas_int_exp[16], 16) != 0) { fail("Fail: knas_int derivation\n"); } - free(knas_enc); free(knas_int); } diff --git a/openair3/TEST/test_secu_knas_encrypt_eea1.c b/openair3/TEST/test_secu_knas_encrypt_eea1.c index 9c54828ff4dcafd516fa2af3ae332f3ac08c4be1..83a4077d892b820db034b815a34dd7ba17303605 100755 --- a/openair3/TEST/test_secu_knas_encrypt_eea1.c +++ b/openair3/TEST/test_secu_knas_encrypt_eea1.c @@ -40,14 +40,15 @@ void eea1_encrypt(uint8_t direction, uint32_t count, uint8_t bearer, uint8_t *key, uint32_t key_length, uint8_t *message, uint32_t length, uint8_t *expected) { - nas_stream_cipher_t *nas_cipher; - uint8_t *result; - uint32_t zero_bits = length & 7; - uint32_t byte_length = length >> 3; + nas_stream_cipher_t *nas_cipher = NULL; + uint8_t *result = NULL; + uint32_t zero_bits = length & 7; + uint32_t byte_length = length >> 3; if (zero_bits > 0) byte_length += 1; + result = calloc(1, byte_length); nas_cipher = calloc(1, sizeof(nas_stream_cipher_t)); nas_cipher->direction = direction; @@ -58,7 +59,7 @@ void eea1_encrypt(uint8_t direction, uint32_t count, nas_cipher->blength = length; nas_cipher->message = message; - if (nas_stream_encrypt_eea1(nas_cipher, &result) != 0) + if (nas_stream_encrypt_eea1(nas_cipher, result) != 0) fail("Fail: nas_stream_encrypt_eea1\n"); if (compare_buffer(result, byte_length, expected, byte_length) != 0) { diff --git a/openair3/TEST/test_secu_knas_encrypt_eea2.c b/openair3/TEST/test_secu_knas_encrypt_eea2.c index 712da6d947f713369cd9901b65eedfbe2e8e57ed..d0ff01c1e6bf36f1b1f18055046a6b64b079c2b0 100644 --- a/openair3/TEST/test_secu_knas_encrypt_eea2.c +++ b/openair3/TEST/test_secu_knas_encrypt_eea2.c @@ -40,14 +40,15 @@ void eea2_encrypt(uint8_t direction, uint32_t count, uint8_t bearer, uint8_t *key, uint32_t key_length, uint8_t *message, uint32_t length, uint8_t *expected) { - nas_stream_cipher_t *nas_cipher; - uint8_t *result; - uint32_t zero_bits = length & 7; - uint32_t byte_length = length >> 3; + nas_stream_cipher_t *nas_cipher = NULL; + uint8_t *result = NULL; + uint32_t zero_bits = length & 7; + uint32_t byte_length = length >> 3; if (zero_bits > 0) byte_length += 1; + result = calloc(1, byte_length); nas_cipher = calloc(1, sizeof(nas_stream_cipher_t)); nas_cipher->direction = direction; @@ -58,7 +59,7 @@ void eea2_encrypt(uint8_t direction, uint32_t count, nas_cipher->blength = length; nas_cipher->message = message; - if (nas_stream_encrypt_eea2(nas_cipher, &result) != 0) + if (nas_stream_encrypt_eea2(nas_cipher, result) != 0) fail("Fail: nas_stream_encrypt_eea2\n"); if (compare_buffer(result, byte_length, expected, byte_length) != 0) { diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf new file mode 100644 index 0000000000000000000000000000000000000000..7b02ad538f80a3e7fe158ac9f09720f3033a5ec2 --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf @@ -0,0 +1,169 @@ +Active_eNBs = ( "eNB_Eurecom_LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB_Eurecom_LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + mobile_network_code = "92"; + + ////////// Physical parameters: + + component_carriers = ( + { + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2660000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 100; + Nid_cell_mbsfn = 0; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 32; + rx_gain = 84; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 1; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + pdsch_referenceSignalPower = -23; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -90; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -108; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.12.26"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24"; + + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + + log_config : + { + global_log_level ="debug"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + + } +); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf new file mode 100644 index 0000000000000000000000000000000000000000..e8a8fc85738bfb1a8c549694ce0ce0f42123e754 --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf @@ -0,0 +1,169 @@ +Active_eNBs = ( "eNB_Eurecom_LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB_Eurecom_LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + mobile_network_code = "92"; + + ////////// Physical parameters: + + component_carriers = ( + { + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2660000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 50; + Nid_cell_mbsfn = 0; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 32; + rx_gain = 82; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 1; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + pdsch_referenceSignalPower = -19; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -90; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -108; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.12.26"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24"; + + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + + log_config : + { + global_log_level ="debug"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + + } +); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf new file mode 100644 index 0000000000000000000000000000000000000000..fe72488bbf16fc9cbfed9b23af3c30651486ba4c --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -0,0 +1,169 @@ +Active_eNBs = ( "eNB_Eurecom_LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB_Eurecom_LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + mobile_network_code = "92"; + + ////////// Physical parameters: + + component_carriers = ( + { + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 7; + downlink_frequency = 2660000000L; + uplink_frequency_offset = -120000000; + Nid_cell = 0; + N_RB_DL = 25; + Nid_cell_mbsfn = 0; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 32; + rx_gain = 84; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 1; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + pdsch_referenceSignalPower = -16; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -90; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -108; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + } + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "192.168.12.26"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.111/24"; + + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.111/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + + log_config : + { + global_log_level ="debug"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + + } +); diff --git a/targets/SIMU/USER/channel_sim.c b/targets/SIMU/USER/channel_sim.c index aeddfaddbe83591006d30fa727da9f7d25aa02bb..bba32a5a29b0d7bdf0f48c7bf50edcd546125696 100644 --- a/targets/SIMU/USER/channel_sim.c +++ b/targets/SIMU/USER/channel_sim.c @@ -303,8 +303,8 @@ void do_DL_sig(double **r_re0,double **r_im0, 10*log10(rx_pwr*(double)frame_parms->N_RB_DL*12),next_slot,next_slot>>1); LOG_D(OCM,"[SIM][DL] UE %d : rx_pwr (noise) -132 dBm/RE (N0fs = %.1f dBm, N0B = %.1f dBm) for slot %d (subframe %d)\n", UE_id, - 10*log10(eNB2UE[eNB_id][UE_id][CC_id]->BW*1e6)-174, - 10*log10(eNB2UE[eNB_id][UE_id][CC_id]->BW*1e6*12*frame_parms->N_RB_DL/(double)frame_parms->ofdm_symbol_size)-174, + 10*log10(eNB2UE[eNB_id][UE_id][CC_id]->sampling_rate*1e6)-174, + 10*log10(eNB2UE[eNB_id][UE_id][CC_id]->sampling_rate*1e6*12*frame_parms->N_RB_DL/(double)frame_parms->ofdm_symbol_size)-174, next_slot,next_slot>>1); #endif @@ -342,7 +342,7 @@ void do_DL_sig(double **r_re0,double **r_im0, r_im0, nb_antennas_rx, frame_parms->samples_per_tti>>1, - 1e3/eNB2UE[eNB_id][UE_id][CC_id]->BW, // sampling time (ns) + 1e3/eNB2UE[eNB_id][UE_id][CC_id]->sampling_rate, // sampling time (ns) (double)PHY_vars_UE_g[UE_id][CC_id]->rx_total_gain_dB - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) #ifdef DEBUG_SIM @@ -584,7 +584,7 @@ void do_UL_sig(double **r_re0,double **r_im0,double **r_re,double **r_im,double r_im, nb_antennas_rx, frame_parms->samples_per_tti>>1, - 1e3/UE2eNB[0][eNB_id][CC_id]->BW, // sampling time (ns) + 1e3/UE2eNB[0][eNB_id][CC_id]->sampling_rate, // sampling time (ns) (double)PHY_vars_eNB_g[eNB_id][CC_id]->rx_total_gain_eNB_dB - 66.227); // rx_gain (dB) (66.227 = 20*log10(pow2(11)) = gain from the adc that will be applied later) #ifdef DEBUG_SIM diff --git a/targets/SIMU/USER/oaisim_functions.c b/targets/SIMU/USER/oaisim_functions.c index ebdb3c00d3266c6b5a3de93e4241a095277efd0d..ca1ec9fccb9a839317a59733367ed9e764d8bd0a 100644 --- a/targets/SIMU/USER/oaisim_functions.c +++ b/targets/SIMU/USER/oaisim_functions.c @@ -1122,24 +1122,28 @@ void init_ocm(void) else */ - eNB2UE[eNB_id][UE_id][CC_id] = new_channel_desc_scm(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.nb_antennas_tx, - PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.nb_antennas_rx, - map_str_to_int(small_scale_names,oai_emulation.environment_system_config.fading.small_scale.selected_option), - oai_emulation.environment_system_config.system_bandwidth_MB, - forgetting_factor, - 0, - 0); + eNB2UE[eNB_id][UE_id][CC_id] = + new_channel_desc_scm(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.nb_antennas_tx, + PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.nb_antennas_rx, + map_str_to_int(small_scale_names,oai_emulation.environment_system_config.fading.small_scale.selected_option), + N_RB2sampling_rate(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_DL), + N_RB2channel_bandwidth(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_DL), + forgetting_factor, + 0, + 0); random_channel(eNB2UE[eNB_id][UE_id][CC_id],abstraction_flag); LOG_D(OCM,"[SIM] Initializing channel (%s, %d) from UE %d to eNB %d\n", oai_emulation.environment_system_config.fading.small_scale.selected_option, map_str_to_int(small_scale_names, oai_emulation.environment_system_config.fading.small_scale.selected_option),UE_id, eNB_id); - UE2eNB[UE_id][eNB_id][CC_id] = new_channel_desc_scm(PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.nb_antennas_tx, - PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.nb_antennas_rx, - map_str_to_int(small_scale_names, oai_emulation.environment_system_config.fading.small_scale.selected_option), - oai_emulation.environment_system_config.system_bandwidth_MB, - forgetting_factor, - 0, - 0); + UE2eNB[UE_id][eNB_id][CC_id] = + new_channel_desc_scm(PHY_vars_UE_g[UE_id][CC_id]->lte_frame_parms.nb_antennas_tx, + PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.nb_antennas_rx, + map_str_to_int(small_scale_names, oai_emulation.environment_system_config.fading.small_scale.selected_option), + N_RB2sampling_rate(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_UL), + N_RB2channel_bandwidth(PHY_vars_eNB_g[eNB_id][CC_id]->lte_frame_parms.N_RB_UL), + forgetting_factor, + 0, + 0); random_channel(UE2eNB[UE_id][eNB_id][CC_id],abstraction_flag); diff --git a/targets/SIMU/USER/sinr_sim.c b/targets/SIMU/USER/sinr_sim.c index 8bdc4a505775274ed76766596294496dc7221091..317fe53c6093228bbb7ad413259628df95e14afe 100644 --- a/targets/SIMU/USER/sinr_sim.c +++ b/targets/SIMU/USER/sinr_sim.c @@ -254,7 +254,7 @@ void init_snr(channel_desc_t* eNB2UE, node_desc_t *enb_data, node_desc_t *ue_dat uint8_t qq; /* Thermal noise is calculated using 10log10(K*T*B) K = Boltzmann's constant T = room temperature B = bandwidth */ - thermal_noise = -174 + 10*log10(eNB2UE->BW*1e6); //value in dBm + thermal_noise = -174 + 10*log10(eNB2UE->sampling_rate*1e6); //value in dBm //for (aarx=0; aarx<eNB2UE->nb_rx; aarx++) *N0 = thermal_noise + ue_data->rx_noise_level;//? all the element have the same noise level????? @@ -496,7 +496,7 @@ void init_snr_up(channel_desc_t* UE2eNB, node_desc_t *enb_data, node_desc_t *ue_ // nb_rb = phy_vars_eNB->ulsch_eNB[UE_id]->harq_processes[harq_pid]->nb_rb; /* Thermal noise is calculated using 10log10(K*T*B) K = Boltzmann's constant T = room temperature B = bandwidth */ - thermal_noise = -174 + 10*log10(UE2eNB->BW*1e6); //value in dBm + thermal_noise = -174 + 10*log10(UE2eNB->sampling_rate*1e6); //value in dBm *N0 = thermal_noise + enb_data->rx_noise_level;//? all the element have the same noise level????? double lambda ; double residual; @@ -557,7 +557,7 @@ void calculate_sinr(channel_desc_t* eNB2UE, node_desc_t *enb_data, node_desc_t * short count; /* Thermal noise is calculated using 10log10(K*T*B) K = Boltzmann's constant T = room temperature B = bandwidth */ - thermal_noise = -174 + 10*log10(eNB2UE->BW*1e6); //value in dBm + thermal_noise = -174 + 10*log10(eNB2UE->sampling_rate*1e6); //value in dBm for (count = 0; count < 12 * nb_rb; count++) { sir = enb_data->tx_power_dBm