Commit ad98ecef authored by Rohit Gupta's avatar Rohit Gupta

Merge branch 'develop' into feature-34-test_framework

parents 07d7fc70 b4f6e77a
OpenAirInterface is under GNU GPLv3 license. The full GNU General Public License is included in this distribution in the file called "COPYING". OpenAirInterface is under OpenAirInterface Software Alliance license.
├── http://www.openairinterface.org/?page_id=101
The OpenAirInterface (OAI) software is composed of six different parts: ├── http://www.openairinterface.org/?page_id=698
openair1: 3GPP LTE Rel-8 PHY layer + PHY RF simulation The OpenAirInterface (OAI) software is composed of the following parts:
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. openairinterface5g
├── cmake_targets: build utilities to compile (simulation, emulation and real-time platforms), and generated build files
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
├── COPYING
common: some common OAI utilities, other tools can be found at openair2/UTILS ├── maketags : script to generate emacs tags
├── openair1 : 3GPP LTE Rel-10 PHY layer + PHY RF simulation and a subset of Rel 12 Features.
targets: scripts to compile and lauch different system targets (simulation, emulation and real-time platforms, user-space tools for these platforms (tbd)) ├── 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.
see README files in these subdirectories for more information ├── LAYER2/PDCP/PDCP_v10.1.0.
├── RRC/LITE
see also https://twiki.eurecom.fr/twiki/bin/view/OpenAirInterface/WebHome ├── 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,7 @@ endif (${ENABLE_ITTI}) ...@@ -260,7 +260,7 @@ endif (${ENABLE_ITTI})
add_boolean_option(RTAI False "Use RTAI") add_boolean_option(RTAI False "Use RTAI")
if (${RTAI}) if (${RTAI})
set(LOWLATENCY False) set(DEADLINE_SCHEDULER False)
set(CPU_AFFINITY False) set(CPU_AFFINITY False)
add_definitions("-DENABLE_RTAI_CLOCK") add_definitions("-DENABLE_RTAI_CLOCK")
add_definitions("-DCONFIG_RTAI_LXRT_INLINE") add_definitions("-DCONFIG_RTAI_LXRT_INLINE")
...@@ -605,7 +605,7 @@ endif (${TRANSP_PRO} STREQUAL "ETHERNET") ...@@ -605,7 +605,7 @@ endif (${TRANSP_PRO} STREQUAL "ETHERNET")
include_directories ("${OPENAIR_TARGETS}/ARCH/COMMON") 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}") Message("CPU_Affinity flag is ${CPU_AFFINITY}")
############################################################## ##############################################################
...@@ -619,7 +619,7 @@ add_boolean_option(RRC_DEFAULT_RAB_IS_AM False "set the RLC mode to AM for the d ...@@ -619,7 +619,7 @@ 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(OAI_NW_DRIVER_TYPE_ETHERNET False "????")
add_boolean_option(DISABLE_USE_NAS 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(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_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(NAS_NETLINK False "???? Must be True to compile nasmesh driver without rtai")
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX False ) ...@@ -28,7 +28,7 @@ set ( LINUX False )
set ( LINUX_LIST False ) set ( LINUX_LIST False )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX False ) ...@@ -28,7 +28,7 @@ set ( LINUX False )
set ( LINUX_LIST False ) set ( LINUX_LIST False )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX False ) ...@@ -28,7 +28,7 @@ set ( LINUX False )
set ( LINUX_LIST False ) set ( LINUX_LIST False )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX False ) ...@@ -28,7 +28,7 @@ set ( LINUX False )
set ( LINUX_LIST False ) set ( LINUX_LIST False )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -22,7 +22,7 @@ set(LINUX_LIST False) ...@@ -22,7 +22,7 @@ set(LINUX_LIST False)
set(LINUX True) set(LINUX True)
set(LOCALIZATION False) set(LOCALIZATION False)
set(LOG_NO_THREAD True) set(LOG_NO_THREAD True)
set(LOWLATENCY False) set(DEADLINE_SCHEDULER False)
set(MAC_CONTEXT 1) set(MAC_CONTEXT 1)
set(MAX_NUM_CCs 1) set(MAX_NUM_CCs 1)
set(MESSAGE_CHART_GENERATOR False ) set(MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -22,7 +22,7 @@ set(LINUX_LIST False) ...@@ -22,7 +22,7 @@ set(LINUX_LIST False)
set(LINUX True) set(LINUX True)
set(LOCALIZATION False) set(LOCALIZATION False)
set(LOG_NO_THREAD True) set(LOG_NO_THREAD True)
set(LOWLATENCY False) set(DEADLINE_SCHEDULER False)
set(MAC_CONTEXT 1) set(MAC_CONTEXT 1)
set(MAX_NUM_CCs 1) set(MAX_NUM_CCs 1)
set(MESSAGE_CHART_GENERATOR False) set(MESSAGE_CHART_GENERATOR False)
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -45,8 +45,8 @@ MSC_GEN="False" ...@@ -45,8 +45,8 @@ MSC_GEN="False"
XFORMS="True" XFORMS="True"
PRINT_STATS="False" PRINT_STATS="False"
VCD_TIMING="False" VCD_TIMING="False"
LOWLATENCY_FLAG_USER="False" DEADLINE_SCHEDULER_FLAG_USER="False"
FORCE_LOWLATENCY_FLAG_USER="" FORCE_DEADLINE_SCHEDULER_FLAG_USER=""
CPU_AFFINITY_FLAG_USER="True" #Only valid when lowlatecy flag is set to False CPU_AFFINITY_FLAG_USER="True" #Only valid when lowlatecy flag is set to False
REL="Rel10" REL="Rel10"
HW="None" HW="None"
...@@ -125,7 +125,7 @@ Options ...@@ -125,7 +125,7 @@ Options
--disable-deadline --disable-deadline
Disables deadline scheduler of Linux kernel (>=3.14.x). Disables deadline scheduler of Linux kernel (>=3.14.x).
--enable-deadline --enable-deadline
Disables deadline scheduler of Linux kernel (>=3.14.x). Enable deadline scheduler of Linux kernel (>=3.14.x).
--disable-cpu-affinity --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 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): Usage (first build):
...@@ -259,11 +259,11 @@ function main() { ...@@ -259,11 +259,11 @@ function main() {
echo_info "Will build doxygen support" echo_info "Will build doxygen support"
shift;; shift;;
--disable-deadline) --disable-deadline)
FORCE_LOWLATENCY_FLAG_USER="False" FORCE_DEADLINE_SCHEDULER_FLAG_USER="False"
echo_info "Disabling the usage of deadline scheduler" echo_info "Disabling the usage of deadline scheduler"
shift 1;; shift 1;;
--enable-deadline) --enable-deadline)
FORCE_LOWLATENCY_FLAG_USER="True" FORCE_DEADLINE_SCHEDULER_FLAG_USER="True"
echo_info "Enabling the usage of deadline scheduler" echo_info "Enabling the usage of deadline scheduler"
shift 1;; shift 1;;
--disable-cpu-affinity) --disable-cpu-affinity)
...@@ -314,33 +314,33 @@ function main() { ...@@ -314,33 +314,33 @@ function main() {
#By default: USRP: disable, #By default: USRP: disable,
#By default: BLADERF: enable, #By default: BLADERF: enable,
#By default: EXMIMO: enable #By default: EXMIMO: enable
if [ "$FORCE_LOWLATENCY_FLAG_USER" = "" ]; then if [ "$FORCE_DEADLINE_SCHEDULER_FLAG_USER" = "" ]; then
if [ "$HW" = "EXMIMO" ] ; then if [ "$HW" = "EXMIMO" ] ; then
LOWLATENCY_FLAG_USER="False" DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "ETHERNET" ] ; then elif [ "$HW" = "ETHERNET" ] ; then
LOWLATENCY_FLAG_USER="True" DEADLINE_SCHEDULER_FLAG_USER="True"
elif [ "$HW" = "OAI_USRP" ] ; then elif [ "$HW" = "OAI_USRP" ] ; then
LOWLATENCY_FLAG_USER="False" DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "OAI_BLADERF" ] ; then elif [ "$HW" = "OAI_BLADERF" ] ; then
LOWLATENCY_FLAG_USER="False" DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "OAI_LMSSDR" ] ; then elif [ "$HW" = "OAI_LMSSDR" ] ; then
LOWLATENCY_FLAG_USER="False" DEADLINE_SCHEDULER_FLAG_USER="False"
elif [ "$HW" = "None" ] ; then elif [ "$HW" = "None" ] ; then
LOWLATENCY_FLAG_USER="False" DEADLINE_SCHEDULER_FLAG_USER="False"
else else
echo_error "Unknown HW type $HW. Exiting now..." echo_error "Unknown HW type $HW. Exiting now..."
exit exit
fi fi
else else
LOWLATENCY_FLAG_USER=$FORCE_LOWLATENCY_FLAG_USER DEADLINE_SCHEDULER_FLAG_USER=$FORCE_DEADLINE_SCHEDULER_FLAG_USER
fi fi
#Disable CPU Affinity for deadline scheduler #Disable CPU Affinity for deadline scheduler
if [ "$LOWLATENCY_FLAG_USER" = "True" ] ; then if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "True" ] ; then
CPU_AFFINITY_FLAG_USER="False" CPU_AFFINITY_FLAG_USER="False"
fi fi
echo_info "Flags for Deadline scheduler: $LOWLATENCY_FLAG_USER" echo_info "Flags for Deadline scheduler: $DEADLINE_SCHEDULER_FLAG_USER"
echo_info "Flags for CPU Affinity: $CPU_AFFINITY_FLAG_USER" echo_info "Flags for CPU Affinity: $CPU_AFFINITY_FLAG_USER"
############################################ ############################################
...@@ -432,7 +432,7 @@ function main() { ...@@ -432,7 +432,7 @@ function main() {
echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file echo "set ( RF_BOARD \"${HW}\")" >> $cmake_file
echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file echo "set ( TRANSP_PRO \"${TP}\")" >> $cmake_file
echo "set(PACKAGE_NAME \"${lte_exec}\")" >> $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 "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
cd $DIR/$lte_build_dir/build cd $DIR/$lte_build_dir/build
...@@ -660,7 +660,7 @@ function main() { ...@@ -660,7 +660,7 @@ function main() {
echo "set(RF_BOARD \"${HW}\")" >> $cmake_file echo "set(RF_BOARD \"${HW}\")" >> $cmake_file
echo "set(TRANSP_PRO \"${TP}\")" >> $cmake_file echo "set(TRANSP_PRO \"${TP}\")" >> $cmake_file
echo 'set(PACKAGE_NAME "\"rrh_gw\"")' >> $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 "set (CPU_AFFINITY \"${CPU_AFFINITY_FLAG_USER}\" )" >>$cmake_file
echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file echo 'include(${CMAKE_CURRENT_SOURCE_DIR}/../CMakeLists.txt)' >> $cmake_file
cd $DIR/$rrh_build_dir/build cd $DIR/$rrh_build_dir/build
......
...@@ -29,7 +29,7 @@ set ( LINUX_LIST False ) ...@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False) set ( MESSAGE_CHART_GENERATOR False)
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False) set ( MESSAGE_CHART_GENERATOR False)
......
...@@ -29,7 +29,7 @@ set ( LINUX_LIST False ) ...@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
set ( LINUX False ) set ( LINUX False )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD False ) set ( LOG_NO_THREAD False )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MIH_C_MEDIEVAL_EXTENSIONS False ) set ( MIH_C_MEDIEVAL_EXTENSIONS False )
......
...@@ -28,7 +28,7 @@ set ( LINUX_LIST False ) ...@@ -28,7 +28,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD 1 ) set ( LOG_NO_THREAD 1 )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False ) set ( MESSAGE_CHART_GENERATOR False )
......
...@@ -29,7 +29,7 @@ set ( LINUX_LIST False ) ...@@ -29,7 +29,7 @@ set ( LINUX_LIST False )
set ( LINUX True ) set ( LINUX True )
set ( LOCALIZATION False ) set ( LOCALIZATION False )
set ( LOG_NO_THREAD True ) set ( LOG_NO_THREAD True )
set ( LOWLATENCY False ) set ( DEADLINE_SCHEDULER False )
set ( MAC_CONTEXT 1 ) set ( MAC_CONTEXT 1 )
set ( MAX_NUM_CCs 1 ) set ( MAX_NUM_CCs 1 )
set ( MESSAGE_CHART_GENERATOR False) set ( MESSAGE_CHART_GENERATOR False)
......
...@@ -8,14 +8,14 @@ include $(OPENAIR_TARGETS)/Makefile.common ...@@ -8,14 +8,14 @@ include $(OPENAIR_TARGETS)/Makefile.common
KERNEL_VERSION:=$(shell echo `uname -r | cut -d. -f-2`) KERNEL_VERSION:=$(shell echo `uname -r | cut -d. -f-2`)
KERNEL_TYPE:=$(shell echo `uname -r | cut -d. -f-3 | cut -d- -f3`) KERNEL_TYPE:=$(shell echo `uname -r | cut -d. -f-3 | cut -d- -f3`)
LOWLATENCY_KERNEL:=$(shell if [ $(KERNEL_TYPE) = "lowlatency" ]; then echo "1" ; else echo "0" ; fi) DEADLINE_SCHEDULER_KERNEL:=$(shell if [ $(KERNEL_TYPE) = "lowlatency" ]; then echo "1" ; else echo "0" ; fi)
include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
ifdef EXMIMO ifdef EXMIMO
#ifdef LOWLATENCY # this ifdef is to be removed after the debugging #ifdef DEADLINE_SCHEDULER # this ifdef is to be removed after the debugging
ifeq ($(LOWLATENCY_KERNEL),1) ifeq ($(DEADLINE_SCHEDULER_KERNEL),1)
CFLAGS+=-DLOWLATENCY CFLAGS+=-DDEADLINE_SCHEDULER
endif endif
#endif #endif
endif endif
...@@ -431,7 +431,7 @@ show: ...@@ -431,7 +431,7 @@ show:
@echo IS_REL10 is $(IS_REL10) @echo IS_REL10 is $(IS_REL10)
@echo openssl $(OPENSSL_FOUND) @echo openssl $(OPENSSL_FOUND)
@echo nettle $(NETTLE_FOUND) @echo nettle $(NETTLE_FOUND)
@echo lowlatency kernel: $(LOWLATENCY_KERNEL) @echo lowlatency kernel: $(DEADLINE_SCHEDULER_KERNEL)
beautiful: beautiful:
astyle --style=gnu -s2 $(SRC) astyle --style=gnu -s2 $(SRC)
......
...@@ -254,7 +254,7 @@ void *rrh_eNB_thread(void *arg) { ...@@ -254,7 +254,7 @@ void *rrh_eNB_thread(void *arg) {
pthread_mutex_init(&sync_trx_mutex,NULL); pthread_mutex_init(&sync_trx_mutex,NULL);
/* create eNB module's TX/RX threads */ /* create eNB module's TX/RX threads */
#ifdef LOWLATENCY #ifdef DEADLINE_SCHEDULER
error_code_eNB_rx = pthread_create(&eNB_rx_thread, NULL, rrh_eNB_rx_thread, (void *)dev); error_code_eNB_rx = pthread_create(&eNB_rx_thread, NULL, rrh_eNB_rx_thread, (void *)dev);
error_code_eNB_tx = pthread_create(&eNB_tx_thread, NULL, rrh_eNB_tx_thread, (void *)dev); error_code_eNB_tx = pthread_create(&eNB_tx_thread, NULL, rrh_eNB_tx_thread, (void *)dev);
LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to eNB TX/RX threads\n"); LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to eNB TX/RX threads\n");
...@@ -302,7 +302,7 @@ void *rrh_eNB_thread(void *arg) { ...@@ -302,7 +302,7 @@ void *rrh_eNB_thread(void *arg) {
timerspec.it_interval.tv_nsec = rt_period%1000000000; timerspec.it_interval.tv_nsec = rt_period%1000000000;
#ifdef LOWLATENCY #ifdef DEADLINE_SCHEDULER
error_code_timer = pthread_create(&main_timer_proc_thread, NULL, timer_proc, (void *)&timerspec); error_code_timer = pthread_create(&main_timer_proc_thread, NULL, timer_proc, (void *)&timerspec);
LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to timer thread \n"); LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to timer thread \n");
#else #else
...@@ -368,7 +368,7 @@ void *rrh_eNB_rx_thread(void *arg) { ...@@ -368,7 +368,7 @@ void *rrh_eNB_rx_thread(void *arg) {
measurements = dev->measurements; measurements = dev->measurements;
next_rx_pos = spp_eth; next_rx_pos = spp_eth;
#ifdef LOWLATENCY #ifdef DEADLINE_SCHEDULER
struct sched_attr attr; struct sched_attr attr;
unsigned int flags = 0; unsigned int flags = 0;
...@@ -560,7 +560,7 @@ void *rrh_eNB_tx_thread(void *arg) { ...@@ -560,7 +560,7 @@ void *rrh_eNB_tx_thread(void *arg) {
unsigned int subframe=0,frame=0; unsigned int subframe=0,frame=0;
unsigned int pck_tx=0; unsigned int pck_tx=0;
#ifdef LOWLATENCY #ifdef DEADLINE_SCHEDULER
struct sched_attr attr; struct sched_attr attr;
unsigned int flags = 0; unsigned int flags = 0;
......
...@@ -176,7 +176,7 @@ pthread_t main_ue_thread; ...@@ -176,7 +176,7 @@ pthread_t main_ue_thread;
pthread_attr_t attr_dlsch_threads; pthread_attr_t attr_dlsch_threads;
pthread_attr_t attr_UE_thread; pthread_attr_t attr_UE_thread;