diff --git a/README.txt b/README.txt index 2ff2e02190d5b2c628e793e5d2f0e7b19eedd4de..b549f8122f80144d30eabb07a10fbbbf18a6bc0f 100644 --- a/README.txt +++ b/README.txt @@ -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. diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index b50c017a92d873061302d9e18ff94af11da19d6b..ccff80a055f66dae1e8552b2b0dcc3506cecb4fb 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -260,7 +260,7 @@ 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") @@ -605,7 +605,7 @@ 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}") ############################################################## @@ -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(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") diff --git a/cmake_targets/autotests/010101/CMakeLists.txt b/cmake_targets/autotests/010101/CMakeLists.txt index ed913b0fb9bbfb7844fd62069c30ec4a32f5ea0e..3c9cb70c6790a4ed2f654876e1d9681447f0796f 100644 --- a/cmake_targets/autotests/010101/CMakeLists.txt +++ b/cmake_targets/autotests/010101/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010102/CMakeLists.txt b/cmake_targets/autotests/010102/CMakeLists.txt index d05856ebb0e5e4b3ca11fb2b04014f61b947d40f..9ab131b7eddd21551f005e26a5f27c30cb343055 100644 --- a/cmake_targets/autotests/010102/CMakeLists.txt +++ b/cmake_targets/autotests/010102/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010103/CMakeLists.txt b/cmake_targets/autotests/010103/CMakeLists.txt index 9603067fe177b7d0b1e4902cace081cb21982212..930ab40d62577940a56144c61f3b5d9cc7b0c3e5 100644 --- a/cmake_targets/autotests/010103/CMakeLists.txt +++ b/cmake_targets/autotests/010103/CMakeLists.txt @@ -28,7 +28,7 @@ set ( LINUX False ) set ( LINUX_LIST False ) 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 ) diff --git a/cmake_targets/autotests/010103/CMakeLists.txt.Rel10 b/cmake_targets/autotests/010103/CMakeLists.txt.Rel10 index 6af3c587628f4a4dbb952cf45fed10d41754bb31..c58b1935136092f93516266bddb1a394bca11e93 100644 --- a/cmake_targets/autotests/010103/CMakeLists.txt.Rel10 +++ b/cmake_targets/autotests/010103/CMakeLists.txt.Rel10 @@ -28,7 +28,7 @@ set ( LINUX False ) set ( LINUX_LIST False ) 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 ) diff --git a/cmake_targets/autotests/010103/CMakeLists.txt.Rel8 b/cmake_targets/autotests/010103/CMakeLists.txt.Rel8 index dafbed61d90060c2a685d05e5dbf73650226adbb..b63274535cbe5192767bc3df512240da6cf7b530 100644 --- a/cmake_targets/autotests/010103/CMakeLists.txt.Rel8 +++ b/cmake_targets/autotests/010103/CMakeLists.txt.Rel8 @@ -28,7 +28,7 @@ set ( LINUX False ) set ( LINUX_LIST False ) 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 ) diff --git a/cmake_targets/autotests/010103/CMakeLists.txt.USRP b/cmake_targets/autotests/010103/CMakeLists.txt.USRP index 9603067fe177b7d0b1e4902cace081cb21982212..930ab40d62577940a56144c61f3b5d9cc7b0c3e5 100644 --- a/cmake_targets/autotests/010103/CMakeLists.txt.USRP +++ b/cmake_targets/autotests/010103/CMakeLists.txt.USRP @@ -28,7 +28,7 @@ set ( LINUX False ) set ( LINUX_LIST False ) 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 ) diff --git a/cmake_targets/autotests/010106/CMakeLists.txt b/cmake_targets/autotests/010106/CMakeLists.txt index 2b315ad411b706ee5d136490fceff909f31041e7..8b74855c8dea1515db15a1e4ec5e8f29f7afe4d0 100644 --- a/cmake_targets/autotests/010106/CMakeLists.txt +++ b/cmake_targets/autotests/010106/CMakeLists.txt @@ -22,7 +22,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 ) diff --git a/cmake_targets/autotests/010107/CMakeLists.txt b/cmake_targets/autotests/010107/CMakeLists.txt index a2aa19942e0d2ea114e129f47c556d3bca187ff1..bc895766122f651f79b77dd6e7fc66bde5c504b4 100644 --- a/cmake_targets/autotests/010107/CMakeLists.txt +++ b/cmake_targets/autotests/010107/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010108/CMakeLists.txt b/cmake_targets/autotests/010108/CMakeLists.txt index 63bfb1066f7193a07cc598e45aad85b68bb070d4..7b7f743414bbfef42c35aaf279b4c85f2b99c2ca 100644 --- a/cmake_targets/autotests/010108/CMakeLists.txt +++ b/cmake_targets/autotests/010108/CMakeLists.txt @@ -22,7 +22,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) diff --git a/cmake_targets/autotests/010120/CMakeLists.txt b/cmake_targets/autotests/010120/CMakeLists.txt index d05856ebb0e5e4b3ca11fb2b04014f61b947d40f..9ab131b7eddd21551f005e26a5f27c30cb343055 100644 --- a/cmake_targets/autotests/010120/CMakeLists.txt +++ b/cmake_targets/autotests/010120/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010200/CMakeLists.template b/cmake_targets/autotests/010200/CMakeLists.template index 1ccd57fffda1b22e705436528bbf91d662519273..be572dc6e91f5edd8c80391003bc784aa2ddd169 100644 --- a/cmake_targets/autotests/010200/CMakeLists.template +++ b/cmake_targets/autotests/010200/CMakeLists.template @@ -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 ) diff --git a/cmake_targets/autotests/010200/CMakeLists.txt b/cmake_targets/autotests/010200/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010200/CMakeLists.txt +++ b/cmake_targets/autotests/010200/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010201/CMakeLists.template b/cmake_targets/autotests/010201/CMakeLists.template index 1ccd57fffda1b22e705436528bbf91d662519273..be572dc6e91f5edd8c80391003bc784aa2ddd169 100644 --- a/cmake_targets/autotests/010201/CMakeLists.template +++ b/cmake_targets/autotests/010201/CMakeLists.template @@ -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 ) diff --git a/cmake_targets/autotests/010201/CMakeLists.txt b/cmake_targets/autotests/010201/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010201/CMakeLists.txt +++ b/cmake_targets/autotests/010201/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010202/CMakeLists.txt b/cmake_targets/autotests/010202/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010202/CMakeLists.txt +++ b/cmake_targets/autotests/010202/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010203/CMakeLists.txt b/cmake_targets/autotests/010203/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010203/CMakeLists.txt +++ b/cmake_targets/autotests/010203/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010204/CMakeLists.txt b/cmake_targets/autotests/010204/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010204/CMakeLists.txt +++ b/cmake_targets/autotests/010204/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010205/CMakeLists.txt b/cmake_targets/autotests/010205/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010205/CMakeLists.txt +++ b/cmake_targets/autotests/010205/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010400/CMakeLists.txt b/cmake_targets/autotests/010400/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010400/CMakeLists.txt +++ b/cmake_targets/autotests/010400/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010401/CMakeLists.txt b/cmake_targets/autotests/010401/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010401/CMakeLists.txt +++ b/cmake_targets/autotests/010401/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010402/CMakeLists.txt b/cmake_targets/autotests/010402/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010402/CMakeLists.txt +++ b/cmake_targets/autotests/010402/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/autotests/010403/CMakeLists.txt b/cmake_targets/autotests/010403/CMakeLists.txt index e6c4bdfe476b509a37e93e9c2357f4107aacad7e..c5ab0cab02a0cf542b1d237df689f8fd9900f70f 100644 --- a/cmake_targets/autotests/010403/CMakeLists.txt +++ b/cmake_targets/autotests/010403/CMakeLists.txt @@ -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 ) diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 3a3e8bbec357beb5d8570a72e213826394b0ea76..96adfa004099a85db33d7be6a9b967dabb362a72 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -45,8 +45,8 @@ 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" @@ -125,7 +125,7 @@ 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): @@ -259,11 +259,11 @@ 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) @@ -314,33 +314,33 @@ 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="False" + 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 #Disable CPU Affinity for deadline scheduler - if [ "$LOWLATENCY_FLAG_USER" = "True" ] ; then + if [ "$DEADLINE_SCHEDULER_FLAG_USER" = "True" ] ; then CPU_AFFINITY_FLAG_USER="False" 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" ############################################ @@ -432,7 +432,7 @@ 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 @@ -660,7 +660,7 @@ 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 diff --git a/cmake_targets/epc_test/CMakeLists.template b/cmake_targets/epc_test/CMakeLists.template index 8a8223e4ae66741d33bcecc4de44a98c52412068..76defbc7d7f1318602aa6c9ecbc85be4169a94ff 100644 --- a/cmake_targets/epc_test/CMakeLists.template +++ b/cmake_targets/epc_test/CMakeLists.template @@ -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) diff --git a/cmake_targets/oaisim_build_oai/CMakeLists.template b/cmake_targets/oaisim_build_oai/CMakeLists.template index 76564d8fdd77954a80dea1a63823d3c375924a72..0a05d68d10d5d6ce758e8aa17588c444632bf700 100644 --- a/cmake_targets/oaisim_build_oai/CMakeLists.template +++ b/cmake_targets/oaisim_build_oai/CMakeLists.template @@ -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) diff --git a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template index 1035a2859958a4b9e801746529f943a6b0171851..69fa209b16d266e5a5d846facba62904bd11143b 100644 --- a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template +++ b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template @@ -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 ) diff --git a/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template index a9055101501a3c6a5ee1212e7c8f50258274dc1b..6d8fc6d26a77c3420673b341b2ebcfec22a7fe73 100644 --- a/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template +++ b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template @@ -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 ) diff --git a/cmake_targets/s1c_mme_test/CMakeLists.template b/cmake_targets/s1c_mme_test/CMakeLists.template index 4067202df16d6036e6354b0ca4d1eff851d74576..994edf835232401dbc9f41e70ae8b8e9e47e4740 100644 --- a/cmake_targets/s1c_mme_test/CMakeLists.template +++ b/cmake_targets/s1c_mme_test/CMakeLists.template @@ -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) diff --git a/targets/RT/USER/Makefile b/targets/RT/USER/Makefile index c0efdd2f7c5f6e790059a0f04e7d159532d7ec6a..621f30c5f41268f8009ee53646d652dcd3628719 100644 --- a/targets/RT/USER/Makefile +++ b/targets/RT/USER/Makefile @@ -8,14 +8,14 @@ include $(OPENAIR_TARGETS)/Makefile.common KERNEL_VERSION:=$(shell echo `uname -r | cut -d. -f-2`) 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 ifdef EXMIMO -#ifdef LOWLATENCY # this ifdef is to be removed after the debugging -ifeq ($(LOWLATENCY_KERNEL),1) -CFLAGS+=-DLOWLATENCY +#ifdef DEADLINE_SCHEDULER # this ifdef is to be removed after the debugging +ifeq ($(DEADLINE_SCHEDULER_KERNEL),1) +CFLAGS+=-DDEADLINE_SCHEDULER endif #endif endif @@ -431,7 +431,7 @@ show: @echo IS_REL10 is $(IS_REL10) @echo openssl $(OPENSSL_FOUND) @echo nettle $(NETTLE_FOUND) - @echo lowlatency kernel: $(LOWLATENCY_KERNEL) + @echo lowlatency kernel: $(DEADLINE_SCHEDULER_KERNEL) beautiful: astyle --style=gnu -s2 $(SRC) diff --git a/targets/RT/USER/eNB_transport_IQ.c b/targets/RT/USER/eNB_transport_IQ.c index acb382386e4ef680414d69a55416498eee5ebb87..86080c2c331bd01eb0254526b4fcf2627240c9ca 100644 --- a/targets/RT/USER/eNB_transport_IQ.c +++ b/targets/RT/USER/eNB_transport_IQ.c @@ -254,7 +254,7 @@ void *rrh_eNB_thread(void *arg) { pthread_mutex_init(&sync_trx_mutex,NULL); /* 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_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"); @@ -302,7 +302,7 @@ void *rrh_eNB_thread(void *arg) { 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); LOG_I(RRH,"[eNB][SCHED] deadline scheduling applied to timer thread \n"); #else @@ -368,7 +368,7 @@ void *rrh_eNB_rx_thread(void *arg) { measurements = dev->measurements; next_rx_pos = spp_eth; -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; @@ -560,7 +560,7 @@ void *rrh_eNB_tx_thread(void *arg) { unsigned int subframe=0,frame=0; unsigned int pck_tx=0; -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index b6c3e204647c0c7c81e17f06efc745bfe3b1e7b6..5b5899198a8d743746dffcf00d1217f540d9c276 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -176,7 +176,7 @@ pthread_t main_ue_thread; pthread_attr_t attr_dlsch_threads; pthread_attr_t attr_UE_thread; -#ifndef LOWLATENCY +#ifndef DEADLINE_SCHEDULER struct sched_param sched_param_dlsch; #endif #endif @@ -192,7 +192,7 @@ struct sched_param sched_param_UE_thread; pthread_attr_t attr_eNB_proc_tx[MAX_NUM_CCs][NUM_ENB_THREADS]; pthread_attr_t attr_eNB_proc_rx[MAX_NUM_CCs][NUM_ENB_THREADS]; -#ifndef LOWLATENCY +#ifndef DEADLINE_SCHEDULER struct sched_param sched_param_eNB_proc_tx[MAX_NUM_CCs][NUM_ENB_THREADS]; struct sched_param sched_param_eNB_proc_rx[MAX_NUM_CCs][NUM_ENB_THREADS]; #endif @@ -1087,7 +1087,7 @@ static void* eNB_thread_tx( void* param ) } #else -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; uint64_t runtime = 850000 ; @@ -1295,7 +1295,7 @@ static void* eNB_thread_tx( void* param ) if (proc->frame_tx==1024) proc->frame_tx=0; stop_meas( &softmodem_stats_tx_sf[proc->subframe] ); -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER if (opp_enabled){ if(softmodem_stats_tx_sf[proc->subframe].diff_now/(cpuf) > attr.sched_runtime){ VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_TX_ENB, (softmodem_stats_tx_sf[proc->subframe].diff_now/cpuf - attr.sched_runtime)/1000000.0); @@ -1370,7 +1370,7 @@ static void* eNB_thread_rx( void* param ) } #else -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; uint64_t runtime = 870000 ; @@ -1534,7 +1534,7 @@ LOG_I( HW, "[SCHED][eNB] RX thread %d started on CPU %d TID %ld, sched_policy = proc->frame_rx=0; stop_meas( &softmodem_stats_rx_sf[proc->subframe] ); -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER if (opp_enabled){ if(softmodem_stats_rx_sf[proc->subframe].diff_now/(cpuf) > attr.sched_runtime){ VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RUNTIME_RX_ENB, (softmodem_stats_rx_sf[proc->subframe].diff_now/cpuf - attr.sched_runtime)/1000000.0); @@ -1576,7 +1576,7 @@ void init_eNB_proc(void) // set the stack size -#ifndef LOWLATENCY +#ifndef DEADLINE_SCHEDULER /* pthread_attr_init( &attr_eNB_proc_tx[CC_id][i] ); if (pthread_attr_setstacksize( &attr_eNB_proc_tx[CC_id][i], 64 *PTHREAD_STACK_MIN ) != 0) @@ -1603,7 +1603,7 @@ void init_eNB_proc(void) pthread_mutex_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].mutex_rx, NULL); pthread_cond_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].cond_tx, NULL); pthread_cond_init( &PHY_vars_eNB_g[0][CC_id]->proc[i].cond_rx, NULL); -#ifndef LOWLATENCY +#ifndef DEADLINE_SCHEDULER pthread_create( &PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_tx, &attr_eNB_proc_tx[CC_id][i], eNB_thread_tx, &PHY_vars_eNB_g[0][CC_id]->proc[i] ); pthread_create( &PHY_vars_eNB_g[0][CC_id]->proc[i].pthread_rx, &attr_eNB_proc_rx[CC_id][i], eNB_thread_rx, &PHY_vars_eNB_g[0][CC_id]->proc[i] ); #else @@ -1778,7 +1778,7 @@ static void* eNB_thread( void* arg ) #ifdef RTAI RT_TASK* task = rt_task_init_schmod(nam2num("eNBmain"), 0, 0, 0, SCHED_FIFO, 0xF); #else -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; @@ -3305,7 +3305,7 @@ int main( int argc, char **argv ) #endif } -#ifndef LOWLATENCY +#ifndef DEADLINE_SCHEDULER /* Currently we set affinity for UHD to CPU 0 for eNB/UE and only if number of CPUS >2 */ @@ -3608,7 +3608,7 @@ int main( int argc, char **argv ) pthread_attr_init (&attr_UE_thread); pthread_attr_setstacksize(&attr_UE_thread,8192);//5*PTHREAD_STACK_MIN); -#ifndef LOWLATENCY +#ifndef DEADLINE_SCHEDULER sched_param_UE_thread.sched_priority = sched_get_priority_max(SCHED_FIFO); pthread_attr_setschedparam(&attr_UE_thread,&sched_param_UE_thread); sched_param_dlsch.sched_priority = sched_get_priority_max(SCHED_FIFO); //OPENAIR_THREAD_PRIORITY; diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 561554516cd242e818ec6e53bbf97773ff0bb69a..0e834a53ab0e42b165036951b0313dfabdcd95de 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -212,7 +212,7 @@ static void *UE_thread_synch(void *arg) printf("UE_thread_sync in with PHY_vars_UE %p\n",arg); printf("waiting for sync (UE_thread_synch) \n"); -#ifndef LOWLATENCY +#ifndef DEADLINE_SCHEDULER int policy, s, j; struct sched_param sparam; char cpu_affinity[1024]; @@ -701,7 +701,7 @@ static void *UE_thread_tx(void *arg) LOG_D(HW,"Started UE TX thread (id %p)\n",task); #else -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; @@ -920,7 +920,7 @@ static void *UE_thread_rx(void *arg) LOG_D(HW,"Started UE RX thread (id %p)\n",task); #else -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; @@ -1237,7 +1237,7 @@ void *UE_thread(void *arg) #else -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; @@ -1616,7 +1616,7 @@ void *UE_thread(void *arg) int wait_sync_cnt = 0; int first_synch = 1; -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; // unsigned long mask = 1; // processor 0 @@ -1640,7 +1640,7 @@ void *UE_thread(void *arg) #endif -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER attr.size = sizeof(attr); attr.sched_flags = 0; attr.sched_nice = 0; diff --git a/targets/RT/USER/rrh_gw.c b/targets/RT/USER/rrh_gw.c index 8084644b853e0b538968bedba3d40f625824344b..4fd687a3a568aa656e58b96e052f27b1b223a37d 100644 --- a/targets/RT/USER/rrh_gw.c +++ b/targets/RT/USER/rrh_gw.c @@ -387,7 +387,7 @@ void *timer_proc(void *arg) { struct itimerspec *old_value; -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER struct sched_attr attr; unsigned int flags = 0; diff --git a/targets/RT/USER/rt_wrapper.c b/targets/RT/USER/rt_wrapper.c index a011cf8dfe83288be1fed972723c29e8d73fc643..ed9eb4e79833152366c9dbc2109afd1437589b86 100644 --- a/targets/RT/USER/rt_wrapper.c +++ b/targets/RT/USER/rt_wrapper.c @@ -28,7 +28,7 @@ *******************************************************************************/ /*! \file rt_wrapper.h -* \brief provides a wrapper for the timing function, runtime calculations for real-time opeartions depending on weather RTAI or LOWLATENCY kernels are used or not +* \brief provides a wrapper for the timing function, runtime calculations for real-time opeartions depending on weather RTAI or DEADLINE_SCHEDULER kernels are used or not * \author F. Kaltenberger and Navid Nikaein * \date 2013 * \version 0.1 @@ -241,7 +241,7 @@ double get_runtime_rx(int rx_subframe, uint16_t runtime_phy_rx[29][6], uint32_t return runtime; } -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER int sched_setattr(pid_t pid, const struct sched_attr *attr, unsigned int flags) { diff --git a/targets/RT/USER/rt_wrapper.h b/targets/RT/USER/rt_wrapper.h index 88a3d96efa88f70246146fd0279a3b39c103242e..d67632054b7ee2a14f7c555b7d509452d1851bba 100644 --- a/targets/RT/USER/rt_wrapper.h +++ b/targets/RT/USER/rt_wrapper.h @@ -72,7 +72,7 @@ double get_runtime_rx(int rx_subframe, uint16_t runtime_phy_rx[29][6], uint32_t * see https://www.kernel.org/doc/Documentation/scheduler/sched-deadline.txt or * http://www.blaess.fr/christophe/2014/04/05/utiliser-un-appel-systeme-inconnu-de-la-libc/ */ -#ifdef LOWLATENCY +#ifdef DEADLINE_SCHEDULER #define gettid() syscall(__NR_gettid)