Merge branch 'develop' into feature-42-doxygen
This commit is contained in:
@@ -7,6 +7,7 @@ job1:
|
||||
- echo $NFS_SHARE_DIR
|
||||
- echo $EXTERNAL_SHARE_DIR
|
||||
- echo $SHELL
|
||||
- echo $OAI_TEST_CASE_GROUP
|
||||
- git rev-parse --abbrev-ref HEAD
|
||||
- git_repo=`git config --get remote.origin.url`
|
||||
- git_head=`git rev-parse HEAD`
|
||||
|
||||
+25
-17
@@ -1,19 +1,27 @@
|
||||
OpenAirInterface is under GNU GPLv3 license. The full GNU General Public License is included in this distribution in the file called "COPYING".
|
||||
|
||||
The OpenAirInterface (OAI) software is composed of six different parts:
|
||||
|
||||
openair1: 3GPP LTE Rel-8 PHY layer + PHY RF simulation
|
||||
|
||||
openair2: 3GPP LTE Rel-9 RLC/MAC/PDCP/RRC implementations, eNB application, X2AP. Note that for RLC, the following versions are userL UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0. For PDCP, PDCP_v10.1.0 is used. For RRC, only LITE is used.
|
||||
|
||||
openair3: 3GPP LTE Rel9 and 10 MME/NAS, S+P-GW, HSS, S1AP (ENB and MME).
|
||||
|
||||
common: some common OAI utilities, other tools can be found at openair2/UTILS
|
||||
|
||||
targets: scripts to compile and lauch different system targets (simulation, emulation and real-time platforms, user-space tools for these platforms (tbd))
|
||||
|
||||
see README files in these subdirectories for more information
|
||||
|
||||
see also https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/WebHome
|
||||
OpenAirInterface is under OpenAirInterface Software Alliance license.
|
||||
├── http://www.openairinterface.org/?page_id=101
|
||||
├── http://www.openairinterface.org/?page_id=698
|
||||
|
||||
The OpenAirInterface (OAI) software is composed of the following parts:
|
||||
|
||||
openairinterface5g
|
||||
├── cmake_targets: build utilities to compile (simulation, emulation and real-time platforms), and generated build files
|
||||
├── common : some common OAI utilities, other tools can be found at openair2/UTILS
|
||||
├── COPYING
|
||||
├── maketags : script to generate emacs tags
|
||||
├── openair1 : 3GPP LTE Rel-10 PHY layer + PHY RF simulation and a subset of Rel 12 Features.
|
||||
├── openair2 :3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP implementation.
|
||||
├── LAYER2/RLC/ with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
|
||||
├── LAYER2/PDCP/PDCP_v10.1.0.
|
||||
├── RRC/LITE
|
||||
├── PHY_INTERFACE
|
||||
├── X2AP
|
||||
├── ENB_APP
|
||||
├── openair3: 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
|
||||
├── GTPV1-U
|
||||
├── NAS
|
||||
├── S1AP
|
||||
├── SCTP
|
||||
├── SECU
|
||||
├── UDP
|
||||
└── targets: top level wrapper for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
|
||||
|
||||
@@ -260,7 +260,8 @@ endif (${ENABLE_ITTI})
|
||||
|
||||
add_boolean_option(RTAI False "Use RTAI")
|
||||
if (${RTAI})
|
||||
set(LOWLATENCY False)
|
||||
set(DEADLINE_SCHEDULER False)
|
||||
set(CPU_AFFINITY False)
|
||||
add_definitions("-DENABLE_RTAI_CLOCK")
|
||||
add_definitions("-DCONFIG_RTAI_LXRT_INLINE")
|
||||
include_directories ("/usr/realtime/include")
|
||||
@@ -564,7 +565,6 @@ elseif (${RF_BOARD} STREQUAL "OAI_BLADERF")
|
||||
LINK_DIRECTORIES("/usr/lib/x86_64-linux-gnu")
|
||||
|
||||
set(option_HW_lib "bladeRF -rdynamic -ldl")
|
||||
#set(LOWLATENCY False)
|
||||
|
||||
elseif (${RF_BOARD} STREQUAL "OAI_LMSSDR")
|
||||
include_directories("${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB")
|
||||
@@ -577,7 +577,6 @@ elseif (${RF_BOARD} STREQUAL "OAI_LMSSDR")
|
||||
LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/lms7002m")
|
||||
LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/Si5351C")
|
||||
set(HW_SOURCE ${HW_SOURCE} ${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp)
|
||||
set(LOWLATENCY False)
|
||||
set(option_HW_lib "-lLMS_SDR -lLMS7002M -lSi5351C -rdynamic -ldl")
|
||||
|
||||
elseif (${RF_BOARD} STREQUAL "CPRIGW")
|
||||
@@ -606,7 +605,8 @@ endif (${TRANSP_PRO} STREQUAL "ETHERNET")
|
||||
|
||||
include_directories ("${OPENAIR_TARGETS}/ARCH/COMMON")
|
||||
|
||||
Message("LOWLATENCY flag is ${LOWLATENCY}")
|
||||
Message("DEADLINE_SCHEDULER flag is ${DEADLINE_SCHEDULER}")
|
||||
Message("CPU_Affinity flag is ${CPU_AFFINITY}")
|
||||
|
||||
##############################################################
|
||||
# ???!!! TO BE DOCUMENTED OPTIONS !!!???
|
||||
@@ -619,7 +619,8 @@ add_boolean_option(RRC_DEFAULT_RAB_IS_AM False "set the RLC mode to AM for the d
|
||||
|
||||
add_boolean_option(OAI_NW_DRIVER_TYPE_ETHERNET False "????")
|
||||
add_boolean_option(DISABLE_USE_NAS False "???")
|
||||
add_boolean_option(LOWLATENCY True "Use the Linux scheduler SCHED_DEADLINE: kernel >= 3.14")
|
||||
add_boolean_option(DEADLINE_SCHEDULER True "Use the Linux scheduler SCHED_DEADLINE: kernel >= 3.14")
|
||||
add_boolean_option(CPU_AFFINITY False "Enable CPU Affinity of threads (only valid without deadline scheduler). It is enabled only with >2 CPUs")
|
||||
add_boolean_option(NAS_ADDRESS_FIX False "specific to oaisim: for nasmesh driver")
|
||||
add_boolean_option(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
|
||||
add_boolean_option(OAISIM False "specific to oaisim")
|
||||
@@ -996,6 +997,7 @@ set(PHY_SRC
|
||||
${OPENAIR1_DIR}/PHY/CODING/crc_byte.c
|
||||
${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c
|
||||
${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c
|
||||
${OPENAIR1_DIR}/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c
|
||||
${OPENAIR1_DIR}/PHY/CODING/lte_rate_matching.c
|
||||
${OPENAIR1_DIR}/PHY/CODING/rate_matching.c
|
||||
${OPENAIR1_DIR}/PHY/CODING/viterbi.c
|
||||
@@ -1098,8 +1100,8 @@ set (ENB_APP_SRC
|
||||
add_library(L2
|
||||
${L2_SRC}
|
||||
${MAC_SRC}
|
||||
${ENB_APP_SRC}
|
||||
${OPENAIR2_DIR}/RRC/L2_INTERFACE/openair_rrc_L2_interface.c)
|
||||
${ENB_APP_SRC})
|
||||
# ${OPENAIR2_DIR}/RRC/L2_INTERFACE/openair_rrc_L2_interface.c)
|
||||
|
||||
# L3 Libs
|
||||
##########################
|
||||
@@ -2013,38 +2015,4 @@ endforeach(file)
|
||||
ADD_CUSTOM_TARGET(oarf
|
||||
DEPENDS ${OCT_FILES}
|
||||
)
|
||||
|
||||
#CMAKE INSTALL and CPACK
|
||||
|
||||
#INSTALL(PROGRAMS lte-softmodem ${OPENAIR_DIR}/targets DESTINATION bin)
|
||||
#INSTALL(PROGRAMS oaisim ${OPENAIR_DIR}/targets DESTINATION bin)
|
||||
|
||||
|
||||
#SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenAirInterface")
|
||||
#SET(CPACK_PACKAGE_VENDOR "Eurecom")
|
||||
#SET(CPACK_PACKAGE_DESCRIPTION_FILE "${OPENAIR_DIR}/README.txt")
|
||||
#SET(CPACK_RESOURCE_FILE_LICENSE "${OPENAIR_DIR}/COPYING")
|
||||
#SET(CPACK_PACKAGE_VERSION_MAJOR "1")
|
||||
#SET(CPACK_PACKAGE_VERSION_MINOR "1")
|
||||
#SET(CPACK_PACKAGE_VERSION_PATCH "1")
|
||||
|
||||
#SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
|
||||
#SET(CPACK_STRIP_FILES "${OPENAIR_TARGETS}/bin")
|
||||
#SET(CPACK_SOURCE_STRIP_FILES "")
|
||||
|
||||
##debian specific
|
||||
#SET(CPACK_DEBIAN_PACKAGE_NAME "OAI")
|
||||
#SET(CPACK_DEBIAN_PACKAGE_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
|
||||
##dpkg --print-architecture (do not use i686
|
||||
#SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
|
||||
|
||||
#SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12)")
|
||||
#SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libpthread.so.0 libm.so.6 libconfig.so.9 librt.so.1 libcrypt.so.1 libcrypto.so.1.0.0 libnettle.so.4 libsctp.so.1 libc.so.6")
|
||||
#SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "EURECOM-OSA")
|
||||
|
||||
#SET(CPACK_PACKAGE_EXECUTABLES "lte-softmodem" "mme_gw.Rel10" "openair-hss")
|
||||
|
||||
#SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION "OpenAirInterface")
|
||||
#SET(CPACK_DEBIAN_PACKAGE_Section "Beta-Release")
|
||||
|
||||
#INCLUDE(CPack)
|
||||
|
||||
@@ -1,106 +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 False )
|
||||
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 ( 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 False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK False )
|
||||
set ( OAISIM True )
|
||||
set ( OPENAIR1 True )
|
||||
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 False )
|
||||
set ( PDCP_USE_NETLINK_QUEUES False )
|
||||
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 False )
|
||||
set ( RRC_ASN1_VERSION Rel8 )
|
||||
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 "R8" )
|
||||
set ( USER_MODE True )
|
||||
set ( XER_PRINT True )
|
||||
set ( XFORMS False )
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -1,106 +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 False )
|
||||
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 False )
|
||||
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 False )
|
||||
set ( RRC_ASN1_VERSION Rel8 )
|
||||
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 True )
|
||||
set ( XFORMS False )
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -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 True )
|
||||
set ( EMOS False )
|
||||
set ( ENABLE_FXP True )
|
||||
set ( ENABLE_ITTI False )
|
||||
set ( ENABLE_NAS_UE_LOGGING False )
|
||||
set ( ENABLE_NEW_MULTICAST False )
|
||||
set ( ENABLE_PGM_TRANSPORT False )
|
||||
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 False )
|
||||
set ( LINUX_LIST False )
|
||||
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 False )
|
||||
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK False )
|
||||
set ( OAISIM False )
|
||||
set ( OPENAIR1 True )
|
||||
set ( OPENAIR2 True )
|
||||
set ( OPENAIR_EMU False )
|
||||
set ( OPENAIR_LTE True )
|
||||
set ( PBS_SIM False )
|
||||
set ( PC_DSP True )
|
||||
set ( PC_TARGET True )
|
||||
set ( PDCP_MSG_PRINT False )
|
||||
set ( PDCP_USE_NETLINK False )
|
||||
set ( PDCP_USE_NETLINK_QUEUES False )
|
||||
set ( PERFECT_CE False )
|
||||
set ( PHY_ABSTRACTION False )
|
||||
set ( PHY_CONTEXT 1 )
|
||||
set ( PHY_EMUL False )
|
||||
set ( PHYSIM True )
|
||||
set ( PUCCH True )
|
||||
set ( RANDOM_BF False )
|
||||
set ( RF_BOARD OAI_USRP )
|
||||
set ( RLC_STOP_ON_LOST_PDU False )
|
||||
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 False )
|
||||
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 False )
|
||||
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 )
|
||||
set(PACKAGE_NAME "lte-softmodem")
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -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 True )
|
||||
set ( EMOS False )
|
||||
set ( ENABLE_FXP True )
|
||||
set ( ENABLE_ITTI False )
|
||||
set ( ENABLE_NAS_UE_LOGGING False )
|
||||
set ( ENABLE_NEW_MULTICAST False )
|
||||
set ( ENABLE_PGM_TRANSPORT False )
|
||||
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 False )
|
||||
set ( LINUX_LIST False )
|
||||
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 False )
|
||||
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK False )
|
||||
set ( OAISIM False )
|
||||
set ( OPENAIR1 True )
|
||||
set ( OPENAIR2 True )
|
||||
set ( OPENAIR_EMU False )
|
||||
set ( OPENAIR_LTE True )
|
||||
set ( PBS_SIM False )
|
||||
set ( PC_DSP True )
|
||||
set ( PC_TARGET True )
|
||||
set ( PDCP_MSG_PRINT False )
|
||||
set ( PDCP_USE_NETLINK False )
|
||||
set ( PDCP_USE_NETLINK_QUEUES False )
|
||||
set ( PERFECT_CE False )
|
||||
set ( PHY_ABSTRACTION False )
|
||||
set ( PHY_CONTEXT 1 )
|
||||
set ( PHY_EMUL False )
|
||||
set ( PHYSIM True )
|
||||
set ( PUCCH True )
|
||||
set ( RANDOM_BF False )
|
||||
set ( RF_BOARD EXMIMO )
|
||||
set ( RLC_STOP_ON_LOST_PDU False )
|
||||
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 False )
|
||||
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 False )
|
||||
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 )
|
||||
set(PACKAGE_NAME "lte-softmodem")
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -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 True )
|
||||
set ( EMOS False )
|
||||
set ( ENABLE_FXP True )
|
||||
set ( ENABLE_ITTI False )
|
||||
set ( ENABLE_NAS_UE_LOGGING False )
|
||||
set ( ENABLE_NEW_MULTICAST False )
|
||||
set ( ENABLE_PGM_TRANSPORT False )
|
||||
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 False )
|
||||
set ( LINUX_LIST False )
|
||||
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 False )
|
||||
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK False )
|
||||
set ( OAISIM False )
|
||||
set ( OPENAIR1 True )
|
||||
set ( OPENAIR2 True )
|
||||
set ( OPENAIR_EMU False )
|
||||
set ( OPENAIR_LTE True )
|
||||
set ( PBS_SIM False )
|
||||
set ( PC_DSP True )
|
||||
set ( PC_TARGET True )
|
||||
set ( PDCP_MSG_PRINT False )
|
||||
set ( PDCP_USE_NETLINK False )
|
||||
set ( PDCP_USE_NETLINK_QUEUES False )
|
||||
set ( PERFECT_CE False )
|
||||
set ( PHY_ABSTRACTION False )
|
||||
set ( PHY_CONTEXT 1 )
|
||||
set ( PHY_EMUL False )
|
||||
set ( PHYSIM True )
|
||||
set ( PUCCH True )
|
||||
set ( RANDOM_BF False )
|
||||
set ( RF_BOARD EXMIMO )
|
||||
set ( RLC_STOP_ON_LOST_PDU False )
|
||||
set ( RRC_ASN1_VERSION Rel8 )
|
||||
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 False )
|
||||
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 False )
|
||||
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 )
|
||||
set(PACKAGE_NAME "lte-softmodem")
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -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 True )
|
||||
set ( EMOS False )
|
||||
set ( ENABLE_FXP True )
|
||||
set ( ENABLE_ITTI False )
|
||||
set ( ENABLE_NAS_UE_LOGGING False )
|
||||
set ( ENABLE_NEW_MULTICAST False )
|
||||
set ( ENABLE_PGM_TRANSPORT False )
|
||||
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 False )
|
||||
set ( LINUX_LIST False )
|
||||
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 False )
|
||||
set ( OAI_NW_DRIVER_TYPE_ETHERNET False )
|
||||
set ( OAI_NW_DRIVER_USE_NETLINK False )
|
||||
set ( OAISIM False )
|
||||
set ( OPENAIR1 True )
|
||||
set ( OPENAIR2 True )
|
||||
set ( OPENAIR_EMU False )
|
||||
set ( OPENAIR_LTE True )
|
||||
set ( PBS_SIM False )
|
||||
set ( PC_DSP True )
|
||||
set ( PC_TARGET True )
|
||||
set ( PDCP_MSG_PRINT False )
|
||||
set ( PDCP_USE_NETLINK False )
|
||||
set ( PDCP_USE_NETLINK_QUEUES False )
|
||||
set ( PERFECT_CE False )
|
||||
set ( PHY_ABSTRACTION False )
|
||||
set ( PHY_CONTEXT 1 )
|
||||
set ( PHY_EMUL False )
|
||||
set ( PHYSIM True )
|
||||
set ( PUCCH True )
|
||||
set ( RANDOM_BF False )
|
||||
set ( RF_BOARD OAI_USRP )
|
||||
set ( RLC_STOP_ON_LOST_PDU False )
|
||||
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 False )
|
||||
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 False )
|
||||
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 )
|
||||
set(PACKAGE_NAME "lte-softmodem")
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -1,15 +0,0 @@
|
||||
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 Flase)
|
||||
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)
|
||||
@@ -1,75 +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(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_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 False)
|
||||
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 False)
|
||||
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)
|
||||
@@ -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 False )
|
||||
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 False )
|
||||
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 False )
|
||||
set ( PDCP_USE_NETLINK_QUEUES False )
|
||||
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 True )
|
||||
set ( XFORMS False )
|
||||
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -1,74 +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(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_NETLINK True)
|
||||
set(NAS_UE True)
|
||||
set(NEW_FFT True)
|
||||
set(NO_RRM True)
|
||||
set(OAI_EMU True)
|
||||
set(OAI_NW_DRIVER_TYPE_ETHERNET False)
|
||||
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 Rel10)
|
||||
set(RRC_ASN1_VERSION "Rel10")
|
||||
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)
|
||||
@@ -1,106 +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 False )
|
||||
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 False )
|
||||
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 False )
|
||||
set ( RRC_ASN1_VERSION Rel8 )
|
||||
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 True )
|
||||
set ( XFORMS False )
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -1,6 +0,0 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
set(ENABLE_VCD_FIFO False )
|
||||
set(ENABLE_ITTI False )
|
||||
set(RF_BOARD "ETHERNET")
|
||||
set(PACKAGE_NAME "\"rrh_gw\"")
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../CMakeLists.txt)
|
||||
@@ -1,82 +0,0 @@
|
||||
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 )
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,82 +0,0 @@
|
||||
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 )
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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 Flase)
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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 Flase)
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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 Flase)
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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 Flase)
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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 Flase)
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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 Flase)
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,87 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -1,15 +0,0 @@
|
||||
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)
|
||||
@@ -321,13 +321,19 @@ def cleanOldPrograms(oai, programList, CleanUpAluLteBox, ExmimoRfStop):
|
||||
print "Killing old programs..." + result
|
||||
programArray = programList.split()
|
||||
programListJoin = '|'.join(programArray)
|
||||
cmd = " ( date ;echo \"Starting cleaning old programs.. \" ; dmesg|tail ; echo \"Current disk space.. \" ; df -h )>& $HOME/.oai_test_setup_cleanup.log.`hostname` 2>&1 ; sync"
|
||||
result=oai.send_recv(cmd)
|
||||
cmd = cleanupOldProgramsScript + ' ' + '\''+programListJoin+'\''
|
||||
#result = oai.send_recv(cmd)
|
||||
#print result
|
||||
result = oai.send_expect_false(cmd, 'Match found', False)
|
||||
print "Looking for old programs..." + result
|
||||
res=oai.send_recv(CleanUpAluLteBox, True)
|
||||
res = oai.send_recv(ExmimoRfStop, False)
|
||||
cmd = "( " + ExmimoRfStop + " ) >> $HOME/.oai_test_setup_cleanup.log.`hostname` ; sync "
|
||||
res=oai.send_recv(cmd, False, timeout=600)
|
||||
#res = oai.send_recv(ExmimoRfStop, False)
|
||||
cmd = " ( date ;echo \"Finished cleaning old programs.. \" ; dmesg | tail)>> $HOME/.oai_test_setup_cleanup.log.`hostname` 2>&1 ; sync"
|
||||
res=oai.send_recv(cmd)
|
||||
|
||||
# \brief Class thread to launch a generic command on remote machine
|
||||
# \param threadID number of thread (for book keeping)
|
||||
@@ -1514,6 +1520,23 @@ for testcase in testcaseList:
|
||||
threadListGlobal = wait_testcaseclass_generic_threads(threadListGlobal, Timeout_execution)
|
||||
#cleanOldProgramsAllMachines(oai_list, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop)
|
||||
handle_testcaseclass_softmodem (testcase, CleanUpOldProgs, logdirOAI5GRepo, logdirOpenaircnRepo, MachineList, user, pw, CleanUpAluLteBox, ExmimoRfStop, nruns_lte_softmodem, Timeout_cmd )
|
||||
|
||||
#The lines below are copied from below to trace the failure of some of the machines in test setup. These lines below need to be removed in long term
|
||||
print "Creating xml file for overall results..."
|
||||
cmd = "cat $OPENAIR_DIR/cmake_targets/autotests/log/*/*.xml > $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml "
|
||||
res=os.system(cmd)
|
||||
os.system('sync')
|
||||
print "Now copying files to NFS Share"
|
||||
oai_localhost = openair('localdomain','localhost')
|
||||
oai_localhost.connect(user,pw)
|
||||
cmd = ' rm -fr ' + NFSTestsResultsDir + ' ; mkdir -p ' + NFSTestsResultsDir
|
||||
res = oai_localhost.send_recv(cmd)
|
||||
print "Deleting NFSTestResults Dir..." + res
|
||||
|
||||
print "Copying files from GilabCI Runner Machine : " + host + " .locallogdir = " + locallogdir + ", NFSTestsResultsDir = " + NFSTestsResultsDir
|
||||
SSHSessionWrapper('localhost', user, None, pw , NFSTestsResultsDir , locallogdir, "put_all")
|
||||
oai_localhost.disconnect()
|
||||
|
||||
elif (testcaseclass == 'compilation'):
|
||||
threadListGlobal = handle_testcaseclass_generic (testcasename, threadListGlobal, CleanUpOldProgs, logdirOAI5GRepo, MachineListGeneric, user, pw, CleanUpAluLteBox,Timeout_execution, ExmimoRfStop)
|
||||
elif (testcaseclass == 'execution'):
|
||||
@@ -1551,5 +1574,6 @@ print "Deleting NFSTestResults Dir..." + res
|
||||
|
||||
print "Copying files from GilabCI Runner Machine : " + host + " .locallogdir = " + locallogdir + ", NFSTestsResultsDir = " + NFSTestsResultsDir
|
||||
SSHSessionWrapper('localhost', user, None, pw , NFSTestsResultsDir , locallogdir, "put_all")
|
||||
oai_localhost.disconnect()
|
||||
|
||||
sys.exit()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -141,6 +141,7 @@ def send_command (cmd, response, timeout):
|
||||
error = error + ' In function: ' + sys._getframe().f_code.co_name + ': *** Caught exception: ' + str(e.__class__) + " : " + str( e)
|
||||
error = error + traceback.format_exc()
|
||||
print error
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
def start_ue () :
|
||||
@@ -200,10 +201,12 @@ def reset_ue():
|
||||
ProductId=res[0][3]
|
||||
usb_dir= find_usb_path(VendorId, ProductId)
|
||||
print "Bandrich 4G LTE Adapter found in..." + usb_dir
|
||||
print "Sleeping now for 45 seconds...please wait..."
|
||||
cmd = "sudo sh -c \"echo 0 > " + usb_dir + "/authorized\""
|
||||
os.system(cmd + " ; sleep 15" )
|
||||
cmd = "sudo sh -c \"echo 1 > " + usb_dir + "/authorized\""
|
||||
os.system(cmd + " ; sleep 30" )
|
||||
stop_ue()
|
||||
|
||||
i=1
|
||||
gw='192.172.0.1'
|
||||
@@ -218,6 +221,7 @@ while i < len(sys.argv):
|
||||
print 'Using Serial port : ' + serial_port
|
||||
stop_ue()
|
||||
elif arg == '--reset-ue' :
|
||||
find_open_port()
|
||||
reset_ue()
|
||||
elif arg == '-gw' :
|
||||
gw = sys.argv[i+1]
|
||||
|
||||
@@ -143,6 +143,7 @@ def send_command (cmd, response, timeout):
|
||||
error = error + ' In function: ' + sys._getframe().f_code.co_name + ': *** Caught exception: ' + str(e.__class__) + " : " + str( e)
|
||||
error = error + traceback.format_exc()
|
||||
print error
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
def start_ue () :
|
||||
@@ -211,6 +212,7 @@ def reset_ue():
|
||||
os.system(cmd + " ; sleep 15" )
|
||||
cmd = "sudo sh -c \"echo 1 > " + usb_dir + "/authorized\""
|
||||
os.system(cmd + " ; sleep 30" )
|
||||
stop_ue()
|
||||
|
||||
i=1
|
||||
gw='192.172.0.1'
|
||||
@@ -225,6 +227,7 @@ while i < len(sys.argv):
|
||||
print 'Using Serial port : ' + serial_port
|
||||
stop_ue()
|
||||
elif arg == '--reset-ue' :
|
||||
find_open_port()
|
||||
reset_ue()
|
||||
elif arg == '-gw' :
|
||||
gw = sys.argv[i+1]
|
||||
|
||||
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
#******************************************************************************
|
||||
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
# *******************************************************************************/
|
||||
# \author Navid Nikaein, Rohit Gupta
|
||||
|
||||
#arg1 timeout to wait before running the script
|
||||
#arg2 interface
|
||||
#arg3 iperf arguments
|
||||
|
||||
args=($*)
|
||||
timeout=${args[0]}
|
||||
iface=${args[1]}
|
||||
iperf3_args=(${args[@]:2})
|
||||
|
||||
#array=${1:-1}
|
||||
echo "args = ${args[@]}"
|
||||
echo "timeout = $timeout"
|
||||
echo "iface = $iface"
|
||||
echo "iperf3_args = ${iperf3_args[@]}"
|
||||
|
||||
sleep $timeout
|
||||
|
||||
while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done ; sleep 5
|
||||
|
||||
iperf3 ${iperf3_args[@]}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
#******************************************************************************
|
||||
|
||||
# OpenAirInterface
|
||||
# Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
# OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
|
||||
# OpenAirInterface is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with OpenAirInterface.The full GNU General Public License is
|
||||
# included in this distribution in the file called "COPYING". If not,
|
||||
# see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Contact Information
|
||||
# OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
# OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
# *******************************************************************************/
|
||||
# \author Navid Nikaein, Rohit Gupta
|
||||
|
||||
#arg1 timeout to wait before running the script
|
||||
#arg2 interface
|
||||
#arg3 iperf arguments
|
||||
|
||||
args=($*)
|
||||
timeout=${args[0]}
|
||||
device_id=${args[1]}
|
||||
iperf3_args=(${args[@]:2})
|
||||
|
||||
#array=${1:-1}
|
||||
echo "args = ${args[@]}"
|
||||
echo "timeout = $timeout"
|
||||
echo "device_id = $device_id"
|
||||
echo "iperf_args = ${iperf_args[@]}"
|
||||
|
||||
sleep $timeout
|
||||
|
||||
while true ; do
|
||||
cmd=`sudo adb -s $device_id shell netcfg |grep 192.`
|
||||
if [ -z "$cmd" ]; then
|
||||
echo "Wating for UE to connect and get IP Address..."
|
||||
sleep 1
|
||||
else
|
||||
echo "UE is now connected. IP Address settings are... $cmd"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Starting iperf now..."
|
||||
|
||||
sudo adb -s $device_id shell /data/local/tmp/iperf3 ${iperf_args[@]}
|
||||
@@ -54,9 +54,9 @@ file.close()
|
||||
if keyword == 'mme_ip_address':
|
||||
replacement_text = keyword + ' = ( { ' + replacement_text + ' } ) ; '
|
||||
string = re.sub(r"mme_ip_address\s*=\s*\(([^\$]+?)\)\s*;", replacement_text, string, re.M)
|
||||
elif keyword == 'IPV4_LIST':
|
||||
elif keyword == 'IPV4_LIST' or keyword=='GUMMEI_LIST' or keyword == 'TAI_LIST':
|
||||
replacement_text = keyword + ' = ( ' + replacement_text + ' ) ; '
|
||||
string = re.sub(r"IPV4_LIST\s*=\s*\(([^\$]+?)\)\s*;", replacement_text, string, re.M)
|
||||
string = re.sub(r"%s\s*=\s*\(([^\$]+?)\)\s*;" % keyword, replacement_text, string, re.M)
|
||||
elif keyword == 'rrh_gw_config':
|
||||
replacement_text = keyword + ' = ( { ' + replacement_text + ' } ) ; '
|
||||
string = re.sub(r"rrh_gw_config\s*=\s*\(([^\$]+?)\)\s*;", replacement_text, string, re.M)
|
||||
|
||||
+36
-17
@@ -45,8 +45,9 @@ MSC_GEN="False"
|
||||
XFORMS="True"
|
||||
PRINT_STATS="False"
|
||||
VCD_TIMING="False"
|
||||
LOWLATENCY_FLAG_USER="False"
|
||||
FORCE_LOWLATENCY_FLAG_USER=""
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
|
||||
CPU_AFFINITY_FLAG_USER="True" #Only valid when lowlatecy flag is set to False
|
||||
REL="Rel10"
|
||||
HW="None"
|
||||
TP="None"
|
||||
@@ -124,7 +125,9 @@ Options
|
||||
--disable-deadline
|
||||
Disables deadline scheduler of Linux kernel (>=3.14.x).
|
||||
--enable-deadline
|
||||
Disables deadline scheduler of Linux kernel (>=3.14.x).
|
||||
Enable deadline scheduler of Linux kernel (>=3.14.x).
|
||||
--disable-cpu-affinity
|
||||
Disables CPU Affinity between UHD/TX/RX Threads (Valid only when deadline scheduler is disabled). By defaulT, CPU Affinity is enabled when not using deadline scheduler. It is enabled only with >2 CPUs. For eNB, CPU_0-> Device library (UHD), CPU_1->TX Threads, CPU_2...CPU_MAX->Rx Threads. For UE, CPU_0->Device Library(UHD), CPU_1..CPU_MAX -> All the UE threads
|
||||
Usage (first build):
|
||||
oaisim (eNB + UE): ./build_oai -I -g --oaisim -x --install-system-files
|
||||
Eurecom EXMIMO + COTS UE : ./build_oai -I -g --eNB -x --install-system-files
|
||||
@@ -256,13 +259,17 @@ function main() {
|
||||
echo_info "Will build doxygen support"
|
||||
shift;;
|
||||
--disable-deadline)
|
||||
FORCE_LOWLATENCY_FLAG_USER="False"
|
||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
echo_info "Disabling the usage of deadline scheduler"
|
||||
shift 1;;
|
||||
--enable-deadline)
|
||||
FORCE_LOWLATENCY_FLAG_USER="True"
|
||||
FORCE_DEADLINE_SCHEDULER_FLAG_USER="True"
|
||||
echo_info "Enabling the usage of deadline scheduler"
|
||||
shift 1;;
|
||||
--disable-cpu-affinity)
|
||||
CPU_AFFINITY_FLAG_USER="False"
|
||||
echo_info "Disabling CPU Affinity (only valid when not using deadline scheduler)"
|
||||
shift 1;;
|
||||
-h | --help)
|
||||
print_help
|
||||
exit 1;;
|
||||
@@ -307,29 +314,34 @@ function main() {
|
||||
#By default: USRP: disable,
|
||||
#By default: BLADERF: enable,
|
||||
#By default: EXMIMO: enable
|
||||
if [ "$FORCE_LOWLATENCY_FLAG_USER" = "" ]; then
|
||||
if [ "$FORCE_DEADLINE_SCHEDULER_FLAG_USER" = "" ]; then
|
||||
if [ "$HW" = "EXMIMO" ] ; then
|
||||
LOWLATENCY_FLAG_USER="True"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
elif [ "$HW" = "ETHERNET" ] ; then
|
||||
LOWLATENCY_FLAG_USER="True"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="True"
|
||||
elif [ "$HW" = "OAI_USRP" ] ; then
|
||||
LOWLATENCY_FLAG_USER="False"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
elif [ "$HW" = "OAI_BLADERF" ] ; then
|
||||
LOWLATENCY_FLAG_USER="False"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
elif [ "$HW" = "OAI_LMSSDR" ] ; then
|
||||
LOWLATENCY_FLAG_USER="False"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
elif [ "$HW" = "None" ] ; then
|
||||
LOWLATENCY_FLAG_USER="False"
|
||||
DEADLINE_SCHEDULER_FLAG_USER="False"
|
||||
else
|
||||
echo_error "Unknown HW type $HW. Exiting now..."
|
||||
exit
|
||||
fi
|
||||
else
|
||||
LOWLATENCY_FLAG_USER=$FORCE_LOWLATENCY_FLAG_USER
|
||||
DEADLINE_SCHEDULER_FLAG_USER=$FORCE_DEADLINE_SCHEDULER_FLAG_USER
|
||||
fi
|
||||
|
||||
echo_info "Flags for Deadline scheduler: $LOWLATENCY_FLAG_USER"
|
||||
#Disable CPU Affinity for deadline scheduler
|
||||
if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "True" ] ; then
|
||||
CPU_AFFINITY_FLAG_USER="False"
|
||||
fi
|
||||
|
||||
echo_info "Flags for Deadline scheduler: $DEADLINE_SCHEDULER_FLAG_USER"
|
||||
echo_info "Flags for CPU Affinity: $CPU_AFFINITY_FLAG_USER"
|
||||
|
||||
############################################
|
||||
# setting and printing OAI envs, we should check here
|
||||
@@ -420,7 +432,8 @@ function main() {
|
||||
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
|
||||
echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
|
||||
echo "set(PACKAGE_NAME \"${lte_exec}\")" >> $cmake_file
|
||||
echo "set (LOWLATENCY \"${LOWLATENCY_FLAG_USER}\" )" >>$cmake_file
|
||||
echo "set (DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >>$cmake_file
|
||||
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd $DIR/$lte_build_dir/build
|
||||
cmake ..
|
||||
@@ -449,7 +462,7 @@ function main() {
|
||||
compilations \
|
||||
$lte_build_dir ue_ip \
|
||||
CMakeFiles/ue_ip/ue_ip.ko $dbin/ue_ip.ko
|
||||
|
||||
|
||||
# mkdir -p $DIR/at_commands/build
|
||||
# cd $DIR/at_commands/build
|
||||
# cmake ..
|
||||
@@ -472,6 +485,11 @@ function main() {
|
||||
# generate USIM data
|
||||
if [ -f $dbin/nvram ]; then
|
||||
install_nas_tools $dbin $dconf
|
||||
echo_info "Copying UE specific part to $DIR/$lte_build_dir/build"
|
||||
cp -Rvf $dbin/.ue_emm.nvram $DIR/$lte_build_dir/build
|
||||
cp -Rvf $dbin/.ue.nvram $DIR/$lte_build_dir/build
|
||||
cp -Rvf $dbin/.usim.nvram $DIR/$lte_build_dir/build
|
||||
|
||||
else
|
||||
echo_warning "not generated UE NAS files: binaries not found"
|
||||
fi
|
||||
@@ -642,7 +660,8 @@ function main() {
|
||||
echo "set(RF_BOARD \"${HW}\")" >> $cmake_file
|
||||
echo "set(TRANSP_PRO \"${TP}\")" >> $cmake_file
|
||||
echo 'set(PACKAGE_NAME "\"rrh_gw\"")' >> $cmake_file
|
||||
echo "set (LOWLATENCY \"${LOWLATENCY_FLAG_USER}\" )" >>$cmake_file
|
||||
echo "set (DEADLINE_SCHEDULER \"${DEADLINE_SCHEDULER_FLAG_USER}\" )" >>$cmake_file
|
||||
echo "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
|
||||
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
|
||||
cd $DIR/$rrh_build_dir/build
|
||||
cmake ..
|
||||
|
||||
@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
|
||||
set ( LINUX True )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD True )
|
||||
set ( LOWLATENCY False )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MESSAGE_CHART_GENERATOR False)
|
||||
|
||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
||||
set ( LINUX True )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD True )
|
||||
set ( LOWLATENCY False )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MESSAGE_CHART_GENERATOR False)
|
||||
|
||||
@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
|
||||
set ( LINUX False )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD False )
|
||||
set ( LOWLATENCY False )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MIH_C_MEDIEVAL_EXTENSIONS False )
|
||||
|
||||
@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
|
||||
set ( LINUX True )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD 1 )
|
||||
set ( LOWLATENCY False )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MESSAGE_CHART_GENERATOR False )
|
||||
|
||||
@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
|
||||
set ( LINUX True )
|
||||
set ( LOCALIZATION False )
|
||||
set ( LOG_NO_THREAD True )
|
||||
set ( LOWLATENCY False )
|
||||
set ( DEADLINE_SCHEDULER False )
|
||||
set ( MAC_CONTEXT 1 )
|
||||
set ( MAX_NUM_CCs 1 )
|
||||
set ( MESSAGE_CHART_GENERATOR False)
|
||||
|
||||
@@ -293,7 +293,8 @@ check_install_oai_software() {
|
||||
python-numpy \
|
||||
sshpass \
|
||||
libxslt1-dev \
|
||||
android-tools-adb
|
||||
android-tools-adb \
|
||||
iperf3
|
||||
|
||||
$SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
|
||||
|
||||
|
||||
@@ -8,8 +8,12 @@ if [ "$OPENAIR_DIR" == "" ]; then
|
||||
fi
|
||||
sudo -E bash -c 'echo 3 > /proc/sys/vm/drop_caches'
|
||||
|
||||
#load the module
|
||||
sudo -E $OPENAIR_DIR/cmake_targets/tools/init_exmimo2
|
||||
exmimo_mod=`lsmod |grep openair_rf`
|
||||
#load the module only if absent to avoid kernel crashes
|
||||
if [ -z "$exmimo_mod" ]
|
||||
then
|
||||
sudo -E $OPENAIR_DIR/cmake_targets/tools/init_exmimo2
|
||||
fi
|
||||
|
||||
#now we stop the card from transmitting anything
|
||||
cd $OPENAIR_DIR/targets/bin
|
||||
|
||||
@@ -1,674 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
@@ -1,2 +0,0 @@
|
||||
#MAC_XFACE_OBJS = $(OPENAIR1_TOP)/MAC_INTERFACE/register.o
|
||||
MAC_XFACE_OBJS += $(OPENAIR1_TOP)/MAC_INTERFACE/init.o
|
||||
@@ -1,42 +0,0 @@
|
||||
/*******************************************************************************
|
||||
OpenAirInterface
|
||||
Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
OpenAirInterface is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenAirInterface.The full GNU General Public License is
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact Information
|
||||
OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
*******************************************************************************/
|
||||
/*________________________mac_defs.h________________________
|
||||
|
||||
Authors : Hicham Anouar, Raymond Knopp
|
||||
Company : EURECOM
|
||||
Emails : anouar@eurecom.fr, knopp@eurecom.fr
|
||||
________________________________________________________________*/
|
||||
|
||||
#ifndef __MAC_INTERFACE_DEFS_H__
|
||||
#define __MAC_INTERFACE_DEFS_H__
|
||||
|
||||
|
||||
#include "PHY_INTERFACE/defs.h"
|
||||
|
||||
#endif
|
||||
@@ -1,55 +0,0 @@
|
||||
/*******************************************************************************
|
||||
OpenAirInterface
|
||||
Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
OpenAirInterface is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenAirInterface.The full GNU General Public License is
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact Information
|
||||
OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
*******************************************************************************/
|
||||
/*________________________mac_extern.h________________________
|
||||
|
||||
Authors : Hicham Anouar, Raymond Knopp
|
||||
Company : EURECOM
|
||||
Emails : anouar@eurecom.fr, knopp@eurecom.fr
|
||||
________________________________________________________________*/
|
||||
|
||||
|
||||
/*! \file mac_extern.h
|
||||
* \brief Generic mac interface external variable definitions
|
||||
* \author R. Knopp
|
||||
* \date March 2006
|
||||
* \note
|
||||
* \warning
|
||||
* @ingroup macxface
|
||||
*/
|
||||
|
||||
#ifndef __MAC_INTERFACE_EXTERN_H__
|
||||
#define __MAC_INTERFACE_EXTERN_H__
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
|
||||
extern MAC_xface *mac_xface;
|
||||
|
||||
|
||||
#endif /*__MAC_INTERFACE_EXTERN_H__ */
|
||||
@@ -1,76 +0,0 @@
|
||||
/*******************************************************************************
|
||||
OpenAirInterface
|
||||
Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
OpenAirInterface is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenAirInterface.The full GNU General Public License is
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact Information
|
||||
OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
*******************************************************************************/
|
||||
/*________________________mac_init.c________________________
|
||||
|
||||
Authors : Hicham Anouar, Raymond Knopp
|
||||
Company : EURECOM
|
||||
Emails : anouar@eurecom.fr, knopp@eurecom.fr
|
||||
________________________________________________________________*/
|
||||
|
||||
/*!\brief Initilization and reconfiguration routines for generic MAC interface */
|
||||
|
||||
#include "defs.h"
|
||||
#include "extern.h"
|
||||
#include "SCHED/defs.h"
|
||||
|
||||
int mac_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
#ifndef USER_MODE
|
||||
// mac_xface->macphy_init();
|
||||
mac_xface->macphy_exit = openair_sched_exit;
|
||||
#else
|
||||
mac_xface->macphy_exit=(void (*)(void)) exit;
|
||||
#endif
|
||||
|
||||
/* this is done in cbmimo1_fileops
|
||||
#ifdef OPENAIR2
|
||||
mac_xface->macphy_init();
|
||||
#endif //OPENAIR2
|
||||
*/
|
||||
|
||||
return(1);
|
||||
}
|
||||
|
||||
void mac_cleanup(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void mac_resynch(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
#ifdef OPENAIR2
|
||||
EXPORT_SYMBOL(frame);
|
||||
#endif //OPENAIR2
|
||||
*/
|
||||
@@ -1,121 +0,0 @@
|
||||
/*******************************************************************************
|
||||
OpenAirInterface
|
||||
Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
OpenAirInterface is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenAirInterface.The full GNU General Public License is
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact Information
|
||||
OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
*******************************************************************************/
|
||||
/*________________________mac_register.c________________________
|
||||
|
||||
Authors : Hicham Anouar, Raymond Knopp
|
||||
Company : EURECOM
|
||||
Emails : anouar@eurecom.fr, knopp@eurecom.fr
|
||||
________________________________________________________________*/
|
||||
|
||||
|
||||
/*!\brief Registration routines for generic MAC interface. Register/unregister a MAC.
|
||||
Upon registration, the MAC retrieves the transport channel (MAC_tch) data structure and provides the
|
||||
pointer to the macphy_scheduler() routine*/
|
||||
#define __NO_VERSION__
|
||||
|
||||
#undef __PHY_IMPLEMENTATION_DEFS_H__
|
||||
|
||||
#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
|
||||
#include "defs.h"
|
||||
#include "extern.h"
|
||||
#include "SCHED/extern.h"
|
||||
|
||||
#ifndef USER_MODE
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void dummy_macphy_scheduler(uint8_t last_slot)
|
||||
{
|
||||
//if (last_slot == 0)
|
||||
// mac_xface->frame++;
|
||||
|
||||
msg("[OPENAIR][MAC XFACE] in dummy_macphy_scheduler(): MAC no yet registered!\n");
|
||||
|
||||
//#ifdef EMOS
|
||||
// phy_procedures(last_slot);
|
||||
//#endif
|
||||
|
||||
}
|
||||
|
||||
void dummy_macphy_setparams(void *params)
|
||||
{
|
||||
msg("[OPENAIR][MAC XFACE] dummy_macphy_setparams(): no MAC registered!\n");
|
||||
}
|
||||
|
||||
void dummy_macphy_init(void )
|
||||
{
|
||||
msg("[OPENAIR][MAC XFACE] dummy_macphy_init(): no MAC registered!\n");
|
||||
}
|
||||
|
||||
MAC_xface *mac_register(void macphy_scheduler(uint8_t last_slot), void macphy_setparams(void *),void macphy_init(void ),void mrbch_phy_sync_failure(unsigned char,unsigned char),
|
||||
void chbch_phy_sync_success(unsigned char,unsigned char))
|
||||
{
|
||||
|
||||
if (openair_daq_vars.mac_registered == 0) {
|
||||
|
||||
msg("[OPENAIR][MAC XFACE] Registering new MAC interface at %p, scheduler %p, setparams at %p, init at %p\n",
|
||||
mac_xface,macphy_scheduler,macphy_setparams,macphy_init);
|
||||
mac_xface->macphy_scheduler = macphy_scheduler;
|
||||
mac_xface->macphy_setparams = macphy_setparams;
|
||||
mac_xface->macphy_init = macphy_init;
|
||||
#ifndef PC_TARGET
|
||||
// mac_xface->ublaze_mac_xface = ublaze_mac_xface;
|
||||
#endif
|
||||
openair_daq_vars.mac_registered=1;
|
||||
return(mac_xface);
|
||||
} else {
|
||||
msg("[OPENAIR][MAC XFACE] MAC interface already registered, aborting ...\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
int mac_unregister(MAC_xface *mac_xface_rx)
|
||||
{
|
||||
|
||||
if (mac_xface_rx == mac_xface) {
|
||||
msg("[OPENAIR][MAC XFACE] Unregistering MAC interface\n");
|
||||
mac_xface->macphy_scheduler = dummy_macphy_scheduler;
|
||||
mac_xface->macphy_setparams = dummy_macphy_setparams;
|
||||
mac_xface->macphy_init = dummy_macphy_init;
|
||||
openair_daq_vars.mac_registered=0;
|
||||
return(0);
|
||||
} else {
|
||||
msg("[OPENAIR][MAC XFACE] Not the right interface descriptor pointer!!!, aborting ...\n");
|
||||
return (-1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EXPORT_SYMBOL(mac_register);
|
||||
EXPORT_SYMBOL(mac_unregister);
|
||||
#endif //USER_MODE
|
||||
@@ -1,52 +0,0 @@
|
||||
/*******************************************************************************
|
||||
OpenAirInterface
|
||||
Copyright(c) 1999 - 2014 Eurecom
|
||||
|
||||
OpenAirInterface is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
|
||||
OpenAirInterface is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenAirInterface.The full GNU General Public License is
|
||||
included in this distribution in the file called "COPYING". If not,
|
||||
see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Contact Information
|
||||
OpenAirInterface Admin: openair_admin@eurecom.fr
|
||||
OpenAirInterface Tech : openair_tech@eurecom.fr
|
||||
OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
|
||||
|
||||
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
*******************************************************************************/
|
||||
/*________________________mac_vars.h________________________
|
||||
|
||||
Authors : Hicham Anouar, Raymond Knopp
|
||||
Company : EURECOM
|
||||
Emails : anouar@eurecom.fr, knopp@eurecom.fr
|
||||
________________________________________________________________*/
|
||||
|
||||
|
||||
/*! \file mac_vars.h
|
||||
* \brief generic mac interface variable definitions
|
||||
* \author R. Knopp
|
||||
* \version 1
|
||||
* \date March 2006
|
||||
* @ingroup macxface
|
||||
*/
|
||||
|
||||
#ifndef __MAC_INTERFACE_VARS_H__
|
||||
#define __MAC_INTERFACE_VARS_H__
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
MAC_xface *mac_xface;
|
||||
|
||||
#endif //__MAC_INTERFACE_VARS_H__
|
||||
@@ -37,6 +37,7 @@
|
||||
#include "extern_3GPPinterleaver.h"
|
||||
#else
|
||||
#include "vars.h"
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
@@ -48,6 +49,7 @@
|
||||
#define print_shorts(s,x) printf("%s %x,%x,%x,%x,%x,%x,%x,%x\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7])
|
||||
#define print_ints(s,x) printf("%s %x %x %x %x\n",s,(x)[0],(x)[1],(x)[2],(x)[3])
|
||||
|
||||
#define print_bytes2(s,x) printf("%s %x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x,%x\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7],(x)[8],(x)[9],(x)[10],(x)[11],(x)[12],(x)[13],(x)[14],(x)[15],(x)[16],(x)[17],(x)[18],(x)[19],(x)[20],(x)[21],(x)[22],(x)[23],(x)[24],(x)[25],(x)[26],(x)[27],(x)[28],(x)[29],(x)[30],(x)[31])
|
||||
|
||||
//#define DEBUG_TURBO_ENCODER 1
|
||||
#define CALLGRIND 1
|
||||
@@ -57,16 +59,12 @@ unsigned long long threegpplte_interleaver_tmp;
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
struct treillis {
|
||||
union {
|
||||
__m64 systematic_64[3];
|
||||
char systematic_8[24];
|
||||
};
|
||||
union {
|
||||
__m64 parity1_64[3];
|
||||
char parity1_8[24];
|
||||
__m64 systematic_andp1_64[3];
|
||||
uint8_t systematic_andp1_8[24];
|
||||
};
|
||||
union {
|
||||
__m64 parity2_64[3];
|
||||
char parity2_8[24];
|
||||
uint8_t parity2_8[24];
|
||||
};
|
||||
int exit_state;
|
||||
} __attribute__ ((aligned(64)));
|
||||
@@ -75,12 +73,8 @@ struct treillis {
|
||||
|
||||
struct treillis {
|
||||
union {
|
||||
uint8x8_t systematic_64[3];
|
||||
char systematic_8[24];
|
||||
}__attribute__((aligned(64)));
|
||||
union {
|
||||
uint8x8_t parity1_64[3];
|
||||
char parity1_8[24];
|
||||
uint8x8_t systematic_andp1_64[3];
|
||||
char systematic_andp1_8[24];
|
||||
}__attribute__((aligned(64)));
|
||||
union {
|
||||
uint8x8_t parity2_64[3];
|
||||
@@ -91,6 +85,7 @@ struct treillis {
|
||||
#endif
|
||||
|
||||
struct treillis all_treillis[8][256];
|
||||
|
||||
int all_treillis_initialized=0;
|
||||
|
||||
static inline unsigned char threegpplte_rsc(unsigned char input,unsigned char *state)
|
||||
@@ -116,18 +111,20 @@ void treillis_table_init(void)
|
||||
unsigned char v, current_state;
|
||||
|
||||
// clear all_treillis
|
||||
for (i=0; i<8; i++)
|
||||
for (i=0; i<8; i++) {
|
||||
bzero( all_treillis[i], sizeof(all_treillis[0]) );
|
||||
}
|
||||
|
||||
for (i=0; i<8; i++) { //all possible initial states
|
||||
for (j=0; j<=255; j++) { // all possible values of a byte
|
||||
current_state=i;
|
||||
|
||||
for (b=0; b<8 ; b++ ) { // pre-compute the image of the byte j in _m128i vector right place
|
||||
all_treillis[i][j].systematic_8[b*3]= (j&(1<<(7-b)))>>(7-b);
|
||||
v=threegpplte_rsc( all_treillis[i][j].systematic_8[b*3] ,
|
||||
all_treillis[i][j].systematic_andp1_8[b*3]= (j&(1<<(7-b)))>>(7-b);
|
||||
v=threegpplte_rsc( all_treillis[i][j].systematic_andp1_8[b*3] ,
|
||||
¤t_state);
|
||||
all_treillis[i][j].parity1_8[b*3+1]=v; // for the yparity1
|
||||
all_treillis[i][j].systematic_andp1_8[b*3+1]=v; // for the yparity1
|
||||
// all_treillis[i][j].parity1_8[b*3+1]=v; // for the yparity1
|
||||
all_treillis[i][j].parity2_8[b*3+2]=v; // for the yparity2
|
||||
}
|
||||
|
||||
@@ -143,9 +140,10 @@ void treillis_table_init(void)
|
||||
char interleave_compact_byte(short * base_interleaver,unsigned char * input, unsigned char * output, int n)
|
||||
{
|
||||
|
||||
char expandInput[768*8] __attribute__((aligned(16)));
|
||||
char expandInput[768*8] __attribute__((aligned(32)));
|
||||
int i,loop=n>>4;
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
#ifndef __AVX2__
|
||||
__m128i *i_128=(__m128i *)input, *o_128=(__m128i*)expandInput;
|
||||
__m128i tmp1, tmp2, tmp3, tmp4;
|
||||
__m128i BIT_MASK = _mm_set_epi8( 0b00000001,
|
||||
@@ -164,6 +162,43 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns
|
||||
0b00100000,
|
||||
0b01000000,
|
||||
0b10000000);
|
||||
|
||||
#else
|
||||
__m256i *i_256=(__m256i *)input, *o_256=(__m256i*)expandInput;
|
||||
__m256i tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
|
||||
__m256i BIT_MASK = _mm256_set_epi8( 0b00000001,
|
||||
0b00000010,
|
||||
0b00000100,
|
||||
0b00001000,
|
||||
0b00010000,
|
||||
0b00100000,
|
||||
0b01000000,
|
||||
0b10000000,
|
||||
0b00000001,
|
||||
0b00000010,
|
||||
0b00000100,
|
||||
0b00001000,
|
||||
0b00010000,
|
||||
0b00100000,
|
||||
0b01000000,
|
||||
0b10000000,
|
||||
0b00000001,
|
||||
0b00000010,
|
||||
0b00000100,
|
||||
0b00001000,
|
||||
0b00010000,
|
||||
0b00100000,
|
||||
0b01000000,
|
||||
0b10000000,
|
||||
0b00000001,
|
||||
0b00000010,
|
||||
0b00000100,
|
||||
0b00001000,
|
||||
0b00010000,
|
||||
0b00100000,
|
||||
0b01000000,
|
||||
0b10000000);
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
uint8x16_t *i_128=(uint8x16_t *)input, *o_128=(uint8x16_t *)expandInput;
|
||||
uint8x16_t tmp1,tmp2;
|
||||
@@ -187,46 +222,126 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns
|
||||
0b00000010,
|
||||
0b00000001};
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __AVX2__
|
||||
if ((n&15) > 0)
|
||||
loop++;
|
||||
#else
|
||||
loop=n>>5;
|
||||
if ((n&31) > 0)
|
||||
loop++;
|
||||
#endif
|
||||
|
||||
|
||||
for (i=0; i<loop ; i++ ) {
|
||||
/* int cur_byte=i<<3; */
|
||||
/* for (b=0;b<8;b++) */
|
||||
/* expandInput[cur_byte+b] = (input[i]&(1<<(7-b)))>>(7-b); */
|
||||
// int cur_byte=i<<3;
|
||||
// for (b=0;b<8;b++)
|
||||
// expandInput[cur_byte+b] = (input[i]&(1<<(7-b)))>>(7-b);
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
tmp1=_mm_load_si128(i_128++);
|
||||
tmp2=_mm_unpacklo_epi8(tmp1,tmp1);
|
||||
tmp3=_mm_unpacklo_epi16(tmp2,tmp2);
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3);
|
||||
#ifndef __AVX2__
|
||||
tmp1=_mm_load_si128(i_128++); // tmp1 = B0,B1,...,B15
|
||||
tmp2=_mm_unpacklo_epi8(tmp1,tmp1); // tmp2 = B0,B0,B1,B1,...,B7,B7
|
||||
tmp3=_mm_unpacklo_epi16(tmp2,tmp2); // tmp3 = B0,B0,B0,B0,B1,B1,B1,B1,B2,B2,B2,B2,B3,B3,B3,B3
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 - B0,B0,B0,B0,B0,B0,B0,B0,B1,B1,B1,B1,B1,B1,B1,B1
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);
|
||||
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3);
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 - B2,B2,B2,B2,B2,B2,B2,B2,B3,B3,B3,B3,B3,B3,B3,B3
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);;
|
||||
|
||||
tmp3=_mm_unpackhi_epi16(tmp2,tmp2);
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3);
|
||||
tmp3=_mm_unpackhi_epi16(tmp2,tmp2); // tmp3 = B4,B4,B4,B4,B5,B5,B5,B5,B6,B6,B6,B6,B7,B7,B7,B7
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 - B4,B4,B4,B4,B4,B4,B4,B4,B5,B5,B5,B5,B5,B5,B5,B5
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);;
|
||||
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3);
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 - B6,B6,B6,B6,B6,B6,B6,B6,B7,B7,B7,B7,B7,B7,B7,B7
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);;
|
||||
|
||||
tmp2=_mm_unpackhi_epi8(tmp1,tmp1);
|
||||
tmp3=_mm_unpacklo_epi16(tmp2,tmp2);
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3);
|
||||
tmp2=_mm_unpackhi_epi8(tmp1,tmp1); // tmp2 = B8,B8,B9,B9,...,B15,B15
|
||||
tmp3=_mm_unpacklo_epi16(tmp2,tmp2); // tmp3 = B8,B8,B8,B8,B9,B9,B9,B9,B10,B10,B10,B10,B11,B11,B11,B11
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 = B8,B8,B8,B8,B8,B8,B8,B8,B9,B9,B9,B9,B9,B9,B9,B9
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);;
|
||||
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3);
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 = B10,B10,B10,B10,B10,B10,B10,B10,B11,B11,B11,B11,B11,B11,B11,B11
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);;
|
||||
|
||||
tmp3=_mm_unpackhi_epi16(tmp2,tmp2);
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3);
|
||||
tmp3=_mm_unpackhi_epi16(tmp2,tmp2); // tmp3 = B12,B12,B12,B12,B13,B13,B13,B13,B14,B14,B14,B14,B15,B15,B15,B15
|
||||
tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 = B12,B12,B12,B12,B12,B12,B12,B12,B13,B13,B13,B13,B13,B13,B13,B13
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);;
|
||||
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3);
|
||||
tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 = B14,B14,B14,B14,B14,B14,B14,B14,B15,B15,B15,B15,B15,B15,B15,B15
|
||||
*o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);;
|
||||
#else
|
||||
tmp1=_mm256_load_si256(i_256++); // tmp1 = B0,B1,...,B15,...,B31
|
||||
//print_bytes2("in",(uint8_t*)&tmp1);
|
||||
tmp2=_mm256_unpacklo_epi8(tmp1,tmp1); // tmp2 = B0,B0,B1,B1,...,B7,B7,B16,B16,B17,B17,...,B23,B23
|
||||
tmp3=_mm256_unpacklo_epi16(tmp2,tmp2); // tmp3 = B0,B0,B0,B0,B1,B1,B1,B1,B2,B2,B2,B2,B3,B3,B3,B3,B16,B16,B16,B16,...,B19,B19,B19,B19
|
||||
tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B0,B0,B0,B0,B0,B0,B0,B0,B1,B1,B1,B1,B1,B1,B1,B1,B16,B16...,B17..,B17
|
||||
tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B2,B2,B2,B2,B2,B2,B2,B2,B3,B3,B3,B3,B3,B3,B3,B3,B18...,B18,B19,...,B19
|
||||
tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B0 B1 B2 B3
|
||||
tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B16 B17 B18 B19
|
||||
//print_bytes2("tmp2",(uint8_t*)&tmp2);
|
||||
//print_bytes2("tmp3",(uint8_t*)&tmp3);
|
||||
//print_bytes2("tmp4",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp5",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp6",(uint8_t*)&tmp6);
|
||||
//print_bytes2("tmp7",(uint8_t*)&tmp7);
|
||||
o_256[0]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK);
|
||||
//print_bytes2("out",(uint8_t*)o_256);
|
||||
o_256[4]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);;
|
||||
//print_bytes2("out",(uint8_t*)(o_256+4));
|
||||
|
||||
tmp3=_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B4,B4,B4,B4,B5,B5,B5,B5,B6,B6,B6,B6,B7,B7,B7,B7,B20,B20,B20,B20,...,B23,B23,B23,B23
|
||||
tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B4,B4,B4,B4,B4,B4,B4,B4,B5,B5,B5,B5,B5,B5,B5,B5,B20,B20...,B21..,B21
|
||||
tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B6,B6,B6,B6,B6,B6,B6,B6,B7,B7,B7,B7,B7,B7,B7,B7,B22...,B22,B23,...,B23
|
||||
tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B4 B5 B6 B7
|
||||
tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B20 B21 B22 B23
|
||||
//print_bytes2("tmp2",(uint8_t*)&tmp2);
|
||||
//print_bytes2("tmp3",(uint8_t*)&tmp3);
|
||||
//print_bytes2("tmp4",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp5",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp6",(uint8_t*)&tmp6);
|
||||
//print_bytes2("tmp7",(uint8_t*)&tmp7);
|
||||
o_256[1]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK);
|
||||
//print_bytes2("out",(uint8_t*)(o_256+1));
|
||||
o_256[5]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);;
|
||||
//print_bytes2("out",(uint8_t*)(o_256+4));
|
||||
|
||||
tmp2=_mm256_unpackhi_epi8(tmp1,tmp1); // tmp2 = B8 B9 B10 B11 B12 B13 B14 B15 B25 B26 B27 B28 B29 B30 B31
|
||||
tmp3=_mm256_unpacklo_epi16(tmp2,tmp2); // tmp3 = B8,B9,B10,B11,B26,B27,B28,B29
|
||||
tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B8,B9,B26,B27
|
||||
tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B10,B11,B28,B29
|
||||
tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B8 B9 B10 B11
|
||||
tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B26 B27 B28 B29
|
||||
//print_bytes2("tmp2",(uint8_t*)&tmp2);
|
||||
//print_bytes2("tmp3",(uint8_t*)&tmp3);
|
||||
//print_bytes2("tmp4",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp5",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp6",(uint8_t*)&tmp6);
|
||||
//print_bytes2("tmp7",(uint8_t*)&tmp7);
|
||||
o_256[2]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK);
|
||||
//print_bytes2("out",(uint8_t*)(o_256+2));
|
||||
o_256[6]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);;
|
||||
//print_bytes2("out",(uint8_t*)(o_256+4));
|
||||
|
||||
tmp3=_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B12 B13 B14 B15 B28 B29 B30 B31
|
||||
tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 = B12 B13 B28 B29
|
||||
tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 = B14 B15 B30 B31
|
||||
tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B12 B13 B14 B15
|
||||
tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B28 B29 B30 B31
|
||||
//print_bytes2("tmp2",(uint8_t*)&tmp2);
|
||||
//print_bytes2("tmp3",(uint8_t*)&tmp3);
|
||||
//print_bytes2("tmp4",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp5",(uint8_t*)&tmp4);
|
||||
//print_bytes2("tmp6",(uint8_t*)&tmp6);
|
||||
//print_bytes2("tmp7",(uint8_t*)&tmp7);
|
||||
o_256[3]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp6,BIT_MASK),BIT_MASK);
|
||||
//print_bytes2("out",(uint8_t*)(o_256+3));
|
||||
o_256[7]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);;
|
||||
//print_bytes2("out",(uint8_t*)(o_256+7));
|
||||
|
||||
o_256+=8;
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
tmp1=vld1q_u8((uint8_t*)i_128);
|
||||
//print_bytes("tmp1:",(uint8_t*)&tmp1);
|
||||
@@ -302,11 +417,17 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns
|
||||
i_128++;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
short * ptr_intl=base_interleaver;
|
||||
#if defined(__x86_64) || defined(__i386__)
|
||||
#ifndef __AVX2__
|
||||
__m128i tmp;
|
||||
uint16_t *systematic2_ptr=(unsigned short *) output;
|
||||
uint16_t *systematic2_ptr=(uint16_t *) output;
|
||||
#else
|
||||
__m256i tmp;
|
||||
uint32_t *systematic2_ptr=(uint32_t *) output;
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
uint8x16_t tmp;
|
||||
const uint8_t __attribute__ ((aligned (16))) _Powers[16]=
|
||||
@@ -316,11 +437,15 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns
|
||||
uint8x16_t Powers= vld1q_u8(_Powers);
|
||||
uint8_t *systematic2_ptr=(uint8_t *) output;
|
||||
#endif
|
||||
#ifndef __AVX2__
|
||||
int input_length_words=n>>1;
|
||||
|
||||
#else
|
||||
int input_length_words=n>>2;
|
||||
#endif
|
||||
for ( i=0; i< input_length_words ; i ++ ) {
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
#ifndef __AVX2__
|
||||
tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],7);
|
||||
tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],6);
|
||||
tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],5);
|
||||
@@ -338,6 +463,45 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns
|
||||
tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+1);
|
||||
tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],8+0);
|
||||
*systematic2_ptr++=(unsigned short)_mm_movemask_epi8(tmp);
|
||||
#else
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],7);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],6);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],5);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],4);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],3);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],2);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],1);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],0);
|
||||
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+7);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+6);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+5);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+4);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+3);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+2);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+1);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+0);
|
||||
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+7);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+6);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+5);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+4);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+3);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+2);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+1);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+0);
|
||||
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+7);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+6);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+5);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+4);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+3);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+2);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+1);
|
||||
tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+0);
|
||||
|
||||
*systematic2_ptr++=(unsigned int)_mm256_movemask_epi8(tmp);
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,7);
|
||||
tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,6);
|
||||
@@ -391,8 +555,9 @@ void threegpplte_turbo_encoder(unsigned char *input,
|
||||
unsigned short input_length_bits = input_length_bytes<<3;
|
||||
short * base_interleaver;
|
||||
|
||||
if ( all_treillis_initialized == 0 )
|
||||
if ( all_treillis_initialized == 0 ) {
|
||||
treillis_table_init();
|
||||
}
|
||||
|
||||
// look for f1 and f2 precomputed interleaver values
|
||||
for (i=0; i < 188 && f1f2mat[i].nb_bits != input_length_bits; i++);
|
||||
@@ -405,7 +570,7 @@ void threegpplte_turbo_encoder(unsigned char *input,
|
||||
}
|
||||
|
||||
|
||||
unsigned char systematic2[768];
|
||||
unsigned char systematic2[768] __attribute__((aligned(32)));
|
||||
interleave_compact_byte(base_interleaver,input,systematic2,input_length_bytes);
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
@@ -419,22 +584,26 @@ void threegpplte_turbo_encoder(unsigned char *input,
|
||||
for ( state0=state1=i=0 ; i<input_length_bytes; i++ ) {
|
||||
cur_s1=input[i];
|
||||
cur_s2=systematic2[i];
|
||||
|
||||
|
||||
for ( code_rate=0; code_rate<3; code_rate++) {
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
*ptr_output++ = _mm_add_pi8(all_treillis[state0][cur_s1].systematic_64[code_rate],
|
||||
_mm_add_pi8(all_treillis[state0][cur_s1].parity1_64[code_rate],
|
||||
all_treillis[state1][cur_s2].parity2_64[code_rate]));
|
||||
/*
|
||||
*ptr_output++ = _mm_add_pi8(all_treillis[state0][cur_s1].systematic_64[code_rate],
|
||||
_mm_add_pi8(all_treillis[state0][cur_s1].parity1_64[code_rate],
|
||||
all_treillis[state1][cur_s2].parity2_64[code_rate]));
|
||||
*/
|
||||
*ptr_output++ = _mm_add_pi8(all_treillis[state0][cur_s1].systematic_andp1_64[code_rate],
|
||||
all_treillis[state1][cur_s2].parity2_64[code_rate]);
|
||||
|
||||
|
||||
#elif defined(__arm__)
|
||||
uint8x8_t ptmp = vadd_u8(all_treillis[state0][cur_s1].parity1_64[code_rate],
|
||||
all_treillis[state1][cur_s2].parity2_64[code_rate]);
|
||||
*ptr_output++ = vadd_u8(all_treillis[state0][cur_s1].systematic_64[code_rate],
|
||||
ptmp);
|
||||
*ptr_output++ = vadd_u8(all_treillis[state0][cur_s1].systematic_andp1_64[code_rate],
|
||||
all_treillis[state0][cur_s1].parity2_64[code_rate]);
|
||||
#endif
|
||||
}
|
||||
|
||||
state0=all_treillis[state0][cur_s1].exit_state;
|
||||
state1=all_treillis[state1][cur_s2].exit_state;
|
||||
}
|
||||
|
||||
state0=all_treillis[state0][cur_s1].exit_state;
|
||||
state1=all_treillis[state1][cur_s2].exit_state;
|
||||
}
|
||||
|
||||
x=output+(input_length_bits*3);
|
||||
@@ -485,7 +654,7 @@ void threegpplte_turbo_encoder(unsigned char *input,
|
||||
int main(int argc,char **argv)
|
||||
{
|
||||
|
||||
unsigned char input[INPUT_LENGTH+16],state,state2;
|
||||
unsigned char input[INPUT_LENGTH+32],state,state2;
|
||||
unsigned char output[12+(3*(INPUT_LENGTH<<3))],x,z;
|
||||
int i;
|
||||
unsigned char out;
|
||||
@@ -510,7 +679,7 @@ int main(int argc,char **argv)
|
||||
memset((void*)input,0,INPUT_LENGTH+16);
|
||||
for (i=0; i<INPUT_LENGTH; i++) {
|
||||
input[i] = i*219;
|
||||
printf("Input %d : %x\n",i,input[i]);
|
||||
printf("Input %d : %d\n",i,input[i]);
|
||||
}
|
||||
|
||||
threegpplte_turbo_encoder(&input[0],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -63,11 +63,17 @@
|
||||
#include "mex.h"
|
||||
#endif
|
||||
|
||||
|
||||
#define print_shorts(s,x) printf("%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7])
|
||||
|
||||
//#define DEBUG_LOGMAP
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
#define print_shorts(s,x) fprintf(fdsse4,"%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7])
|
||||
#endif
|
||||
|
||||
#undef __AVX2__
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
FILE *fdsse4;
|
||||
#endif
|
||||
|
||||
typedef int16_t llr_t; // internal decoder LLR data is 16-bit fixed
|
||||
typedef int16_t channel_t;
|
||||
@@ -99,7 +105,7 @@ void log_map16(llr_t* systematic,
|
||||
{
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
msg("log_map, frame_length %d\n",frame_length);
|
||||
fprintf(fdsse4,"log_map, frame_length %d\n",frame_length);
|
||||
#endif
|
||||
|
||||
start_meas(gamma_stats) ;
|
||||
@@ -135,22 +141,35 @@ void compute_gamma16(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
msg("compute_gamma, %p,%p,%p,%p,framelength %d\n",m11,m10,systematic,y_parity,frame_length);
|
||||
fprintf(fdsse4,"compute_gamma (sse_16bit), %p,%p,%p,%p,framelength %d\n",m11,m10,systematic,y_parity,frame_length);
|
||||
#endif
|
||||
|
||||
#ifndef __AVX2__
|
||||
K1=frame_length>>3;
|
||||
#else
|
||||
if ((frame_length&15) > 0)
|
||||
K1=(frame_length+1)>>4;
|
||||
else
|
||||
K1=frame_length>>4;
|
||||
#endif
|
||||
|
||||
for (k=0; k<K1; k++) {
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
#ifndef __AVX2__
|
||||
m11_128[k] = _mm_srai_epi16(_mm_adds_epi16(systematic128[k],y_parity128[k]),1);
|
||||
m10_128[k] = _mm_srai_epi16(_mm_subs_epi16(systematic128[k],y_parity128[k]),1);
|
||||
#else
|
||||
((__m256i*)m11_128)[k] = _mm256_srai_epi16(_mm256_adds_epi16(((__m256i*)systematic128)[k],((__m256i*)y_parity128)[k]),1);
|
||||
// ((__m256i*)m10_128)[k] = _mm256_srai_epi16(_mm256_subs_epi16(((__m256i*)y_parity128)[k],((__m256i*)systematic128)[k]),1);
|
||||
((__m256i*)m10_128)[k] = _mm256_srai_epi16(_mm256_subs_epi16(((__m256i*)systematic128)[k],((__m256i*)y_parity128)[k]),1);
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
m11_128[k] = vhaddq_s16(systematic128[k],y_parity128[k]);
|
||||
m10_128[k] = vhsubq_s16(systematic128[k],y_parity128[k]);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
printf("Loop index k, m11,m10\n");
|
||||
fprintf(fdsse4,"Loop index k %d\n", k);
|
||||
print_shorts("sys",(int16_t*)&systematic128[k]);
|
||||
print_shorts("yp",(int16_t*)&y_parity128[k]);
|
||||
print_shorts("m11",(int16_t*)&m11_128[k]);
|
||||
@@ -158,14 +177,28 @@ void compute_gamma16(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity
|
||||
#endif
|
||||
}
|
||||
|
||||
k=frame_length>>3;
|
||||
// Termination
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
m11_128[k] = _mm_srai_epi16(_mm_adds_epi16(systematic128[k+term_flag],y_parity128[k]),1);
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
m10_128[k] = _mm_srai_epi16(_mm_subs_epi16(systematic128[k+term_flag],y_parity128[k]),1);
|
||||
#else
|
||||
m10_128[k] = _mm_srai_epi16(_mm_subs_epi16(y_parity128[k],systematic128[k+term_flag]),1);
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
m11_128[k] = vhaddq_s16(systematic128[k+term_flag],y_parity128[k]);
|
||||
m10_128[k] = vhsubq_s16(systematic128[k+term_flag],y_parity128[k]);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"Loop index k %d (term flag %d)\n", k,term_flag);
|
||||
print_shorts("sys",(int16_t*)&systematic128[k]);
|
||||
print_shorts("yp",(int16_t*)&y_parity128[k]);
|
||||
print_shorts("m11",(int16_t*)&m11_128[k]);
|
||||
print_shorts("m10",(int16_t*)&m10_128[k]);
|
||||
#endif
|
||||
}
|
||||
|
||||
#define L 40
|
||||
@@ -174,11 +207,21 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
{
|
||||
int k,l,l2,K1,rerun_flag=0;
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i *alpha128=(__m128i *)alpha,*alpha_ptr;
|
||||
__m128i a0,a1,a2,a3,a4,a5,a6,a7,*m11p,*m10p;
|
||||
__m128i *alpha128=(__m128i *)alpha,*alpha_ptr,*m11p,*m10p;
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
__m128i a0,a1,a2,a3,a4,a5,a6,a7;
|
||||
__m128i m_b0,m_b1,m_b2,m_b3,m_b4,m_b5,m_b6,m_b7;
|
||||
__m128i new0,new1,new2,new3,new4,new5,new6,new7;
|
||||
__m128i alpha_max;
|
||||
#else
|
||||
__m256i *alpha256=(__m256i *)alpha,*alpha_ptr256,m11,m10;
|
||||
__m256i a01,a23,a45,a67,a02,a13,a64,a75;
|
||||
__m256i m_b01,m_b23,m_b45,m_b67,new01,new23,new45,new67;
|
||||
__m256i m11m10_256;
|
||||
__m256i alpha_max;
|
||||
#endif
|
||||
|
||||
#elif defined(__arm__)
|
||||
int16x8_t *alpha128=(int16x8_t *)alpha,*alpha_ptr;
|
||||
int16x8_t a0,a1,a2,a3,a4,a5,a6,a7,*m11p,*m10p;
|
||||
@@ -188,10 +231,16 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
#endif
|
||||
l2 = L>>3;
|
||||
K1 = (frame_length>>3);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"compute_alpha (sse_16bit)\n");
|
||||
#endif
|
||||
for (l=K1;; l=l2,rerun_flag=1) {
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
alpha128 = (__m128i *)alpha;
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
alpha256 = (__m256i *)alpha;
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
alpha128 = (int16x8_t *)alpha;
|
||||
#endif
|
||||
@@ -218,7 +267,7 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
alpha128[7] = vdupq_n_s16(-MAX/2);
|
||||
#endif
|
||||
#ifdef DEBUG_LOGMAP
|
||||
printf("Initial alpha\n");
|
||||
fprintf(fdsse4,"Initial alpha\n");
|
||||
print_shorts("a0",(int16_t*)&alpha128[0]);
|
||||
print_shorts("a1",(int16_t*)&alpha128[1]);
|
||||
print_shorts("a2",(int16_t*)&alpha128[2]);
|
||||
@@ -258,7 +307,7 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
alpha[48] = -MAX/2;
|
||||
alpha[56] = -MAX/2;
|
||||
#ifdef DEBUG_LOGMAP
|
||||
printf("Second run\n");
|
||||
fprintf(fdsse4,"Second run\n");
|
||||
print_shorts("a0",(int16_t*)&alpha128[0]);
|
||||
print_shorts("a1",(int16_t*)&alpha128[1]);
|
||||
print_shorts("a2",(int16_t*)&alpha128[2]);
|
||||
@@ -272,6 +321,11 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
}
|
||||
|
||||
alpha_ptr = &alpha128[0];
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
alpha_ptr256 = &alpha256[0];
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
m11p = (__m128i*)m_11;
|
||||
m10p = (__m128i*)m_10;
|
||||
@@ -284,6 +338,8 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
k++) {
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
a1=_mm_load_si128(&alpha_ptr[1]);
|
||||
a3=_mm_load_si128(&alpha_ptr[3]);
|
||||
a5=_mm_load_si128(&alpha_ptr[5]);
|
||||
@@ -328,6 +384,37 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
alpha_max = _mm_max_epi16(alpha_max,a5);
|
||||
alpha_max = _mm_max_epi16(alpha_max,a6);
|
||||
alpha_max = _mm_max_epi16(alpha_max,a7);
|
||||
#else
|
||||
a02=_mm256_load_si256(&alpha_ptr256[0]);
|
||||
a13=_mm256_load_si256(&alpha_ptr256[1]);
|
||||
a64=_mm256_load_si256(&alpha_ptr256[2]);
|
||||
a75=_mm256_load_si256(&alpha_ptr256[3]);
|
||||
m11m10_256 = _mm256_insertf128_si256(m11m10_256,*m11p,0);
|
||||
m11m10_256 = _mm256_insertf128_si256(m11m10_256,*m10p,1);
|
||||
|
||||
|
||||
m_b01 = _mm256_adds_epi16(a13,m11m10_256); //negative m10
|
||||
m_b23 = _mm256_subs_epi16(a75,m11m10_256); //negative m10
|
||||
m_b45 = _mm256_subs_epi16(a13,m11m10_256); //negative m10
|
||||
m_b67 = _mm256_adds_epi16(a75,m11m10_256); //negative m10
|
||||
|
||||
new01 = _mm256_subs_epi16(a02,m11m10_256); //negative m10
|
||||
new23 = _mm256_adds_epi16(a64,m11m10_256); //negative m10
|
||||
new45 = _mm256_adds_epi16(a02,m11m10_256); //negative m10
|
||||
new67 = _mm256_subs_epi16(a64,m11m10_256); //negative m10
|
||||
|
||||
a01 = _mm256_max_epi16(m_b01,new01);
|
||||
a23 = _mm256_max_epi16(m_b23,new23);
|
||||
a45 = _mm256_max_epi16(m_b45,new45);
|
||||
a67 = _mm256_max_epi16(m_b67,new67);
|
||||
|
||||
alpha_max = _mm256_max_epi16(a01,a23);
|
||||
alpha_max = _mm256_max_epi16(alpha_max,a45);
|
||||
alpha_max = _mm256_max_epi16(alpha_max,a67);
|
||||
alpha_max = _mm256_max_epi16(alpha_max,_mm256_permutevar8x32_epi32(alpha_max,_mm256_set_epi32(3,2,1,0,7,6,5,4)));
|
||||
|
||||
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
m_b0 = vqaddq_s16(alpha_ptr[1],*m11p); // m11
|
||||
m_b4 = vqsubq_s16(alpha_ptr[1],*m11p); // m00=-m11
|
||||
@@ -367,9 +454,15 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
#endif
|
||||
|
||||
alpha_ptr+=8;
|
||||
//#ifdef __AVX2__
|
||||
#if 0
|
||||
alpha_ptr256+=4;
|
||||
#endif
|
||||
m11p++;
|
||||
m10p++;
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
alpha_ptr[0] = _mm_subs_epi16(a0,alpha_max);
|
||||
alpha_ptr[1] = _mm_subs_epi16(a1,alpha_max);
|
||||
alpha_ptr[2] = _mm_subs_epi16(a2,alpha_max);
|
||||
@@ -378,6 +471,18 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
alpha_ptr[5] = _mm_subs_epi16(a5,alpha_max);
|
||||
alpha_ptr[6] = _mm_subs_epi16(a6,alpha_max);
|
||||
alpha_ptr[7] = _mm_subs_epi16(a7,alpha_max);
|
||||
#else
|
||||
|
||||
a01 = _mm256_subs_epi16(a01,alpha_max);
|
||||
a23 = _mm256_subs_epi16(a23,alpha_max);
|
||||
a45 = _mm256_subs_epi16(a45,alpha_max);
|
||||
a67 = _mm256_subs_epi16(a67,alpha_max);
|
||||
|
||||
alpha_ptr256[0] = _mm256_permute2x128_si256(a01,a23,0x20); //a02
|
||||
alpha_ptr256[1] = _mm256_permute2x128_si256(a01,a23,0x13); //a13
|
||||
alpha_ptr256[2] = _mm256_permute2x128_si256(a45,a67,0x02); //a64
|
||||
alpha_ptr256[3] = _mm256_permute2x128_si256(a45,a67,0x31); //a75
|
||||
#endif
|
||||
#elif defined(__arm__)
|
||||
alpha_ptr[0] = vqsubq_s16(a0,alpha_max);
|
||||
alpha_ptr[1] = vqsubq_s16(a1,alpha_max);
|
||||
@@ -390,7 +495,7 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
printf("Loop index %d, mb\n",k);
|
||||
fprintf(fdsse4,"Loop index %d\n",k);
|
||||
print_shorts("mb0",(int16_t*)&m_b0);
|
||||
print_shorts("mb1",(int16_t*)&m_b1);
|
||||
print_shorts("mb2",(int16_t*)&m_b2);
|
||||
@@ -400,7 +505,7 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
print_shorts("mb6",(int16_t*)&m_b6);
|
||||
print_shorts("mb7",(int16_t*)&m_b7);
|
||||
|
||||
printf("Loop index %d, new\n",k);
|
||||
fprintf(fdsse4,"Loop index %d, new\n",k);
|
||||
print_shorts("new0",(int16_t*)&new0);
|
||||
print_shorts("new1",(int16_t*)&new1);
|
||||
print_shorts("new2",(int16_t*)&new2);
|
||||
@@ -410,7 +515,7 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
print_shorts("new6",(int16_t*)&new6);
|
||||
print_shorts("new7",(int16_t*)&new7);
|
||||
|
||||
printf("Loop index %d, after max\n",k);
|
||||
fprintf(fdsse4,"Loop index %d, after max\n",k);
|
||||
print_shorts("a0",(int16_t*)&a0);
|
||||
print_shorts("a1",(int16_t*)&a1);
|
||||
print_shorts("a2",(int16_t*)&a2);
|
||||
@@ -420,7 +525,7 @@ void compute_alpha16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned s
|
||||
print_shorts("a6",(int16_t*)&a6);
|
||||
print_shorts("a7",(int16_t*)&a7);
|
||||
|
||||
printf("Loop index %d\n",k);
|
||||
fprintf(fdsse4,"Loop index %d\n",k);
|
||||
print_shorts("a0",(int16_t*)&alpha_ptr[0]);
|
||||
print_shorts("a1",(int16_t*)&alpha_ptr[1]);
|
||||
print_shorts("a2",(int16_t*)&alpha_ptr[2]);
|
||||
@@ -463,25 +568,33 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
llr_t beta0,beta1;
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
msg("compute_beta, %p,%p,%p,%p,framelength %d,F %d\n",
|
||||
beta,m_11,m_10,alpha,frame_length,F);
|
||||
fprintf(fdsse4,"compute_beta, %p,%p,%p,%p,framelength %d,F %d\n",
|
||||
beta,m_11,m_10,alpha,frame_length,F);
|
||||
#endif
|
||||
|
||||
|
||||
// termination for beta initialization
|
||||
|
||||
// printf("beta init: offset8 %d\n",offset8_flag);
|
||||
// fprintf(fdsse4,"beta init: offset8 %d\n",offset8_flag);
|
||||
m11=(int16_t)m_11[2+frame_length];
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
m10=(int16_t)m_10[2+frame_length];
|
||||
|
||||
// printf("m11,m10 %d,%d\n",m11,m10);
|
||||
#else
|
||||
m10=-(int16_t)m_10[2+frame_length];
|
||||
#endif
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"m11,m10 %d,%d\n",m11,m10);
|
||||
#endif
|
||||
|
||||
beta0 = -m11;//M0T_TERM;
|
||||
beta1 = m11;//M1T_TERM;
|
||||
m11=(int16_t)m_11[1+frame_length];
|
||||
m10=(int16_t)m_10[1+frame_length];
|
||||
|
||||
// printf("m11,m10 %d,%d\n",m11,m10);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"m11,m10 %d,%d\n",m11,m10);
|
||||
#endif
|
||||
|
||||
beta0_2 = beta0-m11;//+M0T_TERM;
|
||||
beta1_2 = beta0+m11;//+M1T_TERM;
|
||||
@@ -489,8 +602,9 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
beta3_2 = beta1-m10;//+M3T_TERM;
|
||||
m11=(int16_t)m_11[frame_length];
|
||||
m10=(int16_t)m_10[frame_length];
|
||||
// printf("m11,m10 %d,%d (%p)\n",m11,m10,m_11+frame_length);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"m11,m10 %d,%d\n",m11,m10);
|
||||
#endif
|
||||
beta0_16 = beta0_2-m11;//+M0T_TERM;
|
||||
beta1_16 = beta0_2+m11;//+M1T_TERM;
|
||||
beta2_16 = beta1_2+m10;//+M2T_TERM;
|
||||
@@ -536,6 +650,17 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
beta_ptr[5] = alpha128[5+(frame_length)];
|
||||
beta_ptr[6] = alpha128[6+(frame_length)];
|
||||
beta_ptr[7] = alpha128[7+(frame_length)];
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"beta init \n");
|
||||
print_shorts("b0",(int16_t*)&beta_ptr[0]);
|
||||
print_shorts("b1",(int16_t*)&beta_ptr[1]);
|
||||
print_shorts("b2",(int16_t*)&beta_ptr[2]);
|
||||
print_shorts("b3",(int16_t*)&beta_ptr[3]);
|
||||
print_shorts("b4",(int16_t*)&beta_ptr[4]);
|
||||
print_shorts("b5",(int16_t*)&beta_ptr[5]);
|
||||
print_shorts("b6",(int16_t*)&beta_ptr[6]);
|
||||
print_shorts("b7",(int16_t*)&beta_ptr[7]);
|
||||
#endif
|
||||
} else {
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
beta128 = (__m128i*)&beta[0];
|
||||
@@ -558,6 +683,17 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
beta_ptr[5] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[5],16); beta_ptr[5] = vsetq_lane_s16(beta[43],beta_ptr[5],4);
|
||||
beta_ptr[6] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[6],16); beta_ptr[6] = vsetq_lane_s16(beta[51],beta_ptr[6],4);
|
||||
beta_ptr[7] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[7],16); beta_ptr[7] = vsetq_lane_s16(beta[59],beta_ptr[7],4);
|
||||
#endif
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"beta init (second run) \n");
|
||||
print_shorts("b0",(int16_t*)&beta_ptr[0]);
|
||||
print_shorts("b1",(int16_t*)&beta_ptr[1]);
|
||||
print_shorts("b2",(int16_t*)&beta_ptr[2]);
|
||||
print_shorts("b3",(int16_t*)&beta_ptr[3]);
|
||||
print_shorts("b4",(int16_t*)&beta_ptr[4]);
|
||||
print_shorts("b5",(int16_t*)&beta_ptr[5]);
|
||||
print_shorts("b6",(int16_t*)&beta_ptr[6]);
|
||||
print_shorts("b7",(int16_t*)&beta_ptr[7]);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -582,6 +718,17 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
beta_ptr[7] = vsetq_lane_s16(beta7_16,beta_ptr[7],7);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"beta init (after insert) \n");
|
||||
print_shorts("b0",(int16_t*)&beta_ptr[0]);
|
||||
print_shorts("b1",(int16_t*)&beta_ptr[1]);
|
||||
print_shorts("b2",(int16_t*)&beta_ptr[2]);
|
||||
print_shorts("b3",(int16_t*)&beta_ptr[3]);
|
||||
print_shorts("b4",(int16_t*)&beta_ptr[4]);
|
||||
print_shorts("b5",(int16_t*)&beta_ptr[5]);
|
||||
print_shorts("b6",(int16_t*)&beta_ptr[6]);
|
||||
print_shorts("b7",(int16_t*)&beta_ptr[7]);
|
||||
#endif
|
||||
int loopval=((rerun_flag==0)?0:((frame_length-L)>>3));
|
||||
|
||||
for (k=(frame_length>>3)-1; k>=loopval; k--) {
|
||||
@@ -589,6 +736,9 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
m11_128=((__m128i*)m_11)[k];
|
||||
m10_128=((__m128i*)m_10)[k];
|
||||
|
||||
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
m_b0 = _mm_adds_epi16(beta_ptr[4],m11_128); //m11
|
||||
m_b1 = _mm_subs_epi16(beta_ptr[4],m11_128); //m00
|
||||
m_b2 = _mm_subs_epi16(beta_ptr[5],m10_128); //m01
|
||||
@@ -598,6 +748,7 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
m_b6 = _mm_subs_epi16(beta_ptr[7],m11_128); //m00
|
||||
m_b7 = _mm_adds_epi16(beta_ptr[7],m11_128); //m11
|
||||
|
||||
|
||||
new0 = _mm_subs_epi16(beta_ptr[0],m11_128); //m00
|
||||
new1 = _mm_adds_epi16(beta_ptr[0],m11_128); //m11
|
||||
new2 = _mm_adds_epi16(beta_ptr[1],m10_128); //m10
|
||||
@@ -607,8 +758,29 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
new6 = _mm_adds_epi16(beta_ptr[3],m11_128); //m11
|
||||
new7 = _mm_subs_epi16(beta_ptr[3],m11_128); //m00
|
||||
|
||||
#else
|
||||
b01=_mm256_load_si256(&((_m256i*)beta_ptr)[0]);
|
||||
b23=_mm256_load_si256(&((_m256i*)beta_ptr)[1]);
|
||||
b45=_mm256_load_si256(&((_m256i*)beta_ptr)[2]);
|
||||
b67=_mm256_load_si256(&((_m256i*)beta_ptr)[3]);
|
||||
m11m10_256 = _mm256_insertf128_si256(m11m10_256,m11_128,0);
|
||||
m11m10_256 = _mm256_insertf128_si256(m11m10_256,m10_128,1);
|
||||
|
||||
|
||||
m_b02 = _mm256_adds_epi16(b45,m11m10_256); //negative m10
|
||||
m_b13 = _mm256_subs_epi16(b45,m11m10_256); //negative m10
|
||||
m_b64 = _mm256_subs_epi16(b67,m11m10_256); //negative m10
|
||||
m_b75 = _mm256_adds_epi16(b67,m11m10_256); //negative m10
|
||||
new02 = _mm256_subs_epi16(b01,m11m10_256); //negative m10
|
||||
new13 = _mm256_adds_epi16(b01,m11m10_256); //negative m10
|
||||
new64 = _mm256_adds_epi16(b23,m11m10_256); //negative m10
|
||||
new75 = _mm256_subs_epi16(b24,m11m10_256); //negative m10
|
||||
#endif
|
||||
|
||||
beta_ptr-=8;
|
||||
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
beta_ptr[0] = _mm_max_epi16(m_b0,new0);
|
||||
beta_ptr[1] = _mm_max_epi16(m_b1,new1);
|
||||
beta_ptr[2] = _mm_max_epi16(m_b2,new2);
|
||||
@@ -634,6 +806,28 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
beta_ptr[5] = _mm_subs_epi16(beta_ptr[5],beta_max);
|
||||
beta_ptr[6] = _mm_subs_epi16(beta_ptr[6],beta_max);
|
||||
beta_ptr[7] = _mm_subs_epi16(beta_ptr[7],beta_max);
|
||||
#else
|
||||
b02 = _mm256_max_epi16(m_b02,new02);
|
||||
b13 = _mm256_max_epi16(m_b13,new13);
|
||||
b64 = _mm256_max_epi16(m_b64,new64);
|
||||
b75 = _mm256_max_epi16(m_b75,new75);
|
||||
|
||||
beta_max = _mm256_max_epi16(b02,b13);
|
||||
beta_max = _mm256_max_epi16(beta_max,b64);
|
||||
beta_max = _mm256_max_epi16(beta_max,b75);
|
||||
beta_max = _mm256_max_epi16(beta_max,_mm256_permutevar8x32_epi32(betaa_max,_mm256_set_epi32(3,2,1,0,7,6,5,4)));
|
||||
|
||||
b02 = _mm256_subs_epi16(b02,beta_max);
|
||||
b13 = _mm256_subs_epi16(b13,beta_max);
|
||||
b64 = _mm256_subs_epi16(b64,beta_max);
|
||||
b75 = _mm256_subs_epi16(b75,beta_max);
|
||||
|
||||
((_m256i*)beta_ptr)[0]) = _mm256_permute2x128_si256(b02,b13,0x02); //b01
|
||||
((_m256i*)beta_ptr)[1]) = _mm256_permute2x128_si256(b02,b13,0x31); //b23
|
||||
((_m256i*)beta_ptr)[2]) = _mm256_permute2x128_si256(b64,b75,0x13); //b45
|
||||
((_m256i*)beta_ptr)[3]) = _mm256_permute2x128_si256(b64,b75,0x20); //b67
|
||||
#endif
|
||||
|
||||
#elif defined(__arm__)
|
||||
m11_128=((int16x8_t*)m_11)[k];
|
||||
m10_128=((int16x8_t*)m_10)[k];
|
||||
@@ -684,6 +878,18 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh
|
||||
beta_ptr[7] = vqsubq_s16(beta_ptr[7],beta_max);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"Loop index %d, mb\n",k);
|
||||
fprintf(fdsse4,"beta init (after max)\n");
|
||||
print_shorts("b0",(int16_t*)&beta_ptr[0]);
|
||||
print_shorts("b1",(int16_t*)&beta_ptr[1]);
|
||||
print_shorts("b2",(int16_t*)&beta_ptr[2]);
|
||||
print_shorts("b3",(int16_t*)&beta_ptr[3]);
|
||||
print_shorts("b4",(int16_t*)&beta_ptr[4]);
|
||||
print_shorts("b5",(int16_t*)&beta_ptr[5]);
|
||||
print_shorts("b6",(int16_t*)&beta_ptr[6]);
|
||||
print_shorts("b7",(int16_t*)&beta_ptr[7]);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
@@ -721,7 +927,7 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext,
|
||||
//
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
msg("compute_ext, %p, %p, %p, %p, %p, %p ,framelength %d\n",alpha,beta,m_11,m_10,ext,systematic,frame_length);
|
||||
fprintf(fdsse4,"compute_ext (sse_16bit), %p, %p, %p, %p, %p, %p ,framelength %d\n",alpha,beta,m_11,m_10,ext,systematic,frame_length);
|
||||
#endif
|
||||
|
||||
alpha_ptr = alpha128;
|
||||
@@ -736,7 +942,7 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext,
|
||||
ext_128 = (__m128i*)&ext[k<<3];
|
||||
|
||||
/*
|
||||
printf("EXT %03d\n",k);
|
||||
fprintf(fdsse4,"EXT %03d\n",k);
|
||||
print_shorts("a0:",&alpha_ptr[0]);
|
||||
print_shorts("a1:",&alpha_ptr[1]);
|
||||
print_shorts("a2:",&alpha_ptr[2]);
|
||||
@@ -754,6 +960,9 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext,
|
||||
print_shorts("b6:",&beta_ptr[6]);
|
||||
print_shorts("b7:",&beta_ptr[7]);
|
||||
*/
|
||||
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
m00_4 = _mm_adds_epi16(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00;
|
||||
m11_4 = _mm_adds_epi16(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11;
|
||||
m00_3 = _mm_adds_epi16(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00;
|
||||
@@ -770,6 +979,32 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext,
|
||||
m10_2 = _mm_adds_epi16(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10;
|
||||
m10_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10;
|
||||
m01_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01;
|
||||
#else
|
||||
|
||||
|
||||
m00_1 = _mm_adds_epi16(alpha_ptr[0],beta_ptr[0]); //ALPHA_BETA_1m00;
|
||||
m10_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10;
|
||||
m11_1 = _mm_adds_epi16(alpha_ptr[0],beta_ptr[4]); //ALPHA_BETA_1m11;
|
||||
m01_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01;
|
||||
|
||||
m11_2 = _mm_adds_epi16(alpha_ptr[1],beta_ptr[0]); //ALPHA_BETA_2m11;
|
||||
m01_2 = _mm_adds_epi16(alpha_ptr[3],beta_ptr[1]); //ALPHA_BETA_2m01;
|
||||
m00_2 = _mm_adds_epi16(alpha_ptr[1],beta_ptr[4]); //ALPHA_BETA_2m00;
|
||||
m10_2 = _mm_adds_epi16(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10;
|
||||
|
||||
m11_3 = _mm_adds_epi16(alpha_ptr[6],beta_ptr[3]); //ALPHA_BETA_3m11;
|
||||
m01_3 = _mm_adds_epi16(alpha_ptr[4],beta_ptr[2]); //ALPHA_BETA_3m01;
|
||||
m00_3 = _mm_adds_epi16(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00;
|
||||
m10_3 = _mm_adds_epi16(alpha_ptr[4],beta_ptr[6]); //ALPHA_BETA_3m10;
|
||||
|
||||
m00_4 = _mm_adds_epi16(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00;
|
||||
m10_4 = _mm_adds_epi16(alpha_ptr[5],beta_ptr[2]); //ALPHA_BETA_4m10;
|
||||
m11_4 = _mm_adds_epi16(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11;
|
||||
m01_4 = _mm_adds_epi16(alpha_ptr[5],beta_ptr[6]); //ALPHA_BETA_4m01;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
print_shorts("m11_1:",&m11_1);
|
||||
print_shorts("m11_2:",&m11_2);
|
||||
@@ -816,15 +1051,15 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext,
|
||||
// print_shorts("m10_1:",&m10_1);
|
||||
|
||||
*ext_128 = _mm_subs_epi16(m10_1,m01_1);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"ext %p\n",ext_128);
|
||||
print_shorts("ext:",(int16_t*)ext_128);
|
||||
print_shorts("m11:",(int16_t*)m11_128);
|
||||
print_shorts("m10:",(int16_t*)m10_128);
|
||||
print_shorts("m10_1:",(int16_t*)&m10_1);
|
||||
print_shorts("m01_1:",(int16_t*)&m01_1);
|
||||
#endif
|
||||
|
||||
/*
|
||||
print_shorts("ext:",ext_128);
|
||||
print_shorts("m11:",m11_128);
|
||||
print_shorts("m10:",m10_128);
|
||||
print_shorts("m10_1:",&m10_1);
|
||||
print_shorts("m01_1:",&m01_1);
|
||||
print_shorts("syst:",systematic_128);
|
||||
*/
|
||||
#elif defined(__arm__)
|
||||
m11_128 = (int16x8_t*)&m_11[k<<3];
|
||||
m10_128 = (int16x8_t*)&m_10[k<<3];
|
||||
@@ -927,7 +1162,7 @@ void init_td16()
|
||||
// j-=(n-1);
|
||||
|
||||
pi2tab16[ind][i] = j;
|
||||
// printf("pi2[%d] = %d\n",i,j);
|
||||
// fprintf(fdsse4,"pi2[%d] = %d\n",i,j);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -964,19 +1199,19 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
n is the size in bits of the coded block, with the tail */
|
||||
|
||||
|
||||
llr_t systematic0[n+16] __attribute__ ((aligned(16)));
|
||||
llr_t systematic1[n+16] __attribute__ ((aligned(16)));
|
||||
llr_t systematic2[n+16] __attribute__ ((aligned(16)));
|
||||
llr_t yparity1[n+16] __attribute__ ((aligned(16)));
|
||||
llr_t yparity2[n+16] __attribute__ ((aligned(16)));
|
||||
llr_t systematic0[n+16] __attribute__ ((aligned(32)));
|
||||
llr_t systematic1[n+16] __attribute__ ((aligned(32)));
|
||||
llr_t systematic2[n+16] __attribute__ ((aligned(32)));
|
||||
llr_t yparity1[n+16] __attribute__ ((aligned(32)));
|
||||
llr_t yparity2[n+16] __attribute__ ((aligned(32)));
|
||||
|
||||
llr_t ext[n+128] __attribute__((aligned(16)));
|
||||
llr_t ext2[n+128] __attribute__((aligned(16)));
|
||||
llr_t ext[n+128] __attribute__((aligned(32)));
|
||||
llr_t ext2[n+128] __attribute__((aligned(32)));
|
||||
|
||||
llr_t alpha[(n+16)*8] __attribute__ ((aligned(16)));
|
||||
llr_t beta[(n+16)*8] __attribute__ ((aligned(16)));
|
||||
llr_t m11[n+16] __attribute__ ((aligned(16)));
|
||||
llr_t m10[n+16] __attribute__ ((aligned(16)));
|
||||
llr_t alpha[(n+16)*8] __attribute__ ((aligned(32)));
|
||||
llr_t beta[(n+16)*8] __attribute__ ((aligned(32)));
|
||||
llr_t m11[n+32] __attribute__ ((aligned(32)));
|
||||
llr_t m10[n+32] __attribute__ ((aligned(32)));
|
||||
|
||||
|
||||
int *pi2_p,*pi4_p,*pi5_p,*pi6_p;
|
||||
@@ -989,7 +1224,7 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
__m128i *yp128;
|
||||
__m128i tmp, zeros=_mm_setzero_si128();
|
||||
register __m128i tmpe;
|
||||
__m128i tmpe;
|
||||
#elif defined(__arm__)
|
||||
int16x8_t *yp128;
|
||||
// int16x8_t tmp128[(n+8)>>3];
|
||||
@@ -1000,12 +1235,20 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
#endif
|
||||
int offset8_flag=0;
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fdsse4 = fopen("dump_sse4.txt","w");
|
||||
|
||||
|
||||
printf("tc sse4_16 (y) %p\n",y);
|
||||
#endif
|
||||
|
||||
if (crc_type > 3) {
|
||||
msg("Illegal crc length!\n");
|
||||
printf("Illegal crc length!\n");
|
||||
return 255;
|
||||
}
|
||||
|
||||
|
||||
|
||||
start_meas(init_stats);
|
||||
|
||||
|
||||
@@ -1013,7 +1256,7 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
for (iind=0; iind < 188 && f1f2mat[iind].nb_bits != n; iind++);
|
||||
|
||||
if ( iind == 188 ) {
|
||||
msg("Illegal frame length!\n");
|
||||
printf("Illegal frame length!\n");
|
||||
return 255;
|
||||
}
|
||||
|
||||
@@ -1059,62 +1302,74 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
tmpe = _mm_load_si128(yp128);
|
||||
// fprintf(fdsse4,"yp128 %p\n",yp128);
|
||||
// print_shorts("tmpe",(int16_t *)&tmpe);
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,0);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,1);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,2);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init0: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
j=pi2_p[1];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,3);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,4);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,5);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init1: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
j=pi2_p[2];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,6);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,7);
|
||||
tmpe = _mm_load_si128(&yp128[1]);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,0);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init2: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
j=pi2_p[3];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,1);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,2);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,3);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init3: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
j=pi2_p[4];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,4);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,5);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,6);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init4: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
j=pi2_p[5];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,7);
|
||||
tmpe = _mm_load_si128(&yp128[2]);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,0);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,1);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init5: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
|
||||
j=pi2_p[6];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,2);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,3);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,4);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init6: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
j=pi2_p[7];
|
||||
|
||||
s[j] = _mm_extract_epi16(tmpe,5);
|
||||
yp1[j] = _mm_extract_epi16(tmpe,6);
|
||||
yp2[j] = _mm_extract_epi16(tmpe,7);
|
||||
// printf("init: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"init7: j %d, s[j] %d yp1[j] %d yp2[j] %d\n",j,s[j],yp1[j],yp2[j]);
|
||||
#endif
|
||||
|
||||
#elif defined(__arm__)
|
||||
s[j] = vgetq_lane_s16(yp128[0],0);
|
||||
@@ -1172,7 +1427,7 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
yp1[i] = *yp;
|
||||
yp++;
|
||||
#ifdef DEBUG_LOGMAP
|
||||
msg("Term 1 (%d): %d %d\n",i,s[i],yp1[i]);
|
||||
fprintf(fdsse4,"Term 1 (%d): %d %d\n",i,s[i],yp1[i]);
|
||||
#endif //DEBUG_LOGMAP
|
||||
}
|
||||
|
||||
@@ -1184,12 +1439,12 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
yp2[i-8] = *yp;
|
||||
yp++;
|
||||
#ifdef DEBUG_LOGMAP
|
||||
msg("Term 2 (%d): %d %d\n",i-3,s[i],yp2[i-8]);
|
||||
fprintf(fdsse4,"Term 2 (%d): %d %d\n",i-3,s[i],yp2[i-8]);
|
||||
#endif //DEBUG_LOGMAP
|
||||
}
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
msg("\n");
|
||||
fprintf(fdsse4,"\n");
|
||||
#endif //DEBUG_LOGMAP
|
||||
|
||||
stop_meas(init_stats);
|
||||
@@ -1201,7 +1456,7 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
while (iteration_cnt++ < max_iterations) {
|
||||
|
||||
#ifdef DEBUG_LOGMAP
|
||||
printf("\n*******************ITERATION %d (n %d), ext %p\n\n",iteration_cnt,n,ext);
|
||||
fprintf(fdsse4,"\n*******************ITERATION %d (n %d), ext %p\n\n",iteration_cnt,n,ext);
|
||||
#endif //DEBUG_LOGMAP
|
||||
|
||||
start_meas(intl1_stats);
|
||||
@@ -1209,24 +1464,29 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
pi4_p=pi4tab16[iind];
|
||||
|
||||
for (i=0; i<(n>>3); i++) { // steady-state portion
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],0);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],1);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],2);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],3);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],4);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],5);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],6);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],7);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],0);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],1);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],2);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],3);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],4);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],5);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],6);
|
||||
((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],7);
|
||||
|
||||
#elif defined(__arm__)
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],0);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],1);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],2);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],3);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],4);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],5);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],6);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(((llr_t*)ext)[*pi4_p++],((int16x8_t*)systematic2)[i],7);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],0);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],1);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],2);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],3);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],4);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],5);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],6);
|
||||
((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],7);
|
||||
#endif
|
||||
#ifdef DEBUG_LOGMAP
|
||||
print_shorts("syst2",(int16_t*)&((__m128i *)systematic2)[i]);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1261,6 +1521,9 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,6);
|
||||
tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,7);
|
||||
((int16x8_t *)systematic1)[i] = vqaddq_s16(vqsubq_s16(tmp,((int16x8_t*)ext)[i]),((int16x8_t *)systematic0)[i]);
|
||||
#endif
|
||||
#ifdef DEBUG_LOGMAP
|
||||
print_shorts("syst1",(int16_t*)&((__m128i *)systematic1)[i]);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -1278,6 +1541,9 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],2);
|
||||
tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],1);
|
||||
tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],0);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
print_shorts("tmp",(int16_t*)&tmp);
|
||||
#endif
|
||||
tmp=_mm_cmpgt_epi8(_mm_packs_epi16(tmp,zeros),zeros);
|
||||
decoded_bytes[i]=(unsigned char)_mm_movemask_epi8(tmp);
|
||||
#elif defined(__arm__)
|
||||
@@ -1297,6 +1563,10 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
uint64x2_t Mask = vpaddlq_u32(vpaddlq_u16(vandq_u16(vcgtq_s16(tmp,zeros), Powers)));
|
||||
uint64x1_t Mask64 = vget_high_u64(Mask)+vget_low_u64(Mask);
|
||||
decoded_bytes[i] = (uint8_t)Mask64;
|
||||
#endif
|
||||
#ifdef DEBUG_LOGMAP
|
||||
print_shorts("tmp",(int16_t*)&tmp);
|
||||
fprintf(fdsse4,"decoded_bytes[%d] %x\n",i,decoded_bytes[i]);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1344,6 +1614,9 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
}
|
||||
|
||||
stop_meas(intl2_stats);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fprintf(fdsse4,"oldcrc %x, crc %x\n",oldcrc,crc);
|
||||
#endif
|
||||
|
||||
if ((crc == oldcrc) && (crc!=0)) {
|
||||
return(iteration_cnt);
|
||||
@@ -1374,8 +1647,12 @@ unsigned char phy_threegpplte_turbo_decoder16(short *y,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// fprintf(fdsse4,"crc %x, oldcrc %x\n",crc,oldcrc);
|
||||
|
||||
// printf("crc %x, oldcrc %x\n",crc,oldcrc);
|
||||
#ifdef DEBUG_LOGMAP
|
||||
fclose(fdsse4);
|
||||
#endif
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
_mm_empty();
|
||||
|
||||
@@ -1000,6 +1000,7 @@ unsigned char phy_threegpplte_turbo_decoder8(short *y,
|
||||
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
|
||||
// note: this makes valgrind freak
|
||||
__m128i avg=_mm_set1_epi32(0);
|
||||
|
||||
for (i=0; i<(3*(n>>4))+1; i++) {
|
||||
@@ -1503,6 +1504,7 @@ unsigned char phy_threegpplte_turbo_decoder8(short *y,
|
||||
|
||||
tmp2=_mm_and_si128(tmp,mask);
|
||||
tmp2=_mm_cmpeq_epi16(tmp2,mask);
|
||||
// printf("decoded_bytes %p\n",decoded_bytes);
|
||||
decoded_bytes[n_128*0+i]=(uint8_t) _mm_movemask_epi8(_mm_packs_epi16(tmp2,zeros));
|
||||
int j;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ RATE12CC_SRC = ccoding_byte.c viterbi.c crc_byte.c
|
||||
all: 3gpplte_sse
|
||||
|
||||
3gpplte_sse: $(TURBO_SRC)
|
||||
gcc -o 3gpplte_sse 3gpplte_sse.c -msse4 -Wall -g -ggdb -DMAIN
|
||||
gcc -o 3gpplte_sse 3gpplte_sse.c -msse4 -Wall -g -ggdb -DTC_MAIN -I../..
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -303,6 +303,10 @@ void ccodedot11_init(void);
|
||||
\brief This function initializes the trellis structure for decoding an 802.11 convolutional code.*/
|
||||
void ccodedot11_init_inv(void);
|
||||
|
||||
/*!\fn void teillis_table_init(void)
|
||||
\brief This function initializes the trellis structure for 3GPP LTE Turbo code.*/
|
||||
void treillis_table_init(void);
|
||||
|
||||
/*\fn void threegpplte_turbo_encoder(uint8_t *input,uint16_t input_length_bytes,uint8_t *output,uint8_t F,uint16_t interleaver_f1,uint16_t interleaver_f2)
|
||||
\brief This function implements a rate 1/3 8-state parralel concatenated turbo code (3GPP-LTE).
|
||||
@param input Pointer to input buffer
|
||||
@@ -353,6 +357,8 @@ void ccodedab_init(void);
|
||||
\brief This function initializes the trellis structure for decoding an DAB convolutional code (first 3 bits).*/
|
||||
void ccodedab_init_inv(void);
|
||||
|
||||
|
||||
|
||||
/*!\fn void crcTableInit(void)
|
||||
\brief This function initializes the different crc tables.*/
|
||||
void crcTableInit (void);
|
||||
@@ -366,6 +372,17 @@ void init_td8 (void);
|
||||
\brief This function initializes the tables for 16-bit LLR Turbo decoder.*/
|
||||
void init_td16 (void);
|
||||
|
||||
#ifdef __AVX2__
|
||||
/*!\fn void init_td8(void)
|
||||
\brief This function initializes the tables for 8-bit LLR Turbo decoder (AVX2).*/
|
||||
void init_td8avx2 (void);
|
||||
|
||||
|
||||
/*!\fn void init_td16(void)
|
||||
\brief This function initializes the tables for 16-bit LLR Turbo decoder (AVX2).*/
|
||||
void init_td16avx2 (void);
|
||||
#endif
|
||||
|
||||
/*!\fn uint32_t crc24a(uint8_t *inPtr, int32_t bitlen)
|
||||
\brief This computes a 24-bit crc ('a' variant for overall transport block)
|
||||
based on 3GPP UMTS/LTE specifications.
|
||||
@@ -483,6 +500,24 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y,
|
||||
time_stats_t *intl1_stats,
|
||||
time_stats_t *intl2_stats);
|
||||
|
||||
uint8_t phy_threegpplte_turbo_decoder16avx2(int16_t *y,
|
||||
int16_t *y2,
|
||||
uint8_t *decoded_bytes,
|
||||
uint8_t *decoded_bytes2,
|
||||
uint16_t n,
|
||||
uint16_t interleaver_f1,
|
||||
uint16_t interleaver_f2,
|
||||
uint8_t max_iterations,
|
||||
uint8_t crc_type,
|
||||
uint8_t F,
|
||||
time_stats_t *init_stats,
|
||||
time_stats_t *alpha_stats,
|
||||
time_stats_t *beta_stats,
|
||||
time_stats_t *gamma_stats,
|
||||
time_stats_t *ext_stats,
|
||||
time_stats_t *intl1_stats,
|
||||
time_stats_t *intl2_stats);
|
||||
|
||||
/*!
|
||||
\brief This routine performs max-logmap detection for the 3GPP turbo code (with termination). It is optimized for SIMD processing and 8-bit
|
||||
LLR arithmetic, and requires SSE2,SSSE3 and SSE4.1 (gcc >=4.3 and appropriate CPU)
|
||||
|
||||
@@ -495,8 +495,14 @@ uint32_t lte_rate_matching_turbo(uint32_t RTC,
|
||||
char fname[512];
|
||||
#endif
|
||||
|
||||
Nir = Nsoft/Kmimo/cmin(8,Mdlharq);
|
||||
Ncb = cmin(Nir/C,3*(RTC<<5));
|
||||
if (Mdlharq>0) { // Downlink
|
||||
Nir = Nsoft/Kmimo/cmin(8,Mdlharq);
|
||||
Ncb = cmin(Nir/C,3*(RTC<<5));
|
||||
}
|
||||
else { // Uplink
|
||||
Nir=0;
|
||||
Ncb = 3*(RTC<<5); // Kw
|
||||
}
|
||||
#ifdef RM_DEBUG_TX
|
||||
|
||||
if (rvidx==0 && r==0) {
|
||||
@@ -709,15 +715,20 @@ int lte_rate_matching_turbo_rx(uint32_t RTC,
|
||||
int nulled=0;
|
||||
#endif
|
||||
|
||||
if (Kmimo==0 || Mdlharq==0 || C==0 || Qm==0 || Nl==0) {
|
||||
if (Kmimo==0 || C==0 || Qm==0 || Nl==0) {
|
||||
printf("lte_rate_matching.c: invalid parameters (Kmimo %d, Mdlharq %d, C %d, Qm %d, Nl %d\n",
|
||||
Kmimo,Mdlharq,C,Qm,Nl);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
Nir = Nsoft/Kmimo/cmin(8,Mdlharq);
|
||||
Ncb = cmin(Nir/C,3*(RTC<<5));
|
||||
|
||||
if (Mdlharq>0) { // Downlink
|
||||
Nir = Nsoft/Kmimo/cmin(8,Mdlharq);
|
||||
Ncb = cmin(Nir/C,3*(RTC<<5));
|
||||
}
|
||||
else { // Uplink
|
||||
Nir=0;
|
||||
Ncb = 3*(RTC<<5);
|
||||
}
|
||||
|
||||
Gp = G/Nl/Qm;
|
||||
GpmodC = Gp%C;
|
||||
|
||||
@@ -26,17 +26,6 @@
|
||||
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
*******************************************************************************/
|
||||
/*
|
||||
#ifdef CBMIMO1
|
||||
#include "ARCH/COMMON/defs.h"
|
||||
#include "ARCH/CBMIMO1/DEVICE_DRIVER/from_grlib_softconfig.h"
|
||||
#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_device.h"
|
||||
#include "ARCH/CBMIMO1/DEVICE_DRIVER/defs.h"
|
||||
#include "ARCH/CBMIMO1/DEVICE_DRIVER/extern.h"
|
||||
#include "ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_pci.h"
|
||||
//#include "pci_commands.h"
|
||||
#endif //CBMIMO1
|
||||
*/
|
||||
#ifdef EXMIMO
|
||||
#include "openair0_lib.h"
|
||||
#endif
|
||||
@@ -888,12 +877,16 @@ void phy_init_lte_top(LTE_DL_FRAME_PARMS *lte_frame_parms)
|
||||
ccodelte_init();
|
||||
ccodelte_init_inv();
|
||||
|
||||
treillis_table_init();
|
||||
|
||||
phy_generate_viterbi_tables();
|
||||
phy_generate_viterbi_tables_lte();
|
||||
|
||||
init_td8();
|
||||
init_td16();
|
||||
|
||||
#ifdef __AVX2__
|
||||
init_td16avx2();
|
||||
#endif
|
||||
|
||||
lte_sync_time_init(lte_frame_parms);
|
||||
|
||||
@@ -1049,7 +1042,7 @@ int phy_init_lte_ue(PHY_VARS_UE *phy_vars_ue,
|
||||
// init TX buffers
|
||||
|
||||
ue_common_vars->txdata = (int32_t**)malloc16( frame_parms->nb_antennas_tx*sizeof(int32_t*) );
|
||||
ue_common_vars->txdataF = (mod_sym_t **)malloc16( frame_parms->nb_antennas_tx*sizeof(mod_sym_t*) );
|
||||
ue_common_vars->txdataF = (int32_t **)malloc16( frame_parms->nb_antennas_tx*sizeof(int32_t*) );
|
||||
|
||||
for (i=0; i<frame_parms->nb_antennas_tx; i++) {
|
||||
#ifdef USER_MODE
|
||||
@@ -1057,7 +1050,7 @@ int phy_init_lte_ue(PHY_VARS_UE *phy_vars_ue,
|
||||
#else //USER_MODE
|
||||
ue_common_vars->txdata[i] = TX_DMA_BUFFER[0][i];
|
||||
#endif //USER_MODE
|
||||
ue_common_vars->txdataF[i] = (mod_sym_t *)malloc16_clear( FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(mod_sym_t) );
|
||||
ue_common_vars->txdataF[i] = (int32_t *)malloc16_clear( FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t) );
|
||||
}
|
||||
|
||||
// init RX buffers
|
||||
@@ -1270,21 +1263,21 @@ int phy_init_lte_eNB(PHY_VARS_eNB *phy_vars_eNB,
|
||||
|
||||
// TX vars
|
||||
eNB_common_vars->txdata[eNB_id] = (int32_t**)malloc16( frame_parms->nb_antennas_tx*sizeof(int32_t*) );
|
||||
eNB_common_vars->txdataF[eNB_id] = (mod_sym_t **)malloc16( frame_parms->nb_antennas_tx*sizeof(mod_sym_t*) );
|
||||
eNB_common_vars->txdataF[eNB_id] = (int32_t **)malloc16( frame_parms->nb_antennas_tx*sizeof(int32_t*) );
|
||||
|
||||
for (i=0; i<frame_parms->nb_antennas_tx; i++) {
|
||||
#ifdef USER_MODE
|
||||
eNB_common_vars->txdata[eNB_id][i] = (int32_t*)malloc16_clear( FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(int32_t) );
|
||||
eNB_common_vars->txdataF[eNB_id][i] = (mod_sym_t*)malloc16_clear( FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(mod_sym_t) );
|
||||
eNB_common_vars->txdataF[eNB_id][i] = (int32_t*)malloc16_clear( FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t) );
|
||||
#else // USER_MODE
|
||||
eNB_common_vars->txdata[eNB_id][i] = TX_DMA_BUFFER[eNB_id][i];
|
||||
eNB_common_vars->txdataF[eNB_id][i] = (mod_sym_t *)malloc16_clear( FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(mod_sym_t) );
|
||||
eNB_common_vars->txdataF[eNB_id][i] = (int32_t *)malloc16_clear( FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t) );
|
||||
#endif //USER_MODE
|
||||
#ifdef DEBUG_PHY
|
||||
msg("[openair][LTE_PHY][INIT] lte_eNB_common_vars->txdata[%d][%d] = %p\n",eNB_id,i,eNB_common_vars->txdata[eNB_id][i]);
|
||||
msg("[openair][LTE_PHY][INIT] lte_eNB_common_vars->txdataF[%d][%d] = %p (%d bytes)\n",
|
||||
eNB_id,i,eNB_common_vars->txdataF[eNB_id][i],
|
||||
FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(mod_sym_t));
|
||||
FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ void lte_param_init(unsigned char N_tx,
|
||||
lte_frame_parms->N_RB_UL = N_RB_DL;
|
||||
lte_frame_parms->threequarter_fs = threequarter_fs;
|
||||
lte_frame_parms->Ncp = extended_prefix_flag;
|
||||
lte_frame_parms->Ncp_UL = extended_prefix_flag;
|
||||
lte_frame_parms->Nid_cell = Nid_cell;
|
||||
lte_frame_parms->nushift = Nid_cell%6;
|
||||
lte_frame_parms->nb_antennas_tx = N_tx;
|
||||
|
||||
@@ -29,8 +29,6 @@
|
||||
#include "PHY/types.h"
|
||||
#include "PHY/defs.h"
|
||||
#include "PHY/extern.h"
|
||||
#include "MAC_INTERFACE/defs.h"
|
||||
#include "MAC_INTERFACE/extern.h"
|
||||
|
||||
#ifdef EXMIMO
|
||||
#include "openair0_lib.h"
|
||||
|
||||
@@ -26,187 +26,187 @@
|
||||
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
|
||||
|
||||
*******************************************************************************/
|
||||
short filt24_0[24] __attribute__((aligned(16))) ={
|
||||
short filt24_0[24] __attribute__((aligned(32))) ={
|
||||
2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_0_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_0_dcl[24] __attribute__((aligned(32))) ={
|
||||
2341,4681,7022,9362,11703,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_0_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_0_dcr[24] __attribute__((aligned(32))) ={
|
||||
2730,5461,8192,10922,13653,16384,14043,11703,9362,7022,4681,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
short filt24_1[24] __attribute__((aligned(16))) ={
|
||||
short filt24_1[24] __attribute__((aligned(32))) ={
|
||||
0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_1_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_1_dcl[24] __attribute__((aligned(32))) ={
|
||||
0,4681,7022,9362,11703,14043,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_1_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_1_dcr[24] __attribute__((aligned(32))) ={
|
||||
0,2730,5461,8192,10922,13653,16384,14043,11703,9362,7022,4681,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
|
||||
short filt24_2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_2[24] __attribute__((aligned(32))) ={
|
||||
0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_2_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_2_dcl[24] __attribute__((aligned(32))) ={
|
||||
0,0,2341,4681,7022,9362, 11703,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_2_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_2_dcr[24] __attribute__((aligned(32))) ={
|
||||
0,0,2730,5461,8192,10922,13653,16384,14043,11703,9362,4681,2341,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
// X X X Y | X X X X | X Y X X
|
||||
short filt24_3[24] __attribute__((aligned(16))) ={
|
||||
short filt24_3[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_3_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_3_dcl[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,2341,4681,7022,9362,14043,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
// X X X Y | X X DC X X | X Y X X
|
||||
short filt24_3_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_3_dcr[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,2730,5461,8192,10922,13653,16384,14043,11703,7022,4681,2341,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
|
||||
short filt24_4[24] __attribute__((aligned(16))) ={
|
||||
short filt24_4[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_4_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_4_dcl[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,2341,7022,9362,11703,14043,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_4_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_4_dcr[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,2730,5461,8192,10922,13653,16384,14043,11703,7022,4681,2341,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
short filt24_5[24] __attribute__((aligned(16))) ={
|
||||
short filt24_5[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0
|
||||
};
|
||||
// X X X Y | X X DC X X | X Y X X
|
||||
short filt24_5_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_5_dcl[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,2341,4681,9362,11703,14043,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_5_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_5_dcr[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,2730,5461,8192,10922,13653,16384,11703,9362,7022,4681,2730,0,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
|
||||
short filt24_6[24] __attribute__((aligned(16))) ={
|
||||
short filt24_6[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_6_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_6_dcl[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,4681,7022,9362,11703,14043,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_6_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_6_dcr[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,14043,11703,9362,7022,4681,0,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
|
||||
short filt24_7[24] __attribute__((aligned(16))) ={
|
||||
short filt24_7[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_7_dcl[24] __attribute__((aligned(16))) ={
|
||||
short filt24_7_dcl[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,0,4681,7022,9362,11703,14043,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_7_dcr[24] __attribute__((aligned(16))) ={
|
||||
short filt24_7_dcr[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,14043,11703,9362,7022,4681,0,0,0,0,0,0
|
||||
};
|
||||
|
||||
short filt24_0l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_0l[24] __attribute__((aligned(32))) ={
|
||||
30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_1l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_1l[24] __attribute__((aligned(32))) ={
|
||||
0,30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_2l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_2l[24] __attribute__((aligned(32))) ={
|
||||
0,0,30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_3l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_3l[24] __attribute__((aligned(32))) ={
|
||||
//0,0,0,30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0};
|
||||
0,0,0,0,0,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_4l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_4l[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_5l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_5l[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_6l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_6l[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_7l[24] __attribute__((aligned(16))) ={
|
||||
short filt24_7l[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,0,30037,27306,24576,21845,19114,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_0l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_0l2[24] __attribute__((aligned(32))) ={
|
||||
2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_1l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_1l2[24] __attribute__((aligned(32))) ={
|
||||
0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_2l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_2l2[24] __attribute__((aligned(32))) ={
|
||||
-2730,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_3l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_3l2[24] __attribute__((aligned(32))) ={
|
||||
-5461,-2730,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_4l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_4l2[24] __attribute__((aligned(32))) ={
|
||||
-8192,-5461,-2730,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_5l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_5l2[24] __attribute__((aligned(32))) ={
|
||||
0,-8192,-5461,-2730,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_6l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_6l2[24] __attribute__((aligned(32))) ={
|
||||
-13653,-10922,-8192,-5461,-2730,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_7l2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_7l2[24] __attribute__((aligned(32))) ={
|
||||
0,-13653,-10922,-8192,-5461,-2730,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_0r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_0r[24] __attribute__((aligned(32))) ={
|
||||
2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_1r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_1r[24] __attribute__((aligned(32))) ={
|
||||
0,2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_2r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_2r[24] __attribute__((aligned(32))) ={
|
||||
0,0,2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_3r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_3r[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_4r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_4r[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_5r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_5r[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_6r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_6r[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_7r[24] __attribute__((aligned(16))) ={
|
||||
short filt24_7r[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,19114,21845,24576,27306,30037,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_0r2[24] __attribute__((aligned(16))) ={ /****/
|
||||
short filt24_0r2[24] __attribute__((aligned(32))) ={ /****/
|
||||
2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653,0,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_1r2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_1r2[24] __attribute__((aligned(32))) ={
|
||||
0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653,0,0,0,0,0,0
|
||||
};
|
||||
short filt24_2r2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_2r2[24] __attribute__((aligned(32))) ={
|
||||
0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653,0,0,0,0,0
|
||||
};
|
||||
short filt24_3r2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_3r2[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653,0,0,0,0
|
||||
};
|
||||
short filt24_4r2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_4r2[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653,0,0,0
|
||||
};
|
||||
short filt24_5r2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_5r2[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653,0,0
|
||||
};
|
||||
short filt24_6r2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_6r2[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653,0
|
||||
};
|
||||
short filt24_7r2[24] __attribute__((aligned(16))) ={
|
||||
short filt24_7r2[24] __attribute__((aligned(32))) ={
|
||||
0,0,0,0,0,0,0,2730,5461,8192,10922,13653,16384,13653,10922,8192,5461,2730,0,-2730,-5461,-8192,-10922,-13653
|
||||
};
|
||||
|
||||
@@ -29,8 +29,6 @@
|
||||
#include "PHY/types.h"
|
||||
#include "PHY/defs.h"
|
||||
#include "PHY/extern.h"
|
||||
#include "MAC_INTERFACE/defs.h"
|
||||
#include "MAC_INTERFACE/extern.h"
|
||||
|
||||
#define DEBUG_PHY
|
||||
|
||||
|
||||
@@ -203,8 +203,9 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
multadd_complex_vector_real_scalar(dl_ch-(phy_vars_ue->lte_frame_parms.ofdm_symbol_size<<1),
|
||||
phy_vars_ue->ch_est_alpha,dl_ch-(phy_vars_ue->lte_frame_parms.ofdm_symbol_size<<1),
|
||||
1,phy_vars_ue->lte_frame_parms.ofdm_symbol_size);
|
||||
|
||||
|
||||
#ifdef DEBUG_CH
|
||||
printf("k %d, first_carrier %d\n",k,phy_vars_ue->lte_frame_parms.first_carrier_offset);
|
||||
#endif
|
||||
if ((phy_vars_ue->lte_frame_parms.N_RB_DL==6) ||
|
||||
(phy_vars_ue->lte_frame_parms.N_RB_DL==50) ||
|
||||
(phy_vars_ue->lte_frame_parms.N_RB_DL==100)) {
|
||||
@@ -213,7 +214,9 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
// Treat first 2 pilots specially (left edge)
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
// printf("pilot 0 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot 0 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(fl,
|
||||
ch,
|
||||
dl_ch,
|
||||
@@ -224,7 +227,9 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
// printf("pilot 1 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot 1 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(f2l2,
|
||||
ch,
|
||||
dl_ch,
|
||||
@@ -235,15 +240,13 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
for (pilot_cnt=2; pilot_cnt<((phy_vars_ue->lte_frame_parms.N_RB_DL)-1); pilot_cnt+=2) {
|
||||
|
||||
// printf("%d\n",dl_ch-(int16_t *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]);
|
||||
|
||||
// printf("pilot[%d][%d] (%d,%d)\n",p,pilot_cnt,pil[0],pil[1]);
|
||||
// printf("rx[%d] -> (%d,%d)\n", k, rxF[0], rxF[1]);
|
||||
|
||||
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); //Re
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); //Im
|
||||
// printf("**rb %d %d\n",rb,dl_ch-(int16_t *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]);
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(f,
|
||||
ch,
|
||||
dl_ch,
|
||||
@@ -254,13 +257,11 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
rxF+=12;
|
||||
dl_ch+=8;
|
||||
|
||||
// printf("pilot[%d][%d] (%d,%d)\n",p,rb,pil[0],pil[1]);
|
||||
// printf("rx[%d] -> (%d,%d)\n", k+6, rxF[0], rxF[1]);
|
||||
|
||||
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
// printf("**rb %d %d\n",rb,dl_ch-(int16_t *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]);
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(f2,
|
||||
ch,
|
||||
dl_ch,
|
||||
@@ -281,15 +282,17 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
rxF = (int16_t *)&rxdataF[aarx][((symbol_offset+1+k))];
|
||||
|
||||
#ifdef DEBUG_CH
|
||||
printf("second half k %d\n",k);
|
||||
#endif
|
||||
for (pilot_cnt=0; pilot_cnt<((phy_vars_ue->lte_frame_parms.N_RB_DL)-3); pilot_cnt+=2) {
|
||||
// printf("pilot[%d][%d] (%d,%d)\n",p,pilot_cnt,pil[0],pil[1]);
|
||||
// printf("rx[%d] -> (%d,%d)\n", k+6, rxF[0], rxF[1]);
|
||||
|
||||
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
|
||||
// printf("**rb %d %d\n",rb,dl_ch-(int16_t *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]);
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(f,
|
||||
ch,
|
||||
dl_ch,
|
||||
@@ -300,8 +303,9 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
|
||||
// printf("**rb %d %d\n",rb,dl_ch-(int16_T *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]);
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(f2,
|
||||
ch,
|
||||
dl_ch,
|
||||
@@ -314,8 +318,9 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
// printf("pilot 49: rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot %d: rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(fr,
|
||||
ch,
|
||||
dl_ch,
|
||||
@@ -326,7 +331,9 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15);
|
||||
ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15);
|
||||
// printf("pilot 50: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#ifdef DEBUG_CH
|
||||
printf("pilot %d: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]);
|
||||
#endif
|
||||
multadd_real_vector_complex_scalar(f2r2,
|
||||
ch,
|
||||
dl_ch,
|
||||
|
||||
@@ -771,7 +771,8 @@ int lte_dl_mbsfn_channel_estimation(PHY_VARS_UE *phy_vars_ue,
|
||||
break;
|
||||
case 75:
|
||||
idft1536((int16_t*) &phy_vars_ue->lte_ue_common_vars.dl_ch_estimates[eNB_offset][aa][8],
|
||||
(int16_t*) phy_vars_ue->lte_ue_common_vars.dl_ch_estimates_time[eNB_offset][aa]);
|
||||
(int16_t*) phy_vars_ue->lte_ue_common_vars.dl_ch_estimates_time[eNB_offset][aa],
|
||||
1);
|
||||
break;
|
||||
case 100:
|
||||
idft2048((int16_t*) &phy_vars_ue->lte_ue_common_vars.dl_ch_estimates[eNB_offset][aa][8],
|
||||
|
||||
@@ -56,7 +56,6 @@ void lte_eNB_I0_measurements(PHY_VARS_eNB *phy_vars_eNB,
|
||||
int32_t n0_power_tot;
|
||||
int len;
|
||||
int offset;
|
||||
//int Nsymb = (frame_parms->Ncp==NORMAL)?14:12;
|
||||
// noise measurements
|
||||
// for the moment we measure the noise on the 7th OFDM symbol (in S subframe)
|
||||
|
||||
@@ -68,8 +67,8 @@ void lte_eNB_I0_measurements(PHY_VARS_eNB *phy_vars_eNB,
|
||||
|
||||
|
||||
phy_measurements->n0_power[aarx] = ((k1*signal_energy(&eNB_common_vars->rxdata[eNB_id][aarx][(frame_parms->samples_per_tti<<1) -frame_parms->ofdm_symbol_size],
|
||||
frame_parms->ofdm_symbol_size)) + k2*phy_measurements->n0_power[aarx])>>10;
|
||||
phy_measurements->n0_power[aarx] = (phy_measurements->n0_power[aarx] * 12*frame_parms->N_RB_DL)/(frame_parms->ofdm_symbol_size);
|
||||
frame_parms->ofdm_symbol_size)) + k2*phy_measurements->n0_power[aarx])>>10;
|
||||
//phy_measurements->n0_power[aarx] = (phy_measurements->n0_power[aarx]) * 12*frame_parms->N_RB_DL)/(frame_parms->ofdm_symbol_size);
|
||||
phy_measurements->n0_power_dB[aarx] = (unsigned short) dB_fixed(phy_measurements->n0_power[aarx]);
|
||||
phy_measurements->n0_power_tot += phy_measurements->n0_power[aarx];
|
||||
}
|
||||
@@ -88,7 +87,7 @@ void lte_eNB_I0_measurements(PHY_VARS_eNB *phy_vars_eNB,
|
||||
|
||||
// select the 7th symbol in an uplink subframe
|
||||
offset = (frame_parms->first_carrier_offset + (rb*12))%frame_parms->ofdm_symbol_size;
|
||||
offset += (7*frame_parms->ofdm_symbol_size);//(((Nsymb*subframe)+7)*frame_parms->ofdm_symbol_size);
|
||||
offset += (7*frame_parms->ofdm_symbol_size);
|
||||
ul_ch = &eNB_common_vars->rxdataF[eNB_id][aarx][offset];
|
||||
len = 12;
|
||||
// just do first half of middle PRB for odd number of PRBs
|
||||
|
||||
@@ -37,8 +37,6 @@
|
||||
#include "PHY/defs.h"
|
||||
#include "PHY/extern.h"
|
||||
#include "SCHED/extern.h"
|
||||
#include "MAC_INTERFACE/defs.h"
|
||||
#include "MAC_INTERFACE/extern.h"
|
||||
#include <math.h>
|
||||
|
||||
#ifdef OPENAIR2
|
||||
@@ -52,8 +50,8 @@
|
||||
int* sync_corr_ue0 = NULL;
|
||||
int* sync_corr_ue1 = NULL;
|
||||
int* sync_corr_ue2 = NULL;
|
||||
int sync_tmp[2048*4] __attribute__((aligned(16)));
|
||||
short syncF_tmp[2048*2] __attribute__((aligned(16)));
|
||||
int sync_tmp[2048*4] __attribute__((aligned(32)));
|
||||
short syncF_tmp[2048*2] __attribute__((aligned(32)));
|
||||
|
||||
|
||||
|
||||
@@ -172,12 +170,13 @@ int lte_sync_time_init(LTE_DL_FRAME_PARMS *frame_parms ) // LTE_UE_COMMON *com
|
||||
|
||||
case 75:
|
||||
idft1536((short*)syncF_tmp, /// complex input
|
||||
(short*)sync_tmp); /// complex output
|
||||
(short*)sync_tmp,
|
||||
1); /// complex output
|
||||
break;
|
||||
case 100:
|
||||
idft2048((short*)syncF_tmp, /// complex input
|
||||
(short*)sync_tmp, /// complex output
|
||||
1);
|
||||
(short*)sync_tmp, /// complex output
|
||||
1);
|
||||
break;
|
||||
default:
|
||||
LOG_E(PHY,"Unsupported N_RB_DL %d\n",frame_parms->N_RB_DL);
|
||||
@@ -219,8 +218,8 @@ int lte_sync_time_init(LTE_DL_FRAME_PARMS *frame_parms ) // LTE_UE_COMMON *com
|
||||
|
||||
case 75:
|
||||
idft1536((short*)syncF_tmp, /// complex input
|
||||
(short*)sync_tmp /// complex output
|
||||
);
|
||||
(short*)sync_tmp, /// complex output
|
||||
1);
|
||||
break;
|
||||
case 100:
|
||||
idft2048((short*)syncF_tmp, /// complex input
|
||||
@@ -267,8 +266,8 @@ int lte_sync_time_init(LTE_DL_FRAME_PARMS *frame_parms ) // LTE_UE_COMMON *com
|
||||
|
||||
case 75:
|
||||
idft1536((short*)syncF_tmp, /// complex input
|
||||
(short*)sync_tmp /// complex output
|
||||
);
|
||||
(short*)sync_tmp, /// complex output
|
||||
1);
|
||||
break;
|
||||
case 100:
|
||||
idft2048((short*)syncF_tmp, /// complex input
|
||||
@@ -346,6 +345,8 @@ static inline int abs32(int x)
|
||||
int debug_cnt=0;
|
||||
#endif
|
||||
|
||||
#define SHIFT 17
|
||||
|
||||
int lte_sync_time(int **rxdata, ///rx data in time domain
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
int *eNB_id)
|
||||
@@ -414,8 +415,8 @@ int lte_sync_time(int **rxdata, ///rx data in time domain
|
||||
//calculate dot product of primary_synch0_time and rxdata[ar][n] (ar=0..nb_ant_rx) and store the sum in temp[n];
|
||||
for (ar=0; ar<frame_parms->nb_antennas_rx; ar++) {
|
||||
|
||||
result = dot_product((short*)primary_synch0_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, 15);
|
||||
result2 = dot_product((short*)primary_synch0_time, (short*) &(rxdata[ar][n+length]), frame_parms->ofdm_symbol_size, 15);
|
||||
result = dot_product((short*)primary_synch0_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, SHIFT);
|
||||
result2 = dot_product((short*)primary_synch0_time, (short*) &(rxdata[ar][n+length]), frame_parms->ofdm_symbol_size, SHIFT);
|
||||
|
||||
((short*)sync_corr_ue0)[2*n] += ((short*) &result)[0];
|
||||
((short*)sync_corr_ue0)[2*n+1] += ((short*) &result)[1];
|
||||
@@ -428,8 +429,8 @@ int lte_sync_time(int **rxdata, ///rx data in time domain
|
||||
}
|
||||
|
||||
for (ar=0; ar<frame_parms->nb_antennas_rx; ar++) {
|
||||
result = dot_product((short*)primary_synch1_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, 15);
|
||||
result2 = dot_product((short*)primary_synch1_time, (short*) &(rxdata[ar][n+length]), frame_parms->ofdm_symbol_size, 15);
|
||||
result = dot_product((short*)primary_synch1_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, SHIFT);
|
||||
result2 = dot_product((short*)primary_synch1_time, (short*) &(rxdata[ar][n+length]), frame_parms->ofdm_symbol_size, SHIFT);
|
||||
((short*)sync_corr_ue1)[2*n] += ((short*) &result)[0];
|
||||
((short*)sync_corr_ue1)[2*n+1] += ((short*) &result)[1];
|
||||
((short*)sync_corr_ue1)[2*(length+n)] += ((short*) &result2)[0];
|
||||
@@ -443,8 +444,8 @@ int lte_sync_time(int **rxdata, ///rx data in time domain
|
||||
|
||||
for (ar=0; ar<frame_parms->nb_antennas_rx; ar++) {
|
||||
|
||||
result = dot_product((short*)primary_synch2_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, 15);
|
||||
result2 = dot_product((short*)primary_synch2_time, (short*) &(rxdata[ar][n+length]), frame_parms->ofdm_symbol_size, 15);
|
||||
result = dot_product((short*)primary_synch2_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, SHIFT);
|
||||
result2 = dot_product((short*)primary_synch2_time, (short*) &(rxdata[ar][n+length]), frame_parms->ofdm_symbol_size, SHIFT);
|
||||
((short*)sync_corr_ue2)[2*n] += ((short*) &result)[0];
|
||||
((short*)sync_corr_ue2)[2*n+1] += ((short*) &result)[1];
|
||||
((short*)sync_corr_ue2)[2*(length+n)] += ((short*) &result2)[0];
|
||||
@@ -558,7 +559,7 @@ int lte_sync_time_eNB(int32_t **rxdata, ///rx data in time domain
|
||||
//calculate dot product of primary_synch0_time and rxdata[ar][n] (ar=0..nb_ant_rx) and store the sum in temp[n];
|
||||
for (ar=0; ar<frame_parms->nb_antennas_rx; ar++) {
|
||||
|
||||
result = dot_product((short*)primary_synch_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, 15);
|
||||
result = dot_product((short*)primary_synch_time, (short*) &(rxdata[ar][n]), frame_parms->ofdm_symbol_size, SHIFT);
|
||||
//((short*)sync_corr)[2*n] += ((short*) &result)[0];
|
||||
//((short*)sync_corr)[2*n+1] += ((short*) &result)[1];
|
||||
sync_corr_eNB[n] += abs32(result);
|
||||
|
||||
@@ -56,8 +56,8 @@ void lte_sync_timefreq(PHY_VARS_UE *ue,int band,unsigned int DL_freq)
|
||||
{
|
||||
#if defined(__x86_64__) || defined(__i386__)
|
||||
UE_SCAN_INFO_t *scan_info = &ue->scan_info[band];
|
||||
int16_t spectrum[12288] __attribute__((aligned(16)));
|
||||
int16_t spectrum_p5ms[12288] __attribute__((aligned(16)));
|
||||
int16_t spectrum[12288] __attribute__((aligned(32)));
|
||||
int16_t spectrum_p5ms[12288] __attribute__((aligned(32)));
|
||||
int i,f,band_idx;
|
||||
__m128i autocorr0[256/4],autocorr1[256/4],autocorr2[256/4];
|
||||
__m128i autocorr0_t[256/4],autocorr1_t[256/4],autocorr2_t[256/4];
|
||||
|
||||
@@ -73,7 +73,7 @@ void lte_gold_mbsfn(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_mbsfn_tabl
|
||||
|
||||
|
||||
int lte_dl_cell_spec(PHY_VARS_eNB *phy_vars_eNB,
|
||||
mod_sym_t *output,
|
||||
int32_t *output,
|
||||
short amp,
|
||||
unsigned char Ns,
|
||||
unsigned char l,
|
||||
@@ -89,7 +89,7 @@ int lte_dl_cell_spec(PHY_VARS_eNB *phy_vars_eNB,
|
||||
*/
|
||||
int lte_dl_ue_spec(PHY_VARS_eNB *phy_vars_eNB,
|
||||
uint8_t UE_id,
|
||||
mod_sym_t *output,
|
||||
int32_t *output,
|
||||
short amp,
|
||||
uint8_t Ns,
|
||||
uint8_t p,
|
||||
@@ -102,7 +102,7 @@ int lte_dl_ue_spec(PHY_VARS_eNB *phy_vars_eNB,
|
||||
@param Ns Slot number (0..19)
|
||||
@param l symbol (0,1,2)
|
||||
*/
|
||||
int lte_dl_mbsfn(PHY_VARS_eNB *phy_vars_eNB, mod_sym_t *output,
|
||||
int lte_dl_mbsfn(PHY_VARS_eNB *phy_vars_eNB, int32_t *output,
|
||||
short amp,
|
||||
int subframe,
|
||||
unsigned char l);
|
||||
@@ -148,7 +148,7 @@ void free_ul_ref_sigs(void);
|
||||
@sub_frame_offset Offset of this subframe in units of subframes
|
||||
*/
|
||||
|
||||
int lte_generate_srs(mod_sym_t **txdataF,
|
||||
int lte_generate_srs(int32_t **txdataF,
|
||||
short amp,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
unsigned int sub_frame_offset);
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
//Calibration
|
||||
int lte_dl_cell_spec_SS(PHY_VARS_eNB *phy_vars_eNB,
|
||||
mod_sym_t *output,
|
||||
int32_t *output,
|
||||
short amp,
|
||||
unsigned char Ns,
|
||||
unsigned char l,//nb of sym per slot
|
||||
@@ -50,7 +50,7 @@ int lte_dl_cell_spec_SS(PHY_VARS_eNB *phy_vars_eNB,
|
||||
|
||||
unsigned char nu,mprime,mprime_dword,mprime_qpsk_symb,m;
|
||||
unsigned short k,a;
|
||||
mod_sym_t qpsk[4];
|
||||
int32_t qpsk[4];
|
||||
|
||||
a = (amp*ONE_OVER_SQRT2_Q15)>>15;
|
||||
((short *)&qpsk[0])[0] = a;
|
||||
@@ -121,7 +121,7 @@ int lte_dl_cell_spec_SS(PHY_VARS_eNB *phy_vars_eNB,
|
||||
|
||||
|
||||
int lte_dl_cell_spec(PHY_VARS_eNB *phy_vars_eNB,
|
||||
mod_sym_t *output,
|
||||
int32_t *output,
|
||||
short amp,
|
||||
unsigned char Ns,
|
||||
unsigned char l,
|
||||
@@ -130,7 +130,7 @@ int lte_dl_cell_spec(PHY_VARS_eNB *phy_vars_eNB,
|
||||
|
||||
unsigned char nu,mprime,mprime_dword,mprime_qpsk_symb,m;
|
||||
unsigned short k,a;
|
||||
mod_sym_t qpsk[4];
|
||||
int32_t qpsk[4];
|
||||
|
||||
a = (amp*ONE_OVER_SQRT2_Q15)>>15;
|
||||
((short *)&qpsk[0])[0] = a;
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
//extern unsigned int lte_gold_table[10][3][42];
|
||||
//#define DEBUG_DL_MBSFN
|
||||
|
||||
int lte_dl_mbsfn(PHY_VARS_eNB *phy_vars_eNB, mod_sym_t *output,
|
||||
int lte_dl_mbsfn(PHY_VARS_eNB *phy_vars_eNB, int32_t *output,
|
||||
short amp,
|
||||
int subframe,
|
||||
unsigned char l)
|
||||
@@ -47,7 +47,7 @@ int lte_dl_mbsfn(PHY_VARS_eNB *phy_vars_eNB, mod_sym_t *output,
|
||||
|
||||
unsigned int mprime,mprime_dword,mprime_qpsk_symb,m;
|
||||
unsigned short k=0,a;
|
||||
mod_sym_t qpsk[4];
|
||||
int32_t qpsk[4];
|
||||
|
||||
a = (amp*ONE_OVER_SQRT2_Q15)>>15;
|
||||
((short *)&qpsk[0])[0] = a;
|
||||
|
||||
@@ -54,14 +54,14 @@ int Wbar_NCP[8][4] = {{1,1,1,1},{1,-1,1,-1},{1,1,1,1},{1,-1,1,-1},{1,1,-1,-1},{-
|
||||
|
||||
int lte_dl_ue_spec(PHY_VARS_eNB *phy_vars_eNB,
|
||||
uint8_t UE_id,
|
||||
mod_sym_t *output,
|
||||
int32_t *output,
|
||||
short amp,
|
||||
uint8_t Ns,
|
||||
uint8_t p,
|
||||
int SS_flag )
|
||||
{
|
||||
|
||||
mod_sym_t qpsk[4],nqpsk[4],*qpsk_p,*output_p;
|
||||
int32_t qpsk[4],nqpsk[4],*qpsk_p,*output_p;
|
||||
int16_t a;
|
||||
int w,lprime,ind,l,ind_dword,ind_qpsk_symb,nPRB;
|
||||
// LTE_eNB_DLSCH_t *dlsch = phy_vars_eNB->dlsch_eNB[UE_id][0];
|
||||
|
||||
@@ -61,21 +61,18 @@ void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14]
|
||||
|
||||
x2 = Ncp +
|
||||
(Nid_cell<<1) +
|
||||
(((1+(Nid_cell<<1))*(1 + (((frame_parms->Ncp==0)?4:3)*l) + (7*(1+ns))))<<10); //cinit
|
||||
(((1+(Nid_cell<<1))*(1 + (((frame_parms->Ncp==0)?4:3)*l) + (7*(1+ns))))<<10); //cinit
|
||||
//x2 = frame_parms->Ncp + (Nid_cell<<1) + (1+(Nid_cell<<1))*(1 + (3*l) + (7*(1+ns))); //cinit
|
||||
//n = 0
|
||||
// printf("cinit (ns %d, l %d) => %d\n",ns,l,x2);
|
||||
x1 = 1+ (1<<31);
|
||||
x2=x2 ^ ((x2 ^ (x2>>1) ^ (x2>>2) ^ (x2>>3))<<31);
|
||||
|
||||
// skip first 50 double words (1600 bits)
|
||||
//printf("n=0 : x1 %x, x2 %x\n",x1,x2);
|
||||
for (n=1; n<50; n++) {
|
||||
x1 = (x1>>1) ^ (x1>>4);
|
||||
x1 = x1 ^ (x1<<31) ^ (x1<<28);
|
||||
x2 = (x2>>1) ^ (x2>>2) ^ (x2>>3) ^ (x2>>4);
|
||||
x2 = x2 ^ (x2<<31) ^ (x2<<30) ^ (x2<<29) ^ (x2<<28);
|
||||
// printf("x1 : %x, x2 : %x\n",x1,x2);
|
||||
}
|
||||
|
||||
for (n=0; n<14; n++) {
|
||||
@@ -84,7 +81,6 @@ void lte_gold(LTE_DL_FRAME_PARMS *frame_parms,uint32_t lte_gold_table[20][2][14]
|
||||
x2 = (x2>>1) ^ (x2>>2) ^ (x2>>3) ^ (x2>>4);
|
||||
x2 = x2 ^ (x2<<31) ^ (x2<<30) ^ (x2<<29) ^ (x2<<28);
|
||||
lte_gold_table[ns][l][n] = x1^x2;
|
||||
// printf("n=%d : c %x\n",n,x1^x2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -272,12 +272,12 @@ uint32_t Y;
|
||||
//#define Mquad (Msymb/4)
|
||||
|
||||
static uint32_t bitrev_cc_dci[32] = {1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31,0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30};
|
||||
static mod_sym_t wtemp[2][Msymb];
|
||||
static int32_t wtemp[2][Msymb];
|
||||
|
||||
void pdcch_interleaving(LTE_DL_FRAME_PARMS *frame_parms,mod_sym_t **z, mod_sym_t **wbar,uint8_t n_symbols_pdcch,uint8_t mi)
|
||||
void pdcch_interleaving(LTE_DL_FRAME_PARMS *frame_parms,int32_t **z, int32_t **wbar,uint8_t n_symbols_pdcch,uint8_t mi)
|
||||
{
|
||||
|
||||
mod_sym_t *wptr,*wptr2,*zptr;
|
||||
int32_t *wptr,*wptr2,*zptr;
|
||||
uint32_t Mquad = get_nquad(n_symbols_pdcch,frame_parms,mi);
|
||||
uint32_t RCC = (Mquad>>5), ND;
|
||||
uint32_t row,col,Kpi,index;
|
||||
@@ -2027,7 +2027,7 @@ uint8_t generate_dci_top(uint8_t num_ue_spec_dci,
|
||||
uint32_t n_rnti,
|
||||
int16_t amp,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
mod_sym_t **txdataF,
|
||||
int32_t **txdataF,
|
||||
uint32_t subframe)
|
||||
{
|
||||
|
||||
@@ -2038,10 +2038,10 @@ uint8_t generate_dci_top(uint8_t num_ue_spec_dci,
|
||||
int16_t re_offset;
|
||||
uint8_t mi = get_mi(frame_parms,subframe);
|
||||
static uint8_t e[DCI_BITS_MAX];
|
||||
static mod_sym_t yseq0[Msymb],yseq1[Msymb],wbar0[Msymb],wbar1[Msymb];
|
||||
static int32_t yseq0[Msymb],yseq1[Msymb],wbar0[Msymb],wbar1[Msymb];
|
||||
|
||||
mod_sym_t *y[2];
|
||||
mod_sym_t *wbar[2];
|
||||
int32_t *y[2];
|
||||
int32_t *wbar[2];
|
||||
|
||||
int nushiftmod3 = frame_parms->nushift%3;
|
||||
|
||||
|
||||
@@ -40,8 +40,6 @@
|
||||
#include "PHY/defs.h"
|
||||
#include "PHY/extern.h"
|
||||
#include "SCHED/defs.h"
|
||||
#include "MAC_INTERFACE/defs.h"
|
||||
#include "MAC_INTERFACE/extern.h"
|
||||
#ifdef DEBUG_DCI_TOOLS
|
||||
#include "PHY/vars.h"
|
||||
#endif
|
||||
@@ -253,8 +251,8 @@ void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t
|
||||
*/
|
||||
// printf("rb_alloc[1]=%x,rb_alloc[0]=%x\n",rb_alloc2[1],rb_alloc2[0]);
|
||||
} else {
|
||||
LOG_E(PHY,"resource type 1 not supported for N_RB_DL=100\n");
|
||||
mac_xface->macphy_exit("resource type 1 not supported for N_RB_DL=100\n");
|
||||
LOG_E(PHY,"resource type 1 not supported for N_RB_DL=50\n");
|
||||
// mac_xface->macphy_exit("resource type 1 not supported for N_RB_DL=100\n");
|
||||
/*
|
||||
subset = rb_alloc&1;
|
||||
shift = (rb_alloc>>1)&1;
|
||||
@@ -284,7 +282,7 @@ void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t
|
||||
}
|
||||
} else {
|
||||
LOG_E(PHY,"resource type 1 not supported for N_RB_DL=100\n");
|
||||
mac_xface->macphy_exit("resource type 1 not supported for N_RB_DL=100\n");
|
||||
// mac_xface->macphy_exit("resource type 1 not supported for N_RB_DL=100\n");
|
||||
/*
|
||||
subset = rb_alloc&1;
|
||||
shift = (rb_alloc>>1)&1;
|
||||
@@ -734,11 +732,11 @@ void generate_RIV_tables()
|
||||
if (nVRB<32)
|
||||
alloc0 |= (1<<nVRB);
|
||||
else if (nVRB<64)
|
||||
alloc1 |= (1<<(nVRB-33));
|
||||
alloc1 |= (1<<(nVRB-32));
|
||||
else if (nVRB<96)
|
||||
alloc2 |= (1<<(nVRB-65));
|
||||
alloc2 |= (1<<(nVRB-64));
|
||||
else
|
||||
alloc3 |= (1<<(nVRB-97));
|
||||
alloc3 |= (1<<(nVRB-96));
|
||||
|
||||
// Distributed Gap1, even slot
|
||||
nVRB_even_dist = get_prb(100,0,nVRB,0);
|
||||
@@ -770,9 +768,9 @@ void generate_RIV_tables()
|
||||
else if (nVRB_odd_dist<64)
|
||||
allocdist1_0_odd |= (1<<(nVRB_odd_dist-32));
|
||||
else if (nVRB_odd_dist<96)
|
||||
allocdist2_0_odd |= (1<<(nVRB_odd_dist-65));
|
||||
allocdist2_0_odd |= (1<<(nVRB_odd_dist-64));
|
||||
else
|
||||
allocdist3_0_odd |= (1<<(nVRB_odd_dist-97));
|
||||
allocdist3_0_odd |= (1<<(nVRB_odd_dist-96));
|
||||
|
||||
|
||||
// Distributed Gap2, even slot
|
||||
@@ -4467,7 +4465,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
||||
dlsch[0]->g_pucch += delta_PUCCH_lut[TPC&3];
|
||||
|
||||
if (TPC!=1)
|
||||
LOG_I(PHY,"format1 TPC %d, dlsch0_harq->delta_PUCCH %d\n",TPC,dlsch0_harq->delta_PUCCH);
|
||||
LOG_D(PHY,"format1 TPC %d, dlsch0_harq->delta_PUCCH %d\n",TPC,dlsch0_harq->delta_PUCCH);
|
||||
|
||||
dlsch0_harq->rvidx = rv;
|
||||
|
||||
@@ -4476,7 +4474,7 @@ int generate_ue_dlsch_params_from_dci(int frame,
|
||||
|
||||
dlsch0_harq->dl_power_off = 1; //no power offset
|
||||
|
||||
LOG_D(PHY,"UE (%x/%d): Subframe %d Format2 DCI: ndi %d, old_ndi %d (first tx %d) harq_status %d\n",dlsch[0]->rnti,harq_pid,subframe,ndi,dlsch0_harq->DCINdi,
|
||||
LOG_D(PHY,"UE (%x/%d): Subframe %d Format1 DCI: ndi %d, old_ndi %d (first tx %d) harq_status %d\n",dlsch[0]->rnti,harq_pid,subframe,ndi,dlsch0_harq->DCINdi,
|
||||
dlsch0_harq->first_tx,dlsch0_harq->status);
|
||||
|
||||
// printf("Format2 DCI (UE, hard pid %d): ndi %d, old_ndi %d (first tx %d)\n",harq_pid,ndi,dlsch0_harq->DCINdi,
|
||||
@@ -7129,10 +7127,10 @@ int generate_eNB_ulsch_params_from_dci(void *dci_pdu,
|
||||
|
||||
harq_pid = subframe2harq_pid(frame_parms,
|
||||
pdcch_alloc2ul_frame(frame_parms,
|
||||
phy_vars_eNB->proc[sched_subframe].frame_tx,
|
||||
subframe),
|
||||
phy_vars_eNB->proc[sched_subframe].frame_tx,
|
||||
subframe),
|
||||
pdcch_alloc2ul_subframe(frame_parms,subframe));
|
||||
|
||||
|
||||
// printf("eNB: sched_subframe %d, subframe %d, frame_tx %d\n",sched_subframe,subframe,phy_vars_eNB->proc[sched_subframe].frame_tx);
|
||||
|
||||
switch (frame_parms->N_RB_DL) {
|
||||
@@ -7600,9 +7598,9 @@ int generate_eNB_ulsch_params_from_dci(void *dci_pdu,
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
ulsch->harq_processes[harq_pid]->O_RI = 0;//1;
|
||||
ulsch->harq_processes[harq_pid]->O_RI = 0;
|
||||
ulsch->harq_processes[harq_pid]->Or2 = 0;
|
||||
ulsch->harq_processes[harq_pid]->Or1 = 0;//sizeof_HLC_subband_cqi_nopmi_5MHz;
|
||||
ulsch->harq_processes[harq_pid]->Or1 = 0;
|
||||
ulsch->harq_processes[harq_pid]->uci_format = HLC_subband_cqi_nopmi;
|
||||
}
|
||||
|
||||
|
||||
@@ -269,8 +269,10 @@ typedef struct {
|
||||
uint32_t G;
|
||||
/// Codebook index for this dlsch (0,1,2,3)
|
||||
uint8_t codebook_index;
|
||||
/// Maximum number of HARQ rounds (for definition see 36-212 V8.6 2009-03, p.17)
|
||||
/// Maximum number of HARQ processes (for definition see 36-212 V8.6 2009-03, p.17)
|
||||
uint8_t Mdlharq;
|
||||
/// Maximum number of HARQ rounds
|
||||
uint8_t Mlimit;
|
||||
/// MIMO transmission mode indicator for this sub-frame (for definition see 36-212 V8.6 2009-03, p.17)
|
||||
uint8_t Kmimo;
|
||||
/// Nsoft parameter related to UE Category
|
||||
@@ -315,11 +317,9 @@ typedef struct {
|
||||
/// Scrambled "b"-sequences (for definition see 36-211 V8.6 2009-03, p.14)
|
||||
uint8_t b_tilde[MAX_NUM_CHANNEL_BITS];
|
||||
/// Modulated "d"-sequences (for definition see 36-211 V8.6 2009-03, p.14)
|
||||
mod_sym_t d[MAX_NUM_RE];
|
||||
int32_t d[MAX_NUM_RE];
|
||||
/// Transform-coded "z"-sequences (for definition see 36-211 V8.6 2009-03, p.14-15)
|
||||
mod_sym_t z[MAX_NUM_RE];
|
||||
/// Maximum number of HARQ rounds (for definition see 36-212 V8.6 2009-03, p.17)
|
||||
uint8_t Mdlharq;
|
||||
int32_t z[MAX_NUM_RE];
|
||||
/// "q" sequences for CQI/PMI (for definition see 36-212 V8.6 2009-03, p.27)
|
||||
uint8_t q[MAX_CQI_PAYLOAD];
|
||||
/// coded and interleaved CQI bits
|
||||
@@ -468,8 +468,8 @@ typedef struct {
|
||||
typedef struct {
|
||||
/// Pointers to 8 HARQ processes for the ULSCH
|
||||
LTE_UL_eNB_HARQ_t *harq_processes[8];
|
||||
/// Maximum number of HARQ rounds (for definition see 36-212 V8.6 2009-03, p.17)
|
||||
uint8_t Mdlharq;
|
||||
/// Maximum number of HARQ rounds
|
||||
uint8_t Mlimit;
|
||||
/// Maximum number of iterations used in eNB turbo decoder
|
||||
uint8_t max_turbo_iterations;
|
||||
/// ACK/NAK Bundling flag
|
||||
@@ -572,6 +572,10 @@ typedef struct {
|
||||
vrb_t vrb_type;
|
||||
/// downlink power offset field
|
||||
uint8_t dl_power_off;
|
||||
/// trials per round statistics
|
||||
uint32_t trials[8];
|
||||
/// error statistics per round
|
||||
uint32_t errors[8];
|
||||
} LTE_DL_UE_HARQ_t;
|
||||
|
||||
typedef struct {
|
||||
@@ -698,7 +702,7 @@ typedef struct {
|
||||
harq_status_t harq_ack[10];
|
||||
/// Pointers to up to 8 HARQ processes
|
||||
LTE_DL_UE_HARQ_t *harq_processes[8];
|
||||
/// Maximum number of HARQ rounds (for definition see 36-212 V8.6 2009-03, p.17
|
||||
/// Maximum number of HARQ processes(for definition see 36-212 V8.6 2009-03, p.17
|
||||
uint8_t Mdlharq;
|
||||
/// MIMO transmission mode indicator for this sub-frame (for definition see 36-212 V8.6 2009-03, p.17)
|
||||
uint8_t Kmimo;
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "PHY/CODING/extern.h"
|
||||
#include "PHY/CODING/lte_interleaver_inline.h"
|
||||
#include "PHY/LTE_TRANSPORT/defs.h"
|
||||
#include "PHY/LTE_TRANSPORT/proto.h"
|
||||
#include "SCHED/defs.h"
|
||||
#include "defs.h"
|
||||
#include "UTIL/LOG/vcd_signal_dumper.h"
|
||||
@@ -92,11 +93,11 @@ void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch)
|
||||
#endif
|
||||
|
||||
for (r=0; r<MAX_NUM_DLSCH_SEGMENTS; r++) {
|
||||
|
||||
|
||||
#ifdef DEBUG_DLSCH_FREE
|
||||
msg("Freeing dlsch process %d c[%d] (%p)\n",i,r,dlsch->harq_processes[i]->c[r]);
|
||||
#endif
|
||||
|
||||
|
||||
if (dlsch->harq_processes[i]->c[r]) {
|
||||
free16(dlsch->harq_processes[i]->c[r],((r==0)?8:0) + 3+768);
|
||||
dlsch->harq_processes[i]->c[r] = NULL;
|
||||
@@ -105,17 +106,17 @@ void free_eNB_dlsch(LTE_eNB_DLSCH_t *dlsch)
|
||||
free16(dlsch->harq_processes[i]->d[r],(96+12+3+(3*6144)));
|
||||
dlsch->harq_processes[i]->d[r] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
free16(dlsch->harq_processes[i],sizeof(LTE_DL_eNB_HARQ_t));
|
||||
dlsch->harq_processes[i] = NULL;
|
||||
|
||||
}
|
||||
free16(dlsch->harq_processes[i],sizeof(LTE_DL_eNB_HARQ_t));
|
||||
dlsch->harq_processes[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
free16(dlsch,sizeof(LTE_eNB_DLSCH_t));
|
||||
dlsch = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_t Nsoft,unsigned char N_RB_DL, uint8_t abstraction_flag)
|
||||
@@ -149,6 +150,7 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_
|
||||
bzero(dlsch,sizeof(LTE_eNB_DLSCH_t));
|
||||
dlsch->Kmimo = Kmimo;
|
||||
dlsch->Mdlharq = Mdlharq;
|
||||
dlsch->Mlimit = 4;
|
||||
dlsch->Nsoft = Nsoft;
|
||||
|
||||
for (i=0; i<10; i++)
|
||||
@@ -205,28 +207,28 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_
|
||||
for (i=0; i<Mdlharq; i++) {
|
||||
dlsch->harq_processes[i]->round=0;
|
||||
|
||||
if (abstraction_flag==0) {
|
||||
for (j=0; j<96; j++)
|
||||
for (r=0; r<MAX_NUM_DLSCH_SEGMENTS/bw_scaling; r++) {
|
||||
// printf("dlsch->harq_processes[%d]->d[%d] %p\n",i,r,dlsch->harq_processes[i]->d[r]);
|
||||
dlsch->harq_processes[i]->d[r][j] = LTE_NULL;
|
||||
}
|
||||
}
|
||||
for (j=0; j<96; j++)
|
||||
for (r=0; r<MAX_NUM_DLSCH_SEGMENTS/bw_scaling; r++) {
|
||||
// printf("dlsch->harq_processes[%d]->d[%d] %p\n",i,r,dlsch->harq_processes[i]->d[r]);
|
||||
if (dlsch->harq_processes[i]->d[r])
|
||||
dlsch->harq_processes[i]->d[r][j] = LTE_NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return(dlsch);
|
||||
}
|
||||
}
|
||||
|
||||
LOG_D(PHY, "new_eNB_dlsch exit flag %d, size of %ld\n",
|
||||
exit_flag, sizeof(LTE_eNB_DLSCH_t));
|
||||
LOG_D(PHY,"new_eNB_dlsch exit flag %d, size of %ld\n",
|
||||
exit_flag, sizeof(LTE_eNB_DLSCH_t));
|
||||
free_eNB_dlsch(dlsch);
|
||||
return(NULL);
|
||||
|
||||
|
||||
}
|
||||
|
||||
void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch, uint8_t abstraction_flag)
|
||||
void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch)
|
||||
{
|
||||
|
||||
unsigned char Mdlharq;
|
||||
@@ -246,12 +248,11 @@ void clean_eNb_dlsch(LTE_eNB_DLSCH_t *dlsch, uint8_t abstraction_flag)
|
||||
dlsch->harq_processes[i]->status = 0;
|
||||
dlsch->harq_processes[i]->round = 0;
|
||||
|
||||
if (abstraction_flag==0) {
|
||||
for (j=0; j<96; j++)
|
||||
for (r=0; r<MAX_NUM_DLSCH_SEGMENTS; r++)
|
||||
if (dlsch->harq_processes[i]->d[r])
|
||||
dlsch->harq_processes[i]->d[r][j] = LTE_NULL;
|
||||
}
|
||||
for (j=0; j<96; j++)
|
||||
for (r=0; r<MAX_NUM_DLSCH_SEGMENTS; r++)
|
||||
if (dlsch->harq_processes[i]->d[r])
|
||||
dlsch->harq_processes[i]->d[r][j] = LTE_NULL;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ LTE_UE_DLSCH_t *new_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,uint8_
|
||||
dlsch->max_turbo_iterations = max_turbo_iterations;
|
||||
|
||||
for (i=0; i<Mdlharq; i++) {
|
||||
// msg("new_ue_dlsch: Harq process %d\n",i);
|
||||
// printf("new_ue_dlsch: Harq process %d\n",i);
|
||||
dlsch->harq_processes[i] = (LTE_DL_UE_HARQ_t *)malloc16(sizeof(LTE_DL_UE_HARQ_t));
|
||||
|
||||
if (dlsch->harq_processes[i]) {
|
||||
@@ -156,7 +156,7 @@ LTE_UE_DLSCH_t *new_ue_dlsch(uint8_t Kmimo,uint8_t Mdlharq,uint32_t Nsoft,uint8_
|
||||
return(dlsch);
|
||||
}
|
||||
|
||||
msg("new_ue_dlsch with size %zu: exit_flag = %u\n",sizeof(LTE_DL_UE_HARQ_t), exit_flag);
|
||||
printf("new_ue_dlsch with size %zu: exit_flag = %u\n",sizeof(LTE_DL_UE_HARQ_t), exit_flag);
|
||||
free_ue_dlsch(dlsch);
|
||||
|
||||
return(NULL);
|
||||
@@ -187,6 +187,27 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
uint8_t crc_type;
|
||||
#ifdef DEBUG_DLSCH_DECODING
|
||||
uint16_t i;
|
||||
#endif
|
||||
#ifdef __AVX2__
|
||||
int Kr_last,skipped_last=0;
|
||||
uint8_t (*tc_2cw)(int16_t *y,
|
||||
int16_t *y2,
|
||||
uint8_t *,
|
||||
uint8_t *,
|
||||
uint16_t,
|
||||
uint16_t,
|
||||
uint16_t,
|
||||
uint8_t,
|
||||
uint8_t,
|
||||
uint8_t,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *,
|
||||
time_stats_t *);
|
||||
|
||||
#endif
|
||||
uint8_t (*tc)(int16_t *y,
|
||||
uint8_t *,
|
||||
@@ -204,28 +225,35 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
time_stats_t *,
|
||||
time_stats_t *);
|
||||
|
||||
|
||||
|
||||
|
||||
if (!dlsch_llr) {
|
||||
msg("dlsch_decoding.c: NULL dlsch_llr pointer\n");
|
||||
printf("dlsch_decoding.c: NULL dlsch_llr pointer\n");
|
||||
return(dlsch->max_turbo_iterations);
|
||||
}
|
||||
|
||||
if (!harq_process) {
|
||||
msg("dlsch_decoding.c: NULL harq_process pointer\n");
|
||||
printf("dlsch_decoding.c: NULL harq_process pointer\n");
|
||||
return(dlsch->max_turbo_iterations);
|
||||
}
|
||||
|
||||
if (!frame_parms) {
|
||||
msg("dlsch_decoding.c: NULL frame_parms pointer\n");
|
||||
printf("dlsch_decoding.c: NULL frame_parms pointer\n");
|
||||
return(dlsch->max_turbo_iterations);
|
||||
}
|
||||
|
||||
if (subframe>9) {
|
||||
msg("dlsch_decoding.c: Illegal subframe index %d\n",subframe);
|
||||
printf("dlsch_decoding.c: Illegal subframe index %d\n",subframe);
|
||||
return(dlsch->max_turbo_iterations);
|
||||
}
|
||||
|
||||
if (llr8_flag == 0)
|
||||
if (llr8_flag == 0) {
|
||||
#ifdef __AVX2__
|
||||
tc_2cw = phy_threegpplte_turbo_decoder16avx2;
|
||||
#endif
|
||||
tc = phy_threegpplte_turbo_decoder16;
|
||||
}
|
||||
else
|
||||
tc = phy_threegpplte_turbo_decoder8;
|
||||
|
||||
@@ -233,16 +261,19 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
/*
|
||||
if (nb_rb > frame_parms->N_RB_DL) {
|
||||
msg("dlsch_decoding.c: Illegal nb_rb %d\n",nb_rb);
|
||||
printf("dlsch_decoding.c: Illegal nb_rb %d\n",nb_rb);
|
||||
return(max_turbo_iterations);
|
||||
}*/
|
||||
|
||||
/*harq_pid = dlsch->current_harq_pid;
|
||||
if (harq_pid >= 8) {
|
||||
msg("dlsch_decoding.c: Illegal harq_pid %d\n",harq_pid);
|
||||
printf("dlsch_decoding.c: Illegal harq_pid %d\n",harq_pid);
|
||||
return(max_turbo_iterations);
|
||||
}
|
||||
*/
|
||||
|
||||
harq_process->trials[harq_process->round]++;
|
||||
|
||||
A = harq_process->TBS; //2072 for QPSK 1/3
|
||||
|
||||
ret = dlsch->max_turbo_iterations;
|
||||
@@ -251,7 +282,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
G = harq_process->G;
|
||||
//get_G(frame_parms,nb_rb,dlsch->rb_alloc,mod_order,num_pdcch_symbols,phy_vars_ue->frame,subframe);
|
||||
|
||||
// msg("DLSCH Decoding, harq_pid %d Ndi %d\n",harq_pid,harq_process->Ndi);
|
||||
// printf("DLSCH Decoding, harq_pid %d Ndi %d\n",harq_pid,harq_process->Ndi);
|
||||
|
||||
if (harq_process->round == 0) {
|
||||
// This is a new packet, so compute quantities regarding segmentation
|
||||
@@ -270,7 +301,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
/*
|
||||
else {
|
||||
msg("dlsch_decoding.c: Ndi>0 not checked yet!!\n");
|
||||
printf("dlsch_decoding.c: Ndi>0 not checked yet!!\n");
|
||||
return(max_turbo_iterations);
|
||||
}
|
||||
*/
|
||||
@@ -297,10 +328,14 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
break;
|
||||
}
|
||||
|
||||
if (harq_process->C >= MAX_NUM_DLSCH_SEGMENTS/bw_scaling) {
|
||||
if (harq_process->C > MAX_NUM_DLSCH_SEGMENTS/bw_scaling) {
|
||||
LOG_E(PHY,"Illegal harq_process->C %d > %d\n",harq_process->C,MAX_NUM_DLSCH_SEGMENTS/bw_scaling);
|
||||
return((1+dlsch->max_turbo_iterations));
|
||||
}
|
||||
#ifdef DEBUG_DLSCH_DECODING
|
||||
printf("Segmentation: C %d, Cminus %d, Kminus %d, Kplus %d\n",harq_process->C,harq_process->Cminus,harq_process->Kminus,harq_process->Kplus);
|
||||
#endif
|
||||
|
||||
for (r=0; r<harq_process->C; r++) {
|
||||
|
||||
|
||||
@@ -321,7 +356,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
else if (Kr_bytes <= 768)
|
||||
iind = 123 + ((Kr_bytes-256)>>3);
|
||||
else {
|
||||
msg("dlsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes);
|
||||
printf("dlsch_decoding: Illegal codeword size %d!!!\n",Kr_bytes);
|
||||
return(dlsch->max_turbo_iterations);
|
||||
}
|
||||
|
||||
@@ -415,15 +450,12 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
printf("\n");
|
||||
*/
|
||||
|
||||
//#ifndef __AVX2__
|
||||
#if 1
|
||||
if (err_flag == 0) {
|
||||
|
||||
start_meas(dlsch_turbo_decoding_stats);
|
||||
#ifdef TURBO_S
|
||||
ret = phy_threegpplte_turbo_decoder_scalar
|
||||
#else
|
||||
|
||||
ret = tc
|
||||
#endif
|
||||
(&harq_process->d[r][96],
|
||||
harq_process->c[r],
|
||||
Kr,
|
||||
@@ -443,7 +475,130 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
stop_meas(dlsch_turbo_decoding_stats);
|
||||
}
|
||||
#else
|
||||
if ((harq_process->C == 1) ||
|
||||
((r==harq_process->C-1) && (skipped_last==0))) { // last segment with odd number of segments
|
||||
|
||||
start_meas(dlsch_turbo_decoding_stats);
|
||||
ret = tc
|
||||
(&harq_process->d[r][96],
|
||||
harq_process->c[r],
|
||||
Kr,
|
||||
f1f2mat_old[iind*2],
|
||||
f1f2mat_old[(iind*2)+1],
|
||||
dlsch->max_turbo_iterations,
|
||||
crc_type,
|
||||
(r==0) ? harq_process->F : 0,
|
||||
&phy_vars_ue->dlsch_tc_init_stats,
|
||||
&phy_vars_ue->dlsch_tc_alpha_stats,
|
||||
&phy_vars_ue->dlsch_tc_beta_stats,
|
||||
&phy_vars_ue->dlsch_tc_gamma_stats,
|
||||
&phy_vars_ue->dlsch_tc_ext_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl1_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
|
||||
stop_meas(dlsch_turbo_decoding_stats);
|
||||
// printf("single decode, exit\n");
|
||||
// exit(-1);
|
||||
}
|
||||
else {
|
||||
// we can merge code segments
|
||||
if ((skipped_last == 0) && (r<harq_process->C-1)) {
|
||||
skipped_last = 1;
|
||||
Kr_last = Kr;
|
||||
}
|
||||
else {
|
||||
skipped_last=0;
|
||||
|
||||
if (Kr_last == Kr) { // decode 2 code segments with AVX2 version
|
||||
#ifdef DEBUG_DLSCH_DECODING
|
||||
printf("single decoding segment %d (%p)\n",r-1,&harq_process->d[r-1][96]);
|
||||
#endif
|
||||
start_meas(dlsch_turbo_decoding_stats);
|
||||
#ifdef DEBUG_DLSCH_DECODING
|
||||
printf("double decoding segments %d,%d (%p,%p)\n",r-1,r,&harq_process->d[r-1][96],&harq_process->d[r][96]);
|
||||
#endif
|
||||
ret = tc_2cw
|
||||
(&harq_process->d[r-1][96],
|
||||
&harq_process->d[r][96],
|
||||
harq_process->c[r-1],
|
||||
harq_process->c[r],
|
||||
Kr,
|
||||
f1f2mat_old[iind*2],
|
||||
f1f2mat_old[(iind*2)+1],
|
||||
dlsch->max_turbo_iterations,
|
||||
crc_type,
|
||||
(r==0) ? harq_process->F : 0,
|
||||
&phy_vars_ue->dlsch_tc_init_stats,
|
||||
&phy_vars_ue->dlsch_tc_alpha_stats,
|
||||
&phy_vars_ue->dlsch_tc_beta_stats,
|
||||
&phy_vars_ue->dlsch_tc_gamma_stats,
|
||||
&phy_vars_ue->dlsch_tc_ext_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl1_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
|
||||
/*
|
||||
ret = tc
|
||||
(&harq_process->d[r-1][96],
|
||||
harq_process->c[r-1],
|
||||
Kr_last,
|
||||
f1f2mat_old[iind*2],
|
||||
f1f2mat_old[(iind*2)+1],
|
||||
dlsch->max_turbo_iterations,
|
||||
crc_type,
|
||||
(r==0) ? harq_process->F : 0,
|
||||
&phy_vars_ue->dlsch_tc_init_stats,
|
||||
&phy_vars_ue->dlsch_tc_alpha_stats,
|
||||
&phy_vars_ue->dlsch_tc_beta_stats,
|
||||
&phy_vars_ue->dlsch_tc_gamma_stats,
|
||||
&phy_vars_ue->dlsch_tc_ext_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl1_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
|
||||
|
||||
exit(-1);*/
|
||||
stop_meas(dlsch_turbo_decoding_stats);
|
||||
}
|
||||
else { // Kr_last != Kr
|
||||
start_meas(dlsch_turbo_decoding_stats);
|
||||
ret = tc
|
||||
(&harq_process->d[r-1][96],
|
||||
harq_process->c[r-1],
|
||||
Kr_last,
|
||||
f1f2mat_old[iind*2],
|
||||
f1f2mat_old[(iind*2)+1],
|
||||
dlsch->max_turbo_iterations,
|
||||
crc_type,
|
||||
(r==0) ? harq_process->F : 0,
|
||||
&phy_vars_ue->dlsch_tc_init_stats,
|
||||
&phy_vars_ue->dlsch_tc_alpha_stats,
|
||||
&phy_vars_ue->dlsch_tc_beta_stats,
|
||||
&phy_vars_ue->dlsch_tc_gamma_stats,
|
||||
&phy_vars_ue->dlsch_tc_ext_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl1_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
|
||||
stop_meas(dlsch_turbo_decoding_stats);
|
||||
|
||||
start_meas(dlsch_turbo_decoding_stats);
|
||||
ret = tc
|
||||
(&harq_process->d[r][96],
|
||||
harq_process->c[r],
|
||||
Kr,
|
||||
f1f2mat_old[iind*2],
|
||||
f1f2mat_old[(iind*2)+1],
|
||||
dlsch->max_turbo_iterations,
|
||||
crc_type,
|
||||
(r==0) ? harq_process->F : 0,
|
||||
&phy_vars_ue->dlsch_tc_init_stats,
|
||||
&phy_vars_ue->dlsch_tc_alpha_stats,
|
||||
&phy_vars_ue->dlsch_tc_beta_stats,
|
||||
&phy_vars_ue->dlsch_tc_gamma_stats,
|
||||
&phy_vars_ue->dlsch_tc_ext_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl1_stats,
|
||||
&phy_vars_ue->dlsch_tc_intl2_stats); //(is_crnti==0)?harq_pid:harq_pid+1);
|
||||
stop_meas(dlsch_turbo_decoding_stats);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
if ((err_flag == 0) && (ret>=(1+dlsch->max_turbo_iterations))) {// a Code segment is in error so break;
|
||||
@@ -457,6 +612,7 @@ uint32_t dlsch_decoding(PHY_VARS_UE *phy_vars_ue,
|
||||
dlsch->harq_ack[subframe].ack = 0;
|
||||
dlsch->harq_ack[subframe].harq_id = harq_pid;
|
||||
dlsch->harq_ack[subframe].send_harq_status = 1;
|
||||
harq_process->errors[harq_process->round]++;
|
||||
harq_process->round++;
|
||||
|
||||
// LOG_D(PHY,"[UE %d] DLSCH: Setting NACK for subframe %d (pid %d, round %d)\n",phy_vars_ue->Mod_id,subframe,harq_pid,harq_process->round);
|
||||
|
||||
@@ -281,7 +281,7 @@ int rx_pdsch(PHY_VARS_UE *phy_vars_ue,
|
||||
// avgs = cmax(avgs,avg[(aarx<<1)+aatx]);
|
||||
|
||||
|
||||
lte_ue_pdsch_vars[eNB_id]->log2_maxh = (log2_approx(avgs)/2);
|
||||
lte_ue_pdsch_vars[eNB_id]->log2_maxh = (log2_approx(avgs)/2)+1;
|
||||
// + log2_approx(frame_parms->nb_antennas_tx_eNB-1) //-1 because log2_approx counts the number of bits
|
||||
// + log2_approx(frame_parms->nb_antennas_rx-1);
|
||||
|
||||
@@ -1898,17 +1898,17 @@ void dlsch_channel_compensation_TM3(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
|
||||
for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
|
||||
|
||||
dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
dl_ch0_128 = (__m128i *)&dl_ch_estimates_ext[aarx][symbol*frame_parms->N_RB_DL*12]; // hr,0
|
||||
dl_ch1_128 = (__m128i *)&dl_ch_estimates_ext[2+aarx][symbol*frame_parms->N_RB_DL*12]; // hr,1
|
||||
|
||||
|
||||
dl_ch_mag0_128 = (__m128i *)&dl_ch_mag0[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
dl_ch_mag0_128b = (__m128i *)&dl_ch_magb0[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
dl_ch_mag1_128 = (__m128i *)&dl_ch_mag1[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
dl_ch_mag1_128b = (__m128i *)&dl_ch_magb1[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
rxdataF_comp0_128 = (__m128i *)&rxdataF_comp0[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
rxdataF_comp1_128 = (__m128i *)&rxdataF_comp1[aarx][symbol*frame_parms->N_RB_DL*12];
|
||||
rxdataF128 = (__m128i *)&rxdataF_ext[aarx][symbol*frame_parms->N_RB_DL*12]; // yr
|
||||
rxdataF_comp0_128 = (__m128i *)&rxdataF_comp0[aarx][symbol*frame_parms->N_RB_DL*12]; // yr,0 = yr * conj(hr,0)
|
||||
rxdataF_comp1_128 = (__m128i *)&rxdataF_comp1[aarx][symbol*frame_parms->N_RB_DL*12]; // yr,1 = yr * conj(hr,1)
|
||||
|
||||
|
||||
for (rb=0; rb<nb_rb; rb++) {
|
||||
|
||||
@@ -137,7 +137,7 @@ void layer1prec2A(int32_t *antenna0_sample, int32_t *antenna1_sample, uint8_t pr
|
||||
}
|
||||
|
||||
int allocate_REs_in_RB(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
mod_sym_t **txdataF,
|
||||
int32_t **txdataF,
|
||||
uint32_t *jj,
|
||||
uint32_t *jj2,
|
||||
uint16_t re_offset,
|
||||
@@ -981,7 +981,7 @@ int allocate_REs_in_RB(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
return(0);
|
||||
}
|
||||
|
||||
int allocate_REs_in_RB_MCH(mod_sym_t **txdataF,
|
||||
int allocate_REs_in_RB_MCH(int32_t **txdataF,
|
||||
uint32_t *jj,
|
||||
uint16_t re_offset,
|
||||
uint32_t symbol_offset,
|
||||
@@ -1178,7 +1178,7 @@ uint8_t get_pmi(uint8_t N_RB_DL,LTE_DL_eNB_HARQ_t *dlsch_harq,uint16_t rb)
|
||||
}
|
||||
|
||||
|
||||
int dlsch_modulation(mod_sym_t **txdataF,
|
||||
int dlsch_modulation(int32_t **txdataF,
|
||||
int16_t amp,
|
||||
uint32_t subframe_offset,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
@@ -1492,7 +1492,7 @@ int dlsch_modulation(mod_sym_t **txdataF,
|
||||
return (re_allocated);
|
||||
}
|
||||
|
||||
int mch_modulation(mod_sym_t **txdataF,
|
||||
int mch_modulation(int32_t **txdataF,
|
||||
int16_t amp,
|
||||
uint32_t subframe_offset,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
|
||||
@@ -63,7 +63,7 @@ int generate_drs_pusch(PHY_VARS_UE *phy_vars_ue,
|
||||
|
||||
uint8_t cyclic_shift,cyclic_shift0,cyclic_shift1;
|
||||
LTE_DL_FRAME_PARMS *frame_parms = &phy_vars_ue->lte_frame_parms;
|
||||
mod_sym_t *txdataF = phy_vars_ue->lte_ue_common_vars.txdataF[ant];
|
||||
int32_t *txdataF = phy_vars_ue->lte_ue_common_vars.txdataF[ant];
|
||||
uint32_t u,v,alpha_ind;
|
||||
uint32_t u0=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[subframe<<1];
|
||||
uint32_t u1=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[1+(subframe<<1)];
|
||||
@@ -147,13 +147,13 @@ int generate_drs_pusch(PHY_VARS_UE *phy_vars_ue,
|
||||
if (cyclic_shift == 0) {
|
||||
for (k=0; k<12; k++) {
|
||||
if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] >= 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] >= 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 1;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 1;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] >= 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] < 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 2;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 2;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] < 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] >= 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 3;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 3;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] < 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] < 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 4;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 4;
|
||||
|
||||
re_offset++;
|
||||
drs_offset++;
|
||||
@@ -165,22 +165,22 @@ int generate_drs_pusch(PHY_VARS_UE *phy_vars_ue,
|
||||
for (k=0; k<12; k++) {
|
||||
if(k%2 == 0) {
|
||||
if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] >= 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] >= 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 4;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 4;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] >= 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] < 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 3;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 3;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] < 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] >= 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 2;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 2;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] < 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] < 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 1;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 1;
|
||||
} else {
|
||||
if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] >= 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] >= 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 1;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 1;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] >= 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] < 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 2;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 2;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] < 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] >= 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 3;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 3;
|
||||
else if ((ul_ref_sigs[u][v][Msc_RS_idx][drs_offset<<1] < 0) && (ul_ref_sigs[u][v][Msc_RS_idx][(drs_offset<<1)+1] < 0))
|
||||
txdataF[symbol_offset+re_offset] = (mod_sym_t) 4;
|
||||
txdataF[symbol_offset+re_offset] = (int32_t) 4;
|
||||
}
|
||||
|
||||
re_offset++;
|
||||
|
||||
@@ -52,7 +52,7 @@ void generate_grouphop(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
|
||||
x2 = frame_parms->Nid_cell/30;
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("[PHY] GroupHop:");
|
||||
printf("[PHY] GroupHop:");
|
||||
#endif
|
||||
|
||||
for (ns=0; ns<20; ns++) {
|
||||
@@ -68,12 +68,12 @@ void generate_grouphop(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
}
|
||||
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("%d.",frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[ns]);
|
||||
printf("%d.",frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[ns]);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("\n");
|
||||
printf("\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ void generate_seqhop(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
|
||||
s = lte_gold_generic(&x1,&x2,reset);
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("[PHY] SeqHop:");
|
||||
printf("[PHY] SeqHop:");
|
||||
#endif
|
||||
|
||||
for (ns=0; ns<20; ns++) {
|
||||
@@ -100,12 +100,12 @@ void generate_seqhop(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[ns] = 0;
|
||||
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("%d.",frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[ns]);
|
||||
printf("%d.",frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[ns]);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("\n");
|
||||
printf("\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ void generate_nPRS(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
uint8_t reset=1;
|
||||
uint32_t x1, x2, s=0;
|
||||
// This is from Section 5.5.1.3
|
||||
uint8_t Nsymb_UL = (frame_parms->Ncp_UL == 0) ? 7 : 6;
|
||||
uint8_t Nsymb_UL = (frame_parms->Ncp_UL == NORMAL) ? 7 : 6;
|
||||
uint16_t next = 0;
|
||||
uint8_t ns=0;
|
||||
|
||||
@@ -124,7 +124,7 @@ void generate_nPRS(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
|
||||
x2 = (32*(uint32_t)(frame_parms->Nid_cell/30)) + fss_pusch;
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("[PHY] nPRS:");
|
||||
printf("[PHY] nPRS:");
|
||||
#endif
|
||||
|
||||
for (n=0; n<(20*Nsymb_UL); n++) { //loop over total number of bytes to generate
|
||||
@@ -137,7 +137,7 @@ void generate_nPRS(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
if (n == next) {
|
||||
frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[ns] = ((uint8_t*)&s)[next&3];
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("%d.",frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[ns]);
|
||||
printf("%d.",frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[ns]);
|
||||
#endif
|
||||
ns++;
|
||||
next+=Nsymb_UL;
|
||||
@@ -145,7 +145,7 @@ void generate_nPRS(LTE_DL_FRAME_PARMS *frame_parms)
|
||||
}
|
||||
|
||||
#ifdef DEBUG_GROUPHOP
|
||||
msg("\n");
|
||||
printf("\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
#define PBCH_A 24
|
||||
|
||||
int allocate_pbch_REs_in_RB(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
mod_sym_t **txdataF,
|
||||
int32_t **txdataF,
|
||||
uint32_t *jj,
|
||||
uint16_t re_offset,
|
||||
uint32_t symbol_offset,
|
||||
@@ -160,7 +160,7 @@ int allocate_pbch_REs_in_RB(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
|
||||
//uint8_t pbch_d[96+(3*(16+PBCH_A))], pbch_w[3*3*(16+PBCH_A)],pbch_e[1920]; //one bit per byte
|
||||
int generate_pbch(LTE_eNB_PBCH *eNB_pbch,
|
||||
mod_sym_t **txdataF,
|
||||
int32_t **txdataF,
|
||||
int amp,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
uint8_t *pbch_pdu,
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
* \warning
|
||||
*/
|
||||
#include "PHY/defs.h"
|
||||
#include "MAC_INTERFACE/extern.h"
|
||||
|
||||
//uint16_t pcfich_reg[4];
|
||||
//uint8_t pcfich_first_reg_idx = 0;
|
||||
@@ -144,12 +143,12 @@ uint8_t pcfich_b[4][32]= {{0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1
|
||||
void generate_pcfich(uint8_t num_pdcch_symbols,
|
||||
int16_t amp,
|
||||
LTE_DL_FRAME_PARMS *frame_parms,
|
||||
mod_sym_t **txdataF,
|
||||
int32_t **txdataF,
|
||||
uint8_t subframe)
|
||||
{
|
||||
|
||||
uint8_t pcfich_bt[32],nsymb,pcfich_quad;
|
||||
mod_sym_t pcfich_d[2][16];
|
||||
int32_t pcfich_d[2][16];
|
||||
uint8_t i;
|
||||
uint32_t symbol_offset,m,re_offset,reg_offset;
|
||||
int16_t gain_lin_QPSK;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user