From 428f3596807198560b5e46a2ad0dd774128ca6dc Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 2 May 2016 17:03:57 +0200 Subject: [PATCH 01/84] fix for race conditions in OPT/Wireshark tracing tool --- openair2/UTIL/OPT/probe.c | 141 ++++++++++++++------------------------ 1 file changed, 52 insertions(+), 89 deletions(-) diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c index 28bad4d6c9..eef98ae729 100644 --- a/openair2/UTIL/OPT/probe.c +++ b/openair2/UTIL/OPT/probe.c @@ -137,27 +137,15 @@ typedef guint8 gboolean; //static unsigned char g_PDUBuffer[1600]; //static unsigned int g_PDUOffset; -#ifdef JUMBO_FRAME -static unsigned char g_frameBuffer[9000]; -#else -static unsigned char g_frameBuffer[1600]; -#endif -//static unsigned char g_fileBuffer[1600]; -static unsigned int g_frameOffset; + char in_ip[40]; char in_path[100]; -static uint16_t in_port; FILE *file_fd = NULL; trace_mode_t opt_type = OPT_NONE; static radio_type_t radio_type; static unsigned int subframesSinceCaptureStart; -// double timing_perf[250]; -// clock_t timing_in[250]; -// clock_t timing_out[250]; -int test=0; -int init_value=0; static int g_socksd = -1;/* UDP socket used for sending frames */ static struct sockaddr_in g_serv_addr; @@ -277,66 +265,73 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, guint8 oob_event, guint8 oob_event_value, uint8_t *pdu_buffer, unsigned int pdu_buffer_size) { + #ifdef JUMBO_FRAME + static unsigned char frameBuffer[9000]; + #else + static unsigned char frameBuffer[1600]; + #endif + static unsigned int frameOffset; + ssize_t bytesSent; - g_frameOffset = 0; + frameOffset = 0; uint16_t tmp16; /********************************************************************/ /* Fixed start to each frame (allowing heuristic dissector to work) */ /* Not NULL terminated */ - memset(g_frameBuffer+g_frameOffset, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8); + memset(frameBuffer+frameOffset, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8); - memcpy(g_frameBuffer+g_frameOffset, MAC_LTE_START_STRING, + memcpy(frameBuffer+frameOffset, MAC_LTE_START_STRING, strlen(MAC_LTE_START_STRING)); - g_frameOffset += strlen(MAC_LTE_START_STRING); + frameOffset += strlen(MAC_LTE_START_STRING); /******************************************************************************/ /* Now write out fixed fields (the mandatory elements of struct mac_lte_info) */ - g_frameBuffer[g_frameOffset++] = radioType; - g_frameBuffer[g_frameOffset++] = direction; - g_frameBuffer[g_frameOffset++] = rntiType; + frameBuffer[frameOffset++] = radioType; + frameBuffer[frameOffset++] = direction; + frameBuffer[frameOffset++] = rntiType; /*************************************/ /* Now optional fields */ /* RNTI */ - g_frameBuffer[g_frameOffset++] = MAC_LTE_RNTI_TAG; + frameBuffer[frameOffset++] = MAC_LTE_RNTI_TAG; tmp16 = htons(rnti); - memcpy(g_frameBuffer+g_frameOffset, &tmp16, 2); - g_frameOffset += 2; + memcpy(frameBuffer+frameOffset, &tmp16, 2); + frameOffset += 2; /* UEId */ - g_frameBuffer[g_frameOffset++] = MAC_LTE_UEID_TAG; + frameBuffer[frameOffset++] = MAC_LTE_UEID_TAG; tmp16 = htons(ueid); - memcpy(g_frameBuffer+g_frameOffset, &tmp16, 2); - g_frameOffset += 2; + memcpy(frameBuffer+frameOffset, &tmp16, 2); + frameOffset += 2; /* Subframe number */ - g_frameBuffer[g_frameOffset++] = MAC_LTE_SUBFRAME_TAG; + frameBuffer[frameOffset++] = MAC_LTE_SUBFRAME_TAG; tmp16 = htons(subframeNumber); // frame counter : this will give an expert info as wireshark expects SF and not F - memcpy(g_frameBuffer+g_frameOffset, &tmp16, 2); - g_frameOffset += 2; + memcpy(frameBuffer+frameOffset, &tmp16, 2); + frameOffset += 2; - g_frameBuffer[g_frameOffset++] = MAC_LTE_CRC_STATUS_TAG; - g_frameBuffer[g_frameOffset++] = crcStatus; + frameBuffer[frameOffset++] = MAC_LTE_CRC_STATUS_TAG; + frameBuffer[frameOffset++] = crcStatus; #ifdef WIRESHARK_DEV - g_frameOffset += 2; + frameOffset += 2; tmp16 = htons(subframeNumber); // subframe - memcpy(g_frameBuffer+g_frameOffset, &tmp16, 2); - g_frameOffset += 2; + memcpy(frameBuffer+frameOffset, &tmp16, 2); + frameOffset += 2; #endif /***********************************************************/ /* For these optional fields, no need to encode if value is default */ if (!isPredefinedData) { - g_frameBuffer[g_frameOffset++] = MAC_LTE_PREDEFINED_DATA_TAG; - g_frameBuffer[g_frameOffset++] = isPredefinedData; + frameBuffer[frameOffset++] = MAC_LTE_PREDEFINED_DATA_TAG; + frameBuffer[frameOffset++] = isPredefinedData; } if (retx != 0) { - g_frameBuffer[g_frameOffset++] = MAC_LTE_RETX_TAG; - g_frameBuffer[g_frameOffset++] = retx; + frameBuffer[frameOffset++] = MAC_LTE_RETX_TAG; + frameBuffer[frameOffset++] = retx; } #ifdef WIRESHARK_DEV @@ -347,19 +342,19 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, switch (oob_event) { case ltemac_send_preamble : LOG_D(OPT,"oob event %d %d\n",ltemac_send_preamble ); - //g_frameBuffer[g_frameOffset++]=0; - //g_frameBuffer[g_frameOffset++]=0; - //g_frameBuffer[g_frameOffset++]=0; - g_frameBuffer[g_frameOffset++] = MAC_LTE_OOB_EVENT_TAG; - g_frameBuffer[g_frameOffset++]=ltemac_send_preamble; - g_frameBuffer[g_frameOffset++]=rnti; // is the preamble - g_frameBuffer[g_frameOffset++]=oob_event_value; + //frameBuffer[frameOffset++]=0; + //frameBuffer[frameOffset++]=0; + //frameBuffer[frameOffset++]=0; + frameBuffer[frameOffset++] = MAC_LTE_OOB_EVENT_TAG; + frameBuffer[frameOffset++]=ltemac_send_preamble; + frameBuffer[frameOffset++]=rnti; // is the preamble + frameBuffer[frameOffset++]=oob_event_value; break; case ltemac_send_sr: - g_frameBuffer[g_frameOffset++]=ltemac_send_sr; - g_frameOffset+=2; - g_frameBuffer[g_frameOffset++]=oob_event_value; + frameBuffer[frameOffset++]=ltemac_send_sr; + frameOffset+=2; + frameBuffer[frameOffset++]=oob_event_value; break; case ltemac_sr_failure: @@ -372,23 +367,23 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, #endif /***************************************/ /* Now write the MAC PDU */ - g_frameBuffer[g_frameOffset++] = MAC_LTE_PAYLOAD_TAG; + frameBuffer[frameOffset++] = MAC_LTE_PAYLOAD_TAG; /* Append actual PDU */ - //memcpy(g_frameBuffer+g_frameOffset, g_PDUBuffer, g_PDUOffset); - //g_frameOffset += g_PDUOffset; + //memcpy(frameBuffer+frameOffset, g_PDUBuffer, g_PDUOffset); + //frameOffset += g_PDUOffset; if (pdu_buffer != NULL) { - memcpy(g_frameBuffer+g_frameOffset, (void*)pdu_buffer, pdu_buffer_size); - g_frameOffset += pdu_buffer_size; + memcpy(frameBuffer+frameOffset, (void*)pdu_buffer, pdu_buffer_size); + frameOffset += pdu_buffer_size; } /* Send out the data over the UDP socket */ - bytesSent = sendto(g_socksd, g_frameBuffer, g_frameOffset, 0, + bytesSent = sendto(g_socksd, frameBuffer, frameOffset, 0, (const struct sockaddr *)&g_serv_addr, sizeof(g_serv_addr)); - if (bytesSent != g_frameOffset) { + if (bytesSent != frameOffset) { LOG_W(OPT, "sendto() failed (not a thread-safe func)- expected %d bytes, got %d (errno=%d)\n", - g_frameOffset, bytesSent, errno); + frameOffset, bytesSent, errno); //exit(1); } } @@ -509,6 +504,7 @@ void trace_pdu(int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size, /*---------------------------------------------------*/ int init_opt(char *path, char *ip, char *port, radio_type_t radio_type_p) { + uint16_t in_port; subframesSinceCaptureStart = 0; if (path != NULL) { @@ -612,37 +608,4 @@ void terminate_opt(void) break; } } -/* -double *timing_analyzer(int index, int direction ){ -// -int i; -if (direction==0)// in -{ - timing_in[index]=clock(); - //if(timing_out[index+100]>timing_in[index+100]); - //timing_perf[index+100] +=(double)((double)(timing_out[index+100]-timing_in[index+100])/(double)CLOCKS_PER_SEC); -} -else -{ - timing_out[index]=clock(); - if(index==5)timing_perf[index]=0; - timing_perf[index] +=(double)((double)(timing_out[index]-timing_in[index])/(((double)CLOCKS_PER_SEC)/1000000)); - //LOG_I(OPT,"timing_analyser index %d =%f\n",index,timing_perf[index]); - init_value++; - if(init_value==500) - { - for(i=0;i<6;i++) - { - LOG_I(OPT,"timing_analyser index %d =%f\n",i,timing_perf[i]); - } - init_value=0; - } - - return(&timing_perf[0]); - -} - -} - -*/ From 34801af904f5e819dacdab0f09966c20d4f65a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Tue, 7 Jun 2016 10:48:48 +0200 Subject: [PATCH 02/84] build_oai: exit early on error There are a lot of case where the build scripts fails. Despite this, the build script happily continue to the end and tells "Successfully built xxxx". This fix ensure the build stops early with the first error message on the bottom of the log. --- cmake_targets/build_oai | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index d1306b804b..42bd6c82d7 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -33,6 +33,7 @@ # brief OAI automated build tool that can be used to install, compile, run OAI. # author Navid Nikaein, Lionel GAUTHIER, Laurent Thomas +set -e ################################ # include helper functions From 51b5fcd4896ebbcc20fc17ff12ebc5863243993b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Thu, 9 Jun 2016 13:19:45 +0200 Subject: [PATCH 03/84] build_helper: tell where the log will be written in compilations() build_helper exits early on error. compilations() tells where the compilation logs can be found after compiling it. So in case of error, it was never displayed. Add a log info before compiling --- cmake_targets/tools/build_helper | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 00f6842ffd..b48f33d282 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -109,6 +109,7 @@ clean_all_files() { compilations() { cd $OPENAIR_DIR/cmake_targets/$1/build + echo_info "Log file for compilation written in: $dlog/$2.$REL.txt" { rm -f $3 if [ "$VERBOSE_COMPILE" == "1" ]; then From 67eb92cda9604c95ce62b6f4230834a31f6ca6b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Mon, 13 Jun 2016 08:50:39 +0200 Subject: [PATCH 04/84] Check if the distribution is supported Thank to Thomas Laurent for refactorize get_distribution_released --- cmake_targets/tools/build_helper | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index b48f33d282..b5c7a86d71 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -67,7 +67,33 @@ echo_warning() { cecho "$*" $yellow ;} echo_success() { cecho "$*" $green ;} echo_info() { cecho "$*" $blue ;} +######################## +# distribution helpers # +######################## +# This function return a string to identify the distribution we are running +# If we can't check the distribution, it returns "Unknown" +# This function return always true as exit code by design +# Examples: +# Ubuntu16.04 +# Debian8.5 +get_distribution_release() { + local distributor + if distributor=$(lsb_release -si 2>/dev/null) ; then + echo $distributor$(lsb_release -sr) + else + echo Unknown + fi +} + +check_supported_distribution() { + local distribution=$(get_distribution_release) + case "$distribution" in + "Ubuntu16.04") return 0 ;; + "Ubuntu14.04") return 0 ;; + esac + return 1 +} ########################### # Cleaners @@ -231,6 +257,10 @@ check_install_additional_tools (){ } check_install_oai_software() { + if ! check_supported_distribution; then + echo_error "Your distribution $(get_distribution_release) is not supported by oai !" + exit 1 + fi $SUDO apt-get update $SUDO apt-get install -y \ autoconf \ From 1c81ad97b3b4fd6feff6f37ef7a5eca32300669d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Fri, 10 Jun 2016 15:17:23 +0200 Subject: [PATCH 05/84] add missing package software-properties-common This package is needed for the command add-apt-repository --- cmake_targets/tools/build_helper | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index b5c7a86d71..cb5ff0bba0 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -262,6 +262,8 @@ check_install_oai_software() { exit 1 fi $SUDO apt-get update + $SUDO apt install -y software-properties-common + # Now, we can add new repository here if needed $SUDO apt-get install -y \ autoconf \ automake \ From 02d321f9648a1f53b2e058039fdf45d42b896f6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Wed, 15 Jun 2016 08:42:46 +0200 Subject: [PATCH 06/84] fix iperf3 installation for Ubuntu 14.04 --- cmake_targets/tools/build_helper | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index cb5ff0bba0..9ff34c2dd6 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -263,7 +263,12 @@ check_install_oai_software() { fi $SUDO apt-get update $SUDO apt install -y software-properties-common - # Now, we can add new repository here if needed + case "$(get_distribution_release)" in + "Ubuntu14.04") + # For iperf3 + $SUDO add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty-backports universe" + $SUDO apt-get update + esac $SUDO apt-get install -y \ autoconf \ automake \ From 6b2247f12c03030cbcba344b3bccfd9f49a2ab9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Wed, 15 Jun 2016 12:37:37 +0200 Subject: [PATCH 07/84] build_helper: fix package version according to distribution --- cmake_targets/tools/build_helper | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 9ff34c2dd6..938e3fb9cb 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -257,6 +257,7 @@ check_install_additional_tools (){ } check_install_oai_software() { + local specific_packages="" if ! check_supported_distribution; then echo_error "Your distribution $(get_distribution_release) is not supported by oai !" exit 1 @@ -265,11 +266,17 @@ check_install_oai_software() { $SUDO apt install -y software-properties-common case "$(get_distribution_release)" in "Ubuntu14.04") + specific_packages="libtasn1-3-dev" # For iperf3 $SUDO add-apt-repository "deb http://archive.ubuntu.com/ubuntu trusty-backports universe" $SUDO apt-get update + ;; + "Ubuntu16.04") + specific_packages="libtasn1-6-dev" + ;; esac $SUDO apt-get install -y \ + $specific_packages \ autoconf \ automake \ bison \ @@ -310,7 +317,6 @@ check_install_oai_software() { libsctp1 \ libsctp-dev \ libssl-dev \ - libtasn1-3-dev \ libtool \ libusb-1.0-0-dev \ libxml2 \ From 2b98daec1b82cb13e10fb6d81be7fa4b866b8c08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Thu, 9 Jun 2016 09:32:36 +0200 Subject: [PATCH 08/84] build_helper: add missing package in check_install_oai_software --- cmake_targets/tools/build_helper | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 938e3fb9cb..7c7b792762 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -303,6 +303,7 @@ check_install_oai_software() { libblas3gf \ libblas-dev \ libconfig8-dev \ + libffi-dev \ libforms-bin \ libforms-dev \ libgcrypt11-dev \ @@ -314,6 +315,7 @@ check_install_oai_software() { liboctave-dev \ libpgm-5.1 \ libpgm-dev \ + libpython2.7-dev \ libsctp1 \ libsctp-dev \ libssl-dev \ @@ -333,6 +335,7 @@ check_install_oai_software() { xmlstarlet \ python-pip \ pydb \ + wget \ wvdial \ python-numpy \ sshpass \ From 12c0ec833486f366b2a0c50e6cb1429ba3780379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Wed, 15 Jun 2016 10:56:11 +0200 Subject: [PATCH 09/84] build_helper: remove libblas3gf for ubuntu 16.04 liblas3gf have been replaced by libblas3 on 16.04 liblas3* will be pulled by libblas-dev, so we don't need to add it to package list --- cmake_targets/tools/build_helper | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 7c7b792762..a8284313ca 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -300,7 +300,6 @@ check_install_oai_software() { iptables-dev \ libatlas-base-dev \ libatlas-dev \ - libblas3gf \ libblas-dev \ libconfig8-dev \ libffi-dev \ From 5710c1c3adc19be4f8208bd78c4f84def2d1bc37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Mon, 13 Jun 2016 08:56:59 +0200 Subject: [PATCH 10/84] build_helper: replace dependency on libpgm-5.x.0 in check_install_oai_software libpgm-dev will add the dependency on libpgm 5.2.0 or 5.1.0 automatically according to the ubuntu version --- cmake_targets/tools/build_helper | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index a8284313ca..3f4a4f17ad 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -312,7 +312,6 @@ check_install_oai_software() { libidn11-dev \ libmysqlclient-dev \ liboctave-dev \ - libpgm-5.1 \ libpgm-dev \ libpython2.7-dev \ libsctp1 \ From 81d96a31105f043a391a9330b4942306d5c2fba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Thu, 9 Jun 2016 14:08:45 +0200 Subject: [PATCH 11/84] CMakeLists.txt: Add missing check and include for pgm library --- cmake_targets/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index c23b0d1a91..379b213e27 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -1518,7 +1518,7 @@ if (${RF_BOARD} STREQUAL "OAI_USRP") include_directories(${LIBBOOST_INCLUDE_DIR}) endif (${RF_BOARD} STREQUAL "OAI_USRP") -pkg_search_module(OPENPGM openpgm-5.1) +pkg_search_module(OPENPGM openpgm-5.1 openpgm-5.2) if(NOT ${OPENPGM_FOUND}) message("PACKAGE openpgm-5.1 is required by binaries such as oaisim: will fail later if this target is built") else() From 05ad02d5556bf0ac1636a8efe365a1a76941d7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Mon, 13 Jun 2016 10:51:39 +0200 Subject: [PATCH 12/84] build_helper: add flag to allow compiling software without hardware Add --disable-hardware-dependency flag to avoid hardware need when compiling OAI. For the momment it avoids to flash bladeRF hardware --- cmake_targets/build_oai | 10 ++++++++++ cmake_targets/tools/build_helper | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 42bd6c82d7..44c41d4a50 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -278,6 +278,10 @@ function main() { T_TRACER="True" echo_info "Enabling the T tracer" shift 1;; + --disable-hardware-dependency) + echo_info "Disabling hardware dependency for compiling software" + DISABLE_HARDWARE_DEPENDENCY="True" + shift 1;; -h | --help) print_help exit 1;; @@ -387,10 +391,16 @@ function main() { if [ "$HW" == "OAI_USRP" ] ; then echo_info "installing packages for USRP support" check_install_usrp_uhd_driver + if [ ! "$DISABLE_HARDWARE_DEPENDENCY" == "True" ]; then + install_usrp_uhd_driver + fi fi if [ "$HW" == "OAI_BLADERF" ] ; then echo_info "installing packages for BLADERF support" check_install_bladerf_driver + if [ ! "$DISABLE_HARDWARE_DEPENDENCY" == "True" ]; then + flash_firmware_bladerf + fi fi fi diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 3f4a4f17ad..5435685c19 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -229,7 +229,10 @@ check_install_bladerf_driver(){ $SUDO apt-get install -y bladerf libbladerf-dev $SUDO apt-get install -y bladerf-firmware-fx3 $SUDO apt-get install -y bladerf-fpga-hostedx40 - $SUDO bladeRF-cli --flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img +} + +flash_firmware_bladerf() { + $SUDO bladeRF-cli --flash-firmware /usr/share/Nuand/bladeRF/bladeRF_fw.img } check_install_additional_tools (){ From feb5979830b1deab91c947291f7d8554b1a990ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Mon, 13 Jun 2016 12:09:02 +0200 Subject: [PATCH 13/84] build_helper: remove non-existent package uhd It breaks apt-get remove command --- cmake_targets/tools/build_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 5435685c19..0babb9e423 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -213,7 +213,7 @@ install_gnutls_from_source(){ check_install_usrp_uhd_driver(){ #first we remove old installation - $SUDO apt-get remove uhd libuhd-dev libuhd003 uhd-host -y + $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y v=$(lsb_release -cs) $SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main" #The new USRP repository From ccddb7859446d5edb2833d6270fe41534acac11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Mon, 13 Jun 2016 12:07:16 +0200 Subject: [PATCH 14/84] build_oai: make USRP build possible without hardware --- cmake_targets/tools/build_helper | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 0babb9e423..7e2912b7d1 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -220,9 +220,16 @@ check_install_usrp_uhd_driver(){ $SUDO add-apt-repository ppa:ettusresearch/uhd -y $SUDO apt-get update $SUDO apt-get -y install python python-tk libboost-all-dev libusb-1.0-0-dev - $SUDO apt-get -y install libuhd-dev libuhd003 uhd-host + $SUDO apt-get -y install libuhd-dev libuhd003 +} + +install_usrp_uhd_driver() { + # We move uhd-host apart because it depends on linux kernel version + # On newer kernels, it fails to install + $SUDO apt-get -y install uhd-host $SUDO uhd_images_downloader } + check_install_bladerf_driver(){ $SUDO add-apt-repository -y ppa:bladerf/bladerf $SUDO apt-get update From eb029cb81156339a0d22afb76e2add5b205c08d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Tue, 14 Jun 2016 11:10:28 +0200 Subject: [PATCH 15/84] build_helper: use official bladerf packages bladerf ppa don't publish packages for Ubuntu 16.04. There are official packages for bladerf so we use these. --- cmake_targets/tools/build_helper | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 7e2912b7d1..68457164e7 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -231,8 +231,10 @@ install_usrp_uhd_driver() { } check_install_bladerf_driver(){ - $SUDO add-apt-repository -y ppa:bladerf/bladerf - $SUDO apt-get update + if [ "$(get_distribution_release)" == "Ubuntu14.04" ] ; then + $SUDO add-apt-repository -y ppa:bladerf/bladerf + $SUDO apt-get update + fi $SUDO apt-get install -y bladerf libbladerf-dev $SUDO apt-get install -y bladerf-firmware-fx3 $SUDO apt-get install -y bladerf-fpga-hostedx40 From 2349b37e1f41a65d678dd8bc7db3f17258d71842 Mon Sep 17 00:00:00 2001 From: cubiq Date: Tue, 12 Apr 2016 12:05:56 +0200 Subject: [PATCH 16/84] lte-softmodem: add "-ldl" options to linkage --- cmake_targets/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 379b213e27..6f370b7144 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -1625,7 +1625,7 @@ add_executable(lte-softmodem ${T_SOURCE} ) -target_link_libraries (lte-softmodem +target_link_libraries (lte-softmodem -ldl -Wl,--start-group RRC_LIB S1AP_LIB S1AP_ENB GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB PHY LFDS L2 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} ${ITTI_LIB} ${MIH_LIB} -Wl,--end-group ) From f81b6704f43c76fecaabf55eb33b2e72fcb0edfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Fri, 10 Jun 2016 14:39:00 +0200 Subject: [PATCH 17/84] lmsSDR: remove static from struct SamplesPacket. Th struct SamplesPacket is a type declaration. It is not defined in memory and thus samplesCount can't be declared static. Transform it to true cpp static variable class as this is c++ source. --- targets/ARCH/LMSSDR/USERSPACE/LIB/lmsSDR/dataTypes.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lmsSDR/dataTypes.h b/targets/ARCH/LMSSDR/USERSPACE/LIB/lmsSDR/dataTypes.h index cba2b7341e..c97ac7857d 100644 --- a/targets/ARCH/LMSSDR/USERSPACE/LIB/lmsSDR/dataTypes.h +++ b/targets/ARCH/LMSSDR/USERSPACE/LIB/lmsSDR/dataTypes.h @@ -14,14 +14,15 @@ typedef struct int16_t q; } complex16_t; -typedef struct +class SamplesPacket { + public: uint64_t timestamp; //timestamp of the packet uint16_t first; //index of first unused sample in samples[] uint16_t last; //end index of samples static const uint16_t samplesCount = 1024; //maximum number of samples in packet complex16_t samples[samplesCount]; //must be power of two -} SamplesPacket; +}; complex16_t operator &=(complex16_t & other1, const complex16_t & other) // copy assignment { @@ -30,4 +31,4 @@ complex16_t operator &=(complex16_t & other1, const complex16_t & other) // copy return other1; } -#endif \ No newline at end of file +#endif From 22b278d43b61325efd910e1cf67177f269048818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Mon, 13 Jun 2016 14:05:45 +0200 Subject: [PATCH 18/84] CMakeLists.txt: fix lte-softmodem-nos1 build It can't link because nas_config.c and rb_config.c was commented. --- cmake_targets/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 6f370b7144..d542416315 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -1652,8 +1652,8 @@ add_executable(lte-softmodem-nos1 ${OPENAIR_TARGETS}/SIMU/USER/init_lte.c ${OPENAIR_TARGETS}/COMMON/create_tasks.c ${OPENAIR_TARGETS}/ARCH/COMMON/common_lib.c - #${OPENAIR2_DIR}/RRC/NAS/nas_config.c # enable if you want rrc to mount ip interface - #${OPENAIR2_DIR}/RRC/NAS/rb_config.c + ${OPENAIR2_DIR}/RRC/NAS/nas_config.c + ${OPENAIR2_DIR}/RRC/NAS/rb_config.c ${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c ${HW_SOURCE} ${TRANSPORT_SOURCE} From cdb182c1535f960328b6d40c4a173619692ce5f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Fri, 10 Jun 2016 08:58:50 +0200 Subject: [PATCH 19/84] CMakeLists.txt: force compilation to gnu89 standard for gccxml clang have changed its default standard to C11 compilation and is stricter. Ensure use of gnu89 standard to use pthread extension for --castxml-gccxml --- cmake_targets/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index d542416315..67cc6cfc3a 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -1929,6 +1929,11 @@ foreach( d ${DirDefs} ) list(APPEND itti_compiler_options "-I${d}") endforeach() +# castxml doesn't work with c11 (gcc 5 default) +# force castxml and clang compilation with gnu89 standard +# we can't use cXX standard as pthread_rwlock_t is gnu standard +list(APPEND itti_compiler_options "-std=gnu89") + set (ITTI_H ${ITTI_DIR}/intertask_interface_types.h) add_custom_command ( OUTPUT ${OPENAIR_BIN_DIR}/messages.xml From 9d49702639ad0ce8fc836fac292f3243699ce183 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 17 Jun 2016 11:14:14 +0200 Subject: [PATCH 20/84] cleanup: put DEFAULT_REMOTE_IP and DEFAULT_REMOTE_PORT in utils.h --- common/utils/T/tracer/enb.c | 3 --- common/utils/T/tracer/textlog.c | 3 --- common/utils/T/tracer/utils.h | 3 +++ common/utils/T/tracer/vcd.c | 3 --- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index f43e1d6707..a120ba471e 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -33,9 +33,6 @@ typedef struct { pthread_mutex_t lock; } enb_data; -#define DEFAULT_REMOTE_IP "127.0.0.1" -#define DEFAULT_REMOTE_PORT 2021 - void is_on_changed(void *_d) { enb_data *d = _d; diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c index f11ca96bd9..9c9b580def 100644 --- a/common/utils/T/tracer/textlog.c +++ b/common/utils/T/tracer/textlog.c @@ -14,9 +14,6 @@ #include "event_selector.h" #include "config.h" -#define DEFAULT_REMOTE_IP "127.0.0.1" -#define DEFAULT_REMOTE_PORT 2021 - typedef struct { int socket; int *is_on; diff --git a/common/utils/T/tracer/utils.h b/common/utils/T/tracer/utils.h index e15a8d2fba..d3cf0350da 100644 --- a/common/utils/T/tracer/utils.h +++ b/common/utils/T/tracer/utils.h @@ -20,6 +20,9 @@ list *list_append(list *l, void *data); /* socket */ /****************************************************************************/ +#define DEFAULT_REMOTE_IP "127.0.0.1" +#define DEFAULT_REMOTE_PORT 2021 + /* socket_send: return 0 if okay, -1 on error */ int socket_send(int socket, void *buffer, int size); int get_connection(char *addr, int port); diff --git a/common/utils/T/tracer/vcd.c b/common/utils/T/tracer/vcd.c index 45aa4e26e2..0ad2756c2a 100644 --- a/common/utils/T/tracer/vcd.c +++ b/common/utils/T/tracer/vcd.c @@ -40,9 +40,6 @@ no_connection: if (pthread_mutex_unlock(&d->lock)) abort(); } -#define DEFAULT_REMOTE_IP "127.0.0.1" -#define DEFAULT_REMOTE_PORT 2021 - void usage(void) { printf( From 97d1dcbccd24a88132dbf071c0155df6f1b081ee Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 17 Jun 2016 15:16:19 +0200 Subject: [PATCH 21/84] add a 'record' tracer --- common/utils/T/tracer/Makefile | 7 +- common/utils/T/tracer/record.c | 158 +++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 common/utils/T/tracer/record.c diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile index bf0f72710c..59644e1b34 100644 --- a/common/utils/T/tracer/Makefile +++ b/common/utils/T/tracer/Makefile @@ -5,7 +5,10 @@ CFLAGS=-Wall -g -pthread -DT_TRACER -I. LIBS=-lX11 -lm -lpng -lXft -all: textlog enb vcd +all: record textlog enb vcd + +record: utils.o record.o database.o config.o + $(CC) $(CFLAGS) -o record $^ $(LIBS) textlog: utils.o textlog.o database.o event.o handler.o config.o \ event_selector.o view/view.a gui/gui.a logger/logger.a \ @@ -40,7 +43,7 @@ filter/filter.a: $(CC) $(CFLAGS) -c -o $@ $< clean: - rm -f *.o core tracer_remote textlog enb vcd + rm -f *.o core tracer_remote textlog enb vcd record cd gui && make clean cd view && make clean cd logger && make clean diff --git a/common/utils/T/tracer/record.c b/common/utils/T/tracer/record.c new file mode 100644 index 0000000000..2dfe35f4da --- /dev/null +++ b/common/utils/T/tracer/record.c @@ -0,0 +1,158 @@ +#include +#include +#include +#include +#include "database.h" +#include "utils.h" +#include "../T_defs.h" +#include "config.h" + +void usage(void) +{ + printf( +"options:\n" +" -d this option is mandatory\n" +" -o this option is mandatory\n" +" -on turn log ON for given GROUP or ID\n" +" -off turn log OFF for given GROUP or ID\n" +" -ON turn all logs ON\n" +" -OFF turn all logs OFF\n" +" note: you may pass several -on/-off/-ON/-OFF,\n" +" they will be processed in order\n" +" by default, all is off\n" +" -ip connect to given IP address (default %s)\n" +" -p connect to given port (default %d)\n", + DEFAULT_REMOTE_IP, + DEFAULT_REMOTE_PORT + ); + exit(1); +} + +volatile int run = 1; + +void force_stop(int x) +{ + printf("\ngently quit...\n"); + run = 0; +} + +int main(int n, char **v) +{ + char *database_filename = NULL; + char *output_filename = NULL; + FILE *out; + void *database; + char *ip = DEFAULT_REMOTE_IP; + int port = DEFAULT_REMOTE_PORT; + char **on_off_name; + int *on_off_action; + int on_off_n = 0; + int socket; + int *is_on; + int number_of_events; + int i; + char mt; + + /* write on a socket fails if the other end is closed and we get SIGPIPE */ + if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort(); + + /* exit on ctrl+c and ctrl+z */ + if (signal(SIGQUIT, force_stop) == SIG_ERR) abort(); + if (signal(SIGINT, force_stop) == SIG_ERR) abort(); + if (signal(SIGTSTP, force_stop) == SIG_ERR) abort(); + + on_off_name = malloc(n * sizeof(char *)); if (on_off_name == NULL) abort(); + on_off_action = malloc(n * sizeof(int)); if (on_off_action == NULL) abort(); + + for (i = 1; i < n; i++) { + if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage(); + if (!strcmp(v[i], "-d")) + { if (i > n-2) usage(); database_filename = v[++i]; continue; } + if (!strcmp(v[i], "-o")) + { if (i > n-2) usage(); output_filename = v[++i]; continue; } + if (!strcmp(v[i], "-ip")) { if (i > n-2) usage(); ip = v[++i]; continue; } + if (!strcmp(v[i], "-p")) + { if (i > n-2) usage(); port = atoi(v[++i]); continue; } + if (!strcmp(v[i], "-on")) { if (i > n-2) usage(); + on_off_name[on_off_n]=v[++i]; on_off_action[on_off_n++]=1; continue; } + if (!strcmp(v[i], "-off")) { if (i > n-2) usage(); + on_off_name[on_off_n]=v[++i]; on_off_action[on_off_n++]=0; continue; } + if (!strcmp(v[i], "-ON")) + { on_off_name[on_off_n]=NULL; on_off_action[on_off_n++]=1; continue; } + if (!strcmp(v[i], "-OFF")) + { on_off_name[on_off_n]=NULL; on_off_action[on_off_n++]=0; continue; } + usage(); + } + + if (database_filename == NULL) { + printf("ERROR: provide a database file (-d)\n"); + exit(1); + } + if (output_filename == NULL) { + printf("ERROR: provide an output file (-o)\n"); + exit(1); + } + + database = parse_database(database_filename); + + load_config_file(database_filename); + + number_of_events = number_of_ids(database); + is_on = calloc(number_of_events, sizeof(int)); + if (is_on == NULL) abort(); + + for (i = 0; i < on_off_n; i++) + on_off(database, on_off_name[i], is_on, on_off_action[i]); + + socket = connect_to(ip, port); + + /* activate selected traces */ + mt = 1; + if (socket_send(socket, &mt, 1) == -1 || + socket_send(socket, &number_of_events, sizeof(int)) == -1 || + socket_send(socket, is_on, number_of_events * sizeof(int)) == -1) + abort(); + + out = fopen(output_filename, "w"); + if (out == NULL) { + perror(output_filename); + exit(1); + } + + /* read messages */ + while (run) { + int type; + int32_t length; + char v[T_BUFFER_MAX]; + int vpos = 0; + + if (fullread(socket, &length, 4) == -1) goto read_error; + memcpy(v+vpos, &length, 4); + vpos += 4; +#ifdef T_SEND_TIME + if (fullread(socket,v+vpos,sizeof(struct timespec))==-1) goto read_error; + vpos += sizeof(struct timespec); + length -= sizeof(struct timespec); +#endif + if (fullread(socket, &type, sizeof(int)) == -1) goto read_error; + memcpy(v+vpos, &type, sizeof(int)); + vpos += sizeof(int); + length -= sizeof(int); + if (fullread(socket, v+vpos, length) == -1) goto read_error; + vpos += length; + + if (type == -1) append_received_config_chunk(v+vpos-length, length); + if (type == -2) verify_config(); + + if (fwrite(v, vpos, 1, out) != 1) { + printf("error saving data to file %s\n", output_filename); + fclose(out); + exit(1); + } + } + +read_error: + fclose(out); + + return 0; +} From 99d1328d6ede9d172cdd5588c26f4509588678b8 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 17 Jun 2016 15:16:49 +0200 Subject: [PATCH 22/84] add a very basic replay tracer to be used in conjunction with another tracer so conceptually it's more a tracee than a tracer --- common/utils/T/tracer/Makefile | 7 +- common/utils/T/tracer/replay.c | 178 +++++++++++++++++++++++++++++++++ 2 files changed, 183 insertions(+), 2 deletions(-) create mode 100644 common/utils/T/tracer/replay.c diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile index 59644e1b34..38a660562d 100644 --- a/common/utils/T/tracer/Makefile +++ b/common/utils/T/tracer/Makefile @@ -5,11 +5,14 @@ CFLAGS=-Wall -g -pthread -DT_TRACER -I. LIBS=-lX11 -lm -lpng -lXft -all: record textlog enb vcd +all: record replay textlog enb vcd record: utils.o record.o database.o config.o $(CC) $(CFLAGS) -o record $^ $(LIBS) +replay: utils.o replay.o + $(CC) $(CFLAGS) -o replay $^ $(LIBS) + textlog: utils.o textlog.o database.o event.o handler.o config.o \ event_selector.o view/view.a gui/gui.a logger/logger.a \ filter/filter.a @@ -43,7 +46,7 @@ filter/filter.a: $(CC) $(CFLAGS) -c -o $@ $< clean: - rm -f *.o core tracer_remote textlog enb vcd record + rm -f *.o core tracer_remote textlog enb vcd record replay cd gui && make clean cd view && make clean cd logger && make clean diff --git a/common/utils/T/tracer/replay.c b/common/utils/T/tracer/replay.c new file mode 100644 index 0000000000..a64342f39c --- /dev/null +++ b/common/utils/T/tracer/replay.c @@ -0,0 +1,178 @@ +#include +#include +#include +#include +#include +#include "utils.h" +#include "../T_defs.h" + +#define DEFAULT_REMOTE_PORT 2021 + +/* replay.c does not know anything about events - it just has the array + * is_on that grows each time replay.c sees a type that does not fit in + * there (the idea is to isolate replay.c as maximum by not using unneeded + * information) + */ +int *is_on; +int is_on_size; + +/* this lock is used to protect access to is_on/is_on_size */ +pthread_mutex_t biglock = PTHREAD_MUTEX_INITIALIZER; + +void set_is_on_size(int size) +{ + is_on = realloc(is_on, size * sizeof(int)); if (is_on == NULL) abort(); + memset(is_on + is_on_size, 0, (size - is_on_size) * sizeof(int)); + is_on_size = size; +} + +void lock(void) +{ + if (pthread_mutex_lock(&biglock)) abort(); +} + +void unlock(void) +{ + if (pthread_mutex_unlock(&biglock)) abort(); +} + +#define QUIT(x) do { printf("%s\n", x); exit(1); } while(0) + +void get_message(int s) +{ + char t; + int l; + int id; + int on; + + if (read(s, &t, 1) != 1) QUIT("get_message fails"); + lock(); + switch (t) { + case 0: + /* toggle all those IDs */ + if (read(s, &l, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); + while (l) { + if (read(s, &id, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); + if (id > is_on_size - 1) set_is_on_size(id + 1); + is_on[id] = 1 - is_on[id]; + l--; + } + break; + case 1: + /* set IDs as given */ + /* optimize? */ + if (read(s, &l, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); + if (l > is_on_size) set_is_on_size(l); + id = 0; + while (l) { + if (read(s, &on, sizeof(int)) != sizeof(int)) + QUIT("get_message fails"); + is_on[id] = on; + id++; + l--; + } + break; + case 2: break; /* do nothing, this message is to wait for local tracer */ + default: abort(); + } + unlock(); +} + +void *get_message_thread(void *_socket) +{ + int socket = *(int *)_socket; + + while (1) get_message(socket); + + return NULL; +} + +void usage(void) +{ + printf( +"options:\n" +" -i this option is mandatory\n" +" -p wait connection on given port (default %d)\n", + DEFAULT_REMOTE_PORT + ); + exit(1); +} + +#define ERR printf("ERROR: read file %s failed\n", input_filename) + +int main(int n, char **v) +{ + int port = DEFAULT_REMOTE_PORT; + char *input_filename = NULL; + int i; + int socket; + FILE *in; + int do_send; + + for (i = 1; i < n; i++) { + if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage(); + if (!strcmp(v[i], "-i")) + { if (i > n-2) usage(); input_filename = v[++i]; continue; } + if (!strcmp(v[i], "-p")) + { if (i > n-2) usage(); port = atoi(v[++i]); continue; } + usage(); + } + + if (input_filename == NULL) { + printf("ERROR: provide an input file (-i)\n"); + exit(1); + } + + in = fopen(input_filename, "r"); + if (in == NULL) { perror(input_filename); abort(); } + + socket = get_connection("0.0.0.0", port); + + /* get first message to activate selected traces */ + get_message(socket); + + new_thread(get_message_thread, &socket); + + while (1) { + int type; + int32_t length; + char v[T_BUFFER_MAX]; + int vpos = 0; + + /* read event from file */ + if (fread(&length, 4, 1, in) != 1) break; + memcpy(v+vpos, &length, 4); + vpos += 4; +#ifdef T_SEND_TIME + if (length < sizeof(struct timespec)) { ERR; break; } + if (fread(v+vpos, sizeof(struct timespec), 1, in) != 1) { ERR; break; } + vpos += sizeof(struct timespec); + length -= sizeof(struct timespec); +#endif + if (length < sizeof(int)) { ERR; break; } + if (fread(&type, sizeof(int), 1, in) != 1) { ERR; break; } + memcpy(v+vpos, &type, sizeof(int)); + vpos += sizeof(int); + length -= sizeof(int); + if (length) if (fread(v+vpos, length, 1, in) != 1) { ERR; break; } + vpos += length; + + /* only send if configured to do so */ + lock(); + if (type < 0) do_send = 1; + else { + if (type > is_on_size - 1) set_is_on_size(type+1); + do_send = is_on[type]; + } + unlock(); + + if (do_send) + if (socket_send(socket, v, vpos) != 0) + { printf("ERROR: socket writing failed\n"); abort(); } + } + + fclose(in); + close(socket); + + return 0; +} From 8e28dacdd9f4dd423cce0f1e6b9ddc20e86b4217 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 17 Jun 2016 15:39:25 +0200 Subject: [PATCH 23/84] add a small utility to extract a configuration file from a log --- common/utils/T/tracer/Makefile | 6 ++- common/utils/T/tracer/extract_config.c | 75 ++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 common/utils/T/tracer/extract_config.c diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile index 38a660562d..4345db1f70 100644 --- a/common/utils/T/tracer/Makefile +++ b/common/utils/T/tracer/Makefile @@ -5,7 +5,7 @@ CFLAGS=-Wall -g -pthread -DT_TRACER -I. LIBS=-lX11 -lm -lpng -lXft -all: record replay textlog enb vcd +all: record replay extract_config textlog enb vcd record: utils.o record.o database.o config.o $(CC) $(CFLAGS) -o record $^ $(LIBS) @@ -13,6 +13,9 @@ record: utils.o record.o database.o config.o replay: utils.o replay.o $(CC) $(CFLAGS) -o replay $^ $(LIBS) +extract_config: extract_config.o + $(CC) $(CFLAGS) -o extract_config $^ $(LIBS) + textlog: utils.o textlog.o database.o event.o handler.o config.o \ event_selector.o view/view.a gui/gui.a logger/logger.a \ filter/filter.a @@ -47,6 +50,7 @@ filter/filter.a: clean: rm -f *.o core tracer_remote textlog enb vcd record replay + rm -f extract_config cd gui && make clean cd view && make clean cd logger && make clean diff --git a/common/utils/T/tracer/extract_config.c b/common/utils/T/tracer/extract_config.c new file mode 100644 index 0000000000..f35d765cec --- /dev/null +++ b/common/utils/T/tracer/extract_config.c @@ -0,0 +1,75 @@ +#include +#include +#include +#include "../T_defs.h" + +void usage(void) +{ + printf( +"options:\n" +" -i this option is mandatory\n" + ); + exit(1); +} + +#define ERR printf("ERROR: read file %s failed\n", input_filename) + +int main(int n, char **v) +{ + char *input_filename = NULL; + int i; + FILE *in; + + for (i = 1; i < n; i++) { + if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage(); + if (!strcmp(v[i], "-i")) + { if (i > n-2) usage(); input_filename = v[++i]; continue; } + usage(); + } + + if (input_filename == NULL) { + printf("ERROR: provide an input file (-i)\n"); + exit(1); + } + + in = fopen(input_filename, "r"); + if (in == NULL) { perror(input_filename); abort(); } + + while (1) { + int type; + int32_t length; + char v[T_BUFFER_MAX]; + int vpos = 0; + + /* read event from file */ + if (fread(&length, 4, 1, in) != 1) break; + memcpy(v+vpos, &length, 4); + vpos += 4; +#ifdef T_SEND_TIME + if (length < sizeof(struct timespec)) { ERR; break; } + if (fread(v+vpos, sizeof(struct timespec), 1, in) != 1) { ERR; break; } + vpos += sizeof(struct timespec); + length -= sizeof(struct timespec); +#endif + if (length < sizeof(int)) { ERR; break; } + if (fread(&type, sizeof(int), 1, in) != 1) { ERR; break; } + memcpy(v+vpos, &type, sizeof(int)); + vpos += sizeof(int); + length -= sizeof(int); + if (length) if (fread(v+vpos, length, 1, in) != 1) { ERR; break; } + vpos += length; + + if (type == -1) { + if (length < sizeof(int)) { ERR; break; } + length -= sizeof(int); + if (fwrite(v+vpos-length, length, 1, stdout) != 1) { ERR; break; } + } + + /* TODO: parse all file? */ + if (type == -2) break; + } + + fclose(in); + + return 0; +} From 0bca3ea53dbdb76b29c5f1c587f696585023ac87 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sat, 18 Jun 2016 23:44:38 +0200 Subject: [PATCH 24/84] minor fixes to build scripts --- cmake_targets/build_oai | 3 +++ cmake_targets/tools/build_helper | 16 ++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index 44c41d4a50..04289a83fa 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -60,6 +60,7 @@ RUN_GROUP=0 TEST_CASE_GROUP="" BUILD_DOXYGEN=0 T_TRACER="False" +DISABLE_HARDWARE_DEPENDENCY="False" trap handle_ctrl_c INT function print_help() { @@ -132,6 +133,8 @@ Options 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 --T-tracer Enables the T tracer. +--disable-hardware-dependency + Disable HW dependency during installation 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 diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 550ee67bc7..36d3410349 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -213,7 +213,7 @@ install_gnutls_from_source(){ check_install_usrp_uhd_driver(){ #first we remove old installation - $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y + $SUDO apt-get remove uhd libuhd-dev libuhd003 uhd-host -y v=$(lsb_release -cs) $SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main" #The new USRP repository @@ -267,7 +267,11 @@ check_install_additional_tools (){ ctags \ ntpdate \ iperf3 \ - android-tools-adb + android-tools-adb \ + wvdial \ + python-numpy \ + sshpass \ + libxslt1-dev $SUDO pip install paramiko $SUDO pip install pyroute2 @@ -363,12 +367,7 @@ check_install_oai_software() { xmlstarlet \ python-pip \ pydb \ - wget \ - wvdial \ - python-numpy \ - sshpass \ - libxslt1-dev \ - android-tools-adb + wget $SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so @@ -394,6 +393,7 @@ install_asn1c_from_source(){ ./configure make -j`nproc` $SUDO make install + cd - ) > $asn1_install_log 2>&1 } From c5b126f59896523ef61fd6ac942b4e25dad8b7df Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Mon, 20 Jun 2016 10:02:40 +0200 Subject: [PATCH 25/84] update format of trace ENB_PHY_PUSCH_IQ to include N_RB_UL and symbols_per_tti --- common/utils/T/T_messages.txt | 2 +- openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index 5678b588ba..062b98d6c8 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -52,7 +52,7 @@ ID = ENB_PHY_UL_CHANNEL_ESTIMATE ID = ENB_PHY_PUSCH_IQ DESC = eNodeB PUSCH received IQ data GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB - FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,nb_rb : buffer,pusch_comp + FORMAT = int,eNB_ID : int,UE_ID : int,frame : int,subframe : int,nb_rb : int,N_RB_UL : int,symbols_per_tti : buffer,pusch_comp ID = ENB_PHY_PUCCH_1AB_IQ DESC = eNodeB PUCCH received IQ data GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c index 48ab4c5ca7..010dd36f31 100644 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c @@ -1842,6 +1842,7 @@ void rx_ulsch(PHY_VARS_eNB *phy_vars_eNB, T(T_ENB_PHY_PUSCH_IQ, T_INT(eNB_id), T_INT(UE_id), T_INT(phy_vars_eNB->proc[sched_subframe].frame_rx), T_INT(subframe), T_INT(ulsch[UE_id]->harq_processes[harq_pid]->nb_rb), + T_INT(frame_parms->N_RB_UL), T_INT(frame_parms->symbols_per_tti), T_BUFFER(eNB_pusch_vars->rxdataF_comp[eNB_id][0], 2 * /* ulsch[UE_id]->harq_processes[harq_pid]->nb_rb */ frame_parms->N_RB_UL *12*frame_parms->symbols_per_tti*2)); From 8e458d9c9bf57218b60ee8b8757e4934cbca00c6 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Mon, 20 Jun 2016 11:36:17 +0200 Subject: [PATCH 26/84] add a very basic step mechanism to replay.c --- common/utils/T/tracer/replay.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/utils/T/tracer/replay.c b/common/utils/T/tracer/replay.c index a64342f39c..be7e8d60c6 100644 --- a/common/utils/T/tracer/replay.c +++ b/common/utils/T/tracer/replay.c @@ -92,7 +92,8 @@ void usage(void) printf( "options:\n" " -i this option is mandatory\n" -" -p wait connection on given port (default %d)\n", +" -p wait connection on given port (default %d)\n" +" -w user must press a key after each sent event\n", DEFAULT_REMOTE_PORT ); exit(1); @@ -108,6 +109,7 @@ int main(int n, char **v) int socket; FILE *in; int do_send; + int do_wait = 0; for (i = 1; i < n; i++) { if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage(); @@ -115,6 +117,7 @@ int main(int n, char **v) { if (i > n-2) usage(); input_filename = v[++i]; continue; } if (!strcmp(v[i], "-p")) { if (i > n-2) usage(); port = atoi(v[++i]); continue; } + if (!strcmp(v[i], "-w")) { do_wait = 1; continue; } usage(); } @@ -169,6 +172,8 @@ int main(int n, char **v) if (do_send) if (socket_send(socket, v, vpos) != 0) { printf("ERROR: socket writing failed\n"); abort(); } + + if (do_send && do_wait) getchar(); } fclose(in); From 0f0fa90d16ff7d2d2f5c40a55d9a4fa1f3bbc0d3 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Mon, 20 Jun 2016 15:40:53 +0200 Subject: [PATCH 27/84] xy view to exist in two flavours XY_LOOP_MODE: replace old points with new ones, using the maximum size of the view XY_FORCE_MODE: append_forced sets those and only those points and we crash if we pass too much points --- common/utils/T/tracer/enb.c | 2 +- common/utils/T/tracer/view/view.h | 4 ++- common/utils/T/tracer/view/xy.c | 43 ++++++++++++++++++++++++++----- 3 files changed, 41 insertions(+), 8 deletions(-) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index a120ba471e..7d835604fe 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -132,7 +132,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) */ framelog_set_skip(input_signal_log, 10); input_signal_view = new_view_xy(7680*10, 10, - g, input_signal_plot, new_color(g, "#0c0c72")); + g, input_signal_plot, new_color(g, "#0c0c72"), XY_LOOP_MODE); logger_add_view(input_signal_log, input_signal_view); /* downlink/uplink UE DCIs */ diff --git a/common/utils/T/tracer/view/view.h b/common/utils/T/tracer/view/view.h index cbc5e21b73..2173c842ce 100644 --- a/common/utils/T/tracer/view/view.h +++ b/common/utils/T/tracer/view/view.h @@ -11,10 +11,12 @@ typedef struct view { void (*set)(struct view *this, char *name, ...); } view; +enum xy_mode { XY_LOOP_MODE, XY_FORCED_MODE }; + view *new_view_stdout(void); view *new_view_textlist(int maxsize, float refresh_rate, gui *g, widget *w); view *new_view_xy(int length, float refresh_rate, gui *g, widget *w, - int color); + int color, enum xy_mode mode); view *new_view_tti(float refresh_rate, gui *g, widget *w, int color); view *new_view_time(int number_of_seconds, float refresh_rate, diff --git a/common/utils/T/tracer/view/xy.c b/common/utils/T/tracer/view/xy.c index 1407a16a0e..96a44cf512 100644 --- a/common/utils/T/tracer/view/xy.c +++ b/common/utils/T/tracer/view/xy.c @@ -14,6 +14,7 @@ struct xy { float refresh_rate; pthread_mutex_t lock; int length; + int max_length; /* used in XY_FORCED_MODE */ float *x; float *y; int insert_point; @@ -39,7 +40,7 @@ static void clear(view *this) /* TODO */ } -static void append(view *_this, float *x, float *y, int length) +static void append_loop(view *_this, float *x, float *y, int length) { struct xy *this = (struct xy *)_this; int i; @@ -61,6 +62,25 @@ static void append(view *_this, float *x, float *y, int length) if (pthread_mutex_unlock(&this->lock)) abort(); } +static void append_forced(view *_this, float *x, float *y, int length) +{ + struct xy *this = (struct xy *)_this; + + if (length > this->max_length) { + printf("%s:%d:%s: bad length (%d), max allowed is %d\n", + __FILE__, __LINE__, __FUNCTION__, length, this->max_length); + abort(); + } + + if (pthread_mutex_lock(&this->lock)) abort(); + + memcpy(this->x, x, length * sizeof(float)); + memcpy(this->y, y, length * sizeof(float)); + this->length = length; + + if (pthread_mutex_unlock(&this->lock)) abort(); +} + static void set(view *_this, char *name, ...) { struct xy *this = (struct xy *)_this; @@ -89,24 +109,35 @@ static void set(view *_this, char *name, ...) } view *new_view_xy(int length, float refresh_rate, gui *g, widget *w, - int color) + int color, enum xy_mode mode) { struct xy *ret = calloc(1, sizeof(struct xy)); if (ret == NULL) abort(); ret->common.clear = clear; - ret->common.append = (void (*)(view *, ...))append; - ret->common.set = set; + + switch (mode) { + case XY_LOOP_MODE: + ret->common.append = (void (*)(view *, ...))append_loop; + ret->common.set = set; + ret->length = length; + ret->insert_point = 0; + break; + case XY_FORCED_MODE: + ret->common.append = (void (*)(view *, ...))append_forced; + ret->common.set = NULL; + ret->length = 0; + ret->max_length = length; + break; + } ret->refresh_rate = refresh_rate; ret->g = g; ret->w = w; ret->plot = xy_plot_new_plot(g, w, color); - ret->length = length; ret->x = calloc(length, sizeof(float)); if (ret->x == NULL) abort(); ret->y = calloc(length, sizeof(float)); if (ret->y == NULL) abort(); - ret->insert_point = 0; if (pthread_mutex_init(&ret->lock, NULL)) abort(); From f7d815190b6230e7805d045f537a348094313b3c Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 20 Jun 2016 18:58:06 +0200 Subject: [PATCH 28/84] Gitlab CI: fix for 0255* + iperf script route --- cmake_targets/autotests/test_case_list.xml | 44 +++++++++++----------- cmake_targets/autotests/tools/iperf_script | 12 ++++++ 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 7b92ce2d11..c59d83e30b 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -6082,7 +6082,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6099,10 +6099,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6157,7 +6157,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6174,10 +6174,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6305,7 +6305,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6322,10 +6322,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6368,7 +6368,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 10Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 17Mbits/s -i 1 -f m -u False @@ -6379,7 +6379,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6396,10 +6396,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6442,7 +6442,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 20Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u False diff --git a/cmake_targets/autotests/tools/iperf_script b/cmake_targets/autotests/tools/iperf_script index 5f9baff09f..fb540657b6 100755 --- a/cmake_targets/autotests/tools/iperf_script +++ b/cmake_targets/autotests/tools/iperf_script @@ -39,14 +39,26 @@ timeout=${args[0]} iface=${args[1]} iperf_args=(${args[@]:2}) +ip_client=echo "$iperf_args" | sed -ne 's/.*\-c[ ]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p' + #array=${1:-1} echo "args = ${args[@]}" echo "timeout = $timeout" echo "iface = $iface" echo "iperf_args = ${iperf_args[@]}" +echo "ip_client = $ip_client" sleep $timeout +echo " Waiting for IP Address..." while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done ; sleep 5 +if [ -n "$ip_client" ]; then +echo "Waiting for route to be setup before iperf makes connection..." + var=`route -n | grep $ip_client` + if ["$var" != "" ] ; then break; fi + +fi +sleep 5 + iperf ${iperf_args[@]} From 039f819d10bd48f37bedd0843551c182334456b5 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 20 Jun 2016 18:58:06 +0200 Subject: [PATCH 29/84] Gitlab CI: fix for 0255* + iperf script route --- cmake_targets/autotests/test_case_list.xml | 44 +++++++++++----------- cmake_targets/autotests/tools/iperf_script | 12 ++++++ 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 7b92ce2d11..c59d83e30b 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -6082,7 +6082,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6099,10 +6099,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6157,7 +6157,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6174,10 +6174,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6305,7 +6305,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6322,10 +6322,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6368,7 +6368,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 10Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 17Mbits/s -i 1 -f m -u False @@ -6379,7 +6379,7 @@ c lte-softmodem - calisson + tique stevens amerique 390 @@ -6396,10 +6396,10 @@ c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" - targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w USRP -x -c @@ -6442,7 +6442,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 20Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u False diff --git a/cmake_targets/autotests/tools/iperf_script b/cmake_targets/autotests/tools/iperf_script index 5f9baff09f..fb540657b6 100755 --- a/cmake_targets/autotests/tools/iperf_script +++ b/cmake_targets/autotests/tools/iperf_script @@ -39,14 +39,26 @@ timeout=${args[0]} iface=${args[1]} iperf_args=(${args[@]:2}) +ip_client=echo "$iperf_args" | sed -ne 's/.*\-c[ ]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p' + #array=${1:-1} echo "args = ${args[@]}" echo "timeout = $timeout" echo "iface = $iface" echo "iperf_args = ${iperf_args[@]}" +echo "ip_client = $ip_client" sleep $timeout +echo " Waiting for IP Address..." while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done ; sleep 5 +if [ -n "$ip_client" ]; then +echo "Waiting for route to be setup before iperf makes connection..." + var=`route -n | grep $ip_client` + if ["$var" != "" ] ; then break; fi + +fi +sleep 5 + iperf ${iperf_args[@]} From 8c328e00b01e590e4dc46e247e21d170d6630166 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 10:53:59 +0200 Subject: [PATCH 30/84] increase size of enb.c man window --- common/utils/T/tracer/enb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index 7d835604fe..7a8d8adc90 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -114,7 +114,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) view *textview; int i; - main_window = new_toplevel_window(g, 800, 600, "eNB tracer"); + main_window = new_toplevel_window(g, 1200, 900, "eNB tracer"); top_container = new_container(g, VERTICAL); widget_add_child(g, main_window, top_container, -1); From d2bd09bb9d63cfdbc8c389a33ec5945ffe2f80c3 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 10:55:34 +0200 Subject: [PATCH 31/84] add function framelog_set_update_only_at_sf9 and update code about it --- common/utils/T/tracer/logger/framelog.c | 11 ++++++++++- common/utils/T/tracer/logger/logger.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/common/utils/T/tracer/logger/framelog.c b/common/utils/T/tracer/logger/framelog.c index 057960c382..45ae3e399f 100644 --- a/common/utils/T/tracer/logger/framelog.c +++ b/common/utils/T/tracer/logger/framelog.c @@ -21,6 +21,7 @@ struct framelog { */ int skip_current; /* internal data for the skip mechanism */ int skip_on; /* internal data for the skip mechanism */ + int update_only_at_sf9; }; static void _event(void *p, event e) @@ -76,7 +77,7 @@ static void _event(void *p, event e) l->buffer[subframe * nsamples + i] = 10*log10(1.0+(float)(I*I+Q*Q)); } - if (subframe == 9) + if (l->update_only_at_sf9 == 0 || subframe == 9) for (i = 0; i < l->common.vsize; i++) l->common.v[i]->append(l->common.v[i], l->x, l->buffer, l->blength); } @@ -91,6 +92,8 @@ logger *new_framelog(event_handler *h, void *database, ret = calloc(1, sizeof(struct framelog)); if (ret == NULL) abort(); + ret->update_only_at_sf9 = 1; + ret->common.event_name = strdup(event_name); if (ret->common.event_name == NULL) abort(); ret->database = database; @@ -144,3 +147,9 @@ void framelog_set_skip(logger *_this, int skip_delay) l->skip_current = 0; l->skip_on = 0; } + +void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9) +{ + struct framelog *l = _this; + l->update_only_at_sf9 = update_only_at_sf9; +} diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h index e3e4b97aa5..c977973160 100644 --- a/common/utils/T/tracer/logger/logger.h +++ b/common/utils/T/tracer/logger/logger.h @@ -15,6 +15,7 @@ logger *new_ticklog(void *event_handler, void *database, char *event_name, char *frame_name, char *subframe_name); void framelog_set_skip(logger *_this, int skip_delay); +void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9); #include "view/view.h" From f31145ac96058b128ae65c9ffc48eae19b81ba31 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 10:58:25 +0200 Subject: [PATCH 32/84] new IQ logger the current version is very specific to PUSCH IQ data, where the input buffer has a special format to be rewritten cleanly at some point --- common/utils/T/tracer/logger/Makefile | 2 +- common/utils/T/tracer/logger/iqlog.c | 187 ++++++++++++++++++++++++++ common/utils/T/tracer/logger/logger.h | 3 + 3 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 common/utils/T/tracer/logger/iqlog.c diff --git a/common/utils/T/tracer/logger/Makefile b/common/utils/T/tracer/logger/Makefile index e539100838..8d23717a13 100644 --- a/common/utils/T/tracer/logger/Makefile +++ b/common/utils/T/tracer/logger/Makefile @@ -1,7 +1,7 @@ CC=gcc CFLAGS=-Wall -g -pthread -I.. -OBJS=logger.o textlog.o framelog.o ttilog.o timelog.o ticklog.o +OBJS=logger.o textlog.o framelog.o ttilog.o timelog.o ticklog.o iqlog.o logger.a: $(OBJS) ar cr logger.a $(OBJS) diff --git a/common/utils/T/tracer/logger/iqlog.c b/common/utils/T/tracer/logger/iqlog.c new file mode 100644 index 0000000000..3d303607ac --- /dev/null +++ b/common/utils/T/tracer/logger/iqlog.c @@ -0,0 +1,187 @@ +#include "logger.h" +#include "logger_defs.h" +#include "handler.h" +#include "database.h" +#include "filter/filter.h" +#include +#include +#include +#include + +struct iqlog { + struct logger common; + void *database; + int nb_rb_arg; + int N_RB_UL_arg; + int symbols_per_tti_arg; + int buffer_arg; + float *i; + float *q; + int max_length; +}; + +#if 0 +/* this function passes all received IQ samples to the views */ +static void _event(void *p, event e) +{ + struct iqlog *l = p; + int i; + void *buffer; + int bsize; + int nsamples; + + if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0) + return; + + buffer = e.e[l->buffer_arg].b; + bsize = e.e[l->buffer_arg].bsize; + + nsamples = bsize / (2*sizeof(int16_t)); + + if (nsamples > l->max_length) { + l->i = realloc(l->i, nsamples * sizeof(float)); + if (l->i == NULL) abort(); + l->q = realloc(l->q, nsamples * sizeof(float)); + if (l->q == NULL) abort(); + l->max_length = nsamples; + } + + for (i = 0; i < nsamples; i++) { + l->i[i] = ((int16_t *)buffer)[i*2]; + l->q[i] = ((int16_t *)buffer)[i*2+1]; + } + + for (i = 0; i < l->common.vsize; i++) + l->common.v[i]->append(l->common.v[i], l->i, l->q, nsamples); +} +#endif + +static void _event(void *p, event e) +{ + struct iqlog *l = p; + int i, j; + void *buffer; + int bsize; + int nb_rb; + int N_RB_UL; + int symbols_per_tti; + int max_nsamples; + float *idst, *qdst; + int count; + + if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0) + return; + + nb_rb = e.e[l->nb_rb_arg].i; + N_RB_UL = e.e[l->N_RB_UL_arg].i; + symbols_per_tti = e.e[l->symbols_per_tti_arg].i; + + buffer = e.e[l->buffer_arg].b; + bsize = e.e[l->buffer_arg].bsize; + + if (bsize != N_RB_UL * symbols_per_tti * 12 * 4) { + printf("%s:%d:%s: bad buffer size\n", __FILE__, __LINE__, __FUNCTION__); + abort(); + } + + max_nsamples = bsize / 4; + + if (max_nsamples > l->max_length) { + l->i = realloc(l->i, max_nsamples * sizeof(float)); + if (l->i == NULL) abort(); + l->q = realloc(l->q, max_nsamples * sizeof(float)); + if (l->q == NULL) abort(); + l->max_length = max_nsamples; + } + + idst = l->i; + qdst = l->q; + count = 0; + for (i = 0; i < symbols_per_tti; i++) + for (j = 0; j < 12 * nb_rb; j++) { + *idst = ((int16_t *)buffer)[(i*N_RB_UL*12 + j) * 2]; + *qdst = ((int16_t *)buffer)[(i*N_RB_UL*12 + j) * 2 + 1]; + idst++; + qdst++; + count++; + } + + for (i = 0; i < l->common.vsize; i++) + l->common.v[i]->append(l->common.v[i], l->i, l->q, count); +} + +logger *new_iqlog(event_handler *h, void *database, + char *event_name, char *nb_rb, char *N_RB_UL, char *symbols_per_tti, + char *buffer_varname) +{ + struct iqlog *ret; + int event_id; + database_event_format f; + int i; + + ret = calloc(1, sizeof(struct iqlog)); if (ret == NULL) abort(); + + ret->common.event_name = strdup(event_name); + if (ret->common.event_name == NULL) abort(); + ret->database = database; + + event_id = event_id_from_name(database, event_name); + + ret->common.handler_id = register_handler_function(h,event_id,_event,ret); + + f = get_format(database, event_id); + + /* look for args */ + ret->nb_rb_arg = -1; + ret->N_RB_UL_arg = -1; + ret->symbols_per_tti_arg = -1; + ret->buffer_arg = -1; + for (i = 0; i < f.count; i++) { + if (!strcmp(f.name[i], nb_rb)) ret->nb_rb_arg = i; + if (!strcmp(f.name[i], N_RB_UL)) ret->N_RB_UL_arg = i; + if (!strcmp(f.name[i], symbols_per_tti)) ret->symbols_per_tti_arg = i; + if (!strcmp(f.name[i], buffer_varname)) ret->buffer_arg = i; + } + if (ret->nb_rb_arg == -1) { + printf("%s:%d: argument '%s' not found in event '%s'\n", + __FILE__, __LINE__, nb_rb, event_name); + abort(); + } + if (ret->N_RB_UL_arg == -1) { + printf("%s:%d: argument '%s' not found in event '%s'\n", + __FILE__, __LINE__, N_RB_UL, event_name); + abort(); + } + if (ret->symbols_per_tti_arg == -1) { + printf("%s:%d: argument '%s' not found in event '%s'\n", + __FILE__, __LINE__, symbols_per_tti, event_name); + abort(); + } + if (ret->buffer_arg == -1) { + printf("%s:%d: buffer argument '%s' not found in event '%s'\n", + __FILE__, __LINE__, buffer_varname, event_name); + abort(); + } + if (strcmp(f.type[ret->nb_rb_arg], "int") != 0) { + printf("%s:%d: argument '%s' has wrong type (should be 'int')\n", + __FILE__, __LINE__, nb_rb); + abort(); + } + if (strcmp(f.type[ret->N_RB_UL_arg], "int") != 0) { + printf("%s:%d: argument '%s' has wrong type (should be 'int')\n", + __FILE__, __LINE__, nb_rb); + abort(); + } + if (strcmp(f.type[ret->symbols_per_tti_arg], "int") != 0) { + printf("%s:%d: argument '%s' has wrong type (should be 'int')\n", + __FILE__, __LINE__, symbols_per_tti); + abort(); + } + if (strcmp(f.type[ret->buffer_arg], "buffer") != 0) { + printf("%s:%d: argument '%s' has wrong type (should be 'buffer')\n", + __FILE__, __LINE__, buffer_varname); + abort(); + } + + return ret; +} diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h index c977973160..926eaff58c 100644 --- a/common/utils/T/tracer/logger/logger.h +++ b/common/utils/T/tracer/logger/logger.h @@ -13,6 +13,9 @@ logger *new_ttilog(void *event_handler, void *database, logger *new_timelog(void *event_handler, void *database, char *event_name); logger *new_ticklog(void *event_handler, void *database, char *event_name, char *frame_name, char *subframe_name); +logger *new_iqlog(void *event_handler, void *database, + char *event_name, char *nb_rb, char *N_RB_UL, char *symbols_per_tti, + char *buffer_varname); void framelog_set_skip(logger *_this, int skip_delay); void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9); From 3c5e27618deb8aab1a0fcf17c942e6fe5467097c Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 11:10:53 +0200 Subject: [PATCH 33/84] add PUSCH IQ and UL channel estimates for UE 0 to enb.c --- common/utils/T/tracer/enb.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index 7a8d8adc90..87010b6e39 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -113,6 +113,9 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) widget *text; view *textview; int i; + widget *w; + view *v; + logger *l; main_window = new_toplevel_window(g, 1200, 900, "eNB tracer"); top_container = new_container(g, VERTICAL); @@ -135,6 +138,36 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) g, input_signal_plot, new_color(g, "#0c0c72"), XY_LOOP_MODE); logger_add_view(input_signal_log, input_signal_view); + /* UE 0 PUSCH IQ data */ + w = new_xy_plot(g, 55, 55, "PUSCH IQ", 50); + widget_add_child(g, line, w, -1); + xy_plot_set_range(g, w, -1000, 1000, -1000, 1000); + l = new_iqlog(h, database, "ENB_PHY_PUSCH_IQ", "nb_rb", + "N_RB_UL", "symbols_per_tti", "pusch_comp"); + v = new_view_xy(100*12*14,10,g,w,new_color(g,"#000"),XY_FORCED_MODE); + logger_add_view(l, v); + logger_set_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_PUSCH_IQ", "UE_ID"), + filter_int(0) + )); + + /* UE 0 estimated UL channel */ + w = new_xy_plot(g, 256*2, 55, "UL estimated channel", 50); + widget_add_child(g, line, w, -1); + xy_plot_set_range(g, w, 0, 512*10, -10, 80); + l = new_framelog(h, database, + "ENB_PHY_UL_CHANNEL_ESTIMATE", "subframe", "chest_t"); + //framelog_set_skip(input_signal_log, 10); + framelog_set_update_only_at_sf9(l, 0); + v = new_view_xy(512*10, 10, g, w, new_color(g, "#0c0c72"), XY_LOOP_MODE); + logger_add_view(l, v); + logger_set_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", "UE_ID"), + filter_int(0) + )); + /* downlink/uplink UE DCIs */ widget_add_child(g, top_container, new_label(g,"DL/UL TICK/DCI/ACK/NACK "), -1); @@ -445,6 +478,7 @@ int main(int n, char **v) } on_off(database, "ENB_PHY_INPUT_SIGNAL", is_on, 1); + on_off(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", is_on, 1); on_off(database, "ENB_PHY_DL_TICK", is_on, 1); on_off(database, "ENB_PHY_DLSCH_UE_DCI", is_on, 1); on_off(database, "ENB_PHY_DLSCH_UE_ACK", is_on, 1); @@ -455,6 +489,7 @@ int main(int n, char **v) on_off(database, "ENB_PHY_ULSCH_UE_ACK", is_on, 1); on_off(database, "ENB_PHY_ULSCH_UE_NACK", is_on, 1); on_off(database, "ENB_MASTER_TICK", is_on, 1); + on_off(database, "ENB_PHY_PUSCH_IQ", is_on, 1); on_off(database, "LEGACY_RRC_INFO", is_on, 1); on_off(database, "LEGACY_RRC_ERROR", is_on, 1); From bbcfd0047c664c7d694d4ea4cd059614e016bc27 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 11:14:27 +0200 Subject: [PATCH 34/84] add a "hacks" directory with hackish-quality pieces of software stuff put in there is of lower quality / coding standard / whatever and serves as example to do quick debugging taks using the T infrastructure --- common/utils/T/tracer/Makefile | 1 + common/utils/T/tracer/hacks/Makefile | 18 +++ .../utils/T/tracer/hacks/dump_nack_signal.c | 115 ++++++++++++++++++ 3 files changed, 134 insertions(+) create mode 100644 common/utils/T/tracer/hacks/Makefile create mode 100644 common/utils/T/tracer/hacks/dump_nack_signal.c diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile index 4345db1f70..ee289aae59 100644 --- a/common/utils/T/tracer/Makefile +++ b/common/utils/T/tracer/Makefile @@ -55,3 +55,4 @@ clean: cd view && make clean cd logger && make clean cd filter && make clean + cd hacks && make clean diff --git a/common/utils/T/tracer/hacks/Makefile b/common/utils/T/tracer/hacks/Makefile new file mode 100644 index 0000000000..ab10305c0b --- /dev/null +++ b/common/utils/T/tracer/hacks/Makefile @@ -0,0 +1,18 @@ +CC=gcc +CFLAGS=-Wall -g -pthread -DT_TRACER -I. -I.. + +LIBS=-lX11 -lm -lpng -lXft + +all: dump_nack_signal + +dump_nack_signal: ../utils.o ../database.o ../config.o ../event.o \ + dump_nack_signal.o + $(CC) $(CFLAGS) -o dump_nack_signal $^ $(LIBS) + +.PHONY: all + +%.o: %.c + $(CC) $(CFLAGS) -c -o $@ $< + +clean: + rm -f *.o core dump_nack_signal diff --git a/common/utils/T/tracer/hacks/dump_nack_signal.c b/common/utils/T/tracer/hacks/dump_nack_signal.c new file mode 100644 index 0000000000..1627bdd14e --- /dev/null +++ b/common/utils/T/tracer/hacks/dump_nack_signal.c @@ -0,0 +1,115 @@ +#include +#include +#include +#include "utils.h" +#include "event.h" +#include "database.h" +#include "config.h" +#include "../T_defs.h" + +void usage(void) +{ + printf( +"options:\n" +" -d this option is mandatory\n" +" -ip connect to given IP address (default %s)\n" +" -p connect to given port (default %d)\n", + DEFAULT_REMOTE_IP, + DEFAULT_REMOTE_PORT + ); + exit(1); +} + +int main(int n, char **v) +{ + char *database_filename = NULL; + void *database; + char *ip = DEFAULT_REMOTE_IP; + int port = DEFAULT_REMOTE_PORT; + int i; + char t; + int number_of_events; + int socket; + int *is_on; + int ev_input, ev_nack; + int ev_ack; + + for (i = 1; i < n; i++) { + if (!strcmp(v[i], "-h") || !strcmp(v[i], "--help")) usage(); + if (!strcmp(v[i], "-d")) + { if (i > n-2) usage(); database_filename = v[++i]; continue; } + if (!strcmp(v[i], "-ip")) { if (i > n-2) usage(); ip = v[++i]; continue; } + if (!strcmp(v[i], "-p")) + { if (i > n-2) usage(); port = atoi(v[++i]); continue; } + usage(); + } + + if (database_filename == NULL) { + printf("ERROR: provide a database file (-d)\n"); + exit(1); + } + + database = parse_database(database_filename); + + load_config_file(database_filename); + + number_of_events = number_of_ids(database); + is_on = calloc(number_of_events, sizeof(int)); + if (is_on == NULL) abort(); + + on_off(database, "ENB_PHY_INPUT_SIGNAL", is_on, 1); + on_off(database, "ENB_PHY_ULSCH_UE_NACK", is_on, 1); + on_off(database, "ENB_PHY_ULSCH_UE_ACK", is_on, 1); + + ev_input = event_id_from_name(database, "ENB_PHY_INPUT_SIGNAL"); + ev_nack = event_id_from_name(database, "ENB_PHY_ULSCH_UE_NACK"); + ev_ack = event_id_from_name(database, "ENB_PHY_ULSCH_UE_ACK"); + + socket = connect_to(ip, port); + + t = 1; + if (socket_send(socket, &t, 1) == -1 || + socket_send(socket, &number_of_events, sizeof(int)) == -1 || + socket_send(socket, is_on, number_of_events * sizeof(int)) == -1) + abort(); + + char dump[10][T_BUFFER_MAX]; + event dump_ev[10]; +FILE *z = fopen("/tmp/dd", "w"); if (z == NULL) abort(); + while (1) { + char v[T_BUFFER_MAX]; + event e; + e = get_event(socket, v, database); + if (e.type == -1) break; + if (e.type == ev_input) { + int sf = e.e[2].i; + memcpy(dump[sf], v, T_BUFFER_MAX); + dump_ev[sf] = e; + printf("input %d/%d\n", e.e[1].i, sf); +if (fwrite(dump_ev[sf].e[4].b, dump_ev[sf].e[4].bsize, 1, z) != 1) abort(); +fflush(z); + } + if (e.type == ev_nack) { + int sf = e.e[2].i; + printf("nack %d/%d\n", e.e[1].i, sf); + FILE *f = fopen("/tmp/dump.raw", "w"); if (f == NULL) abort(); + if (fwrite(dump[sf] + ((char *)dump_ev[sf].e[4].b - v), + dump_ev[sf].e[4].bsize, 1, f) != 1) abort(); + if (fclose(f)) abort(); + printf("dumped... press enter (delta %d)\n", (int)((char *)dump_ev[sf].e[4].b - v)); +// getchar(); + } + if (e.type == ev_ack) { + int sf = e.e[2].i; + printf("ack %d/%d\n", e.e[1].i, sf); + FILE *f = fopen("/tmp/dump.raw", "w"); if (f == NULL) abort(); + if (fwrite(dump[sf] + ((char *)dump_ev[sf].e[4].b - v), + dump_ev[sf].e[4].bsize, 1, f) != 1) abort(); + if (fclose(f)) abort(); + printf("dumped... press enter (delta %d)\n", (int)((char *)dump_ev[sf].e[4].b - v)); +// getchar(); + } + } + + return 0; +} From 088db3cf370878fa6bed3152e0460df8963c8acd Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 16:10:32 +0200 Subject: [PATCH 35/84] new function PUTX2 to display an int as an 8 bits hexadecimal --- common/utils/T/tracer/utils.c | 7 +++++++ common/utils/T/tracer/utils.h | 1 + 2 files changed, 8 insertions(+) diff --git a/common/utils/T/tracer/utils.c b/common/utils/T/tracer/utils.c index 3ebc000c67..a22e0a0565 100644 --- a/common/utils/T/tracer/utils.c +++ b/common/utils/T/tracer/utils.c @@ -190,6 +190,13 @@ void PUTI(OBUF *o, int i) PUTS(o, s); } +void PUTX2(OBUF *o, int i) +{ + char s[64]; + sprintf(s, "%2.2x", i); + PUTS(o, s); +} + void PUTUL(OBUF *o, unsigned long l) { char s[128]; diff --git a/common/utils/T/tracer/utils.h b/common/utils/T/tracer/utils.h index d3cf0350da..086e92b5dc 100644 --- a/common/utils/T/tracer/utils.h +++ b/common/utils/T/tracer/utils.h @@ -44,6 +44,7 @@ void PUTC(OBUF *o, char c); void PUTS(OBUF *o, char *s); void PUTS_CLEAN(OBUF *o, char *s); void PUTI(OBUF *o, int i); +void PUTX2(OBUF *o, int i); void PUTUL(OBUF *o, unsigned long i); #endif /* _UTILS_H_ */ From 31e1be78fafa9dac4919ace2d4e2d193b7a4b0d4 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 16:11:43 +0200 Subject: [PATCH 36/84] add possibility to logger 'textlog' to print full content of buffers --- common/utils/T/tracer/logger/logger.h | 2 ++ common/utils/T/tracer/logger/textlog.c | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h index 926eaff58c..a777581db9 100644 --- a/common/utils/T/tracer/logger/logger.h +++ b/common/utils/T/tracer/logger/logger.h @@ -20,6 +20,8 @@ logger *new_iqlog(void *event_handler, void *database, void framelog_set_skip(logger *_this, int skip_delay); void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9); +void textlog_dump_buffer(logger *_this, int dump_buffer); + #include "view/view.h" void logger_add_view(logger *l, view *v); diff --git a/common/utils/T/tracer/logger/textlog.c b/common/utils/T/tracer/logger/textlog.c index e80af7813e..9eb6fd02d8 100644 --- a/common/utils/T/tracer/logger/textlog.c +++ b/common/utils/T/tracer/logger/textlog.c @@ -32,12 +32,13 @@ struct textlog { int fsize; /* local output buffer */ OBUF o; + int dump_buffer; }; static void _event(void *p, event e) { struct textlog *l = p; - int i; + int i, j; #ifdef T_SEND_TIME struct tm *t; char tt[64]; @@ -65,6 +66,14 @@ static void _event(void *p, event e) case BUFFER: PUTS(&l->o, "{buffer size:"); PUTI(&l->o, e.e[l->f[i].event_arg].bsize); + if (l->dump_buffer) { + PUTS(&l->o, " ["); + for (j = 0; j < e.e[l->f[i].event_arg].bsize; j++) { + PUTX2(&l->o, ((unsigned char *)e.e[l->f[i].event_arg].b)[j]); + PUTC(&l->o, ' '); + } + PUTS(&l->o, "]"); + } PUTS(&l->o, "}"); break; } @@ -196,3 +205,13 @@ error: printf("%s:%d: bad format '%s'\n", __FILE__, __LINE__, format); abort(); } + +/****************************************************************************/ +/* public functions */ +/****************************************************************************/ + +void textlog_dump_buffer(logger *_this, int dump_buffer) +{ + struct textlog *l = _this; + l->dump_buffer = dump_buffer; +} From 6a809e84de3f2536db4951480172c7e5df1eba2f Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 22 Jun 2016 16:13:47 +0200 Subject: [PATCH 37/84] add option -full to textlog.c to display full content of buffers --- common/utils/T/tracer/textlog.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c index 9c9b580def..32bf1ed791 100644 --- a/common/utils/T/tracer/textlog.c +++ b/common/utils/T/tracer/textlog.c @@ -52,6 +52,7 @@ void usage(void) " note: you may pass several -on/-off/-ON/-OFF,\n" " they will be processed in order\n" " by default, all is off\n" +" -full also dump buffers' content\n" " -ip connect to given IP address (default %s)\n" " -p connect to given port (default %d)\n" " -x GUI output\n" @@ -90,6 +91,7 @@ int main(int n, char **v) view *out; int gui_active = 1; textlog_data textlog_data; + int full = 0; /* write on a socket fails if the other end is closed and we get SIGPIPE */ if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort(); @@ -115,6 +117,7 @@ int main(int n, char **v) if (!strcmp(v[i], "-x")) { gui_mode = 1; continue; } if (!strcmp(v[i], "-debug-gui")) { gui_logd = 1; continue; } if (!strcmp(v[i], "-no-gui")) { gui_active = 0; continue; } + if (!strcmp(v[i], "-full")) { full = 1; continue; } usage(); } @@ -159,6 +162,7 @@ int main(int n, char **v) // "ENB_PHY_UL_CHANNEL_ESTIMATE", // "ev: {} eNB_id [eNB_ID] frame [frame] subframe [subframe]"); logger_add_view(textlog, out); + if (full) textlog_dump_buffer(textlog, 1); free(name); free(desc); } From 0d6c4a31f932f3d420c0fca6f82b5cd78e8f78bf Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 23 Jun 2016 09:53:26 +0200 Subject: [PATCH 38/84] hotfix: include T.h before redefining VCD macros --- openair2/UTIL/LOG/vcd_signal_dumper.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.h b/openair2/UTIL/LOG/vcd_signal_dumper.h index 06292a5212..0592e78b50 100644 --- a/openair2/UTIL/LOG/vcd_signal_dumper.h +++ b/openair2/UTIL/LOG/vcd_signal_dumper.h @@ -377,6 +377,8 @@ extern int ouput_vcd; #if T_TRACER +#include "T.h" + #define VCD_SIGNAL_DUMPER_INIT(x) /* nothing */ #define VCD_SIGNAL_DUMPER_CLOSE() /* nothing */ #define VCD_SIGNAL_DUMPER_CREATE_HEADER() /* nothing */ From d47e307472974527ec385e1b404de69fb9a74397 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 23 Jun 2016 11:06:48 +0200 Subject: [PATCH 39/84] rename T_cache to T_local_cache in T/local_tracer.c needed because of the following commit --- common/utils/T/local_tracer.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/common/utils/T/local_tracer.c b/common/utils/T/local_tracer.c index 93a56a9e3d..1f4e494346 100644 --- a/common/utils/T/local_tracer.c +++ b/common/utils/T/local_tracer.c @@ -14,7 +14,7 @@ #include "T_defs.h" #include "T_IDs.h" -static T_cache_t *T_cache; +static T_cache_t *T_local_cache; static int T_busylist_head; typedef struct databuf { @@ -287,7 +287,7 @@ static void forward(void *_forwarder, char *buf, int size) static void wait_message(void) { - while (T_cache[T_busylist_head].busy == 0) usleep(1000); + while (T_local_cache[T_busylist_head].busy == 0) usleep(1000); } static void init_shm(void) @@ -297,17 +297,17 @@ static void init_shm(void) if (s == -1) { perror(T_SHM_FILENAME); abort(); } if (ftruncate(s, T_CACHE_SIZE * sizeof(T_cache_t))) { perror(T_SHM_FILENAME); abort(); } - T_cache = mmap(NULL, T_CACHE_SIZE * sizeof(T_cache_t), - PROT_READ | PROT_WRITE, MAP_SHARED, s, 0); - if (T_cache == NULL) + T_local_cache = mmap(NULL, T_CACHE_SIZE * sizeof(T_cache_t), + PROT_READ | PROT_WRITE, MAP_SHARED, s, 0); + if (T_local_cache == NULL) { perror(T_SHM_FILENAME); abort(); } close(s); /* let's garbage the memory to catch some potential problems * (think multiprocessor sync issues, barriers, etc.) */ - memset(T_cache, 0x55, T_CACHE_SIZE * sizeof(T_cache_t)); - for (i = 0; i < T_CACHE_SIZE; i++) T_cache[i].busy = 0; + memset(T_local_cache, 0x55, T_CACHE_SIZE * sizeof(T_cache_t)); + for (i = 0; i < T_CACHE_SIZE; i++) T_local_cache[i].busy = 0; } void T_local_tracer_main(int remote_port, int wait_for_tracer, @@ -335,9 +335,9 @@ void T_local_tracer_main(int remote_port, int wait_for_tracer, while (1) { wait_message(); __sync_synchronize(); - forward(f, T_cache[T_busylist_head].buffer, - T_cache[T_busylist_head].length); - T_cache[T_busylist_head].busy = 0; + forward(f, T_local_cache[T_busylist_head].buffer, + T_local_cache[T_busylist_head].length); + T_local_cache[T_busylist_head].busy = 0; T_busylist_head++; T_busylist_head &= T_CACHE_SIZE - 1; } From bb051c0219350e3702bff591a72aee3b2384bf69 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 23 Jun 2016 11:09:05 +0200 Subject: [PATCH 40/84] T_messages.txt is now sent by local_tracer.c And it's sent at each connection attempt. Before it was sent only once to the first tracer. Plus there was a bug (length:(len) should have been length:(send_size)). --- common/utils/T/T.c | 28 --------------------------- common/utils/T/local_tracer.c | 36 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/common/utils/T/T.c b/common/utils/T/T.c index 786b3722ed..b9e9b29326 100644 --- a/common/utils/T/T.c +++ b/common/utils/T/T.c @@ -1,5 +1,4 @@ #include "T.h" -#include "T_messages.txt.h" #include #include #include @@ -113,8 +112,6 @@ void T_init(int remote_port, int wait_for_tracer) int socket_pair[2]; int s; int T_shm_fd; - unsigned char *buf; - int len; int child1, child2; if (socketpair(AF_UNIX, SOCK_STREAM, 0, socket_pair)) @@ -153,29 +150,4 @@ void T_init(int remote_port, int wait_for_tracer) close(T_shm_fd); new_thread(T_receive_thread, NULL); - - /* trace T_message.txt - * Send several messages -1 with content followed by message -2. - * We can't use the T macro directly, events -1 and -2 are special. - */ - buf = T_messages_txt; - len = T_messages_txt_len; - while (len) { - int send_size = len; - if (send_size > T_PAYLOAD_MAXSIZE - sizeof(int)) - send_size = T_PAYLOAD_MAXSIZE - sizeof(int); - do { - T_LOCAL_DATA - T_HEADER(T_ID(-1)); - T_PUT_buffer(1, ((T_buffer){addr:(buf), length:(len)})); - T_COMMIT(); - } while (0); - buf += send_size; - len -= send_size; - } - do { - T_LOCAL_DATA - T_HEADER(T_ID(-2)); - T_COMMIT(); - } while (0); } diff --git a/common/utils/T/local_tracer.c b/common/utils/T/local_tracer.c index 1f4e494346..68a937a6b5 100644 --- a/common/utils/T/local_tracer.c +++ b/common/utils/T/local_tracer.c @@ -11,6 +11,8 @@ #include #include +#include "T.h" +#include "T_messages.txt.h" #include "T_defs.h" #include "T_IDs.h" @@ -85,6 +87,38 @@ static int get_connection(char *addr, int port) return t; } +static void forward(void *_forwarder, char *buf, int size); + +void send_T_messages_txt(void *forwarder) +{ + char buf[T_BUFFER_MAX]; + char *T_LOCAL_buf = buf; + int T_LOCAL_size; + unsigned char *src; + int src_len; + + /* trace T_message.txt + * Send several messages -1 with content followed by message -2. + */ + src = T_messages_txt; + src_len = T_messages_txt_len; + while (src_len) { + int send_size = src_len; + if (send_size > T_PAYLOAD_MAXSIZE - sizeof(int)) + send_size = T_PAYLOAD_MAXSIZE - sizeof(int); + /* TODO: be careful, we use internal T stuff, to rewrite? */ + T_LOCAL_size = 0; + T_HEADER(T_ID(-1)); + T_PUT_buffer(1, ((T_buffer){addr:(src), length:(send_size)})); + forward(forwarder, buf, T_LOCAL_size); + src += send_size; + src_len -= send_size; + } + T_LOCAL_size = 0; + T_HEADER(T_ID(-2)); + forward(forwarder, buf, T_LOCAL_size); +} + /****************************************************************************/ /* forward functions */ /****************************************************************************/ @@ -213,6 +247,7 @@ dead: close(f->socket_remote); f->socket_remote = get_connection("0.0.0.0", f->remote_port); + send_T_messages_txt(f); goto again; return NULL; @@ -237,6 +272,7 @@ static void *forwarder(int port, int s) f->remote_port = port; f->socket_remote = get_connection("0.0.0.0", port); + send_T_messages_txt(f); new_thread(data_sender, f); new_thread(forward_remote_messages, f); From bb0816cdebbb33f7cce0fea8ec004e05507a6191 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 23 Jun 2016 12:38:59 +0200 Subject: [PATCH 41/84] 2 new T logs: MAC PDU/SDU with buffer data --- common/utils/T/T_messages.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index 062b98d6c8..05c08085c6 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -79,10 +79,18 @@ ID = ENB_MAC_UE_UL_PDU DESC = MAC uplink UE received PDU GROUP = ALL:MAC:ENB FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,harq_pid : int,sdu_length : int,num_ce : int,num_sdu +ID = ENB_MAC_UE_UL_PDU_WITH_DATA + DESC = MAC uplink UE received PDU + GROUP = ALL:MAC:ENB:HEAVY + FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,harq_pid : int,sdu_length : int,num_ce : int,num_sdu : buffer,data ID = ENB_MAC_UE_UL_SDU DESC = MAC uplink UE received SDU GROUP = ALL:MAC:ENB FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,lcid : int,length +ID = ENB_MAC_UE_UL_SDU_WITH_DATA + DESC = MAC uplink UE received SDU + GROUP = ALL:MAC:ENB:HEAVY + FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,lcid : int,length : buffer,data ID = ENB_MAC_UE_UL_CE DESC = MAC uplink UE received control element GROUP = ALL:MAC:ENB From 6445cc95f55f8d2b4b02054c33e7324b9d095c45 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 23 Jun 2016 12:39:57 +0200 Subject: [PATCH 42/84] add T traces for MAC PDU/SDU including full buffers --- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 837706de23..1f488687a3 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -130,6 +130,8 @@ void rx_sdu( T(T_ENB_MAC_UE_UL_PDU, T_INT(enb_mod_idP), T_INT(CC_idP), T_INT(rntiP), T_INT(frameP), T_INT(subframeP), T_INT(harq_pidP), T_INT(sdu_lenP), T_INT(num_ce), T_INT(num_sdu)); + T(T_ENB_MAC_UE_UL_PDU_WITH_DATA, T_INT(enb_mod_idP), T_INT(CC_idP), T_INT(rntiP), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pidP), T_INT(sdu_lenP), T_INT(num_ce), T_INT(num_sdu), T_BUFFER(sduP, sdu_lenP)); eNB->eNB_stats[CC_idP].ulsch_bytes_rx=sdu_lenP; eNB->eNB_stats[CC_idP].total_ulsch_bytes_rx+=sdu_lenP; @@ -313,6 +315,8 @@ void rx_sdu( T(T_ENB_MAC_UE_UL_SDU, T_INT(enb_mod_idP), T_INT(CC_idP), T_INT(rntiP), T_INT(frameP), T_INT(subframeP), T_INT(rx_lcids[i]), T_INT(rx_lengths[i])); + T(T_ENB_MAC_UE_UL_SDU_WITH_DATA, T_INT(enb_mod_idP), T_INT(CC_idP), T_INT(rntiP), T_INT(frameP), T_INT(subframeP), + T_INT(rx_lcids[i]), T_INT(rx_lengths[i]), T_BUFFER(payload_ptr, rx_lengths[i])); switch (rx_lcids[i]) { case CCCH : From 832ecfb47064d157b78927c307b9ebc9a8334a5a Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 23 Jun 2016 12:41:19 +0200 Subject: [PATCH 43/84] update enb.c to include MAC PDU/SDU with full buffer logs --- common/utils/T/tracer/enb.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index 87010b6e39..7dadafc896 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -509,7 +509,9 @@ int main(int n, char **v) view_add_log(eg.macview, "ENB_MAC_UE_UL_SCHEDULE_RETRANSMISSION", h, database, is_on); view_add_log(eg.macview, "ENB_MAC_UE_UL_PDU", h, database, is_on); + view_add_log(eg.macview, "ENB_MAC_UE_UL_PDU_WITH_DATA", h, database, is_on); view_add_log(eg.macview, "ENB_MAC_UE_UL_SDU", h, database, is_on); + view_add_log(eg.macview, "ENB_MAC_UE_UL_SDU_WITH_DATA", h, database, is_on); view_add_log(eg.macview, "ENB_MAC_UE_UL_CE", h, database, is_on); view_add_log(eg.rlcview, "ENB_RLC_DL", h, database, is_on); @@ -577,6 +579,10 @@ int main(int n, char **v) view_add_log(eg.rrcview, "ENB_RRC_UNKNOW_MESSAGE", h, database, is_on); + /* deactivate those two by default, they are a bit heavy */ + on_off(database, "ENB_MAC_UE_UL_SDU_WITH_DATA", is_on, 0); + on_off(database, "ENB_MAC_UE_UL_PDU_WITH_DATA", is_on, 0); + for (i = 0; i < on_off_n; i++) on_off(database, on_off_name[i], is_on, on_off_action[i]); From 1a6c20cf7631f26fda45784c7f2c4c2f0845f536 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 23 Jun 2016 14:48:25 +0200 Subject: [PATCH 44/84] bugfix: record.c did not manage ctrl+c and ctrl+z correctly ctrl+c did not work when the program was not connected yet. It also didn't work if no event was received. --- common/utils/T/tracer/record.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/common/utils/T/tracer/record.c b/common/utils/T/tracer/record.c index 2dfe35f4da..c81b93e7d7 100644 --- a/common/utils/T/tracer/record.c +++ b/common/utils/T/tracer/record.c @@ -30,9 +30,13 @@ void usage(void) volatile int run = 1; +static int socket = -1; + void force_stop(int x) { printf("\ngently quit...\n"); + close(socket); + socket = -1; run = 0; } @@ -47,7 +51,6 @@ int main(int n, char **v) char **on_off_name; int *on_off_action; int on_off_n = 0; - int socket; int *is_on; int number_of_events; int i; @@ -56,11 +59,6 @@ int main(int n, char **v) /* write on a socket fails if the other end is closed and we get SIGPIPE */ if (signal(SIGPIPE, SIG_IGN) == SIG_ERR) abort(); - /* exit on ctrl+c and ctrl+z */ - if (signal(SIGQUIT, force_stop) == SIG_ERR) abort(); - if (signal(SIGINT, force_stop) == SIG_ERR) abort(); - if (signal(SIGTSTP, force_stop) == SIG_ERR) abort(); - on_off_name = malloc(n * sizeof(char *)); if (on_off_name == NULL) abort(); on_off_action = malloc(n * sizeof(int)); if (on_off_action == NULL) abort(); @@ -119,6 +117,11 @@ int main(int n, char **v) exit(1); } + /* exit on ctrl+c and ctrl+z */ + if (signal(SIGQUIT, force_stop) == SIG_ERR) abort(); + if (signal(SIGINT, force_stop) == SIG_ERR) abort(); + if (signal(SIGTSTP, force_stop) == SIG_ERR) abort(); + /* read messages */ while (run) { int type; From bfa749a7faf44538cf6f679ebe1a72f982ab613e Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 24 Jun 2016 10:58:29 +0200 Subject: [PATCH 45/84] hotfix: rrc_mac_remove_ue was wrong --- openair2/LAYER2/MAC/eNB_scheduler_primitives.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index b510b6cb9b..80a1dbc76a 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -320,7 +320,6 @@ int rrc_mac_remove_ue(module_id_t mod_idP,rnti_t rntiP) for (i=UE_list->head; i>=0; i=UE_list->next[i]) { if (i == UE_id) { // link prev to next in Active list - //if (prev==UE_list->head) if (i==UE_list->head) { UE_list->head = UE_list->next[i]; } else { @@ -345,7 +344,7 @@ int rrc_mac_remove_ue(module_id_t mod_idP,rnti_t rntiP) for (i=UE_list->head_ul; i>=0; i=UE_list->next_ul[i]) { if (i == UE_id) { // link prev to next in Active list - if (prev==UE_list->head_ul) { + if (i==UE_list->head_ul) { UE_list->head_ul = UE_list->next_ul[i]; } else { UE_list->next_ul[prev] = UE_list->next_ul[i]; From 71af065b486ce1dcc77414e063f0971bdb15c654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Thu, 23 Jun 2016 15:19:56 +0200 Subject: [PATCH 46/84] build_helper: move uhd to not break apt-get remove uhd is not part of ubuntu standard repositories >= 14.04. Move the removal of uhd in its own space and do not fail if it doesn't exists. --- cmake_targets/tools/build_helper | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 36d3410349..3d7b4045ae 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -213,7 +213,8 @@ install_gnutls_from_source(){ check_install_usrp_uhd_driver(){ #first we remove old installation - $SUDO apt-get remove uhd libuhd-dev libuhd003 uhd-host -y + $SUDO apt-get remove -y uhd || true + $SUDO apt-get remove libuhd-dev libuhd003 uhd-host -y v=$(lsb_release -cs) $SUDO apt-add-repository --remove "deb http://files.ettus.com/binaries/uhd/repo/uhd/ubuntu/$v $v main" #The new USRP repository From 30cf26c0dc54c49af1533692d61309391dfeb376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Fri, 24 Jun 2016 08:15:45 +0200 Subject: [PATCH 47/84] build_helper: fix libxslt1-dev installation libxslt1-dev is used at least for asn1 and usrp. It breaks the build when in check_install_additional_tools(). Move it to to check_install_oai_software() --- cmake_targets/tools/build_helper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 3d7b4045ae..9971c56d86 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -271,8 +271,7 @@ check_install_additional_tools (){ android-tools-adb \ wvdial \ python-numpy \ - sshpass \ - libxslt1-dev + sshpass $SUDO pip install paramiko $SUDO pip install pyroute2 @@ -356,6 +355,7 @@ check_install_oai_software() { libusb-1.0-0-dev \ libxml2 \ libxml2-dev \ + libxslt1-dev \ linux-headers-`uname -r` \ mscgen \ octave \ From a3d26040de1dcf07d47fbc4d4c63d3a319276d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Fri, 24 Jun 2016 05:35:32 -0500 Subject: [PATCH 48/84] build_helper: add EXIT handler to inform that the build fails --- cmake_targets/tools/build_helper | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 9971c56d86..c3e1ebfb47 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -95,6 +95,18 @@ check_supported_distribution() { return 1 } +################## +# Error handlers # +################## + +handler_EXIT() { + local exit_code=$? + [ "$exit_code" -eq 0 ] || echo_error "build have failed" + exit $exit_code +} + +trap handler_EXIT EXIT + ########################### # Cleaners ########################### From 9624232f677c44b7ad89067e2c6a39ee9182d13f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= Date: Fri, 24 Jun 2016 06:06:33 -0500 Subject: [PATCH 49/84] build_helper: show "compilation failed" error message --- cmake_targets/tools/build_helper | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index c3e1ebfb47..5b562a14c9 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -148,6 +148,7 @@ clean_all_files() { compilations() { cd $OPENAIR_DIR/cmake_targets/$1/build echo_info "Log file for compilation written in: $dlog/$2.$REL.txt" + set +e { rm -f $3 if [ "$VERBOSE_COMPILE" == "1" ]; then @@ -157,12 +158,14 @@ compilations() { fi } > $dlog/$2.$REL.txt 2>&1 + set -e echo_info "Log file for compilation has been written to: $dlog/$2.$REL.txt" if [ -s $3 ] ; then cp $3 $4 echo_success "$2 compiled" else echo_error "$2 compilation failed" + exit 1 fi } From bc20616af7b9608bf8788baa83237d96c5911c9a Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 24 Jun 2016 17:49:03 +0200 Subject: [PATCH 50/84] minor: parameters missing to some LOG_ macros plus some cleanup --- openair2/RRC/LITE/L2_interface.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c index 34e47c2575..a28f2b1894 100644 --- a/openair2/RRC/LITE/L2_interface.c +++ b/openair2/RRC/LITE/L2_interface.c @@ -745,24 +745,21 @@ void mac_eNB_rrc_ul_in_sync(const module_id_t Mod_instP, const int CC_idP, const frame_t frameP, const sub_frame_t subframeP, - const rnti_t rntiP) { - + const rnti_t rntiP) +{ struct rrc_eNB_ue_context_s* ue_context_p = NULL; ue_context_p = rrc_eNB_get_ue_context( &eNB_rrc_inst[Mod_instP], rntiP); - - if (ue_context_p != NULL) { - LOG_I(RRC,"Frame %d, Subframe %d: UE %x to UL in synch\n",rntiP); - ue_context_p->ue_context.ul_failure_timer=0; + LOG_I(RRC,"Frame %d, Subframe %d: UE %x to UL in synch\n", + frameP, subframeP, rntiP); + ue_context_p->ue_context.ul_failure_timer = 0; + } else { + LOG_E(RRC,"Frame %d, Subframe %d: UE %x unknown \n", + frameP, subframeP, rntiP); } - else { - LOG_E(RRC,"Frame %d, Subframe %d: UE %x unknown \n",rntiP); - } - - return; } //------------------------------------------------------------------------------ int From 3f4f285136e38e9fde623c7e291a687715284a2f Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 24 Jun 2016 17:57:16 +0200 Subject: [PATCH 51/84] fix the T tracee example, it did not work anymore --- common/utils/T/tracee/Makefile | 2 +- common/utils/T/tracee/tracee.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common/utils/T/tracee/Makefile b/common/utils/T/tracee/Makefile index 703d49d029..10ea3bdca3 100644 --- a/common/utils/T/tracee/Makefile +++ b/common/utils/T/tracee/Makefile @@ -2,7 +2,7 @@ CC=gcc CFLAGS=-Wall -g -pthread -DT_TRACER -I. PROG=tracee -OBJS=tracee.o ../T.o +OBJS=tracee.o ../T.o ../local_tracer.o $(PROG): $(OBJS) $(CC) $(CFLAGS) -o $(PROG) $(OBJS) -lrt diff --git a/common/utils/T/tracee/tracee.c b/common/utils/T/tracee/tracee.c index b4b73b9e67..f7739f00f9 100644 --- a/common/utils/T/tracee/tracee.c +++ b/common/utils/T/tracee/tracee.c @@ -6,7 +6,7 @@ int main(void) { int frame = 0; - T_connect_to_tracer("127.0.0.1", 2020); + T_init(2021, 1); while (1) { getchar(); T(T_ENB_PHY_PUCCH_1AB_IQ, T_INT(0), T_INT(0), T_INT(frame), T_INT(0), T_INT(0), T_INT(0)); From 4bdacd953d2b698de9d9349e7bef65e5766e374b Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 24 Jun 2016 17:59:50 +0200 Subject: [PATCH 52/84] add a .gitignore in the T directory git status was way too noisy --- common/utils/T/.gitignore | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 common/utils/T/.gitignore diff --git a/common/utils/T/.gitignore b/common/utils/T/.gitignore new file mode 100644 index 0000000000..a52d9a3667 --- /dev/null +++ b/common/utils/T/.gitignore @@ -0,0 +1,12 @@ +*.o +*.a +T_IDs.h +T_messages.txt.h +genids +tracer/enb +tracer/extract_config +tracer/record +tracer/replay +tracer/textlog +tracer/vcd +tracee/tracee From be03e9f80f5f400965ad527fd4a1ccb433e74cf8 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 24 Jun 2016 18:11:09 +0200 Subject: [PATCH 53/84] bugfix in enb.c we have to free memory in any case... --- common/utils/T/tracer/enb.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index 7dadafc896..b0ae285f6d 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -470,9 +470,10 @@ int main(int n, char **v) logger *textlog; char *name, *desc; database_get_generic_description(database, i, &name, &desc); - if (strncmp(name, "LEGACY_", 7) != 0) continue; - textlog = new_textlog(h, database, name, desc); - logger_add_view(textlog, eg.legacy); + if (!strncmp(name, "LEGACY_", 7)) { + textlog = new_textlog(h, database, name, desc); + logger_add_view(textlog, eg.legacy); + } free(name); free(desc); } From f5fc18ff3775e255108bbd34673547f27ea7e60f Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sat, 25 Jun 2016 23:00:07 +0200 Subject: [PATCH 54/84] Gitlab CI: minor updates to test setup --- .../autotests/run_exec_lte-softmodem_tests.py | 35 +++-- cmake_targets/autotests/test_case_list.xml | 132 +++++++++--------- 2 files changed, 90 insertions(+), 77 deletions(-) diff --git a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py index 77c3006fea..db14fea40f 100755 --- a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py +++ b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py @@ -312,13 +312,13 @@ def SSHSessionWrapper(machine, username, key_file, password, logdir_remote, logd # \parm programList list of programs that must be terminated before execution of any test case # \param CleanUpAluLteBox program to terminate AlU Bell Labs LTE Box # \param ExmimoRfStop String to stop EXMIMO card (specified in test_case_list.xml) -def cleanOldPrograms(oai, programList, CleanUpAluLteBox, ExmimoRfStop): +def cleanOldPrograms(oai, programList, CleanUpAluLteBox, ExmimoRfStop, logdir, logdirOAI5GRepo): cmd = 'killall -9 -q -r ' + programList result = oai.send(cmd, True) 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" + cmd = " ( date ;echo \"Starting cleaning old programs.. \" ; dmesg|tail ; echo \"Current disk space.. \" ; df -h )>& " + logdir + "/oai_test_setup_cleanup.log.`hostname` 2>&1 ; sync" result=oai.send_recv(cmd) cmd = cleanupOldProgramsScript + ' ' + '\''+programListJoin+'\'' #result = oai.send_recv(cmd) @@ -326,8 +326,14 @@ def cleanOldPrograms(oai, programList, CleanUpAluLteBox, ExmimoRfStop): result = oai.send_expect_false(cmd, 'Match found', False) print "Looking for old programs..." + result res=oai.send_recv(CleanUpAluLteBox, True) - cmd = "( " + ExmimoRfStop + " ) >> $HOME/.oai_test_setup_cleanup.log.`hostname` ; sync " + cmd= " echo \"Starting EXmimoRF Stop... \" >> " + logdir + "/oai_test_setup_cleanup.log.`hostname` 2>&1 ; sync "; + oai.send_recv(cmd) + cmd = "( " + "cd " + logdirOAI5GRepo + " ; source oaienv ; " + ExmimoRfStop + " ) >> " + logdir + "/oai_test_setup_cleanup.log.`hostname` 2>&1 ; sync " + print "cleanoldprograms cmd = " + cmd res=oai.send_recv(cmd, False, timeout=600) + cmd= " echo \"Stopping EXmimoRF Stop... \" >> " + logdir + "/oai_test_setup_cleanup.log.`hostname` 2>&1 ; sync "; + oai.send_recv(cmd) + #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) @@ -934,9 +940,9 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , t.join() #Now we get the log files from remote machines on the local machine if RRHMachine != '': - cleanOldProgramsAllMachines([oai_eNB, oai_UE, oai_EPC, oai_RRH] , oldprogramList, CleanUpAluLteBox, ExmimoRfStop) + cleanOldProgramsAllMachines([oai_eNB, oai_UE, oai_EPC, oai_RRH] , oldprogramList, CleanUpAluLteBox, ExmimoRfStop, [logdir_eNB, logdir_UE, logdir_EPC, logdir_RRH], logdirOAI5GRepo) else: - cleanOldProgramsAllMachines([oai_eNB, oai_UE, oai_EPC] , oldprogramList, CleanUpAluLteBox, ExmimoRfStop) + cleanOldProgramsAllMachines([oai_eNB, oai_UE, oai_EPC] , oldprogramList, CleanUpAluLteBox, ExmimoRfStop, [logdir_eNB, logdir_UE, logdir_EPC], logdirOAI5GRepo) logfile_UE_stop_script_out = logdir_UE + '/UE_stop_script_out' + '_' + str(run) + '_.log' logfile_UE_stop_script = logdir_local_testcase + '/UE_stop_script' + '_' + str(run) + '_.log' @@ -1065,7 +1071,7 @@ def search_test_case_group(testcasename, testcasegroup, test_case_exclude): # \param CleanupAluLteBox string that contains commands to stop ALU Bell Labs LTEBox (specified in test_case_list.xml) # \param ExmimoRfStop command to stop EXMIMO Card class oaiCleanOldProgramThread (threading.Thread): - def __init__(self, threadID, threadname, oai, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop): + def __init__(self, threadID, threadname, oai, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop, logdir, logdirOAI5GRepo): threading.Thread.__init__(self) self.threadID = threadID self.threadname = threadname @@ -1073,9 +1079,11 @@ class oaiCleanOldProgramThread (threading.Thread): self.CleanUpOldProgs = CleanUpOldProgs self.CleanUpAluLteBox = CleanUpAluLteBox self.ExmimoRfStop = ExmimoRfStop + self.logdir = logdir + self.logdirOAI5GRepo = logdirOAI5GRepo def run(self): try: - cleanOldPrograms(self.oai, self.CleanUpOldProgs, self.CleanUpAluLteBox, self.ExmimoRfStop) + cleanOldPrograms(self.oai, self.CleanUpOldProgs, self.CleanUpAluLteBox, self.ExmimoRfStop, self.logdir, self.logdirOAI5GRepo) except Exception, e: error='' error = error + ' In class oaiCleanOldProgramThread, function: ' + sys._getframe().f_code.co_name + ': *** Caught exception: ' + str(e.__class__) + " : " + str( e) @@ -1090,15 +1098,20 @@ class oaiCleanOldProgramThread (threading.Thread): # \param CleanUpOldProgs list of programs which must be terminated before running a test case (specified in test_case_list.xml) # \param CleanupAluLteBox string that contains commands to stop ALU Bell Labs LTEBox (specified in test_case_list.xml) # \param ExmimoRfStop command to stop EXMIMO Card -def cleanOldProgramsAllMachines(oai_list, CleanOldProgs, CleanUpAluLteBox, ExmimoRfStop): +def cleanOldProgramsAllMachines(oai_list, CleanOldProgs, CleanUpAluLteBox, ExmimoRfStop, logdir_list, logdirOAI5GRepo): threadId=0 threadList=[] + index=0 + if len(oai_list)!=len(logdir_list) : + logdir_list=[logdir[0]]*len(oai_list) + for oai in oai_list: threadName="cleanup_thread_"+str(threadId) - thread=oaiCleanOldProgramThread(threadId, threadName, oai, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop) + thread=oaiCleanOldProgramThread(threadId, threadName, oai, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop, logdir_list[index],logdirOAI5GRepo) threadList.append(thread) thread.start() threadId = threadId + 1 + index = index+1 for t in threadList: t.join() @@ -1360,7 +1373,7 @@ if localshell == 0: print "Sudo permissions..." + result print '\nCleaning Older running programs : ' + CleanUpOldProgs - cleanOldPrograms(oai_list[index], CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop) + cleanOldPrograms(oai_list[index], CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop, '$HOME', '/tmp') #result = oai_list[index].send('mount ' + NFSResultsDir, True) #print "Mounting NFS Share " + NFSResultsDir + "..." + result @@ -1489,7 +1502,7 @@ if (out != '') : print "Exiting now..." sys.exit(1) -cleanOldProgramsAllMachines(oai_list, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop) +cleanOldProgramsAllMachines(oai_list, CleanUpOldProgs, CleanUpAluLteBox, ExmimoRfStop, '$HOME' , logdirOAI5GRepo) if cleanUpRemoteMachines == True: sys.exit(0) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index c59d83e30b..8c4024e073 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -921,7 +921,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -996,7 +996,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1070,7 +1070,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1142,7 +1142,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 17M -R False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec @@ -1216,7 +1216,7 @@ throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1290,7 +1290,7 @@ throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1365,7 +1365,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1439,7 +1439,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1513,7 +1513,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1587,7 +1587,7 @@ throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1661,7 +1661,7 @@ throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1735,7 +1735,7 @@ throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -1811,7 +1811,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -1895,7 +1895,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -1979,7 +1979,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -2063,7 +2063,7 @@ throughput_test min=10.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -2147,7 +2147,7 @@ throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -2231,7 +2231,7 @@ throughput_test min=40.0Mbits/sec max=42.0Mbits/sec average=44.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -2315,7 +2315,7 @@ False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp ETC/hss.conf MYSQL_user \"root\" @@ -2409,7 +2409,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp ETC/hss.conf MYSQL_user \"root\" @@ -2503,7 +2503,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp ETC/hss.conf MYSQL_user \"root\" @@ -2597,7 +2597,7 @@ c throughput_test min=9.0Mbits/sec max=9Mbits/sec average=9Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp ETC/hss.conf MYSQL_user \"root\" @@ -2691,7 +2691,7 @@ c throughput_test min=9Mbits/sec max=9Mbits/sec average=9Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp ETC/hss.conf MYSQL_user \"root\" @@ -2785,7 +2785,7 @@ c throughput_test min=9Mbits/sec max=9Mbits/sec average=9Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp ETC/hss.conf MYSQL_user \"root\" @@ -2876,7 +2876,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -2948,7 +2948,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -3020,7 +3020,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -3090,7 +3090,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 17M -R False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec @@ -3161,7 +3161,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 35M -R False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec @@ -3232,7 +3232,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec @@ -3308,7 +3308,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -3391,7 +3391,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -3472,7 +3472,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -3553,7 +3553,7 @@ c throughput_test min=10.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -3634,7 +3634,7 @@ c throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -3715,7 +3715,7 @@ c throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -3795,7 +3795,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -3868,7 +3868,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -3940,7 +3940,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -4010,7 +4010,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 10M -R False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec @@ -4081,7 +4081,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 20M -R False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec @@ -4152,7 +4152,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec @@ -4228,7 +4228,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -4311,7 +4311,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -4392,7 +4392,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -4473,7 +4473,7 @@ c throughput_test min=10.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -4554,7 +4554,7 @@ c throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -4635,7 +4635,7 @@ c throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp BUILD/EPC/epc.conf.in MCC \"208\" @@ -4720,7 +4720,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -4796,7 +4796,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -4871,7 +4871,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -4944,7 +4944,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec @@ -5019,7 +5019,7 @@ c throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5094,7 +5094,7 @@ c throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5169,7 +5169,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5245,7 +5245,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5320,7 +5320,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5393,7 +5393,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec @@ -5468,7 +5468,7 @@ c throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5543,7 +5543,7 @@ c throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5630,7 +5630,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5716,7 +5716,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5801,7 +5801,7 @@ c False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -5884,7 +5884,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec @@ -5969,7 +5969,7 @@ c throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp @@ -6054,7 +6054,7 @@ c throughput_test min=10.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec False - sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue /tmp From af1f91827b6d99a1c0ceb73cfd6bd6f2cbbfa6ac Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sat, 25 Jun 2016 23:12:40 +0200 Subject: [PATCH 55/84] minor fix for gitlab certificate issues --- cmake_targets/tools/build_helper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 673ed190f0..f6d0d2b0db 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -233,7 +233,7 @@ check_install_additional_tools (){ $SUDO pip install paramiko $SUDO pip install pyroute2 $SUDO rm -fr /opt/ssh - $SUDO git clone https://gist.github.com/2190472.git /opt/ssh + $SUDO GIT_SSL_NO_VERIFY=true git clone https://gist.github.com/2190472.git /opt/ssh log_netiface=$OPENAIR_DIR/cmake_targets/log/netiface_install_log.txt echo_info "Installing Netinterfaces package. The logfile for installation is in $log_netiface" From 3d78e5a34b32834803ccbaeeb5d78a07da9c1ad7 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Tue, 28 Jun 2016 12:50:58 +0200 Subject: [PATCH 56/84] add option --T_dont_fork to tracee (lte-softmodem, oaisim) The T has 2 processes: the tracee and the local tracer if the tracee dies (segfault or whatever) the tracee may still be running. So there is a third process that monitors those two others and kill everything when one dies. The problem is that this third process has to be the parent of the two others. That makes debugging the tracee with gdb impossible. This new option disables the third monitor process. --- common/utils/T/T.c | 14 ++++++++------ common/utils/T/T.h | 2 +- targets/RT/USER/lte-softmodem.c | 12 +++++++++++- targets/SIMU/USER/oaisim.c | 4 +++- targets/SIMU/USER/oaisim_functions.c | 8 ++++++++ 5 files changed, 31 insertions(+), 9 deletions(-) diff --git a/common/utils/T/T.c b/common/utils/T/T.c index b9e9b29326..5d84afa660 100644 --- a/common/utils/T/T.c +++ b/common/utils/T/T.c @@ -107,7 +107,7 @@ static void monitor_and_kill(int child1, int child2) exit(0); } -void T_init(int remote_port, int wait_for_tracer) +void T_init(int remote_port, int wait_for_tracer, int dont_fork) { int socket_pair[2]; int s; @@ -117,7 +117,7 @@ void T_init(int remote_port, int wait_for_tracer) if (socketpair(AF_UNIX, SOCK_STREAM, 0, socket_pair)) { perror("socketpair"); abort(); } - /* child1 runs the local tracer and child2 runs the tracee */ + /* child1 runs the local tracer and child2 (or main) runs the tracee */ child1 = fork(); if (child1 == -1) abort(); if (child1 == 0) { @@ -127,10 +127,12 @@ void T_init(int remote_port, int wait_for_tracer) } close(socket_pair[0]); - child2 = fork(); if (child2 == -1) abort(); - if (child2 != 0) { - close(socket_pair[1]); - monitor_and_kill(child1, child2); + if (dont_fork == 0) { + child2 = fork(); if (child2 == -1) abort(); + if (child2 != 0) { + close(socket_pair[1]); + monitor_and_kill(child1, child2); + } } s = socket_pair[1]; diff --git a/common/utils/T/T.h b/common/utils/T/T.h index a5aacb4b4f..819615131e 100644 --- a/common/utils/T/T.h +++ b/common/utils/T/T.h @@ -562,7 +562,7 @@ extern T_cache_t *T_cache; extern int *T_active; -void T_init(int remote_port, int wait_for_tracer); +void T_init(int remote_port, int wait_for_tracer, int dont_fork); #else /* T_TRACER */ diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index ca97ad0e22..3f419ed49c 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -490,6 +490,7 @@ void help (void) { #if T_TRACER printf(" --T_port [port] use given port\n"); printf(" --T_nowait don't wait for tracer, start immediately\n"); + printf(" --T_dont_fork to ease debugging with gdb\n"); #endif printf(RESET); fflush(stdout); @@ -2332,6 +2333,7 @@ static void get_options (int argc, char **argv) #if T_TRACER LONG_OPTION_T_PORT, LONG_OPTION_T_NOWAIT, + LONG_OPTION_T_DONT_FORK, #endif }; @@ -2355,6 +2357,7 @@ static void get_options (int argc, char **argv) #if T_TRACER {"T_port", required_argument, 0, LONG_OPTION_T_PORT}, {"T_nowait", no_argument, 0, LONG_OPTION_T_NOWAIT}, + {"T_dont_fork", no_argument, 0, LONG_OPTION_T_DONT_FORK}, #endif {NULL, 0, NULL, 0} @@ -2457,6 +2460,12 @@ static void get_options (int argc, char **argv) T_wait = 0; break; } + + case LONG_OPTION_T_DONT_FORK: { + extern int T_dont_fork; + T_dont_fork = 1; + break; + } #endif case 'A': @@ -2822,6 +2831,7 @@ static void get_options (int argc, char **argv) #if T_TRACER int T_wait = 1; /* by default we wait for the tracer */ int T_port = 2021; /* default port to listen to to wait for the tracer */ +int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */ #endif int main( int argc, char **argv ) @@ -2894,7 +2904,7 @@ int main( int argc, char **argv ) openair0_cfg[0].configFilename = rf_config_file; #if T_TRACER - T_init(T_port, T_wait); + T_init(T_port, T_wait, T_dont_fork); #endif // initialize the log (see log.h for details) diff --git a/targets/SIMU/USER/oaisim.c b/targets/SIMU/USER/oaisim.c index dfbf8f9676..744952b5d0 100644 --- a/targets/SIMU/USER/oaisim.c +++ b/targets/SIMU/USER/oaisim.c @@ -250,6 +250,7 @@ help (void) #if T_TRACER printf ("--T_port [port] use given port\n"); printf ("--T_nowait don't wait for tracer, start immediately\n"); + printf ("--T_dont_fork to ease debugging with gdb\n"); #endif } @@ -1258,6 +1259,7 @@ l2l1_task (void *args_p) #if T_TRACER int T_wait = 1; /* by default we wait for the tracer */ int T_port = 2021; /* default port to listen to to wait for the tracer */ +int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */ #endif /*------------------------------------------------------------------------------*/ @@ -1294,7 +1296,7 @@ main (int argc, char **argv) get_simulation_options (argc, argv); //Command-line options #if T_TRACER - T_init(T_port, T_wait); + T_init(T_port, T_wait, T_dont_fork); #endif // Initialize VCD LOG module diff --git a/targets/SIMU/USER/oaisim_functions.c b/targets/SIMU/USER/oaisim_functions.c index f8043b2cfd..a5acb2616a 100644 --- a/targets/SIMU/USER/oaisim_functions.c +++ b/targets/SIMU/USER/oaisim_functions.c @@ -216,6 +216,7 @@ void get_simulation_options(int argc, char *argv[]) #if T_TRACER LONG_OPTION_T_PORT, LONG_OPTION_T_NOWAIT, + LONG_OPTION_T_DONT_FORK, #endif }; @@ -254,6 +255,7 @@ void get_simulation_options(int argc, char *argv[]) #if T_TRACER {"T_port", required_argument, 0, LONG_OPTION_T_PORT}, {"T_nowait", no_argument, 0, LONG_OPTION_T_NOWAIT}, + {"T_dont_fork", no_argument, 0, LONG_OPTION_T_DONT_FORK}, #endif {NULL, 0, NULL, 0} @@ -436,6 +438,12 @@ void get_simulation_options(int argc, char *argv[]) T_wait = 0; break; } + + case LONG_OPTION_T_DONT_FORK: { + extern int T_dont_fork; + T_dont_fork = 1; + break; + } #endif case 'a': From cadb672d10e2909eb1baf11a615d5144205bc176 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Tue, 28 Jun 2016 13:00:16 +0200 Subject: [PATCH 57/84] minor bugfix: forgot to update T_init in the example tracee --- common/utils/T/tracee/tracee.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/utils/T/tracee/tracee.c b/common/utils/T/tracee/tracee.c index f7739f00f9..5f820ee42e 100644 --- a/common/utils/T/tracee/tracee.c +++ b/common/utils/T/tracee/tracee.c @@ -6,7 +6,7 @@ int main(void) { int frame = 0; - T_init(2021, 1); + T_init(2021, 1, 0); while (1) { getchar(); T(T_ENB_PHY_PUCCH_1AB_IQ, T_INT(0), T_INT(0), T_INT(frame), T_INT(0), T_INT(0), T_INT(0)); From 06ff2561b83c4a47b7ef9e248561c1a7e03e1656 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Thu, 30 Jun 2016 20:41:29 +0200 Subject: [PATCH 58/84] addition of LMSSDR test cases --- cmake_targets/autotests/README.txt | 4 +- cmake_targets/autotests/test_case_list.xml | 57 +++++++++++++++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/cmake_targets/autotests/README.txt b/cmake_targets/autotests/README.txt index 3ae18133c7..b04d24c51a 100644 --- a/cmake_targets/autotests/README.txt +++ b/cmake_targets/autotests/README.txt @@ -12,10 +12,12 @@ Obj.# Case# Test# Description 01 01 11 Build lte-softmodem_noS1.EXMIMO.Rel10 01 01 12 Build lte-softmodem_noS1.BLADERF.Rel10 01 01 13 Build lte-softmodem_noS1.ETHERNET.Rel10 +01 01 14 Build lte-softmodem_noS1.LMSSDR.Rel10 01 01 20 Build lte-softmodem.USRP.Rel10 01 01 21 Build lte-softmodem.EXMIMO.Rel10 01 01 22 Build lte-softmodem.BLADERF.Rel10 01 01 23 Build lte-softmodem.ETHERNET.Rel10 +01 01 24 Build lte-softmodem.LMSSDR.Rel10 01 01 30 Build (dlsim.Rel10 + ulsim.Rel10 + pucchsim.Rel10 + prachsim.Rel10 + pdcchsim.Rel10 + pbchsim.Rel10 + mbmssim.Rel10 secu_knas_encrypt_eia1.Rel10 secu_kenb.Rel10 aes128_ctr_encrypt.Rel10 aes128_ctr_decrypt.Rel10 secu_knas_encrypt_eea2.Rel10 @@ -24,7 +26,7 @@ Obj.# Case# Test# Description 01 01 40 Build RRH Gateway for USRP (Rel 10) 01 01 41 Build RRH Gateway for EXMIMO (Rel 10) 01 01 42 Build RRH Gateway for BLADERF (Rel 10) - +01 01 43 Build RRH Gateway for LMSSDR (Rel 10) 01 02 Run OAISIM-NOS1 Rel10 (TDD + 5MHz/10MHz/20MHz + TM 1,2), and check the operation diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 8c4024e073..d427a6b340 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -155,6 +155,25 @@ 1 + + compilation + Build lte_softmodem_noS1.LMSSDR.Rel10 + + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w LMSSDR -r Rel10 --noS1 -c + $OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/lte-softmodem-nos1 + $OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/rb_tool + $OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/CMakeFiles/nasmesh/nasmesh.ko + $OPENAIR_DIR/cmake_targets/lte_noS1_build_oai/build/liboai_lmssdrdevif.so + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + + + + + lte-softmodem_noS1.LMSSDR.Rel10 + 1 + @@ -231,6 +250,24 @@ 1 + + compilation + Build lte_softmodem.LMSSDR.Rel10 + + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w LMSSDR -r Rel10 -c + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/liboai_lmssdrdevif.so + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + + + + + lte-softmodem.LMSSDR.Rel10 + 1 + + compilation Build phy unitary simulators + secuirity unitary tests @@ -308,7 +345,7 @@ compilation - Build RRH Gateway + Build RRH Gateway for BladeRF (RF) nad Ethernet (transport) $OPENAIR_DIR/cmake_targets/build_oai --RRH -w BLADERF -t ETHERNET -c @@ -325,6 +362,24 @@ 1 + + compilation + Build RRH Gateway for LMSSDR (RF) and Ethernet (transport) + + $OPENAIR_DIR/cmake_targets/build_oai + --RRH -w LMSSDR -t ETHERNET -c + $OPENAIR_DIR/cmake_targets/rrh_gw/build/rrh_gw + $OPENAIR_DIR/cmake_targets/rrh_gw/build/liboai_lmssdrdevif.so + $OPENAIR_DIR/cmake_targets/rrh_gw/build/liboai_eth_transpro.so + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + + + + + RRH.LMSSDR.Rel10 + 1 + execution From 99db0df36fcec5d315bd3f7322c2415abfe79efd Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Fri, 1 Jul 2016 11:51:31 +0200 Subject: [PATCH 59/84] minor fix for build logging --- cmake_targets/tools/build_helper | 1 - 1 file changed, 1 deletion(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index a0697cd547..ac8d9f34c1 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -147,7 +147,6 @@ clean_all_files() { compilations() { cd $OPENAIR_DIR/cmake_targets/$1/build - echo_info "Log file for compilation written in: $dlog/$2.$REL.txt" set +e { rm -f $3 From a34d624f6a95da727d6324087ff10f43507683d2 Mon Sep 17 00:00:00 2001 From: nikaeinn Date: Tue, 5 Jul 2016 10:40:57 +0200 Subject: [PATCH 60/84] minor updates in the time measurement script --- targets/TEST/OAI/case13.py | 86 ++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/targets/TEST/OAI/case13.py b/targets/TEST/OAI/case13.py index 1744bcb32c..2148ddb52f 100644 --- a/targets/TEST/OAI/case13.py +++ b/targets/TEST/OAI/case13.py @@ -49,15 +49,16 @@ NUM_eNB=1 NUM_TRIALS=3 PRB=[25,50,100] -MCS=[0,4,9,10,13,16,17,22,27] +MCS=[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28] +#MCS=[0,4,9,10,13,16,17,22,27] #PRB=[100] #MCS=[16] -ANT_TX=1 # 2 +ANT_TX=2 # 2 ANT_RX=2 # 2 CHANNEL=["N"] #CHANNEL=["C","E","F","G","H","I","L","M"] # A,B,C,D,E,F, TX_MODE=2 # 2, -MIN_SNR=0 +MIN_SNR=10 MAX_SNR=40 PERF=75 OPT="-L" @@ -69,9 +70,9 @@ FRAME=2000 def execute(oai, user, pw, host,logfile,logdir,debug,cpu): case = '10' - oai.send('cd $OPENAIR1_DIR;') - oai.send('cd SIMULATION/LTE_PHY;') - + oai.send('cd $OPENAIR_TARGETS;') + oai.send('cd bin;') + oai.send('cp ./ulsim.Rel10 ./ulsim.Rel10.'+host) try: log.start() test = '300' @@ -80,13 +81,13 @@ def execute(oai, user, pw, host,logfile,logdir,debug,cpu): diag = 'ulsim is not running normally (Segmentation fault / Exiting / FATAL), debugging might be needed' trace = logdir + '/log_' + host + case + test + '_1.txt;' tee = ' 2>&1 | tee ' + trace - oai.send_expect_false('./ulsim.rel8.'+ host + ' ' + conf + tee, 'Segmentation fault', 30) + oai.send_expect_false('./ulsim.Rel10.'+ host + ' ' + conf + tee, 'Segmentation fault', 30) trace = logdir + '/log_' + host + case + test + '_2.txt;' tee = ' 2>&1 | tee ' + trace - oai.send_expect_false('./ulsim.rel8.'+ host + ' ' + conf + tee, 'Exiting', 30) + oai.send_expect_false('./ulsim.Rel10.'+ host + ' ' + conf + tee, 'Exiting', 30) trace = logdir + '/log_' + host + case + test + '_3.txt;' tee = ' 2>&1 | tee ' + trace - oai.send_expect_false('./ulsim.rel8.'+ host + ' ' + conf + tee, 'FATAL', 30) + oai.send_expect_false('./ulsim.Rel10.'+ host + ' ' + conf + tee, 'FATAL', 30) except log.err, e: log.fail(case, test, name, conf, e.value, diag, logfile,trace) @@ -100,42 +101,47 @@ def execute(oai, user, pw, host,logfile,logdir,debug,cpu): diag = 'no diagnostic is available, check the log file' for i in range(len(PRB)): for o in range(len(CHANNEL)): - MIN_SNR=0 + MIN_SNR=10 for j in range(len(MCS)): for m in range (1,ANT_RX): for p in range(1,TX_MODE): - for q in range(MIN_SNR,MAX_SNR): - #if if PRB[i] : + for r in range(5,PRB[i]): + for q in range(MIN_SNR,MAX_SNR): + + + if r ==7 or r ==11 or r ==14 or r == 17 or r==19 or r == 21 or r == 23 or r == 26 or r == 28 : + continue - conf = '-B' + str(PRB[i]) + ' -m'+str(MCS[j]) + ' -y'+str(m) + ' -g'+str(CHANNEL[o]) + ' -x'+str(p) + ' -s'+str(q) + ' -w1.0 -e.1 -P -n'+str(FRAME)+' -O'+str(PERF)+' '+ OPT - trace = logdir + '/time_meas' + '_prb'+str(PRB[i])+'_mcs'+ str(MCS[j])+ '_antrx' + str(m) + '_channel' +str(CHANNEL[o]) + '_tx' +str(p) + '_snr' +str(q)+'.'+case+str(test)+ '.log' - tee = ' 2>&1 | tee ' + trace - if cpu > -1 : - cmd = 'taskset -c ' + str(cpu) + ' ./ulsim.rel8.'+ host + ' ' + conf + tee - else : - cmd = './ulsim.rel8.'+ host + ' ' + conf + tee - - if debug : - print cmd - - # match = oai.send_expect_re(cmd, 'passed', 0, 1000) - match =1 - if match : - log.ok(case, str(test), name, conf, '', logfile) - MIN_SNR = q - 1 # just to speed up the test - test+=1 - break # found the smallest snr - else : - if q == MAX_SNR -1 : - log.skip(case,str(test), name, conf,'','',logfile) + conf = '-B' + str(PRB[i]) + ' -r'+str(r) + ' -m'+str(MCS[j]) + ' -y'+str(m) + ' -g'+str(CHANNEL[o]) + ' -x'+str(p) + ' -s'+str(q) + ' -w1.0 -e.1 -P -n'+str(FRAME)+' -O'+str(PERF)+' '+ OPT + trace = logdir + '/time_meas' + '_prb'+str(PRB[i])+ '_rb'+str(r)+'_mcs'+ str(MCS[j])+ '_antrx' + str(m) + '_channel' +str(CHANNEL[o]) + '_tx' +str(p) + '_snr' +str(q)+'.'+case+str(test)+ '.log' + tee = ' 2>&1 | tee ' + trace + if cpu > -1 : + cmd = 'taskset -c ' + str(cpu) + ' ./ulsim.Rel10.'+ host + ' ' + conf + tee + else : + cmd = './ulsim.Rel10.'+ host + ' ' + conf + tee + + if debug : + print cmd + + match = oai.send_expect_re(cmd, 'passed', 0, 1000) + #match =1 + if match : + + log.ok(case, str(test), name, conf, '', logfile) + MIN_SNR = q - 1 # just to speed up the test test+=1 - break - try: - if os.path.isfile(trace) : - os.remove(trace) - except OSError, e: ## if failed, report it back to the user ## - print ("Error: %s - %s." % (e.filename,e.strerror)) - + break # found the smallest snr + else : + if q == MAX_SNR -1 : + log.skip(case,str(test), name, conf,'','',logfile) + test+=1 + break + try: + if os.path.isfile(trace) : + os.remove(trace) + except OSError, e: ## if failed, report it back to the user ## + print ("Error: %s - %s." % (e.filename,e.strerror)) + except log.err, e: From 633526331ab746e28c0c2879f9c0a9546f878ad2 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Tue, 5 Jul 2016 14:25:41 +0200 Subject: [PATCH 61/84] hotfix: force 32-bytes alignment for avx2 code to be happy --- openair1/PHY/MODULATION/slot_fep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openair1/PHY/MODULATION/slot_fep.c b/openair1/PHY/MODULATION/slot_fep.c index 6a63043e9c..61c83e5b89 100644 --- a/openair1/PHY/MODULATION/slot_fep.c +++ b/openair1/PHY/MODULATION/slot_fep.c @@ -55,7 +55,7 @@ int slot_fep(PHY_VARS_UE *phy_vars_ue, unsigned int rx_offset; void (*dft)(int16_t *,int16_t *, int); - int tmp_dft_in[2048]; // This is for misalignment issues for 6 and 15 PRBs + int tmp_dft_in[2048] __attribute__ ((aligned (32))); // This is for misalignment issues for 6 and 15 PRBs switch (frame_parms->ofdm_symbol_size) { case 128: From d8b6edaa9fd9363e25146ffcb81d404017d2342c Mon Sep 17 00:00:00 2001 From: nikaeinn Date: Tue, 5 Jul 2016 16:43:27 +0200 Subject: [PATCH 62/84] update the run_enb_s1_usrp script for T tracer --- cmake_targets/tools/run_enb_s1_usrp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cmake_targets/tools/run_enb_s1_usrp b/cmake_targets/tools/run_enb_s1_usrp index 5bb7ef151f..2969f759a1 100755 --- a/cmake_targets/tools/run_enb_s1_usrp +++ b/cmake_targets/tools/run_enb_s1_usrp @@ -60,7 +60,9 @@ function help() echo_error " -f, --rf-config-file filename RF specific configuration file" echo_error " -K, --itti-dump-file filename ITTI dump file containing all ITTI events occuring during EPC runtime.(can omit file name if last argument)" echo_error " -M, --target-dl-mcs mcs Downlink target MCS." - echo_error " -m, --mscgen directory Generate mscgen output files in a directory" + echo_error " -n, --T-no-wait don't wait for tracer, start immediately" + echo_error " -p, --T-port port use given port" + echo_error " -m, --mscgen directory Generate mscgen output files in a directory" echo_error " -s, --show-stdout Do not redirect stdout and stderr to file /tmp/lte_softmodem.stdout.txt." echo_error " -S, --enable-missed-slot Continue execution in case of missed slot." echo_error " -T, --target-ul-mcs mcs Uplink target MCS." @@ -188,7 +190,17 @@ function main() exe_arguments="$exe_arguments -m $2" shift 2; ;; - -V | --vcd) + -n | --T-no-wait) + echo "setting T tracer operation" + exe_arguments="$exe_arguments --T_nowait" + shift ; + ;; + -p | --T-port) + echo "setting T tracer port" + exe_arguments="$exe_arguments --T_port $2" + shift 2; + ;; + -V | --vcd) echo "setting gtk-wave output" exe_arguments="$exe_arguments -V /tmp/oai_gtk_wave.vcd" shift ; From 69ec911283109ee7b99924f7ef4437ef3383829e Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 7 Jul 2016 17:21:18 +0200 Subject: [PATCH 63/84] hotfix: remove HARQ process ID freelist It creates more problems than it solves. We replace this approach by a straightforward synchronous one. Now in the downlink, at frame f and subframe s we use HARQ process (f * 10 + s) % 8. This is similar to uplink scheduling. --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 56 ++-------------- openair1/PHY/LTE_TRANSPORT/defs.h | 7 -- openair1/PHY/LTE_TRANSPORT/dlsch_coding.c | 5 -- openair1/SCHED/defs.h | 3 - openair1/SCHED/phy_mac_stub.c | 50 +++++++------- openair1/SCHED/phy_procedures_lte_eNb.c | 79 ++++------------------- 6 files changed, 43 insertions(+), 157 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index a163225f03..c849adf2f6 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -1126,12 +1126,8 @@ int generate_eNB_dlsch_params_from_dci(int frame, dlsch[0]->harq_ids[subframe] = harq_pid; - if (dlsch0_harq->round == 0) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch[0], harq_pid); + if (dlsch0_harq->round == 0) dlsch0_harq->status = ACTIVE; - } break; @@ -1265,9 +1261,6 @@ int generate_eNB_dlsch_params_from_dci(int frame, if (dlsch0_harq->round == 0) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch[0], harq_pid); dlsch0_harq->status = ACTIVE; // printf("Setting DLSCH process %d to ACTIVE\n",harq_pid); // MCS and TBS don't change across HARQ rounds @@ -1635,19 +1628,11 @@ int generate_eNB_dlsch_params_from_dci(int frame, } // reset HARQ process if this is the first transmission - if (dlsch0_harq->round == 0) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch0, harq_pid); + if (dlsch0_harq->round == 0) dlsch0_harq->status = ACTIVE; - } - if (dlsch1_harq->round == 0) { - /* necessary test? */ - if (dlsch1_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch1, harq_pid); + if (dlsch1_harq->round == 0) dlsch1_harq->status = ACTIVE; - } dlsch0->rnti = rnti; dlsch1->rnti = rnti; @@ -2022,19 +2007,11 @@ int generate_eNB_dlsch_params_from_dci(int frame, } // reset HARQ process if this is the first transmission - if ((dlsch0->active==1) && (dlsch0_harq->round == 0)) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch0, harq_pid); + if ((dlsch0->active==1) && (dlsch0_harq->round == 0)) dlsch0_harq->status = ACTIVE; - } - if ((dlsch1->active==1) && (dlsch1_harq->round == 0)) { - /* necessary test? */ - if (dlsch1_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch1, harq_pid); + if ((dlsch1->active==1) && (dlsch1_harq->round == 0)) dlsch1_harq->status = ACTIVE; - } dlsch0->rnti = rnti; dlsch1->rnti = rnti; @@ -2174,23 +2151,16 @@ int generate_eNB_dlsch_params_from_dci(int frame, // check if either TB is disabled (see 36-213 V8.6 p. 26) - if ((dlsch0_harq->rvidx == 1) && (dlsch0_harq->mcs == 0)) { - LOG_W(PHY, "what to do with respect to remove_harq_pid_from_freelist?\n"); + if ((dlsch0_harq->rvidx == 1) && (dlsch0_harq->mcs == 0)) dlsch0_harq->status = DISABLED; - } - if ((dlsch1_harq->rvidx == 1) && (dlsch1_harq->mcs == 0)) { - LOG_W(PHY, "what to do with respect to remove_harq_pid_from_freelist?\n"); + if ((dlsch1_harq->rvidx == 1) && (dlsch1_harq->mcs == 0)) dlsch1_harq->status = DISABLED; - } dlsch0_harq->Nl = 1; if (dlsch0_harq->round == 0) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch0, harq_pid); dlsch0_harq->status = ACTIVE; // printf("Setting DLSCH process %d to ACTIVE\n",harq_pid); } @@ -2355,17 +2325,11 @@ int generate_eNB_dlsch_params_from_dci(int frame, if ((dlsch0_harq->round == 0) && (dlsch0->active == 1) ) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch0, harq_pid); dlsch0_harq->status = ACTIVE; dlsch0_harq->mcs = mcs1; } if ((dlsch1_harq->round == 0) && (dlsch1->active == 1) ) { - /* necessary test? */ - if (dlsch1_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch1, harq_pid); dlsch1_harq->status = ACTIVE; dlsch1_harq->mcs = mcs2; } @@ -2529,9 +2493,6 @@ int generate_eNB_dlsch_params_from_dci(int frame, if (dlsch0_harq->round == 0) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch0, harq_pid); dlsch0_harq->status = ACTIVE; // printf("Setting DLSCH process %d to ACTIVE\n",harq_pid); } @@ -2661,9 +2622,6 @@ int generate_eNB_dlsch_params_from_dci(int frame, // dlsch0_harq->Ndi = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->ndi; if (dlsch0_harq->round == 0) { - /* necessary test? */ - if (dlsch0_harq->status == SCH_IDLE) - remove_harq_pid_from_freelist(dlsch0, harq_pid); dlsch0_harq->status = ACTIVE; // printf("Setting DLSCH process %d to ACTIVE\n",harq_pid); } diff --git a/openair1/PHY/LTE_TRANSPORT/defs.h b/openair1/PHY/LTE_TRANSPORT/defs.h index 43bc7e3515..6d34b8c9b9 100644 --- a/openair1/PHY/LTE_TRANSPORT/defs.h +++ b/openair1/PHY/LTE_TRANSPORT/defs.h @@ -258,13 +258,6 @@ typedef struct { uint8_t error_threshold; /// Pointers to 8 HARQ processes for the DLSCH LTE_DL_eNB_HARQ_t *harq_processes[8]; - /// circular list of free harq PIDs (the oldest come first) - /// (10 is arbitrary value, must be > to max number of DL HARQ processes in LTE) - int harq_pid_freelist[10]; - /// the head position of the free list (if list is free then head=tail) - int head_freelist; - /// the tail position of the free list - int tail_freelist; /// Number of soft channel bits uint32_t G; /// Codebook index for this dlsch (0,1,2,3) diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c index 622ff51531..366b93e71d 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c @@ -156,9 +156,6 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_ for (i=0; i<10; i++) dlsch->harq_ids[i] = Mdlharq; - dlsch->head_freelist = 0; - dlsch->tail_freelist = 0; - for (i=0; iharq_processes[i] = (LTE_DL_eNB_HARQ_t *)malloc16(sizeof(LTE_DL_eNB_HARQ_t)); LOG_T(PHY, "Required mem size %d (bw scaling %d), dlsch->harq_processes[%d] %p\n", @@ -199,8 +196,6 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_ msg("Can't get harq_p %d\n",i); exit_flag=3; } - - put_harq_pid_in_freelist(dlsch, i); } if (exit_flag==0) { diff --git a/openair1/SCHED/defs.h b/openair1/SCHED/defs.h index af6acca880..29fb7c37e8 100644 --- a/openair1/SCHED/defs.h +++ b/openair1/SCHED/defs.h @@ -400,9 +400,6 @@ uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, ui uint16_t get_Np(uint8_t N_RB_DL,uint8_t nCCE,uint8_t plus1); -void put_harq_pid_in_freelist(LTE_eNB_DLSCH_t *DLSCH_ptr, int harq_pid); -void remove_harq_pid_from_freelist(LTE_eNB_DLSCH_t *DLSCH_ptr, int harq_pid); - int8_t find_ue(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB); int32_t add_ue(int16_t rnti, PHY_VARS_eNB *phy_vars_eNB); int mac_phy_remove_ue(module_id_t Mod_idP,rnti_t rnti); diff --git a/openair1/SCHED/phy_mac_stub.c b/openair1/SCHED/phy_mac_stub.c index 5ed1b6837d..a7da9f9cc5 100644 --- a/openair1/SCHED/phy_mac_stub.c +++ b/openair1/SCHED/phy_mac_stub.c @@ -155,10 +155,10 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->type = 1; ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->vrb_type = 0; ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->rballoc = computeRIV(50,10,3); - ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->ndi = subframe / 5; ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->rv = 1; ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->mcs = 1; - ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->harq_pid = subframe % 5; ((DCI1A_10MHz_TDD_1_6_t*)&bcch_pdu)->TPC = 1; // set to 3 PRB memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],&bcch_pdu,sizeof(DCI1A_10MHz_TDD_1_6_t)); } @@ -233,10 +233,10 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->rballoc = rballoc; //computeRIV(25,10,3); ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->TPC = 0; - ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->harq_pid = subframe % 5; ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->mcs = openair_daq_vars.target_ue_dl_mcs; - //((DCI1_5MHz_FDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); - ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + //((DCI1_5MHz_FDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); + ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->ndi = subframe / 5; ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->rv = 0; ((DCI1_5MHz_FDD_t *)&dlsch_pdu)->rah = 0; @@ -266,10 +266,10 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->rballoc = rballoc; //computeRIV(25,10,3); ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->TPC = 0; ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->dai = 0; - ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->harq_pid = subframe % 5; ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->mcs = openair_daq_vars.target_ue_dl_mcs; - //((DCI1_5MHz_TDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); - ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + //((DCI1_5MHz_TDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); + ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->ndi = subframe / 5; ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->rv = 0; ((DCI1_5MHz_TDD_t *)&dlsch_pdu)->rah = 0; memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],(void *)&dlsch_pdu,sizeof(DCI1_5MHz_TDD_t)); @@ -304,10 +304,10 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->rballoc = rballoc; //computeRIV(50,10,3); ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->TPC = 0; - ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->harq_pid = subframe % 5; ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->mcs = openair_daq_vars.target_ue_dl_mcs; - //((DCI1_10MHz_FDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); - ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + //((DCI1_10MHz_FDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); + ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->ndi = subframe / 5; ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->rv = 0; ((DCI1_10MHz_FDD_t *)&dlsch_pdu)->rah = 0; @@ -338,10 +338,10 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->rballoc = rballoc; //computeRIV(50,10,3); ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->TPC = 0; ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->dai = 0; - ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->harq_pid = subframe % 5; ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->mcs = openair_daq_vars.target_ue_dl_mcs; - //((DCI1_10MHz_TDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); - ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + //((DCI1_10MHz_TDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); + ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->ndi = subframe / 5; ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->rv = 0; ((DCI1_10MHz_TDD_t *)&dlsch_pdu)->rah = 0; memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],(void *)&dlsch_pdu,sizeof(DCI1_10MHz_TDD_t)); @@ -375,10 +375,10 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->rballoc = rballoc; //computeRIV(100,10,3); ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->TPC = 0; - ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->harq_pid = subframe % 5; ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->mcs = openair_daq_vars.target_ue_dl_mcs; - //((DCI1_5MHz_FDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); - ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + //((DCI1_5MHz_FDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); + ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->ndi = subframe / 5; ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->rv = 0; ((DCI1_20MHz_FDD_t *)&dlsch_pdu)->rah = 0; @@ -409,10 +409,10 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->rballoc = rballoc; //computeRIV(100,10,3); ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->TPC = 0; ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->dai = 0; - ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->harq_pid = subframe % 5; ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->mcs = openair_daq_vars.target_ue_dl_mcs; - //((DCI1_20MHz_TDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); - ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + //((DCI1_20MHz_TDD_t *)&dlsch_pdu)->mcs = (unsigned char) ((phy_vars_eNB->frame%1024)%28); + ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->ndi = subframe / 5; ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->rv = 0; ((DCI1_20MHz_TDD_t *)&dlsch_pdu)->rah = 0; memcpy((void*)&DCI_pdu->dci_alloc[0].dci_pdu[0],(void *)&dlsch_pdu,sizeof(DCI1_20MHz_TDD_t)); @@ -451,13 +451,13 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->tpmi = 0; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->rv1 = 0; - ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->ndi1 = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->ndi1 = subframe / 5; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->mcs1 = openair_daq_vars.target_ue_dl_mcs; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->rv2 = 0; - ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->ndi2 = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->ndi2 = subframe / 5; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->mcs2 = openair_daq_vars.target_ue_dl_mcs; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->tb_swap = 0; - ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->harq_pid = subframe % 5; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->TPC = 0; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->rballoc = openair_daq_vars.ue_dl_rb_alloc; ((DCI2_5MHz_2A_FDD_t*) (&DCI_pdu->dci_alloc[0].dci_pdu))->rah = 0; @@ -473,13 +473,13 @@ void fill_dci(DCI_PDU *DCI_pdu, uint8_t sched_subframe, PHY_VARS_eNB *phy_vars_e DLSCH_alloc_pdu1E.tpmi = 5; //5=use feedback DLSCH_alloc_pdu1E.rv = 0; - DLSCH_alloc_pdu1E.ndi = phy_vars_eNB->proc[sched_subframe].frame_tx&1; + DLSCH_alloc_pdu1E.ndi = subframe / 5; //DLSCH_alloc_pdu1E.mcs = cqi_to_mcs[phy_vars_eNB->eNB_UE_stats->DL_cqi[0]]; //DLSCH_alloc_pdu1E.mcs = (unsigned char) (taus()%28); DLSCH_alloc_pdu1E.mcs = openair_daq_vars.target_ue_dl_mcs; //DLSCH_alloc_pdu1E.mcs = (unsigned char) ((phy_vars_eNB->proc[subframe].frame%1024)%28); phy_vars_eNB->eNB_UE_stats[0].dlsch_mcs1 = DLSCH_alloc_pdu1E.mcs; - DLSCH_alloc_pdu1E.harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + DLSCH_alloc_pdu1E.harq_pid = subframe % 5; DLSCH_alloc_pdu1E.dai = 0; DLSCH_alloc_pdu1E.TPC = 0; DLSCH_alloc_pdu1E.rballoc = openair_daq_vars.ue_dl_rb_alloc; diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index b3dd581de7..77a993578a 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -133,30 +133,6 @@ uint8_t is_SR_subframe(PHY_VARS_eNB *phy_vars_eNB,uint8_t UE_id,uint8_t sched_su return(0); } -void put_harq_pid_in_freelist(LTE_eNB_DLSCH_t *DLSCH_ptr, int harq_pid) -{ - DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->tail_freelist] = harq_pid; - DLSCH_ptr->tail_freelist = (DLSCH_ptr->tail_freelist + 1) % 10; -} - -void remove_harq_pid_from_freelist(LTE_eNB_DLSCH_t *DLSCH_ptr, int harq_pid) -{ - if (DLSCH_ptr->head_freelist == DLSCH_ptr->tail_freelist) { - LOG_E(PHY, "%s:%d: you cannot read this!\n", __FILE__, __LINE__); - abort(); - } - /* basic check, in case several threads deal with the free list at the same time - * in normal situations it should not happen, that's also why we don't use any - * locking mechanism to protect the free list - * to be refined in case things don't work properly - */ - if (harq_pid != DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]) { - LOG_E(PHY, "%s:%d: critical error, get in touch with the authors\n", __FILE__, __LINE__); - abort(); - } - DLSCH_ptr->head_freelist = (DLSCH_ptr->head_freelist + 1) % 10; -} - int32_t add_ue(int16_t rnti, PHY_VARS_eNB *phy_vars_eNB) { uint8_t i; @@ -221,12 +197,6 @@ int mac_phy_remove_ue(module_id_t Mod_idP,rnti_t rntiP) { memset(&phy_vars_eNB->eNB_UE_stats[i],0,sizeof(LTE_eNB_UE_stats)); // mac_exit_wrapper("Removing UE"); - /* clear the harq pid freelist */ - phy_vars_eNB->dlsch_eNB[i][0]->head_freelist = 0; - phy_vars_eNB->dlsch_eNB[i][0]->tail_freelist = 0; - for (j = 0; j < 8; j++) - put_harq_pid_in_freelist(phy_vars_eNB->dlsch_eNB[i][0], j); - return(i); } } @@ -258,9 +228,8 @@ int get_ue_active_harq_pid(const uint8_t Mod_id,const uint8_t CC_id,const uint16 LTE_eNB_DLSCH_t *DLSCH_ptr; LTE_eNB_ULSCH_t *ULSCH_ptr; uint8_t ulsch_subframe,ulsch_frame; - uint8_t i; + int i; int8_t UE_id = find_ue(rnti,PHY_vars_eNB_g[Mod_id][CC_id]); - int sf1=(10*frame)+subframe,sf2,sfdiff,sfdiff_max=7; if (UE_id==-1) { LOG_D(PHY,"Cannot find UE with rnti %x (Mod_id %d, CC_id %d)\n",rnti, Mod_id, CC_id); @@ -271,40 +240,19 @@ int get_ue_active_harq_pid(const uint8_t Mod_id,const uint8_t CC_id,const uint16 if (ul_flag == 0) {// this is a DL request DLSCH_ptr = PHY_vars_eNB_g[Mod_id][CC_id]->dlsch_eNB[(uint32_t)UE_id][0]; - // set to no available process first - *harq_pid = -1; + /* let's go synchronous for the moment - maybe we can change at some point */ + i = (frame * 10 + subframe) % 8; - for (i=0; iMdlharq; i++) { - if (DLSCH_ptr->harq_processes[i]!=NULL) { - if (DLSCH_ptr->harq_processes[i]->status == ACTIVE) { - sf2 = (DLSCH_ptr->harq_processes[i]->frame*10) + DLSCH_ptr->harq_processes[i]->subframe; - if (sf2<=sf1) - sfdiff = sf1-sf2; - else // this happens when wrapping around 1024 frame barrier - sfdiff = 10240 + sf1-sf2; - LOG_D(PHY,"process %d is active, round %d (waiting %d)\n",i,DLSCH_ptr->harq_processes[i]->round,sfdiff); - - if (sfdiff>sfdiff_max) { // this is an active process that is waiting longer than the others (and longer than 7 ms) - sfdiff_max = sfdiff; - *harq_pid = i; - *round = DLSCH_ptr->harq_processes[i]->round; - } - } - } else { // a process is not defined - LOG_E(PHY,"[eNB %d] DLSCH process %d for rnti %x (UE_id %d) not allocated\n",Mod_id,i,rnti,UE_id); - return(-1); - } - } - - /* if no active harq pid, get the oldest in the freelist, if any */ - if (*harq_pid == 255 && DLSCH_ptr->head_freelist != DLSCH_ptr->tail_freelist) { - *harq_pid = DLSCH_ptr->harq_pid_freelist[DLSCH_ptr->head_freelist]; + if (DLSCH_ptr->harq_processes[i]->status == ACTIVE) { + *harq_pid = i; + *round = DLSCH_ptr->harq_processes[i]->round; + } else if (DLSCH_ptr->harq_processes[i]->status == SCH_IDLE) { + *harq_pid = i; *round = 0; - LOG_D(PHY,"process %d is first free process\n", *harq_pid); + } else { + printf("%s:%d: bad state for harq process - PLEASE REPORT!!\n", __FILE__, __LINE__); + abort(); } - - LOG_D(PHY,"get_ue_active_harq_pid DL => Frame %d, Subframe %d : harq_pid %d\n", - frame,subframe,*harq_pid); } else { // This is a UL request ULSCH_ptr = PHY_vars_eNB_g[Mod_id][CC_id]->ulsch_eNB[(uint32_t)UE_id]; @@ -1906,7 +1854,6 @@ void process_HARQ_feedback(uint8_t UE_id, dlsch_harq_proc->round = 0; ue_stats->dlsch_l2_errors[dl_harq_pid[m]]++; dlsch_harq_proc->status = SCH_IDLE; - put_harq_pid_in_freelist(dlsch, dl_harq_pid[m]); dlsch->harq_ids[dl_subframe] = dlsch->Mdlharq; } } else { @@ -1923,7 +1870,6 @@ void process_HARQ_feedback(uint8_t UE_id, // Received ACK so set round to 0 and set dlsch_harq_pid IDLE dlsch_harq_proc->round = 0; dlsch_harq_proc->status = SCH_IDLE; - put_harq_pid_in_freelist(dlsch, dl_harq_pid[m]); dlsch->harq_ids[dl_subframe] = dlsch->Mdlharq; ue_stats->total_TBS = ue_stats->total_TBS + @@ -2345,9 +2291,6 @@ void pucch_procedures(const unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_ phy_vars_eNB->eNB_UE_stats[UE_id].sr_received++; if (phy_vars_eNB->first_sr[UE_id] == 1) { // this is the first request for uplink after Connection Setup, so clear HARQ process 0 use for Msg4 - /* is this test necessary? */ - if (phy_vars_eNB->dlsch_eNB[UE_id][0]->harq_processes[0]->status != SCH_IDLE) - put_harq_pid_in_freelist(phy_vars_eNB->dlsch_eNB[UE_id][0], 0); phy_vars_eNB->first_sr[UE_id] = 0; phy_vars_eNB->dlsch_eNB[UE_id][0]->harq_processes[0]->round=0; phy_vars_eNB->dlsch_eNB[UE_id][0]->harq_processes[0]->status=SCH_IDLE; From 3310c2a93f253918b8a08bde6ea0d6ee1c8a6128 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 8 Jul 2016 12:56:25 +0200 Subject: [PATCH 64/84] cosmetic changes --- common/utils/T/tracer/enb.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index b0ae285f6d..0d19905c87 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -139,7 +139,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) logger_add_view(input_signal_log, input_signal_view); /* UE 0 PUSCH IQ data */ - w = new_xy_plot(g, 55, 55, "PUSCH IQ", 50); + w = new_xy_plot(g, 55, 55, "PUSCH IQ [UE 0]", 50); widget_add_child(g, line, w, -1); xy_plot_set_range(g, w, -1000, 1000, -1000, 1000); l = new_iqlog(h, database, "ENB_PHY_PUSCH_IQ", "nb_rb", @@ -149,11 +149,10 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) logger_set_filter(l, filter_eq( filter_evarg(database, "ENB_PHY_PUSCH_IQ", "UE_ID"), - filter_int(0) - )); + filter_int(0))); /* UE 0 estimated UL channel */ - w = new_xy_plot(g, 256*2, 55, "UL estimated channel", 50); + w = new_xy_plot(g, 280, 55, "UL estimated channel [UE 0]", 50); widget_add_child(g, line, w, -1); xy_plot_set_range(g, w, 0, 512*10, -10, 80); l = new_framelog(h, database, @@ -165,12 +164,11 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) logger_set_filter(l, filter_eq( filter_evarg(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", "UE_ID"), - filter_int(0) - )); + filter_int(0))); /* downlink/uplink UE DCIs */ widget_add_child(g, top_container, - new_label(g,"DL/UL TICK/DCI/ACK/NACK "), -1); + new_label(g,"DL/UL TICK/DCI/ACK/NACK [all UEs]"), -1); line = new_container(g, HORIZONTAL); widget_add_child(g, top_container, line, -1); timeline_plot = new_timeline(g, 512, 8, 5); @@ -220,7 +218,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) /* harq processes' ticktime view */ widget_add_child(g, top_container, - new_label(g,"DL/UL HARQ (x8) "), -1); + new_label(g,"DL/UL HARQ (x8) [UE 0]"), -1); line = new_container(g, HORIZONTAL); widget_add_child(g, top_container, line, -1); timeline_plot = new_timeline(g, 512, 2*8+2, 3); From c4c288cb9058e974cd342c14cc441039e741904f Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 8 Jul 2016 12:57:13 +0200 Subject: [PATCH 65/84] minor bugfix --- common/utils/T/tracer/logger/iqlog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/utils/T/tracer/logger/iqlog.c b/common/utils/T/tracer/logger/iqlog.c index 3d303607ac..bea8adccc5 100644 --- a/common/utils/T/tracer/logger/iqlog.c +++ b/common/utils/T/tracer/logger/iqlog.c @@ -169,7 +169,7 @@ logger *new_iqlog(event_handler *h, void *database, } if (strcmp(f.type[ret->N_RB_UL_arg], "int") != 0) { printf("%s:%d: argument '%s' has wrong type (should be 'int')\n", - __FILE__, __LINE__, nb_rb); + __FILE__, __LINE__, N_RB_UL); abort(); } if (strcmp(f.type[ret->symbols_per_tti_arg], "int") != 0) { From aea2da5e4f198a4d8b2ec978a7d43cf7aedcd130 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 8 Jul 2016 12:57:33 +0200 Subject: [PATCH 66/84] minor compilation warning fix --- common/utils/T/tracer/record.c | 1 + 1 file changed, 1 insertion(+) diff --git a/common/utils/T/tracer/record.c b/common/utils/T/tracer/record.c index c81b93e7d7..b1a1bc60de 100644 --- a/common/utils/T/tracer/record.c +++ b/common/utils/T/tracer/record.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "database.h" #include "utils.h" #include "../T_defs.h" From 1dff3c4db6b74b1cdaefa0ad7cd82ee33b33f647 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 8 Jul 2016 13:02:54 +0200 Subject: [PATCH 67/84] add another IQ logger iqlog.c should change its name, it's too specific. This new one is more generic and should take over the name. --- common/utils/T/tracer/logger/Makefile | 3 +- common/utils/T/tracer/logger/iqdotlog.c | 82 +++++++++++++++++++++++++ common/utils/T/tracer/logger/logger.h | 2 + 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 common/utils/T/tracer/logger/iqdotlog.c diff --git a/common/utils/T/tracer/logger/Makefile b/common/utils/T/tracer/logger/Makefile index 8d23717a13..92431739db 100644 --- a/common/utils/T/tracer/logger/Makefile +++ b/common/utils/T/tracer/logger/Makefile @@ -1,7 +1,8 @@ CC=gcc CFLAGS=-Wall -g -pthread -I.. -OBJS=logger.o textlog.o framelog.o ttilog.o timelog.o ticklog.o iqlog.o +OBJS=logger.o textlog.o framelog.o ttilog.o timelog.o ticklog.o iqlog.o \ + iqdotlog.o logger.a: $(OBJS) ar cr logger.a $(OBJS) diff --git a/common/utils/T/tracer/logger/iqdotlog.c b/common/utils/T/tracer/logger/iqdotlog.c new file mode 100644 index 0000000000..f635f9718d --- /dev/null +++ b/common/utils/T/tracer/logger/iqdotlog.c @@ -0,0 +1,82 @@ +#include "logger.h" +#include "logger_defs.h" +#include "handler.h" +#include "database.h" +#include "filter/filter.h" +#include +#include +#include + +struct iqdotlog { + struct logger common; + void *database; + int i_arg; + int q_arg; +}; + +static void _event(void *p, event e) +{ + struct iqdotlog *l = p; + int i; + float I, Q; + + if (l->common.filter != NULL && filter_eval(l->common.filter, e) == 0) + return; + + I = e.e[l->i_arg].i; + Q = e.e[l->q_arg].i; + + for (i = 0; i < l->common.vsize; i++) + l->common.v[i]->append(l->common.v[i], &I, &Q, 1); +} + +logger *new_iqdotlog(event_handler *h, void *database, + char *event_name, char *I, char *Q) +{ + struct iqdotlog *ret; + int event_id; + database_event_format f; + int i; + + ret = calloc(1, sizeof(struct iqdotlog)); if (ret == NULL) abort(); + + ret->common.event_name = strdup(event_name); + if (ret->common.event_name == NULL) abort(); + ret->database = database; + + event_id = event_id_from_name(database, event_name); + + ret->common.handler_id = register_handler_function(h,event_id,_event,ret); + + f = get_format(database, event_id); + + /* look for args */ + ret->i_arg = -1; + ret->q_arg = -1; + for (i = 0; i < f.count; i++) { + if (!strcmp(f.name[i], I)) ret->i_arg = i; + if (!strcmp(f.name[i], Q)) ret->q_arg = i; + } + if (ret->i_arg == -1) { + printf("%s:%d: argument '%s' not found in event '%s'\n", + __FILE__, __LINE__, I, event_name); + abort(); + } + if (ret->q_arg == -1) { + printf("%s:%d: argument '%s' not found in event '%s'\n", + __FILE__, __LINE__, Q, event_name); + abort(); + } + if (strcmp(f.type[ret->i_arg], "int") != 0) { + printf("%s:%d: argument '%s' has wrong type (should be 'int')\n", + __FILE__, __LINE__, I); + abort(); + } + if (strcmp(f.type[ret->q_arg], "int") != 0) { + printf("%s:%d: argument '%s' has wrong type (should be 'int')\n", + __FILE__, __LINE__, Q); + abort(); + } + + return ret; +} diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h index a777581db9..b2ab4f8cbc 100644 --- a/common/utils/T/tracer/logger/logger.h +++ b/common/utils/T/tracer/logger/logger.h @@ -16,6 +16,8 @@ logger *new_ticklog(void *event_handler, void *database, logger *new_iqlog(void *event_handler, void *database, char *event_name, char *nb_rb, char *N_RB_UL, char *symbols_per_tti, char *buffer_varname); +logger *new_iqdotlog(void *event_handler, void *database, + char *event_name, char *I, char *Q); void framelog_set_skip(logger *_this, int skip_delay); void framelog_set_update_only_at_sf9(logger *_this, int update_only_at_sf9); From 19d4502c3d91b75eadd0016dd077e0da19061375 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 8 Jul 2016 13:14:03 +0200 Subject: [PATCH 68/84] add PUCCH plots to enb.c --- common/utils/T/tracer/enb.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c index 0d19905c87..3b8e2bf14e 100644 --- a/common/utils/T/tracer/enb.c +++ b/common/utils/T/tracer/enb.c @@ -166,6 +166,39 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database) filter_evarg(database, "ENB_PHY_UL_CHANNEL_ESTIMATE", "UE_ID"), filter_int(0))); + /* UE 0 PUCCH energy */ + w = new_xy_plot(g, 128, 55, "PUCCH1 energy (SR) [UE 0]", 50); + widget_add_child(g, line, w, -1); + xy_plot_set_range(g, w, 0, 1024*10, -10, 80); + l = new_ttilog(h, database, + "ENB_PHY_PUCCH_1_ENERGY", "frame", "subframe", "threshold", 0); + v = new_view_tti(10, g, w, new_color(g, "#ff0000")); + logger_add_view(l, v); + logger_set_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_PUCCH_1_ENERGY", "UE_ID"), + filter_int(0))); + l = new_ttilog(h, database, + "ENB_PHY_PUCCH_1_ENERGY", "frame", "subframe", "energy", 1); + v = new_view_tti(10, g, w, new_color(g, "#0c0c72")); + logger_add_view(l, v); + logger_set_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_PUCCH_1_ENERGY", "UE_ID"), + filter_int(0))); + + /* UE 0 PUCCH IQ data */ + w = new_xy_plot(g, 55, 55, "PUCCH IQ [UE 0]", 50); + widget_add_child(g, line, w, -1); + xy_plot_set_range(g, w, -100, 100, -100, 100); + l = new_iqdotlog(h, database, "ENB_PHY_PUCCH_1AB_IQ", "I", "Q"); + v = new_view_xy(500, 10, g, w, new_color(g,"#000"), XY_LOOP_MODE); + logger_add_view(l, v); + logger_set_filter(l, + filter_eq( + filter_evarg(database, "ENB_PHY_PUCCH_1AB_IQ", "UE_ID"), + filter_int(0))); + /* downlink/uplink UE DCIs */ widget_add_child(g, top_container, new_label(g,"DL/UL TICK/DCI/ACK/NACK [all UEs]"), -1); @@ -489,6 +522,8 @@ int main(int n, char **v) on_off(database, "ENB_PHY_ULSCH_UE_NACK", is_on, 1); on_off(database, "ENB_MASTER_TICK", is_on, 1); on_off(database, "ENB_PHY_PUSCH_IQ", is_on, 1); + on_off(database, "ENB_PHY_PUCCH_1_ENERGY", is_on, 1); + on_off(database, "ENB_PHY_PUCCH_1AB_IQ", is_on, 1); on_off(database, "LEGACY_RRC_INFO", is_on, 1); on_off(database, "LEGACY_RRC_ERROR", is_on, 1); From eeacfef5ccad0c6831c1bf687b02349dccdf22ff Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Fri, 8 Jul 2016 01:13:35 +0200 Subject: [PATCH 69/84] minor modifications to test case config --- cmake_targets/autotests/test_case_list.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index d427a6b340..b14ef9fc05 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -1252,7 +1252,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W @@ -1266,7 +1266,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 34M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -f m -u throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec @@ -1287,7 +1287,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u False @@ -3198,7 +3198,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W @@ -3213,7 +3213,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 35M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3233,7 +3233,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u False From 9396d53b724310733889788ee9813870f77475e4 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Fri, 8 Jul 2016 12:09:55 +0200 Subject: [PATCH 70/84] disable wireshark logging --- cmake_targets/autotests/test_case_list.xml | 288 ++++++++++----------- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index b14ef9fc05..b7d12d25ef 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -956,7 +956,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -993,7 +993,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -1031,7 +1031,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1068,7 +1068,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -1105,7 +1105,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1142,7 +1142,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -1179,7 +1179,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1198,7 +1198,7 @@ False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec /tmp @@ -1252,7 +1252,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1268,7 +1268,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -f m -u - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1325,7 +1325,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1342,7 +1342,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1400,7 +1400,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1437,7 +1437,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.2TX.2RX @@ -1475,7 +1475,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1511,7 +1511,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=2.0Mbits/sec max=2.0Mbits/sec average=2.0Mbits/sec + throughput_test min=0.0Mbits/sec max=2.0Mbits/sec average=2.0Mbits/sec False USRPb210.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.2TX.2RX @@ -1548,7 +1548,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1585,7 +1585,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=4.0Mbits/sec max=4.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=4.0Mbits/sec average=4.0Mbits/sec False USRPb210.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.2TX.2RX @@ -1622,7 +1622,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1639,7 +1639,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1696,7 +1696,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1713,7 +1713,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1770,7 +1770,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1787,7 +1787,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1846,7 +1846,7 @@ sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E ifconfig eth5:3 192.170.0.2 up ; sudo -E ifconfig eth5:4 192.170.1.2 up; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1892,7 +1892,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.OAI_EPC_local.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -1930,7 +1930,7 @@ sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ;sudo -E ifconfig eth5:3 192.170.0.2 up ; sudo -E ifconfig eth5:4 192.170.1.2 up; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -1976,7 +1976,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.OAI_EPC_local.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -2014,7 +2014,7 @@ sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ;sudo -E ifconfig eth5:3 192.170.0.2 up ; sudo -E ifconfig eth5:4 192.170.1.2 up; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2060,7 +2060,7 @@ $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.OAI_EPC_local.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -2098,7 +2098,7 @@ sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ;sudo -E ifconfig eth5:3 192.170.0.2 up ; sudo -E ifconfig eth5:4 192.170.1.2 up; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2115,7 +2115,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=10.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec + throughput_test min=00.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -2182,7 +2182,7 @@ sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ;sudo -E ifconfig eth5:3 192.170.0.2 up ; sudo -E ifconfig eth5:4 192.170.1.2 up; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2199,7 +2199,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec + throughput_test min=0.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -2266,7 +2266,7 @@ sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ;sudo -E ifconfig eth5:3 192.170.0.2 up ; sudo -E ifconfig eth5:4 192.170.1.2 up; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2283,7 +2283,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=40.0Mbits/sec max=42.0Mbits/sec average=44.0Mbits/sec + throughput_test min=0.0Mbits/sec max=42.0Mbits/sec average=44.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -2350,7 +2350,7 @@ sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2406,7 +2406,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.OAI_EPC_remote.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -2444,7 +2444,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2500,7 +2500,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.OAI_EPC_remote.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -2538,7 +2538,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ;sudo -E ifconfig eth0:3 192.170.0.2 up ; sudo -E ifconfig eth0:4 192.170.1.2 up; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2594,7 +2594,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.OAI_EPC_remote.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -2632,7 +2632,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2649,7 +2649,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 10M -R - throughput_test min=9.0Mbits/sec max=9Mbits/sec average=9Mbits/sec + throughput_test min=0.0Mbits/sec max=9Mbits/sec average=9Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -2726,7 +2726,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2743,7 +2743,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 10M -R - throughput_test min=9Mbits/sec max=9Mbits/sec average=9Mbits/sec + throughput_test min=0.0Mbits/sec max=9Mbits/sec average=9Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -2820,7 +2820,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; ifconfig ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -2837,7 +2837,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 9M -R - throughput_test min=9Mbits/sec max=9Mbits/sec average=9Mbits/sec + throughput_test min=0.0Mbits/sec max=9Mbits/sec average=9Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -2912,7 +2912,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -2948,7 +2948,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m -u - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPx310.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -2984,7 +2984,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3020,7 +3020,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPx310.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -3055,7 +3055,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3092,7 +3092,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPx310.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -3127,7 +3127,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3146,7 +3146,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec /tmp @@ -3198,7 +3198,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3217,7 +3217,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec /tmp @@ -3269,7 +3269,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3288,7 +3288,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec /tmp @@ -3343,7 +3343,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3389,7 +3389,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPx310.OAI_EPC_remote.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -3426,7 +3426,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3472,7 +3472,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPx310.OAI_EPC_remote.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -3507,7 +3507,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3553,7 +3553,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPx310.OAI_EPC_remote.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -3588,7 +3588,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3605,7 +3605,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=10.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec + throughput_test min=00.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3669,7 +3669,7 @@ c sleep 15;$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf $OPENAIR_TESTDIR/enb.conf sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3686,7 +3686,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec + throughput_test min=0.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3750,7 +3750,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf @@ -3767,7 +3767,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec + throughput_test min=0.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3831,7 +3831,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -3867,7 +3867,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False EXMIMO.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -3903,7 +3903,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -3940,7 +3940,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False EXMIMO.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -3975,7 +3975,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4012,7 +4012,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False EXMIMO.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -4047,7 +4047,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4066,7 +4066,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec /tmp @@ -4118,7 +4118,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4137,7 +4137,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec /tmp @@ -4189,7 +4189,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4208,7 +4208,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec /tmp @@ -4262,7 +4262,7 @@ c sleep 15;$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4309,7 +4309,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False EXMIMO.OAI_EPC_remote.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -4346,7 +4346,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4392,7 +4392,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False EXMIMO.OAI_EPC_remote.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -4427,7 +4427,7 @@ c sleep 15;$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail ; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4473,7 +4473,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False EXMIMO.OAI_EPC_remote.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -4508,7 +4508,7 @@ c sleep 15;$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4525,7 +4525,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=10.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec + throughput_test min=00.0Mbits/sec max=10.5Mbits/sec average=11.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -4589,7 +4589,7 @@ c sleep 15;$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4606,7 +4606,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec + throughput_test min=0.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -4670,7 +4670,7 @@ c sleep 15; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2 ; dmesg|tail; cp $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf $OPENAIR_TESTDIR/enb.conf $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf @@ -4687,7 +4687,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=20.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec + throughput_test min=0.0Mbits/sec max=21.0Mbits/sec average=22.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -4755,7 +4755,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf @@ -4792,7 +4792,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False BladeRF.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -4831,7 +4831,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf @@ -4868,7 +4868,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False BladeRF.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -4906,7 +4906,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf @@ -4943,7 +4943,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False BladeRF.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -4981,7 +4981,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf @@ -5000,7 +5000,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec /tmp @@ -5055,7 +5055,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf @@ -5071,7 +5071,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -5129,7 +5129,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf @@ -5146,7 +5146,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -5204,7 +5204,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_5MHz_rx19dB_txfull.ini -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_5MHz_rx19dB_txfull.ini @@ -5241,7 +5241,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False LMSSDR.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -5280,7 +5280,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_10MHz_rx19dB_txfull.ini -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_10MHz_rx19dB_txfull.ini @@ -5317,7 +5317,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False LMSSDR.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -5355,7 +5355,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf -W --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_20MHz_rx19dB_txfull.ini + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_20MHz_rx19dB_txfull.ini @@ -5392,7 +5392,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False LMSSDR.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -5430,7 +5430,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf -W --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_5MHz_rx19dB_txfull.ini + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_5MHz_rx19dB_txfull.ini @@ -5449,7 +5449,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec /tmp @@ -5504,7 +5504,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf -W --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_10MHz_rx19dB_txfull.ini + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_10MHz_rx19dB_txfull.ini @@ -5520,7 +5520,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -5578,7 +5578,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf -W --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_20MHz_rx19dB_txfull.ini + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf --rf-config-file $OPENAIR_DIR/targets/ARCH/LMSSDR/enb_sodera_highband_20MHz_rx19dB_txfull.ini @@ -5595,7 +5595,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=15.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -5655,7 +5655,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sleep 5; sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf @@ -5702,7 +5702,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.RRH.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX @@ -5743,7 +5743,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sleep 5; sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf @@ -5788,7 +5788,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.RRH.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX @@ -5828,7 +5828,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sleep 5; sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf @@ -5873,7 +5873,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.RRH.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX @@ -5913,7 +5913,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sleep 5; sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf @@ -5940,7 +5940,7 @@ c False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec /tmp @@ -5997,7 +5997,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sleep 5; sudo -E chrt -f 99 $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf @@ -6021,7 +6021,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -6081,7 +6081,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash sleep 5; $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf @@ -6106,7 +6106,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 - throughput_test min=10.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec + throughput_test min=00.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -6164,7 +6164,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -6201,7 +6201,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=5.0Mbits/sec max=5.0Mbits/sec average=5.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=5.0Mbits/sec False USRPb210.ALU_EPC.SonyExperiaM4.5MHz.FDD.Band_7.UL.1TX.1RX @@ -6239,7 +6239,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -6276,7 +6276,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=10.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec + throughput_test min=00.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec False USRPb210.ALU_EPC.SonyExperiaM4.10MHz.FDD.Band_7.UL.1TX.1RX @@ -6313,7 +6313,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -6350,7 +6350,7 @@ c $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m - throughput_test min=1.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False USRPb210.ALU_EPC.SonyExperiaM4.20MHz.FDD.Band_7.UL.1TX.1RX @@ -6387,7 +6387,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -6404,7 +6404,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -s -i 1 -u -f m - throughput_test min=4.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue @@ -6461,7 +6461,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -6478,7 +6478,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -s -i 1 -u -f m - throughput_test min=8.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue @@ -6535,7 +6535,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem - -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -W + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf @@ -6552,7 +6552,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -s -i 1 -u -f m - throughput_test min=10.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec + throughput_test min=00.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue From c2598500d6de480280246220465e5d7fa0383610 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Fri, 8 Jul 2016 16:09:34 +0200 Subject: [PATCH 71/84] Gitlab CI: mark test case as failure if there was assert --- .../autotests/run_exec_lte-softmodem_tests.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py index db14fea40f..19af648fbd 100755 --- a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py +++ b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py @@ -781,7 +781,7 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , task_eNB = task_eNB + 'array_exec_pid+=($!) \n' task_eNB = task_eNB + 'echo eNB_traffic_exec PID = $! \n' - task_eNB = task_eNB + ' (date; sudo rm -f ' + logfile_pcap_tmp_eNB + ' ; sudo -E tshark -i any -s 65535 -a duration:' + str(timeout_cmd-10)+ ' -w ' + logfile_pcap_tmp_eNB+ ' ; sudo -E chown ' + user + ' ' + logfile_pcap_tmp_eNB + ' ; zip -j -9 ' + logfile_pcap_zip_eNB + ' ' + logfile_pcap_tmp_eNB + ' ) > ' + logfile_tshark_eNB + ' 2>&1 & \n ' + task_eNB = task_eNB + ' (date; sudo rm -f ' + logfile_pcap_tmp_eNB + ' ; sudo -E tshark -i lo -s 65535 -a duration:' + str(timeout_cmd-10)+ ' -w ' + logfile_pcap_tmp_eNB+ ' ; sudo -E chown ' + user + ' ' + logfile_pcap_tmp_eNB + ' ; zip -j -9 ' + logfile_pcap_zip_eNB + ' ' + logfile_pcap_tmp_eNB + ' ) > ' + logfile_tshark_eNB + ' 2>&1 & \n ' task_eNB = task_eNB + 'array_exec_pid+=($!) \n' task_eNB = task_eNB + 'echo eNB_tshark_exec PID = $! \n' #terminate the eNB test case after timeout_cmd seconds @@ -1005,7 +1005,14 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , run_result_string = ' RUN_'+str(run) + ' = PASS' else: run_result_string = ' RUN_'+str(run) + ' = FAIL' - + + #If there is assertion, we mark the test case as failure as most likely eNB crashed + cmd = "grep -ilr \"assertion\" " + logdir_local_testcase + " | cat " + cmd_out = subprocess.check_output ([cmd], shell=True) + if not cmd_out: + run_result=0 + run_result_string = ' RUN_'+str(run) + ' = FAIL(Assert)' + run_result_string = run_result_string + tput_run_string test_result=test_result & run_result From 94a111a4b254b0371ab5ab678c8c6ad528c9f508 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Fri, 8 Jul 2016 16:28:04 +0200 Subject: [PATCH 72/84] Gitlab CI: minor fix for log checkking on local disk and not NFS share --- .gitlab-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d35de04b12..0bb6d164ed 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,8 +32,8 @@ job1: - sshpass -p "$OAI_PASS" rsync -az -e "ssh -o StrictHostKeyChecking=no " --rsync-path="mkdir -p $NFS_TEST_RESULTS_DIR && rsync" $OPENAIR_DIR/cmake_targets/autotests/log $OAI_USER@localhost:$NFS_TEST_RESULTS_DIR - sshpass -p "$OAI_PASS" rsync -az -e "ssh -o StrictHostKeyChecking=no " --rsync-path="mkdir -p $EXTERNAL_SHARE_DIR && rsync" $OPENAIR_DIR/cmake_targets/autotests/log $OAI_USER@localhost:$EXTERNAL_SHARE_DIR - cat $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml - - exce_log=`egrep -i 'warning|error|critical|exception' $NFS_TEST_RESULTS_DIR/log/python_autotest.log ` - - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest.log. Please check the logs\e[0m" ; fi - - exce_log=`egrep -i 'warning|error|critical|exception' $NFS_TEST_RESULTS_DIR/log/python_autotest_cleanup.log ` - - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest_cleanup.log. Please check the logs\e[0m" ; fi + - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log ` + - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log. Please check the logs\e[0m" ; fi + - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log ` + - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log. Please check the logs\e[0m" ; fi From e2fbe8be31057e8a4dbbc3b7e7b41f3995277314 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Fri, 8 Jul 2016 17:21:26 +0200 Subject: [PATCH 73/84] Gitlab CI: minor logging related to thread busy errors --- cmake_targets/autotests/run_exec_lte-softmodem_tests.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py index 19af648fbd..f7b09598d1 100755 --- a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py +++ b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py @@ -1013,6 +1013,13 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , run_result=0 run_result_string = ' RUN_'+str(run) + ' = FAIL(Assert)' + #If there is thread busy error, we mark the test case as failure as most likely eNB crashed + cmd = "grep -ilr \"thread busy\" " + logdir_local_testcase + " | cat " + cmd_out = subprocess.check_output ([cmd], shell=True) + if not cmd_out: + run_result=0 + run_result_string = ' RUN_'+str(run) + ' = FAIL(Thread_Busy)' + run_result_string = run_result_string + tput_run_string test_result=test_result & run_result From 5220b7b63c945ade5b5161192a8e7ee515ecc40f Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 10 Jul 2016 21:22:40 +0200 Subject: [PATCH 74/84] Gitlab CI: hotfixes for test setup --- .gitlab-ci.yml | 4 ++-- cmake_targets/autotests/run_exec_lte-softmodem_tests.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0bb6d164ed..0931a928a0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,8 +32,8 @@ job1: - sshpass -p "$OAI_PASS" rsync -az -e "ssh -o StrictHostKeyChecking=no " --rsync-path="mkdir -p $NFS_TEST_RESULTS_DIR && rsync" $OPENAIR_DIR/cmake_targets/autotests/log $OAI_USER@localhost:$NFS_TEST_RESULTS_DIR - sshpass -p "$OAI_PASS" rsync -az -e "ssh -o StrictHostKeyChecking=no " --rsync-path="mkdir -p $EXTERNAL_SHARE_DIR && rsync" $OPENAIR_DIR/cmake_targets/autotests/log $OAI_USER@localhost:$EXTERNAL_SHARE_DIR - cat $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml - - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log ` + - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log |cat ` - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log. Please check the logs\e[0m" ; fi - - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log ` + - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log |cat ` - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log. Please check the logs\e[0m" ; fi diff --git a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py index f7b09598d1..b25bc08427 100755 --- a/cmake_targets/autotests/run_exec_lte-softmodem_tests.py +++ b/cmake_targets/autotests/run_exec_lte-softmodem_tests.py @@ -1009,14 +1009,14 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo , #If there is assertion, we mark the test case as failure as most likely eNB crashed cmd = "grep -ilr \"assertion\" " + logdir_local_testcase + " | cat " cmd_out = subprocess.check_output ([cmd], shell=True) - if not cmd_out: + if len(cmd_out) !=0 : run_result=0 run_result_string = ' RUN_'+str(run) + ' = FAIL(Assert)' #If there is thread busy error, we mark the test case as failure as most likely eNB crashed cmd = "grep -ilr \"thread busy\" " + logdir_local_testcase + " | cat " cmd_out = subprocess.check_output ([cmd], shell=True) - if not cmd_out: + if len(cmd_out) !=0: run_result=0 run_result_string = ' RUN_'+str(run) + ' = FAIL(Thread_Busy)' From 162874c7ce1748cdb4fc27f62354b98900ed9443 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 11 Jul 2016 02:27:17 +0200 Subject: [PATCH 75/84] Gitlab CI: minor fix for UDP overflow by reducing UDP max throughput --- cmake_targets/autotests/test_case_list.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index b7d12d25ef..c2aae5f88f 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -1194,7 +1194,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 17M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 16M -R False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1287,7 +1287,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False @@ -3142,7 +3142,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 17M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 16M -R False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3233,7 +3233,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False @@ -6423,7 +6423,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 17Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 16Mbits/s -i 1 -f m -u False @@ -6497,7 +6497,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False From 111d9a9b2a38293c1285360fc02dd102f4b94020 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 11 Jul 2016 03:18:15 +0200 Subject: [PATCH 76/84] Gitlab CI: add tests for TCP throughput --- cmake_targets/autotests/README.txt | 67 +- cmake_targets/autotests/test_case_list.xml | 1377 +++++++++++++++++++- 2 files changed, 1389 insertions(+), 55 deletions(-) diff --git a/cmake_targets/autotests/README.txt b/cmake_targets/autotests/README.txt index b04d24c51a..31bf293a7b 100644 --- a/cmake_targets/autotests/README.txt +++ b/cmake_targets/autotests/README.txt @@ -100,18 +100,24 @@ Obj.# Case# Test# Description 01 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX, 2TX/2RX -01 55 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX -01 55 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX -01 55 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX -01 55 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX -01 55 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX -01 55 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX -01 55 06 Band 7 FDD 5MHz UL Throughput for 300 sec for 2TX/2RX -01 55 07 Band 7 FDD 10MHz UL Throughput for 300 sec for 2TX/2RX -01 55 08 Band 7 FDD 20MHz UL Throughput for 300 sec for 2TX/2RX -01 55 09 Band 7 FDD 5MHz DL Throughput for 300 sec for 2TX/2RX -01 55 10 Band 7 FDD 10MHz DL Throughput for 300 sec for 2TX/2RX -01 55 11 Band 7 FDD 20MHz DL Throughput for 300 sec for 2TX/2RX +01 55 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +01 55 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +01 55 02 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +01 55 03 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +01 55 04 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +01 55 05 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +01 55 06 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 2TX/2RX +01 55 07 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 2TX/2RX +01 55 08 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 2TX/2RX +01 55 09 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 2TX/2RX +01 55 10 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 2TX/2RX +01 55 11 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 2TX/2RX +01 55 12 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +01 55 13 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +01 55 14 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +01 55 15 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX +01 55 16 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX +01 55 17 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX 01 56 lte-softmodem tests with USRP B210 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE 01 56 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX @@ -130,12 +136,19 @@ Obj.# Case# Test# Description 01 57 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX 01 58 lte-softmodem tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for `TX/1RX, 2TX/2RX -01 58 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX -01 58 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX -01 58 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX -01 58 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX -01 58 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX -01 58 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX +01 58 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +01 58 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +01 58 02 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +01 58 03 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +01 58 04 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +01 58 05 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +01 58 06 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +01 58 07 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +01 58 08 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +01 58 09 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX +01 58 10 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX +01 58 11 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX + 01 59 lte-softmodem tests with USRP X310 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE @@ -208,12 +221,18 @@ Obj.# Case# Test# Description 01 85 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX 02 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Sony Experia M4 COTS UE for TX/1RX -02 55 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX -02 55 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX -02 55 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX -02 55 03 Band 7 FDD 5MHz DL Throughput for 300 sec for 1TX/1RX -02 55 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX -02 55 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX +02 55 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +02 55 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +02 55 02 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX +02 55 03 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +02 55 04 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +02 55 05 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 1TX/1RX +02 55 06 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +02 55 07 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +02 55 08 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 1TX/1RX +02 55 09 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX +02 55 10 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX +02 55 11 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX 01 64 lte-softmodem-noS1 tests diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index b7d12d25ef..2fecd2b292 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -10,7 +10,7 @@ sudo -S -E /opt/ltebox/tools/stop_ltebox $OPENAIR_DIR/cmake_targets/build_oai -w EXMIMO -c; sudo -S -E $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py --reset-ue; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue; uname -a; sudo -E dmesg 36000 - 010141 0102+ 010304 010305 0104+ 015502 015505 015506 015507 015508 015509 015510 015511 015602 015605 015702 015705 015802 015805 016102 016105 016502 016505 017002 017005 017502 017505 018002 018005 018502 018505 025502 025505 + 010141 0102+ 010304 010305 0104+ 015502 015505 015506 015507 015508 015509 015510 015511 015514 015517 015602 015605 015702 015705 015802 015805 015808 015811 016102 016105 016502 016505 017002 017005 017502 017505 018002 018005 018502 018505 025502 025505 025508 025511 3 mozart tique stevens nano amerique @@ -996,7 +996,7 @@ throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPb210.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX + USRPb210.ALU_EPC.Bandrich.5MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -1071,7 +1071,7 @@ throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPb210.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX + USRPb210.ALU_EPC.Bandrich.10MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -1145,7 +1145,7 @@ throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPb210.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX + USRPb210.ALU_EPC.Bandrich.20MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -1194,7 +1194,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 17M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 16M -R False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1218,7 +1218,7 @@ False - USRPb210.ALU_EPC.Bandrich.5MHz.FDD.Band_7.DL.1TX.1RX + USRPb210.ALU_EPC.Bandrich.5MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 @@ -1287,11 +1287,11 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False - USRPb210.ALU_EPC.Bandrich.10MHz.FDD.Band_7.DL.1TX.1RX + USRPb210.ALU_EPC.Bandrich.10MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 @@ -1365,7 +1365,7 @@ False - USRPb210.ALU_EPC.Bandrich.20MHz.FDD.Band_7.DL.1TX.1RX + USRPb210.ALU_EPC.Bandrich.20MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 @@ -1440,7 +1440,7 @@ throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPb210.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.2TX.2RX + USRPb210.ALU_EPC.Bandrich.5MHz.FDD.UDP.Band_7.UL.2TX.2RX 10 @@ -1514,7 +1514,7 @@ throughput_test min=0.0Mbits/sec max=2.0Mbits/sec average=2.0Mbits/sec False - USRPb210.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.2TX.2RX + USRPb210.ALU_EPC.Bandrich.10MHz.FDD.UDP.Band_7.UL.2TX.2RX 10 @@ -1588,7 +1588,7 @@ throughput_test min=0.0Mbits/sec max=4.0Mbits/sec average=4.0Mbits/sec False - USRPb210.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.2TX.2RX + USRPb210.ALU_EPC.Bandrich.20MHz.FDD.UDP.Band_7.UL.2TX.2RX 10 @@ -1662,7 +1662,7 @@ False - USRPb210.ALU_EPC.Bandrich.5MHz.FDD.Band_7.DL.2TX.2RX + USRPb210.ALU_EPC.Bandrich.5MHz.FDD.UDP.Band_7.DL.2TX.2RX 10 @@ -1736,7 +1736,7 @@ False - USRPb210.ALU_EPC.Bandrich.10MHz.FDD.Band_7.DL.2TX.2RX + USRPb210.ALU_EPC.Bandrich.10MHz.FDD.UDP.Band_7.DL.2TX.2RX 10 @@ -1810,7 +1810,450 @@ False - USRPb210.ALU_EPC.Bandrich.20MHz.FDD.Band_7.DL.2TX.2RX + USRPb210.ALU_EPC.Bandrich.20MHz.FDD.UDP.Band_7.DL.2TX.2RX + 10 + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 25 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + + False + USRPb210.ALU_EPC.Bandrich.5MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 50 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + + False + USRPb210.ALU_EPC.Bandrich.10MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + lte-softmodem + + calisson + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 100 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + + False + USRPb210.ALU_EPC.Bandrich.20MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 25 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -f m -B 192.172.0.2 -R + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + + + False + USRPb210.ALU_EPC.Bandrich.5MHz.FDD.TCP.Band_7.DL.1TX.1RX + 10 + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 50 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -i 1 -f m + + + False + USRPb210.ALU_EPC.Bandrich.10MHz.FDD.TCP.Band_7.DL.1TX.1RX + 10 + + + + lte-softmodem + + calisson + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 100 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -B 192.172.0.2 + + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 60 lo -c 192.172.0.2 + + + False + USRPb210.ALU_EPC.Bandrich.20MHz.FDD.TCP.Band_7.DL.1TX.1RX 10 @@ -2951,7 +3394,7 @@ c throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPx310.ALU_EPC.Bandrich.5MHz.FDD.Band_7.UL.1TX.1RX + USRPx310.ALU_EPC.Bandrich.5MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -3023,7 +3466,7 @@ c throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPx310.ALU_EPC.Bandrich.10MHz.FDD.Band_7.UL.1TX.1RX + USRPx310.ALU_EPC.Bandrich.10MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -3095,7 +3538,7 @@ c throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPx310.ALU_EPC.Bandrich.20MHz.FDD.Band_7.UL.1TX.1RX + USRPx310.ALU_EPC.Bandrich.20MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -3142,7 +3585,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 17M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 16M -R False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3166,7 +3609,7 @@ c False - USRPx310.ALU_EPC.Bandrich.5MHz.FDD.Band_7.DL.1TX.1RX + USRPx310.ALU_EPC.Bandrich.5MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 @@ -3233,11 +3676,11 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False - USRPx310.ALU_EPC.Bandrich.10MHz.FDD.Band_7.DL.1TX.1RX + USRPx310.ALU_EPC.Bandrich.10MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 @@ -3308,10 +3751,437 @@ c False - USRPx310.ALU_EPC.Bandrich.20MHz.FDD.Band_7.DL.1TX.1RX + USRPx310.ALU_EPC.Bandrich.20MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 + + lte-softmodem + + mozart + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf N_RB_DL 25 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1U \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf + + + + + False + + /tmp + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + + False + USRPx310.ALU_EPC.Bandrich.5MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + + lte-softmodem + + mozart + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf N_RB_DL 50 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1U \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf + + + + + False + + /tmp + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + + False + USRPx310.ALU_EPC.Bandrich.10MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + lte-softmodem + + mozart + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf N_RB_DL 100 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1U \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + + False + USRPx310.ALU_EPC.Bandrich.20MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + lte-softmodem + + mozart + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf N_RB_DL 25 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1U \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -f m -B 192.172.0.2 -R + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + + + False + USRPx310.ALU_EPC.Bandrich.5MHz.FDD.TCP.Band_7.DL.1TX.1RX + 10 + + + + lte-softmodem + + mozart + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf N_RB_DL 50 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1U \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail + sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -i 1 -f m + + + False + USRPx310.ALU_EPC.Bandrich.10MHz.FDD.TCP.Band_7.DL.1TX.1RX + 10 + + + + lte-softmodem + + mozart + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf N_RB_DL 100 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_INTERFACE_NAME_FOR_S1U \"eth6\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.111/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_usrpb210.py --stop-usrpb210 ; $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E -S /usr/local/bin/niusrprio_pcie start ; dmesg|tail + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -B 192.172.0.2 + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue + throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 + + + False + USRPx310.ALU_EPC.Bandrich.20MHz.FDD.TCP.Band_7.DL.1TX.1RX + 10 + @@ -6204,7 +7074,7 @@ c throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=5.0Mbits/sec False - USRPb210.ALU_EPC.SonyExperiaM4.5MHz.FDD.Band_7.UL.1TX.1RX + USRPb210.ALU_EPC.SonyExperiaM4.5MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -6279,7 +7149,7 @@ c throughput_test min=00.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec False - USRPb210.ALU_EPC.SonyExperiaM4.10MHz.FDD.Band_7.UL.1TX.1RX + USRPb210.ALU_EPC.SonyExperiaM4.10MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -6353,7 +7223,7 @@ c throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec False - USRPb210.ALU_EPC.SonyExperiaM4.20MHz.FDD.Band_7.UL.1TX.1RX + USRPb210.ALU_EPC.SonyExperiaM4.20MHz.FDD.UDP.Band_7.UL.1TX.1RX 10 @@ -6423,11 +7293,11 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 17Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 16Mbits/s -i 1 -f m -u False - USRPb210.ALU_EPC.SonyExperiaM4.5MHz.FDD.Band_7.DL.1TX.1RX + USRPb210.ALU_EPC.SonyExperiaM4.5MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 @@ -6497,11 +7367,11 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 34Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False - USRPb210.ALU_EPC.SonyExperiaM4.10MHz.FDD.Band_7.DL.1TX.1RX + USRPb210.ALU_EPC.SonyExperiaM4.10MHz.FDD.UDP.Band_7.DL.1TX.1RX 10 @@ -6575,7 +7445,452 @@ c False - USRPb210.ALU_EPC.SonyExperiaM4.20MHz.FDD.Band_7.DL.1TX.1RX + USRPb210.ALU_EPC.SonyExperiaM4.20MHz.FDD.UDP.Band_7.DL.1TX.1RX + 10 + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 25 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + sleep 50; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue ; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=5.0Mbits/sec + + False + USRPb210.ALU_EPC.SonyExperiaM4.5MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 50 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + sleep 50; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue ; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=00.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec + + False + USRPb210.ALU_EPC.SonyExperiaM4.10MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + lte-softmodem + + calisson + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 100 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + sleep 50; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue ; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -c 192.172.0.1 -B 192.172.0.2 + + + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 5 lo -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=1.0Mbits/sec average=1.0Mbits/sec + + False + USRPb210.ALU_EPC.SonyExperiaM4.20MHz.FDD.TCP.Band_7.UL.1TX.1RX + 10 + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 25 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + sleep 50; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue ; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -i 1 -f m + + + False + USRPb210.ALU_EPC.SonyExperiaM4.5MHz.FDD.TCP.Band_7.DL.1TX.1RX + 10 + + + + lte-softmodem + + tique + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 50 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.147/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + sleep 50; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue ; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -s -i 1 -f m + + throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -i 1 -f m + + + False + USRPb210.ALU_EPC.SonyExperiaM4.10MHz.FDD.TCP.Band_7.DL.1TX.1RX + 10 + + + + lte-softmodem + + calisson + stevens + amerique + 390 + /tmp + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tracking_area_code \"1\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_country_code \"208\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mobile_network_code \"92\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf N_RB_DL 100 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1 + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth5\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1U \"192.168.12.82/24\" + targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_PORT_FOR_S1U 2152 + $OPENAIR_DIR/cmake_targets/build_oai + --eNB -w USRP -x -c + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem + -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf + + + + + False + + /tmp + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + sleep 50; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue ; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --start-ue + + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script_phone 1 YT9115PX1E -s -i 1 -f m + + throughput_test min=00.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec + + False + sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue + + + /tmp + + + + + + + $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash + + /opt/ltebox/tools/stop_ltebox ; /opt/ltebox/tools/start_ltebox ; sleep 3000 + + /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 + + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -i 1 -f m + + + False + USRPb210.ALU_EPC.SonyExperiaM4.20MHz.TCP.FDD.Band_7.DL.1TX.1RX 10 From d48c336934d3845ca49d69c3b77b0a4a4b71bb5c Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Mon, 11 Jul 2016 12:47:31 +0200 Subject: [PATCH 77/84] hotfix: better management of s-tmsi reconnect The code was changing the rnti in the red-black tree without removing/reinserting the context. This is wrong because the rnti is a key of the red-black tree and you cannot change the key in a stored item at will. There are also modifications of the function mac_eNB_rrc_ul_failure which has to remove the UE in any case. And rrc_mac_remove_ue has been changed for the case where the UE is not found. --- .../LAYER2/MAC/eNB_scheduler_primitives.c | 6 ++++++ openair2/RRC/LITE/L2_interface.c | 13 ++++++------ openair2/RRC/LITE/rrc_eNB.c | 21 ++++++++++++++++--- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 80a1dbc76a..bb9e7b3d30 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -298,6 +298,12 @@ int rrc_mac_remove_ue(module_id_t mod_idP,rnti_t rntiP) int UE_id = find_UE_id(mod_idP,rntiP); int pCC_id = UE_PCCID(mod_idP,UE_id); + if (UE_id == -1) { + LOG_W(MAC,"rrc_mac_remove_ue: UE %x not found\n", rntiP); + mac_phy_remove_ue(mod_idP,rntiP); + return 0; + } + LOG_I(MAC,"Removing UE %d from Primary CC_id %d (rnti %x)\n",UE_id,pCC_id, rntiP); dump_ue_list(UE_list,0); diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c index a28f2b1894..d4ddd0e7ab 100644 --- a/openair2/RRC/LITE/L2_interface.c +++ b/openair2/RRC/LITE/L2_interface.c @@ -719,12 +719,12 @@ mac_eNB_get_rrc_status( } } -void mac_eNB_rrc_ul_failure(const module_id_t Mod_instP, - const int CC_idP, +void mac_eNB_rrc_ul_failure(const module_id_t Mod_instP, + const int CC_idP, const frame_t frameP, const sub_frame_t subframeP, - const rnti_t rntiP) { - + const rnti_t rntiP) +{ struct rrc_eNB_ue_context_s* ue_context_p = NULL; ue_context_p = rrc_eNB_get_ue_context( &eNB_rrc_inst[Mod_instP], @@ -735,10 +735,9 @@ void mac_eNB_rrc_ul_failure(const module_id_t Mod_instP, ue_context_p->ue_context.ul_failure_timer=1; } else { - LOG_W(RRC,"Frame %d, Subframe %d: UE %x unknown \n",frameP,subframeP,rntiP); - rrc_mac_remove_ue(Mod_instP,rntiP); + LOG_W(RRC,"Frame %d, Subframe %d: UL failure: UE %x unknown \n",frameP,subframeP,rntiP); } - + rrc_mac_remove_ue(Mod_instP,rntiP); } void mac_eNB_rrc_ul_in_sync(const module_id_t Mod_instP, diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index c85e61a0a4..2828209d62 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -3790,14 +3790,29 @@ rrc_eNB_decode_ccch( //#warning "TODO: stmsi_exist: remove UE from MAC/PHY (how?)" LOG_I(RRC," S-TMSI exists, ue_context_p %p\n",ue_context_p); stmsi_received=1; + /* replace rnti in the context */ + /* for that, remove the context from the RB tree */ + RB_REMOVE(rrc_ue_tree_s, &eNB_rrc_inst[ctxt_pP->module_id].rrc_ue_head, ue_context_p); + /* and insert again, after changing rnti everywhere it has to be changed */ + ue_context_p->ue_id_rnti = ctxt_pP->rnti; ue_context_p->ue_context.rnti = ctxt_pP->rnti; + RB_INSERT(rrc_ue_tree_s, &eNB_rrc_inst[ctxt_pP->module_id].rrc_ue_head, ue_context_p); + /* reset timers */ + ue_context_p->ue_context.ul_failure_timer = 0; + ue_context_p->ue_context.ue_release_timer = 0; // AssertFatal(0 == 1, "TODO: remove UE from MAC/PHY (how?)"); // ue_context_p = NULL; } else { ue_context_p = rrc_eNB_get_next_free_ue_context(ctxt_pP, NOT_A_RANDOM_UE_IDENTITY); - ue_context_p->ue_context.Initialue_identity_s_TMSI.presence = TRUE; - ue_context_p->ue_context.Initialue_identity_s_TMSI.mme_code = mme_code; - ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi = m_tmsi; + if (ue_context_p == NULL) + LOG_E(RRC, "%s:%d:%s: rrc_eNB_get_next_free_ue_context returned NULL\n", __FILE__, __LINE__, __FUNCTION__); + if (ue_context_p != NULL) { + ue_context_p->ue_context.Initialue_identity_s_TMSI.presence = TRUE; + ue_context_p->ue_context.Initialue_identity_s_TMSI.mme_code = mme_code; + ue_context_p->ue_context.Initialue_identity_s_TMSI.m_tmsi = m_tmsi; + } else { + break; + } } MSC_LOG_RX_MESSAGE( From eb6edbd7ed50f363fdc4ffb36d5a245d19152ff7 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 11 Jul 2016 21:38:27 +0200 Subject: [PATCH 78/84] minor fix for Gitlab startup script --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0931a928a0..ae57a56e36 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,7 +33,7 @@ job1: - sshpass -p "$OAI_PASS" rsync -az -e "ssh -o StrictHostKeyChecking=no " --rsync-path="mkdir -p $EXTERNAL_SHARE_DIR && rsync" $OPENAIR_DIR/cmake_targets/autotests/log $OAI_USER@localhost:$EXTERNAL_SHARE_DIR - cat $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log |cat ` - - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log. Please check the logs\e[0m" ; fi + - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest.log. Please check the logs\e[0m" ; fi - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log |cat ` - - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log. Please check the logs\e[0m" ; fi + - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest_cleanup.log. Please check the logs\e[0m" ; fi From b1dde78f87ae275aebaac38fad229d1ce70bd8aa Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Tue, 12 Jul 2016 16:00:14 +0200 Subject: [PATCH 79/84] use official openair logo in enb.c --- common/utils/T/tracer/openair_logo.h | 975 +++++++++++++++---------- common/utils/T/tracer/openair_logo.png | Bin 4664 -> 7026 bytes 2 files changed, 586 insertions(+), 389 deletions(-) diff --git a/common/utils/T/tracer/openair_logo.h b/common/utils/T/tracer/openair_logo.h index 4a98c3d871..4fc49cce3a 100644 --- a/common/utils/T/tracer/openair_logo.h +++ b/common/utils/T/tracer/openair_logo.h @@ -3,393 +3,590 @@ */ unsigned char openair_logo_png[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x28, - 0x08, 0x06, 0x00, 0x00, 0x00, 0x08, 0x78, 0x5f, 0x43, 0x00, 0x00, 0x00, - 0x06, 0x62, 0x4b, 0x47, 0x44, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xa0, - 0xbd, 0xa7, 0x93, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, - 0x00, 0x0b, 0x13, 0x00, 0x00, 0x0b, 0x13, 0x01, 0x00, 0x9a, 0x9c, 0x18, - 0x00, 0x00, 0x00, 0x07, 0x74, 0x49, 0x4d, 0x45, 0x07, 0xe0, 0x05, 0x17, - 0x0e, 0x30, 0x2a, 0xd1, 0xdd, 0x83, 0x5b, 0x00, 0x00, 0x11, 0xc5, 0x49, - 0x44, 0x41, 0x54, 0x68, 0xde, 0xed, 0x9b, 0x79, 0x70, 0x94, 0xe7, 0x7d, - 0xc7, 0x3f, 0xcf, 0xf3, 0xbe, 0xbb, 0x2b, 0xed, 0xea, 0xbe, 0xef, 0x03, - 0x24, 0x10, 0x08, 0x8c, 0xb9, 0x31, 0x06, 0x73, 0xd4, 0xd8, 0x4e, 0x38, - 0x62, 0x63, 0x77, 0x92, 0x90, 0xcb, 0x9d, 0x34, 0x19, 0x27, 0xce, 0xa4, - 0xed, 0x8c, 0xd3, 0x78, 0xd2, 0x64, 0xd2, 0x36, 0x9d, 0x34, 0xa9, 0xdb, - 0xa6, 0x99, 0xb6, 0x49, 0x67, 0x82, 0xe3, 0x24, 0x76, 0x9a, 0x34, 0x76, - 0x5c, 0x1f, 0x18, 0x8f, 0x31, 0xc4, 0xc6, 0x06, 0xcc, 0x69, 0x21, 0xb0, - 0x05, 0x08, 0x1d, 0x80, 0x2e, 0x74, 0xae, 0xa4, 0xbd, 0xb4, 0xbb, 0xef, - 0xfb, 0x3c, 0xfd, 0x63, 0x57, 0x2b, 0xd6, 0x12, 0x58, 0x60, 0x32, 0x74, - 0xb0, 0x9f, 0x99, 0x1d, 0x69, 0x9f, 0xe7, 0xf9, 0x3d, 0xd7, 0xf7, 0x77, - 0x3f, 0xcf, 0x0a, 0xad, 0xb5, 0xe6, 0x43, 0x5a, 0x94, 0xd6, 0xf4, 0x07, - 0xc3, 0xf8, 0xa3, 0x51, 0x3a, 0x47, 0xfc, 0xf4, 0x05, 0x82, 0x0c, 0xf8, - 0x43, 0x98, 0x52, 0x50, 0xec, 0x49, 0xa5, 0x38, 0xdd, 0x4d, 0x71, 0xba, - 0x87, 0x34, 0x97, 0x93, 0x74, 0x97, 0x13, 0x21, 0xc4, 0x1f, 0x7d, 0x4d, - 0xe2, 0xc3, 0x0a, 0xc8, 0xde, 0xce, 0x3e, 0xde, 0xea, 0x1e, 0x60, 0x45, - 0x51, 0x2e, 0x45, 0x9e, 0x14, 0x72, 0x52, 0x9c, 0xa4, 0x3b, 0x1d, 0x38, - 0x0d, 0x03, 0x04, 0x44, 0x6d, 0x9b, 0x50, 0xc4, 0xc2, 0x1f, 0x8e, 0x30, - 0x1c, 0x0a, 0xd1, 0xed, 0x1d, 0xa1, 0x36, 0x3f, 0x97, 0x19, 0x05, 0xb9, - 0x1f, 0x01, 0x72, 0x3d, 0xcb, 0x68, 0x24, 0xca, 0x7f, 0x34, 0xb6, 0x30, - 0x37, 0x27, 0x83, 0x7b, 0x67, 0x96, 0x5e, 0x15, 0x6d, 0x63, 0x47, 0x0f, - 0x03, 0x23, 0x3e, 0x6e, 0x9f, 0x5d, 0x4d, 0x8a, 0xc3, 0xf1, 0x11, 0x20, - 0x1f, 0xb4, 0xbc, 0x7c, 0xbe, 0x97, 0x0e, 0x9f, 0x9f, 0x7b, 0x67, 0x94, - 0x51, 0xe0, 0x76, 0x5d, 0xd3, 0x18, 0xc1, 0x48, 0x84, 0x53, 0x1d, 0xdd, - 0xe4, 0x78, 0xdc, 0x54, 0x17, 0x15, 0x7c, 0x04, 0xc8, 0xb5, 0x96, 0x86, - 0xfe, 0x61, 0x0e, 0x5c, 0x1c, 0xe4, 0xe1, 0xf9, 0x33, 0xaf, 0xcb, 0x78, - 0xa7, 0x2e, 0x74, 0x91, 0x9b, 0x91, 0x46, 0x41, 0x56, 0xe6, 0x75, 0x5d, - 0xa7, 0xfc, 0x30, 0x80, 0xb1, 0xaf, 0x67, 0x90, 0x97, 0xcf, 0xf7, 0x4d, - 0x0b, 0x8c, 0xd1, 0x70, 0x04, 0x7f, 0x38, 0xfa, 0xbe, 0xfd, 0xe6, 0x54, - 0x94, 0xd2, 0x33, 0xe8, 0x65, 0x60, 0x78, 0xe4, 0xba, 0xae, 0xd5, 0xbc, - 0xd9, 0xc1, 0x08, 0x5a, 0x36, 0xfb, 0x7b, 0x86, 0xf8, 0xd6, 0x92, 0x59, - 0x97, 0xed, 0xd3, 0xe1, 0x0b, 0xf2, 0xf8, 0x89, 0xb3, 0x48, 0x65, 0x33, - 0x33, 0xc3, 0x83, 0x43, 0x08, 0x46, 0x82, 0x21, 0xd2, 0x1d, 0x06, 0x1b, - 0xea, 0x66, 0x90, 0xeb, 0x71, 0x4f, 0x49, 0xb7, 0x60, 0x66, 0x15, 0x0d, - 0x67, 0x5a, 0xc8, 0xf0, 0xb8, 0x71, 0x5e, 0x27, 0x9b, 0x72, 0xd3, 0xab, - 0xac, 0x7f, 0x6a, 0x38, 0xcb, 0xa6, 0xaa, 0x22, 0xe6, 0x66, 0xa7, 0x4f, - 0x6a, 0x3b, 0x37, 0x1a, 0x64, 0xe7, 0xb9, 0x6e, 0xb2, 0x9d, 0x0e, 0xb6, - 0xd6, 0x96, 0xe3, 0x32, 0x92, 0x15, 0x86, 0x65, 0x2b, 0x1a, 0x3b, 0xba, - 0x51, 0xb6, 0xa2, 0xb6, 0x28, 0x8f, 0xac, 0x29, 0x80, 0x09, 0x85, 0xc3, - 0xf4, 0x0d, 0x0e, 0x53, 0x59, 0x52, 0xf8, 0x91, 0x84, 0xbc, 0x5f, 0x79, - 0x77, 0xc8, 0x87, 0x37, 0x6c, 0x4d, 0x09, 0x46, 0x87, 0x2f, 0xc4, 0x4f, - 0xdf, 0x69, 0xe3, 0x6f, 0x97, 0xcd, 0x21, 0xd5, 0x34, 0xa6, 0x3e, 0x1c, - 0x43, 0xb2, 0xb8, 0xaa, 0x8c, 0xa8, 0x6d, 0xd3, 0xd8, 0x7a, 0x9e, 0xb9, - 0x95, 0xa5, 0xb8, 0x5d, 0xc9, 0xce, 0x40, 0xaa, 0xcb, 0xc5, 0xa8, 0xdf, - 0x8f, 0x52, 0xf9, 0x48, 0x79, 0x1d, 0x2c, 0x80, 0xbe, 0x89, 0xcb, 0x5f, - 0xee, 0x3b, 0xa9, 0xb5, 0x9a, 0x5c, 0xdf, 0x1f, 0x0a, 0xeb, 0x07, 0x77, - 0x1f, 0x9b, 0x54, 0xef, 0x1d, 0x0b, 0xeb, 0xd6, 0xa1, 0x11, 0x7d, 0xde, - 0x3b, 0xaa, 0xfd, 0xe1, 0x48, 0x52, 0x9b, 0xd2, 0x4a, 0xbf, 0x71, 0xfc, - 0x1d, 0x1d, 0x89, 0x46, 0x27, 0xd1, 0x05, 0x82, 0x21, 0x7d, 0xa6, 0xa5, - 0xed, 0xba, 0xac, 0xf9, 0xa6, 0x95, 0x90, 0xd1, 0x88, 0x45, 0x65, 0x7a, - 0x2a, 0x4c, 0x11, 0x5c, 0x3f, 0xdd, 0xd2, 0xc5, 0xbf, 0xae, 0x9a, 0x9f, - 0x54, 0xf7, 0xc3, 0xa3, 0xa7, 0x29, 0x48, 0x71, 0xb0, 0xa2, 0x30, 0x07, - 0x5b, 0xc0, 0xa1, 0xf6, 0x0e, 0xa4, 0xb2, 0x59, 0x3b, 0xa7, 0x36, 0xa6, - 0xdb, 0x11, 0xac, 0x9c, 0x3f, 0x87, 0xd3, 0xed, 0xe7, 0xa9, 0x9f, 0x59, - 0x9d, 0x44, 0xeb, 0x4e, 0x4d, 0x21, 0x1c, 0x8d, 0x60, 0xdb, 0x0a, 0xc3, - 0x90, 0xfc, 0x67, 0x63, 0x1b, 0xbf, 0x69, 0xef, 0x27, 0x64, 0xab, 0xd8, - 0xf4, 0xd2, 0x60, 0xd7, 0xc7, 0x17, 0x91, 0xe3, 0x8a, 0x1d, 0xf7, 0xe3, - 0xef, 0x9c, 0xe3, 0x17, 0x67, 0x7b, 0xc9, 0x4e, 0x75, 0xf1, 0xcd, 0x85, - 0xd5, 0xdc, 0x5e, 0x98, 0x79, 0xf3, 0xab, 0xac, 0xe1, 0x48, 0x74, 0x4a, - 0x55, 0x15, 0xb2, 0x6d, 0xbc, 0x91, 0x28, 0xd9, 0xae, 0x09, 0x23, 0xfc, - 0x58, 0x43, 0x33, 0x9b, 0x67, 0x94, 0x32, 0x37, 0x67, 0xa2, 0x7f, 0x6d, - 0x5e, 0x36, 0x43, 0xfe, 0x20, 0x0d, 0x2d, 0xed, 0x2c, 0xac, 0x89, 0x01, - 0x60, 0x48, 0x49, 0xa6, 0xc7, 0x43, 0x24, 0x1a, 0x9d, 0x64, 0xc4, 0x0b, - 0x72, 0x73, 0x09, 0x04, 0x83, 0x64, 0xa4, 0xa7, 0xd1, 0x36, 0x1a, 0xa4, - 0x69, 0x38, 0xcc, 0x33, 0x1b, 0xea, 0x09, 0x5a, 0x0a, 0x1b, 0xf0, 0x98, - 0x12, 0xb4, 0x66, 0xcb, 0x8b, 0x87, 0x79, 0x7b, 0x34, 0xc2, 0xf7, 0x97, - 0xd5, 0xd0, 0x33, 0xea, 0xe7, 0xae, 0x17, 0x8e, 0xf0, 0xe4, 0x5d, 0x8b, - 0xd8, 0x5a, 0x99, 0x73, 0x73, 0x03, 0x32, 0x12, 0x89, 0x92, 0xee, 0x9c, - 0xbc, 0xbd, 0x5f, 0x9e, 0xee, 0x60, 0x55, 0xf1, 0x44, 0xfa, 0xe3, 0xdf, - 0x1a, 0x5b, 0x59, 0x92, 0x9f, 0x93, 0x04, 0xc6, 0x78, 0xc9, 0x49, 0x73, - 0x13, 0xcc, 0x48, 0xa7, 0x7f, 0xc8, 0x4b, 0x7e, 0x4e, 0x36, 0x00, 0x69, - 0xee, 0x54, 0x02, 0x81, 0x20, 0xce, 0xf7, 0xc4, 0x1f, 0x99, 0xe9, 0xe9, - 0xf8, 0xfc, 0x7e, 0x74, 0x9a, 0x07, 0x7f, 0xd4, 0x26, 0xc3, 0x65, 0x72, - 0xbc, 0x6f, 0x04, 0xbf, 0xd2, 0x3c, 0x30, 0xa3, 0x18, 0x97, 0x21, 0x19, - 0x0c, 0x8e, 0x71, 0xc6, 0x1f, 0x66, 0x43, 0x65, 0x11, 0x9f, 0x9f, 0x55, - 0x0c, 0xc0, 0x17, 0xeb, 0x2b, 0x89, 0xe8, 0x0f, 0x41, 0x1c, 0xd2, 0x13, - 0x1c, 0x23, 0x63, 0x0a, 0x57, 0xf4, 0xe5, 0x0b, 0xbd, 0xdc, 0x56, 0x18, - 0xe3, 0x46, 0x0d, 0x1c, 0xe9, 0x1f, 0x66, 0x5d, 0x59, 0x5e, 0xcc, 0xab, - 0xd2, 0x9a, 0xed, 0xa7, 0x3a, 0xd9, 0x7e, 0xaa, 0x13, 0x3b, 0xee, 0x7c, - 0x96, 0x15, 0xe4, 0xd1, 0x76, 0xa1, 0x73, 0xc2, 0x88, 0xa7, 0xb8, 0x18, - 0x1e, 0xf5, 0x4d, 0x0e, 0xe8, 0x0c, 0x09, 0x08, 0x34, 0x10, 0x88, 0x5a, - 0x78, 0x43, 0x21, 0x5e, 0xec, 0x18, 0x62, 0x5f, 0xe7, 0x20, 0x8b, 0x9f, - 0x39, 0xc0, 0x6f, 0xdb, 0x07, 0x70, 0x4a, 0x81, 0x00, 0x0c, 0x21, 0xe8, - 0x1d, 0xf1, 0xb1, 0xf8, 0x99, 0xb7, 0xd8, 0xb8, 0xf3, 0x18, 0x47, 0x07, - 0xfc, 0x37, 0x3f, 0x20, 0x1e, 0xc3, 0x24, 0xcb, 0x35, 0x19, 0x90, 0xd9, - 0x59, 0x69, 0x38, 0xa4, 0x48, 0xe4, 0xb5, 0xee, 0xad, 0x2e, 0x4e, 0xb4, - 0xf5, 0x06, 0x23, 0xbc, 0x70, 0xae, 0x8f, 0x1d, 0xe7, 0xfb, 0x39, 0xed, - 0x0d, 0x24, 0xea, 0x73, 0x33, 0x33, 0x12, 0xff, 0x3b, 0x4c, 0x13, 0xa7, - 0x39, 0x59, 0xf2, 0xa4, 0x90, 0x38, 0x1c, 0x26, 0x42, 0x08, 0xfe, 0xe2, - 0xd6, 0x99, 0xfc, 0x6e, 0xc3, 0xad, 0xbc, 0xb6, 0x65, 0x09, 0xbb, 0x3e, - 0xb1, 0x8c, 0xfb, 0xcb, 0xb3, 0xf8, 0x61, 0xc3, 0xb9, 0x84, 0x37, 0x27, - 0x80, 0x5c, 0x4f, 0x2a, 0xdf, 0x5e, 0x3c, 0x83, 0x40, 0x34, 0xca, 0xf6, - 0xa6, 0xee, 0x9b, 0xdf, 0x86, 0xdc, 0x5e, 0x9c, 0x33, 0x75, 0x5c, 0x72, - 0x5b, 0xfd, 0x84, 0x9a, 0x71, 0x3a, 0xf8, 0xd3, 0x99, 0x25, 0x89, 0xef, - 0xa5, 0x1e, 0x17, 0x2f, 0x7c, 0x6c, 0xd1, 0x24, 0x9a, 0x9a, 0xea, 0xca, - 0x89, 0x83, 0x97, 0x92, 0xd2, 0x92, 0xa2, 0xc9, 0x2e, 0xb2, 0x69, 0x90, - 0x95, 0x99, 0x81, 0xd2, 0x9a, 0x1d, 0x6d, 0x17, 0x39, 0xe8, 0x0d, 0xb1, - 0xa1, 0x2c, 0x17, 0x8d, 0x26, 0x60, 0xd9, 0xb8, 0x1d, 0x4e, 0x24, 0x60, - 0x4a, 0xc1, 0xc5, 0xe0, 0x18, 0xd2, 0x30, 0x59, 0x5d, 0x94, 0x85, 0x29, - 0x48, 0x30, 0xc8, 0xa4, 0xc0, 0x30, 0x14, 0x0a, 0xd2, 0xd1, 0xd1, 0x85, - 0xdf, 0xef, 0xc7, 0x30, 0x0c, 0x72, 0x73, 0x73, 0x28, 0x2b, 0x2b, 0x9b, - 0x34, 0x79, 0x67, 0x67, 0x27, 0x7d, 0x7d, 0x7d, 0xc9, 0x11, 0xa6, 0x10, - 0xa4, 0xa5, 0xa5, 0x51, 0x56, 0x56, 0x4e, 0x6a, 0x6a, 0xca, 0x24, 0x9a, - 0xf6, 0xf6, 0x76, 0xbc, 0x5e, 0xef, 0x94, 0x87, 0xa4, 0x94, 0xa2, 0xb8, - 0xb8, 0x98, 0xd2, 0xd2, 0x58, 0xf6, 0xb5, 0xbf, 0xbf, 0x9f, 0x8e, 0x8e, - 0x0e, 0x4a, 0x4b, 0x4b, 0x29, 0x2c, 0x2c, 0xbc, 0xd4, 0x45, 0xa7, 0xb9, - 0xb9, 0x99, 0x40, 0x20, 0x80, 0xd3, 0xe9, 0xa4, 0xbe, 0xbe, 0xfe, 0xaa, - 0xee, 0x28, 0x0e, 0x5c, 0x1c, 0xe6, 0xf8, 0xa0, 0x8f, 0x95, 0x85, 0x59, - 0xdc, 0x9a, 0x37, 0xd9, 0x66, 0x74, 0x07, 0xc2, 0x3c, 0xdd, 0x7a, 0x11, - 0x29, 0x04, 0x1b, 0xca, 0x73, 0xa9, 0xcb, 0xf2, 0x4c, 0xd0, 0x0d, 0x8c, - 0xa2, 0x92, 0x24, 0x42, 0x50, 0x90, 0xe2, 0x64, 0x79, 0x61, 0x26, 0xe5, - 0x69, 0xc9, 0xfb, 0x7d, 0x77, 0x60, 0x84, 0x47, 0xde, 0x3a, 0xc3, 0xbb, - 0xc3, 0x21, 0x9c, 0x02, 0x8a, 0xd3, 0xdd, 0xfc, 0xe4, 0x8e, 0x7a, 0xe6, - 0x67, 0xbb, 0xd9, 0xd1, 0xda, 0xc3, 0x3f, 0x34, 0xb4, 0x33, 0x10, 0xb6, - 0x89, 0xda, 0x36, 0x17, 0x02, 0x63, 0x6c, 0xa8, 0x28, 0x61, 0xd7, 0xc6, - 0x5b, 0x92, 0x25, 0xe4, 0xb5, 0xd7, 0x5e, 0xa7, 0xb1, 0xb1, 0x71, 0xd2, - 0x22, 0x0d, 0xc3, 0x60, 0xf3, 0xe6, 0x4d, 0x54, 0x55, 0x55, 0x01, 0xd0, - 0xd2, 0xd2, 0xca, 0x73, 0xcf, 0x3d, 0x87, 0x69, 0x5e, 0x5e, 0xb8, 0xe6, - 0xcd, 0x9b, 0xc7, 0x9d, 0x77, 0xfe, 0x49, 0xe2, 0xfb, 0xd1, 0xa3, 0x47, - 0xd9, 0xbb, 0xf7, 0x0d, 0x0c, 0x63, 0xea, 0x00, 0xcc, 0xb6, 0x6d, 0x56, - 0xac, 0x58, 0x4e, 0x69, 0x69, 0x29, 0xd1, 0x68, 0x94, 0x27, 0x9e, 0xf8, - 0x05, 0x4e, 0xa7, 0x13, 0x87, 0xc3, 0xc1, 0xb6, 0x6d, 0x9f, 0x26, 0x3b, - 0x3b, 0x3b, 0x01, 0xdc, 0xf1, 0xe3, 0x8d, 0xf4, 0xf4, 0xf4, 0x90, 0x99, - 0x99, 0x49, 0x7d, 0x7d, 0xfd, 0xb4, 0xc1, 0xd8, 0xdb, 0x33, 0xc4, 0xdd, - 0x3b, 0x8e, 0xe1, 0x36, 0x0d, 0xa2, 0x4a, 0x73, 0xf4, 0xfe, 0x15, 0xcc, - 0x8e, 0x1f, 0xf8, 0x78, 0x39, 0xef, 0x0f, 0xf1, 0xe8, 0xa1, 0xb3, 0xb8, - 0x0c, 0x41, 0x5e, 0x8a, 0x83, 0xba, 0x2c, 0x0f, 0xbb, 0x3b, 0x07, 0xf9, - 0xe4, 0xee, 0x46, 0xa6, 0xca, 0x67, 0x8c, 0xb3, 0xc2, 0x7d, 0xd5, 0x85, - 0x6c, 0x5f, 0x3b, 0xb1, 0x96, 0xfa, 0xbc, 0x4c, 0x76, 0x6e, 0x5e, 0xc6, - 0x38, 0xaf, 0x0b, 0x21, 0x12, 0x7d, 0x37, 0xcd, 0x2c, 0x66, 0xe3, 0x8c, - 0x62, 0x34, 0xfa, 0x92, 0x71, 0x26, 0x98, 0xca, 0xb4, 0x6d, 0x9b, 0x17, - 0x5e, 0x78, 0x91, 0xd6, 0xd6, 0x56, 0x84, 0x10, 0x54, 0x54, 0x94, 0x53, - 0x54, 0x54, 0x44, 0x24, 0x12, 0xa5, 0xad, 0xad, 0x8d, 0x40, 0x20, 0xc0, - 0xef, 0x7f, 0xff, 0x2c, 0x5b, 0xb7, 0xde, 0x47, 0x75, 0x75, 0x35, 0x3e, - 0x9f, 0x0f, 0x21, 0x04, 0x4a, 0x29, 0x66, 0xcc, 0x98, 0x41, 0x41, 0x41, - 0x01, 0x5a, 0x2b, 0x6c, 0x5b, 0xd1, 0xd3, 0xd3, 0x43, 0x57, 0x57, 0x17, - 0x8d, 0x8d, 0x8d, 0x8c, 0x8e, 0xfa, 0xb8, 0xf7, 0xde, 0x2d, 0x48, 0x29, - 0xf1, 0x7a, 0x87, 0x13, 0x34, 0x75, 0x75, 0x75, 0x64, 0x65, 0x65, 0x72, - 0x69, 0xc6, 0x46, 0x29, 0x4d, 0x69, 0x69, 0x4c, 0x12, 0xfd, 0x7e, 0x7f, - 0xa2, 0x2d, 0x1c, 0x0e, 0xb3, 0x67, 0xcf, 0x6b, 0x3c, 0xf0, 0xc0, 0xd6, - 0x0f, 0xac, 0xc2, 0xbe, 0xf6, 0xe6, 0x69, 0x52, 0xe2, 0xa9, 0x11, 0x01, - 0xfc, 0xd5, 0xfe, 0x33, 0xec, 0xdc, 0x98, 0xac, 0x9e, 0xf4, 0x7b, 0xfe, - 0x02, 0x0c, 0x86, 0xa3, 0x68, 0x1d, 0x33, 0xf8, 0x6b, 0x8b, 0x73, 0x58, - 0x51, 0x98, 0x89, 0xa5, 0x35, 0x96, 0xd2, 0x9c, 0x1c, 0xf2, 0xb1, 0xab, - 0x63, 0x90, 0xff, 0x6e, 0xe9, 0xe1, 0x1d, 0xaf, 0x8f, 0x5d, 0x1b, 0x97, - 0x90, 0x11, 0xf7, 0xec, 0x44, 0x1c, 0x88, 0x29, 0xf3, 0x55, 0x22, 0x19, - 0x84, 0x24, 0xd5, 0x37, 0x3a, 0x3a, 0x4a, 0x47, 0x47, 0x07, 0x86, 0x61, - 0x24, 0x38, 0x7b, 0x7c, 0xa0, 0x45, 0x8b, 0x16, 0xf2, 0xd4, 0x53, 0xbf, - 0x46, 0x6b, 0xcd, 0xab, 0xaf, 0xee, 0xe6, 0xcb, 0x5f, 0xfe, 0x52, 0xa2, - 0x4d, 0x29, 0x45, 0x4d, 0xcd, 0x4c, 0xe6, 0xcd, 0x9b, 0x97, 0xc4, 0xe9, - 0x3b, 0x77, 0xbe, 0x4c, 0x6b, 0x6b, 0x2b, 0xed, 0xed, 0xed, 0x84, 0xc3, - 0x61, 0x52, 0x53, 0x53, 0x13, 0x34, 0xb6, 0x6d, 0x53, 0x5f, 0x3f, 0x97, - 0xca, 0xca, 0xca, 0xcb, 0x27, 0xd7, 0x2e, 0xd9, 0x84, 0x94, 0x92, 0xf3, - 0xe7, 0xcf, 0x71, 0xe2, 0xc4, 0x49, 0x6e, 0xb9, 0x65, 0xfe, 0x35, 0x83, - 0xb1, 0xb7, 0xdb, 0xcb, 0x05, 0x7f, 0x08, 0x43, 0x08, 0x6c, 0xad, 0x31, - 0xa5, 0xe0, 0x8d, 0x8b, 0x5e, 0xce, 0x8e, 0x04, 0xa9, 0xcd, 0x74, 0x5f, - 0x39, 0xd9, 0x17, 0x3f, 0x38, 0x4b, 0x69, 0xee, 0x2c, 0xcb, 0xe1, 0xeb, - 0xf3, 0x93, 0xd7, 0xfe, 0x9d, 0xc3, 0x67, 0xf9, 0xf1, 0xc9, 0x0b, 0x9c, - 0x1d, 0x0e, 0x72, 0xa0, 0x77, 0x98, 0x7b, 0xca, 0xf3, 0x3e, 0x58, 0xfa, - 0x5d, 0x29, 0x85, 0x6d, 0xdb, 0x00, 0x14, 0x16, 0x16, 0x24, 0x1d, 0x48, - 0x76, 0x76, 0x36, 0x5a, 0x6b, 0x84, 0x10, 0x04, 0x83, 0xc1, 0xe9, 0xa4, - 0x61, 0x88, 0x46, 0x63, 0xa9, 0xeb, 0x71, 0x8f, 0x63, 0x2a, 0xee, 0xb8, - 0x9a, 0x62, 0x18, 0x06, 0xfb, 0xf7, 0xef, 0x23, 0x18, 0x0c, 0x5d, 0x5b, - 0x6a, 0x08, 0x78, 0xaa, 0xb9, 0x1b, 0x43, 0x08, 0x94, 0xd6, 0x3c, 0xb2, - 0xa0, 0x8a, 0x90, 0x65, 0xe3, 0x90, 0x82, 0xff, 0x6a, 0xba, 0xf0, 0x81, - 0x25, 0x2f, 0x60, 0xd9, 0x89, 0x7d, 0xa5, 0x1a, 0x1f, 0xdc, 0x69, 0x35, - 0x93, 0x8d, 0xab, 0x9e, 0x16, 0xe7, 0x4e, 0x78, 0x16, 0x31, 0xf2, 0xa1, - 0xa1, 0x21, 0x4e, 0x9d, 0x3a, 0x4d, 0x53, 0x53, 0x13, 0x81, 0x40, 0x80, - 0x68, 0x34, 0xca, 0xaa, 0x55, 0xb7, 0x93, 0x92, 0x92, 0x32, 0x69, 0x0c, - 0x9f, 0x2f, 0xc0, 0xe8, 0xe8, 0x08, 0x4a, 0x69, 0xb4, 0x56, 0x64, 0x66, - 0x66, 0x5d, 0x36, 0x29, 0xe7, 0x74, 0x3a, 0xb1, 0x2c, 0x8b, 0xb1, 0xb1, - 0x30, 0x47, 0x8e, 0x1c, 0x61, 0xcd, 0x9a, 0x3b, 0xae, 0xfe, 0xc0, 0xa2, - 0x36, 0x7b, 0xba, 0x06, 0x01, 0x58, 0x55, 0x9c, 0xcd, 0xb7, 0x17, 0xcd, - 0xe4, 0x7f, 0xdb, 0xfb, 0x38, 0xe7, 0x0b, 0xf1, 0x87, 0xae, 0x21, 0x7c, - 0x51, 0x8b, 0x74, 0xc7, 0xd5, 0x3b, 0x9b, 0xaf, 0x74, 0x0c, 0xf0, 0xfd, - 0xb7, 0xdb, 0x38, 0x39, 0xe4, 0xc7, 0xd2, 0x9a, 0xf5, 0x45, 0x39, 0xac, - 0x29, 0xc9, 0xb9, 0x71, 0xd9, 0x5e, 0xd3, 0x34, 0xd9, 0xbd, 0x7b, 0x0f, - 0xcf, 0x3f, 0xff, 0x02, 0x5a, 0x6b, 0xa4, 0x94, 0x78, 0x3c, 0x1e, 0x0a, - 0x0b, 0x0b, 0x58, 0xb1, 0xe2, 0x36, 0xaa, 0xab, 0xab, 0xa6, 0xa4, 0x79, - 0xe9, 0xa5, 0x9d, 0xd8, 0xb6, 0x8d, 0x10, 0x82, 0x50, 0x28, 0xc4, 0x37, - 0xbe, 0xf1, 0x08, 0x69, 0x69, 0x9e, 0x29, 0xe7, 0x28, 0x2c, 0x2c, 0xc4, - 0xb2, 0xa2, 0xf4, 0xf4, 0x5c, 0xe4, 0xd0, 0xa1, 0x43, 0xd4, 0xd6, 0xd6, - 0x5c, 0x75, 0x46, 0xf5, 0x77, 0x2d, 0x17, 0xe9, 0x0e, 0x86, 0xf1, 0x98, - 0x06, 0x5b, 0xab, 0x0b, 0x11, 0x02, 0x3e, 0x5b, 0x5b, 0xc2, 0x3f, 0xbc, - 0xdd, 0xca, 0x69, 0x6f, 0x90, 0xe3, 0x03, 0x3e, 0x56, 0x17, 0x67, 0x4f, - 0xef, 0xae, 0x02, 0xc1, 0x33, 0x6d, 0xbd, 0x3c, 0xfc, 0x66, 0x13, 0xde, - 0xb0, 0x85, 0x43, 0x0a, 0x72, 0x53, 0x1c, 0x7c, 0x69, 0x4e, 0x19, 0x3f, - 0x5c, 0x31, 0xeb, 0xc6, 0xa7, 0xdf, 0x23, 0x91, 0x08, 0x85, 0x85, 0x05, - 0x14, 0x17, 0x17, 0x53, 0x55, 0x55, 0x4d, 0x7e, 0x7e, 0x1e, 0x59, 0x59, - 0x97, 0xe7, 0x78, 0xa5, 0x14, 0x95, 0x95, 0xe5, 0xa4, 0xa6, 0xba, 0x01, - 0x4d, 0x24, 0x12, 0xc1, 0x71, 0x05, 0xee, 0x34, 0x4d, 0x93, 0x75, 0xeb, - 0xd6, 0xf2, 0xb3, 0x9f, 0x6d, 0xc7, 0xe5, 0x72, 0xb1, 0x63, 0xc7, 0x0e, - 0xdc, 0x6e, 0xcf, 0x55, 0xad, 0xf1, 0x9b, 0x87, 0x9a, 0x71, 0x9b, 0x06, - 0x52, 0x08, 0xb6, 0xd5, 0xc6, 0x82, 0xc0, 0xad, 0x33, 0x0a, 0x78, 0xac, - 0xb1, 0x1d, 0x5b, 0x6b, 0xfe, 0xe6, 0xf0, 0x59, 0xde, 0xf8, 0xc4, 0xb2, - 0x69, 0x8d, 0xe5, 0x34, 0x04, 0x0f, 0xbd, 0xd1, 0x84, 0xad, 0x35, 0x45, - 0x6e, 0x27, 0xdf, 0x5b, 0x5a, 0xcb, 0x1d, 0x25, 0xd9, 0x54, 0xa7, 0xa7, - 0x5e, 0xb7, 0xf8, 0xc9, 0xbc, 0x56, 0xfd, 0x6e, 0x59, 0x16, 0x9b, 0x36, - 0x6d, 0xa4, 0xae, 0xae, 0x6e, 0xda, 0x34, 0xb6, 0x6d, 0xb3, 0x72, 0xe5, - 0x4a, 0xca, 0xcb, 0xcb, 0xa7, 0x7b, 0x35, 0x40, 0x4e, 0x4e, 0x0e, 0xb7, - 0xdf, 0xbe, 0x92, 0xc3, 0x87, 0x8f, 0x10, 0x0c, 0x86, 0x08, 0x04, 0x82, - 0xd3, 0x8e, 0x3d, 0x9e, 0x38, 0xdd, 0xc5, 0x98, 0xad, 0x30, 0xa5, 0xc0, - 0xed, 0x30, 0x78, 0x68, 0x6f, 0x13, 0x11, 0x15, 0xfb, 0x6e, 0x6b, 0x8d, - 0x21, 0x04, 0x07, 0xfb, 0x46, 0x38, 0xd2, 0x37, 0xc2, 0xd2, 0x82, 0xf7, - 0xbf, 0x1b, 0xb7, 0x94, 0xe6, 0xcf, 0xea, 0x4a, 0xf8, 0x59, 0x53, 0x17, - 0xde, 0x70, 0x94, 0x53, 0x5e, 0x3f, 0x5f, 0x98, 0x5d, 0x72, 0x5d, 0x03, - 0xda, 0xf7, 0x95, 0xff, 0xf1, 0xcd, 0x4f, 0x75, 0xb1, 0x68, 0x59, 0xd6, - 0x55, 0x4f, 0xa8, 0x94, 0xba, 0x6a, 0x9a, 0x65, 0xcb, 0x96, 0x91, 0x99, - 0x99, 0x79, 0x59, 0x5b, 0x36, 0xa5, 0xf4, 0x2a, 0xc5, 0x6f, 0x5b, 0x2f, - 0xe2, 0x90, 0x02, 0x4b, 0x69, 0x2e, 0x8c, 0x86, 0xf8, 0xe5, 0xe9, 0x4e, - 0x7e, 0xd3, 0xdc, 0xcd, 0x93, 0xa7, 0xbb, 0xe8, 0x0f, 0x45, 0xb0, 0xb5, - 0xc6, 0x63, 0x1a, 0x7c, 0xbf, 0xa1, 0x6d, 0x7a, 0x0c, 0xa5, 0x35, 0x8f, - 0xad, 0x98, 0xcd, 0x9a, 0x92, 0x6c, 0x94, 0x86, 0x1f, 0x9f, 0xbc, 0xc0, - 0xd7, 0xf6, 0x9d, 0xba, 0xae, 0x80, 0x98, 0x2e, 0x97, 0x0b, 0xb7, 0xdb, - 0x4d, 0x28, 0x14, 0x62, 0xff, 0xfe, 0xfd, 0x54, 0x54, 0x54, 0x90, 0x91, - 0x91, 0x81, 0x52, 0x8a, 0x86, 0x86, 0x06, 0x94, 0x52, 0x28, 0xa5, 0xa8, - 0xad, 0xad, 0xbd, 0x2e, 0x13, 0xda, 0xb6, 0x9d, 0x18, 0x33, 0x89, 0x33, - 0xa4, 0xbc, 0xa2, 0x71, 0x5f, 0xbe, 0x7c, 0x39, 0xbb, 0x76, 0xed, 0x9a, - 0xb6, 0x0d, 0xe9, 0x0a, 0x84, 0x69, 0x18, 0x18, 0x45, 0x03, 0x1f, 0xab, - 0xc8, 0xe3, 0x89, 0x75, 0xf3, 0xb0, 0x2f, 0xe1, 0x29, 0xa7, 0x14, 0xdc, - 0xf3, 0xd2, 0x31, 0x1a, 0x07, 0x7d, 0x34, 0x0e, 0xf8, 0xe8, 0x0c, 0x8c, - 0x31, 0x5d, 0x05, 0xf1, 0xfc, 0x3d, 0x0b, 0xb9, 0xfb, 0xa5, 0x63, 0x1c, - 0xee, 0x1d, 0xe1, 0xc9, 0xe6, 0x6e, 0x66, 0x65, 0x7a, 0xf8, 0xfa, 0xfc, - 0x8a, 0xeb, 0x03, 0x48, 0x5a, 0x5a, 0x1a, 0x6b, 0xd6, 0xac, 0x61, 0xd7, - 0xae, 0x5d, 0x04, 0x83, 0x21, 0xb6, 0x6f, 0x7f, 0x9c, 0x9c, 0x9c, 0x1c, - 0xa2, 0xd1, 0x28, 0x3e, 0x5f, 0x2c, 0xab, 0x59, 0x5a, 0x5a, 0xc2, 0x86, - 0x0d, 0x77, 0x5e, 0xf3, 0x24, 0x4a, 0x29, 0xb4, 0xd6, 0x98, 0xa6, 0xc9, - 0x9e, 0x3d, 0x7f, 0x98, 0x14, 0xe5, 0xdb, 0xb6, 0xcd, 0xad, 0xb7, 0x2e, - 0x60, 0xc9, 0x92, 0x25, 0x57, 0x88, 0xfe, 0xeb, 0x69, 0x69, 0x69, 0xa5, - 0xa5, 0xe5, 0x2c, 0xa6, 0x69, 0xbe, 0xaf, 0xa4, 0xfd, 0xe2, 0x74, 0x17, - 0xc1, 0xa8, 0x4d, 0x8a, 0x69, 0xf0, 0x99, 0xda, 0x62, 0x3c, 0x53, 0x5c, - 0xd3, 0x7e, 0xb1, 0xae, 0x94, 0xaf, 0xef, 0x3b, 0x4d, 0xdf, 0x58, 0x84, - 0xd7, 0xbb, 0xbc, 0xcc, 0xca, 0x72, 0x27, 0x45, 0xe0, 0x57, 0x04, 0xe5, - 0xee, 0x85, 0xdc, 0xb3, 0xf3, 0x18, 0x6f, 0xf7, 0x8f, 0xf2, 0xd7, 0x07, - 0xcf, 0x20, 0x05, 0x7c, 0x6d, 0x5e, 0xc5, 0xf5, 0x51, 0x59, 0x75, 0x75, - 0xb3, 0xf9, 0xea, 0x57, 0x1f, 0x62, 0xe9, 0xd2, 0x25, 0xa4, 0xa4, 0xa4, - 0x30, 0x32, 0x32, 0x42, 0x30, 0x18, 0xa4, 0x20, 0xbf, 0x80, 0xcd, 0x9b, - 0x37, 0xb3, 0x6d, 0xdb, 0xb6, 0x84, 0x0b, 0xab, 0xb5, 0x4e, 0xfa, 0x4c, - 0xa7, 0xac, 0x5e, 0xbd, 0x8a, 0xf4, 0xf4, 0x74, 0xb4, 0xd6, 0xf8, 0xfd, - 0x7e, 0x86, 0x87, 0x87, 0x27, 0x7d, 0xc6, 0x42, 0xa1, 0xf8, 0xf8, 0x5c, - 0x76, 0xfc, 0x4d, 0x9b, 0x3e, 0x4e, 0x41, 0x41, 0x21, 0x4a, 0x69, 0xe6, - 0xce, 0x9d, 0x73, 0x45, 0xf5, 0xf5, 0x83, 0x86, 0x76, 0x4c, 0x29, 0x71, - 0x9b, 0x92, 0x75, 0xa5, 0x53, 0xbb, 0xa3, 0xab, 0x8b, 0xb3, 0xc9, 0x70, - 0x9a, 0x18, 0x42, 0xf2, 0xdd, 0xa3, 0x2d, 0xa4, 0x1a, 0x12, 0xa5, 0x35, - 0x4a, 0x5f, 0x1a, 0xb5, 0x6b, 0xb4, 0x26, 0xa9, 0x0e, 0x20, 0xc5, 0x94, - 0xbc, 0xbe, 0x65, 0x29, 0x15, 0x69, 0x29, 0xb8, 0xa4, 0xc1, 0x77, 0x8e, - 0xb4, 0xf0, 0x54, 0x73, 0xf7, 0x07, 0x06, 0x44, 0x04, 0x7c, 0x83, 0xda, - 0xb6, 0x2d, 0x94, 0xb6, 0x30, 0xe2, 0x1b, 0x0c, 0xf8, 0x7d, 0x18, 0x12, - 0x4c, 0xd3, 0x41, 0x24, 0x12, 0xc6, 0xb2, 0x22, 0x68, 0xad, 0xd0, 0x4a, - 0x13, 0xb5, 0xa2, 0xd8, 0xd1, 0x28, 0x5a, 0xdb, 0x48, 0x19, 0x7b, 0x07, - 0x8b, 0x56, 0x09, 0x29, 0x40, 0xab, 0x58, 0xdf, 0xd8, 0xc9, 0xc6, 0x0f, - 0x55, 0xe3, 0x30, 0x4d, 0x82, 0xa1, 0x20, 0xca, 0xb6, 0xe3, 0xdb, 0x14, - 0xb1, 0xbf, 0xf1, 0x76, 0x29, 0x24, 0x86, 0x61, 0xa0, 0xb4, 0xc6, 0x8a, - 0x07, 0x97, 0x42, 0x08, 0x4c, 0xc3, 0x84, 0xf1, 0xb4, 0x9e, 0x10, 0x18, - 0x86, 0x41, 0x34, 0x12, 0xa1, 0x7c, 0xc6, 0x2d, 0xe4, 0x16, 0x4f, 0xed, - 0x6a, 0xaa, 0x78, 0xaa, 0xc3, 0x52, 0x0a, 0x43, 0x88, 0x49, 0xaf, 0x49, - 0xde, 0x6b, 0x17, 0xb4, 0x86, 0x90, 0xad, 0x48, 0x77, 0x18, 0x58, 0xf1, - 0x58, 0xcc, 0x8c, 0x67, 0x60, 0xc7, 0x01, 0xba, 0xb4, 0x6e, 0x2a, 0x63, - 0xaf, 0xb4, 0x66, 0xcc, 0x56, 0x89, 0xd4, 0xc9, 0x35, 0xab, 0x2c, 0xad, - 0x35, 0x1a, 0x85, 0x56, 0x8a, 0xa8, 0x6d, 0x61, 0x2b, 0x1b, 0x69, 0x08, - 0x94, 0x6d, 0x13, 0x0a, 0x85, 0xd0, 0xda, 0x46, 0x29, 0x3b, 0x01, 0x88, - 0x40, 0x23, 0x24, 0x08, 0x25, 0x50, 0xda, 0x42, 0xdb, 0x3a, 0x0e, 0x88, - 0x1d, 0xe7, 0x6a, 0x95, 0x00, 0x05, 0x0d, 0x4a, 0x2b, 0x34, 0x60, 0x45, - 0x42, 0x71, 0x90, 0x6c, 0x40, 0xa1, 0x11, 0x08, 0x4d, 0xec, 0xb0, 0x75, - 0x6c, 0xe3, 0xb6, 0x15, 0x0b, 0xad, 0xa5, 0x14, 0x38, 0xa4, 0x40, 0x6b, - 0x8d, 0x1d, 0x89, 0xa0, 0xb1, 0x27, 0x0e, 0x30, 0xae, 0x54, 0x0c, 0xe3, - 0xf2, 0xef, 0xa0, 0x9a, 0x87, 0x03, 0xbc, 0xd5, 0x3b, 0xcc, 0x67, 0x67, - 0x95, 0xd0, 0x19, 0x18, 0x23, 0x64, 0xd9, 0xcc, 0xcd, 0x4e, 0xa3, 0x71, - 0xd0, 0xc7, 0x81, 0x8b, 0xc3, 0x6c, 0xae, 0xcc, 0xe7, 0xc5, 0xf3, 0xfd, - 0x49, 0xa0, 0x6c, 0xab, 0x2d, 0xe6, 0xed, 0x81, 0x00, 0x07, 0x2e, 0x0e, - 0x23, 0x85, 0x60, 0xcc, 0xb2, 0x79, 0x78, 0x5e, 0x05, 0xbe, 0xa8, 0xcd, - 0x33, 0xad, 0x17, 0xb1, 0xb5, 0xa6, 0x30, 0xd5, 0xc5, 0x03, 0x33, 0x63, - 0xd9, 0x67, 0x5f, 0xd4, 0xe2, 0xe9, 0xd6, 0x5e, 0xc6, 0xec, 0x18, 0xf3, - 0x95, 0xa7, 0xa7, 0xb0, 0xa5, 0xb2, 0x00, 0x0d, 0x3c, 0x7f, 0xae, 0x97, - 0x8d, 0x15, 0x05, 0x49, 0x69, 0xf5, 0x86, 0x81, 0x51, 0x8e, 0xf4, 0x8d, - 0xf0, 0xa9, 0xda, 0x62, 0x32, 0xe2, 0xae, 0xfe, 0xab, 0x9d, 0x83, 0x34, - 0x0f, 0x07, 0x10, 0x42, 0xa0, 0xd1, 0x3c, 0x5c, 0x5f, 0x81, 0xe9, 0x49, - 0xff, 0xe3, 0xbe, 0xe6, 0xbe, 0x96, 0xf2, 0x64, 0xdb, 0x20, 0x0f, 0xbe, - 0xf6, 0x2e, 0xa6, 0x10, 0x68, 0x31, 0x2e, 0x4d, 0xc9, 0xf9, 0x10, 0xeb, - 0x74, 0x2b, 0xa8, 0xe6, 0x09, 0xce, 0x32, 0x24, 0xed, 0x9f, 0x59, 0x4d, - 0x99, 0x27, 0x85, 0xc3, 0x7d, 0x23, 0x7c, 0xfb, 0x48, 0x0b, 0x0f, 0xd6, - 0x95, 0x72, 0xf7, 0x8e, 0xa3, 0x8c, 0x46, 0x2d, 0x5a, 0x3e, 0x7d, 0x07, - 0x7b, 0xbb, 0x87, 0x78, 0xe4, 0x60, 0x33, 0x1b, 0x2b, 0xf2, 0x69, 0x19, - 0x09, 0xf2, 0x6a, 0xd7, 0x20, 0x29, 0x52, 0xb2, 0xb2, 0x28, 0x0b, 0xa7, - 0x94, 0x2c, 0x7f, 0xf6, 0x20, 0xf7, 0x56, 0x15, 0x52, 0xea, 0x71, 0x11, - 0xb0, 0x6c, 0x94, 0xd6, 0xfc, 0xf3, 0xf1, 0x73, 0xfc, 0xaa, 0xb9, 0x8b, - 0xcf, 0xcf, 0x2a, 0xe1, 0xad, 0xde, 0x61, 0xbe, 0x79, 0xf0, 0x0c, 0x87, - 0xef, 0xbf, 0x8d, 0x57, 0x3a, 0x06, 0x78, 0xf4, 0x50, 0x33, 0x5f, 0x98, - 0x55, 0x42, 0x44, 0xa9, 0xc4, 0x0a, 0xf7, 0xf5, 0x78, 0xb9, 0x6f, 0xc7, - 0x31, 0xd6, 0x57, 0x14, 0xb0, 0x67, 0x4b, 0xcc, 0x26, 0x3e, 0xb4, 0xb7, - 0x89, 0xc6, 0x21, 0x1f, 0x8b, 0xf3, 0x33, 0xf8, 0xd6, 0xaf, 0xdf, 0xe4, - 0xdf, 0x57, 0xd5, 0xf1, 0xc9, 0x9a, 0x62, 0xee, 0x7a, 0xee, 0x30, 0x0f, - 0xcc, 0x2a, 0xa1, 0xd4, 0xe3, 0xfa, 0xff, 0x73, 0x41, 0x35, 0xd4, 0x77, - 0x1e, 0xad, 0xed, 0x84, 0x29, 0x95, 0x02, 0x22, 0xfd, 0x7d, 0x3c, 0x98, - 0x37, 0xc6, 0x54, 0x1a, 0x42, 0x03, 0xa6, 0xe1, 0x20, 0x33, 0xaf, 0x2a, - 0x26, 0x85, 0xf1, 0x92, 0xe3, 0x72, 0x90, 0xeb, 0x72, 0xc6, 0xf2, 0x5f, - 0x42, 0xc4, 0x32, 0xbb, 0x1a, 0xdc, 0xa6, 0x41, 0x87, 0x7f, 0x8c, 0xfb, - 0x77, 0x35, 0xf0, 0xe9, 0x9a, 0x12, 0x52, 0x0d, 0x49, 0x45, 0x7a, 0x0a, - 0xff, 0xb2, 0x72, 0x36, 0x5f, 0x79, 0xa3, 0x89, 0x2c, 0x97, 0x83, 0x7f, - 0x5c, 0x1e, 0xf3, 0x20, 0x53, 0x0d, 0x83, 0x47, 0x17, 0x56, 0xb3, 0x38, - 0x7f, 0xe2, 0x86, 0xd0, 0x90, 0x82, 0xca, 0xf4, 0x54, 0x7e, 0xb0, 0x62, - 0x16, 0x27, 0x87, 0x7c, 0x2c, 0x79, 0xe6, 0x20, 0x61, 0x5b, 0x21, 0x04, - 0xcc, 0xca, 0xf4, 0xf0, 0xd8, 0x6d, 0xb3, 0xdf, 0x93, 0x55, 0x3e, 0xc5, - 0xdd, 0xd5, 0x85, 0x1c, 0xea, 0x1b, 0xe1, 0xc4, 0xa0, 0x8f, 0x5b, 0x72, - 0xd3, 0x79, 0xb6, 0xbd, 0x97, 0x03, 0x5b, 0x97, 0x53, 0x93, 0xe1, 0xe6, - 0xbb, 0x8b, 0x67, 0x22, 0x85, 0xc0, 0x56, 0x1a, 0xa7, 0xcb, 0x9c, 0x34, - 0xdf, 0x0d, 0x05, 0x44, 0x6b, 0xcd, 0xbb, 0x47, 0x77, 0x20, 0x44, 0xb2, - 0x8e, 0x5f, 0xec, 0x30, 0x58, 0x96, 0x26, 0x2e, 0xe3, 0xb1, 0xd9, 0x94, - 0x54, 0x2d, 0x20, 0xbf, 0xb6, 0x66, 0x7a, 0x1e, 0x1e, 0xf0, 0xb9, 0x59, - 0x25, 0xfc, 0xbe, 0xbd, 0x37, 0x61, 0x23, 0x2f, 0x05, 0x57, 0x5d, 0xe2, - 0x38, 0x08, 0x01, 0x9f, 0xd9, 0x73, 0x82, 0x2c, 0xa7, 0xc9, 0xcf, 0xd7, - 0xcd, 0x63, 0x6e, 0x76, 0x5a, 0xa2, 0x6d, 0xdb, 0xee, 0x13, 0x1c, 0xe8, - 0x1d, 0xe6, 0xb7, 0x1b, 0x16, 0x50, 0xe2, 0x71, 0x21, 0x85, 0xa0, 0xc9, - 0xeb, 0x67, 0xc1, 0xd3, 0x07, 0xf8, 0xca, 0xdc, 0x72, 0x1e, 0xaa, 0x2f, - 0xe7, 0xad, 0xde, 0x61, 0xce, 0xf9, 0x43, 0x3c, 0xbe, 0xb6, 0x9e, 0x4f, - 0xed, 0x3e, 0xc1, 0x13, 0x67, 0xba, 0xf8, 0xd1, 0xca, 0x3a, 0x10, 0x24, - 0xe6, 0xce, 0x4f, 0x8d, 0x31, 0x4d, 0xc4, 0x56, 0x58, 0x4a, 0xf3, 0xd9, - 0x3d, 0x27, 0xc8, 0x74, 0x99, 0x3c, 0x7b, 0xd7, 0x42, 0x4a, 0x3c, 0xae, - 0x1b, 0x0d, 0x88, 0xcd, 0x82, 0xdb, 0x92, 0xef, 0x3a, 0x1c, 0x52, 0xf2, - 0xc0, 0x2b, 0xc7, 0x71, 0x3b, 0x8c, 0xcb, 0x82, 0x98, 0xda, 0x66, 0xe2, - 0xe8, 0x7a, 0xe7, 0x12, 0x23, 0xae, 0xb9, 0xaf, 0xba, 0x90, 0x4f, 0x54, - 0x4d, 0xfd, 0xf3, 0x80, 0x5b, 0xf3, 0x32, 0x58, 0x5a, 0x90, 0xc9, 0xc3, - 0x6f, 0x9e, 0x22, 0xd5, 0x94, 0x57, 0x58, 0x0f, 0xfc, 0x74, 0xf5, 0x5c, - 0xee, 0x28, 0xc9, 0x9e, 0x04, 0xde, 0x2d, 0x39, 0x69, 0x1c, 0xeb, 0x1f, - 0x65, 0x6d, 0x49, 0x76, 0x62, 0xce, 0x9a, 0x4c, 0x37, 0x87, 0xb7, 0xae, - 0x20, 0x1a, 0x77, 0xc1, 0x7f, 0x7e, 0xaa, 0x0b, 0x0d, 0xfc, 0xf9, 0xde, - 0x26, 0xc6, 0x6c, 0xc5, 0x73, 0xe7, 0xfa, 0xf8, 0xd1, 0xca, 0x3a, 0x2c, - 0xa5, 0x13, 0xf6, 0x64, 0x77, 0xe7, 0x20, 0x11, 0x5b, 0x71, 0x77, 0x79, - 0x1e, 0x86, 0x10, 0xfc, 0xe4, 0x3d, 0xf3, 0xdd, 0x50, 0x40, 0x84, 0x30, - 0x48, 0xcf, 0x2a, 0x4c, 0xca, 0x0a, 0x9c, 0x1c, 0xf0, 0xf1, 0x87, 0x61, - 0x41, 0x86, 0xf3, 0xf2, 0x07, 0x27, 0x7c, 0x01, 0x60, 0xe2, 0x11, 0x42, - 0x54, 0x29, 0x3e, 0x57, 0x5b, 0x9a, 0xc4, 0xe9, 0x46, 0xec, 0x16, 0x28, - 0xa6, 0x02, 0x6d, 0xc5, 0x57, 0xeb, 0x2b, 0xf9, 0xd5, 0x99, 0x6e, 0xda, - 0x46, 0x43, 0x97, 0x5c, 0xc3, 0xc6, 0xae, 0x62, 0xc7, 0x4b, 0x9a, 0xc3, - 0xe0, 0xa9, 0xb3, 0x3d, 0xbc, 0xde, 0x3d, 0x44, 0xd0, 0xb2, 0xf9, 0xde, - 0xb2, 0xda, 0x78, 0x1f, 0x78, 0x74, 0xd1, 0x0c, 0x0e, 0xf4, 0x8d, 0x70, - 0xff, 0x2b, 0xc7, 0x79, 0xe9, 0xe3, 0x8b, 0x11, 0x62, 0xc2, 0xeb, 0x72, - 0x48, 0x89, 0x37, 0x1c, 0x65, 0x77, 0xd7, 0x20, 0x2f, 0xde, 0xb3, 0x88, - 0x35, 0x71, 0xd0, 0x2a, 0x9e, 0xdc, 0xcb, 0xce, 0xf3, 0xfd, 0x7c, 0x69, - 0x4e, 0x19, 0x5b, 0x5e, 0x6e, 0x60, 0x7d, 0x49, 0x0e, 0xff, 0xd3, 0x76, - 0x91, 0xbf, 0x5b, 0x52, 0x83, 0x21, 0x63, 0xde, 0xdf, 0x53, 0x67, 0xbb, - 0x79, 0xbd, 0x7b, 0x08, 0x0d, 0xfc, 0xfd, 0xd2, 0x9a, 0x1b, 0xfb, 0xd8, - 0xba, 0xfb, 0x5c, 0x23, 0xde, 0x81, 0x8e, 0xa4, 0x2b, 0xd1, 0xa1, 0x31, - 0x8b, 0x36, 0x5f, 0x68, 0x12, 0x87, 0x26, 0x24, 0xc8, 0x99, 0xca, 0xac, - 0x05, 0xeb, 0x93, 0x62, 0x14, 0xad, 0xa1, 0x3e, 0x27, 0x2d, 0xe1, 0xde, - 0xf6, 0x06, 0xc3, 0xb4, 0xfb, 0xc6, 0x58, 0x51, 0x98, 0xc9, 0x91, 0xbe, - 0x11, 0x8a, 0xdd, 0x2e, 0xca, 0xd2, 0x52, 0xe8, 0xf0, 0x8f, 0xe1, 0x8b, - 0x5a, 0x09, 0x55, 0xd4, 0x3c, 0x1c, 0xc0, 0x90, 0x82, 0x99, 0x19, 0xb1, - 0x80, 0xf0, 0xdd, 0x21, 0x3f, 0xfd, 0xa1, 0x08, 0x3a, 0x0e, 0xf2, 0xfa, - 0xd2, 0x5c, 0x3a, 0xfc, 0x63, 0x78, 0xc3, 0x51, 0x16, 0xe5, 0x67, 0x60, - 0x6b, 0xcd, 0xde, 0x6e, 0x2f, 0x4b, 0xf2, 0x33, 0x18, 0xb3, 0x15, 0x9d, - 0xfe, 0x31, 0x16, 0xc5, 0xf5, 0x7f, 0xd0, 0xb2, 0x39, 0xd8, 0x3b, 0xc2, - 0xfa, 0x4b, 0x62, 0x9e, 0x53, 0xde, 0x00, 0xa0, 0x99, 0x93, 0x9d, 0xc6, - 0x89, 0x41, 0x1f, 0xde, 0x70, 0x94, 0xaa, 0x74, 0x37, 0x95, 0xe9, 0xb1, - 0x98, 0xee, 0x68, 0xff, 0x28, 0xfe, 0xa8, 0x15, 0x8b, 0xbd, 0x80, 0xf5, - 0xa5, 0x39, 0x37, 0x0e, 0x10, 0xad, 0x15, 0x67, 0x4f, 0xbc, 0xc6, 0x88, - 0x37, 0x39, 0x98, 0x0a, 0x59, 0x2a, 0xe9, 0xbe, 0x39, 0x39, 0x6e, 0xd6, - 0xe4, 0xe4, 0x55, 0x50, 0x33, 0x7f, 0xed, 0x15, 0x52, 0xe4, 0xd3, 0xa8, - 0x13, 0x53, 0xd5, 0x8b, 0x2b, 0x46, 0xe9, 0xd3, 0x1b, 0xe3, 0x72, 0xf7, - 0x8d, 0x5c, 0x79, 0xbd, 0x22, 0x6e, 0xd0, 0xc4, 0x0d, 0xfe, 0x39, 0x82, - 0x6d, 0x45, 0x92, 0x0e, 0x5f, 0x69, 0x58, 0xb7, 0xe3, 0x18, 0x41, 0xdb, - 0xc6, 0x10, 0x32, 0xa1, 0x52, 0x0c, 0x29, 0xd1, 0x42, 0x60, 0x0a, 0x81, - 0x34, 0x0d, 0x4c, 0xd3, 0x81, 0x94, 0x02, 0xa7, 0x90, 0x08, 0xa1, 0x71, - 0x08, 0x89, 0x29, 0x63, 0xed, 0xa6, 0x10, 0x98, 0x52, 0x20, 0xa5, 0xc0, - 0x10, 0x02, 0x87, 0x20, 0x51, 0x6f, 0x88, 0x98, 0xd7, 0x64, 0x08, 0x19, - 0x7b, 0x7e, 0x13, 0x57, 0x6d, 0x26, 0x02, 0x43, 0x82, 0x21, 0x0d, 0x0c, - 0x21, 0x30, 0x0c, 0x30, 0x90, 0x31, 0x3a, 0x34, 0x86, 0x90, 0x13, 0xb4, - 0xd2, 0x48, 0x3c, 0xe7, 0x31, 0x20, 0x56, 0x2f, 0x04, 0x32, 0x3e, 0xe6, - 0xf8, 0xbc, 0x32, 0x51, 0x1f, 0x03, 0x25, 0x36, 0xbf, 0x8e, 0xed, 0x47, - 0xc4, 0xd6, 0x27, 0x11, 0xf1, 0xf5, 0x80, 0x88, 0xc7, 0x5f, 0x37, 0xd4, - 0x86, 0x18, 0xa6, 0x33, 0xe9, 0x7b, 0xfb, 0x68, 0x88, 0x8e, 0x90, 0xcd, - 0x98, 0x52, 0x18, 0x09, 0x30, 0xc0, 0x90, 0x1a, 0x25, 0xc1, 0x29, 0x80, - 0xa8, 0x85, 0x29, 0x15, 0xd2, 0x90, 0x38, 0xa5, 0xc0, 0x14, 0xe0, 0x94, - 0x32, 0x01, 0x84, 0x63, 0x1c, 0x10, 0xc3, 0xc0, 0x21, 0x62, 0x34, 0x86, - 0x90, 0x38, 0x25, 0x48, 0x62, 0x6d, 0x46, 0xbc, 0xdf, 0xa5, 0x60, 0x99, - 0x02, 0x4c, 0x43, 0xc7, 0x0e, 0x4e, 0x09, 0x0c, 0x14, 0x26, 0xe3, 0x6d, - 0xb1, 0x88, 0xdf, 0x21, 0x05, 0x52, 0xc6, 0x40, 0x70, 0x48, 0x89, 0x8c, - 0x03, 0x62, 0x0a, 0x81, 0x21, 0x63, 0xb4, 0x52, 0x49, 0x0c, 0x19, 0x4b, - 0xed, 0x1b, 0x82, 0x58, 0x7f, 0x40, 0x09, 0x1d, 0x03, 0x4c, 0x80, 0x8a, - 0x83, 0x65, 0xa0, 0xd1, 0x0a, 0xb4, 0x88, 0x8d, 0xa3, 0x15, 0xfc, 0x1f, - 0xd7, 0xc0, 0x3b, 0xab, 0xdb, 0x65, 0xb1, 0x8a, 0x00, 0x00, 0x00, 0x00, - 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 + 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0x3c, + 0x08, 0x06, 0x00, 0x00, 0x00, 0xcf, 0x2e, 0x90, 0x87, 0x00, 0x00, 0x1b, + 0x39, 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0xed, 0x9d, 0x79, 0x70, 0x1c, + 0xd7, 0x7d, 0xe7, 0x3f, 0xaf, 0xbb, 0xa7, 0xe7, 0x02, 0x06, 0xf7, 0x8d, + 0xc1, 0xc5, 0x03, 0xa0, 0x48, 0x91, 0x94, 0x64, 0x52, 0x24, 0xbd, 0x96, + 0xe4, 0x48, 0xb2, 0x9d, 0xc4, 0x76, 0x7c, 0xc5, 0x89, 0x53, 0x59, 0xef, + 0x3a, 0xeb, 0x72, 0xe2, 0xdd, 0x8a, 0x1d, 0xa7, 0xca, 0xf6, 0x3a, 0x5b, + 0x59, 0x67, 0xbd, 0xde, 0x4d, 0x7c, 0x24, 0xf6, 0x7a, 0x53, 0x71, 0xec, + 0x8a, 0x6d, 0xc5, 0x67, 0x39, 0x4e, 0x36, 0x76, 0x2c, 0x7b, 0x23, 0x5b, + 0xca, 0xea, 0xb0, 0x49, 0x49, 0x94, 0x28, 0x92, 0x00, 0x49, 0x00, 0x84, + 0x00, 0x10, 0x04, 0x06, 0xc7, 0x00, 0x83, 0x01, 0xe6, 0x9e, 0x3e, 0xde, + 0xfe, 0xd1, 0x3d, 0x03, 0x0c, 0x0e, 0x12, 0xa4, 0x48, 0x29, 0x06, 0xe7, + 0x57, 0x35, 0x85, 0x41, 0x1f, 0xaf, 0x5f, 0xf7, 0x7c, 0xdf, 0xef, 0x7d, + 0x7f, 0xdf, 0xf7, 0x7b, 0xaf, 0x85, 0x94, 0x52, 0x52, 0xb6, 0x57, 0xd4, + 0x6c, 0x29, 0xb1, 0xa5, 0x64, 0x21, 0x93, 0x67, 0x60, 0x3e, 0xc6, 0xd8, + 0x62, 0x82, 0x68, 0x32, 0x4d, 0xce, 0x30, 0x51, 0x05, 0x28, 0x42, 0xa0, + 0x09, 0x08, 0xa8, 0x2a, 0x0d, 0x41, 0x3f, 0xed, 0x55, 0x15, 0x74, 0xd5, + 0x84, 0x68, 0xae, 0x0c, 0xa2, 0x28, 0x0a, 0x8a, 0x10, 0xe5, 0x87, 0xe8, + 0x9a, 0x28, 0x03, 0xfa, 0x95, 0xb3, 0xbc, 0x65, 0xb3, 0x98, 0xcd, 0xf3, + 0xdc, 0x6c, 0x8c, 0xa7, 0x23, 0x73, 0xa8, 0xc0, 0xa1, 0x96, 0x3a, 0xf6, + 0xd4, 0x55, 0x13, 0xae, 0x0c, 0xe2, 0x51, 0x95, 0x75, 0xe7, 0x2c, 0xa4, + 0xb3, 0x4c, 0xc5, 0x97, 0x19, 0x5b, 0x88, 0xb3, 0x9c, 0xc9, 0xd0, 0x53, + 0x57, 0xcd, 0xee, 0xc6, 0x7a, 0xaa, 0xfc, 0x3e, 0x74, 0x4d, 0x2d, 0x03, + 0xba, 0x0c, 0xe8, 0x97, 0xdf, 0xa4, 0x84, 0xf1, 0x44, 0x8a, 0x67, 0x67, + 0x16, 0x38, 0x13, 0x8d, 0x73, 0x47, 0x43, 0x35, 0x6f, 0xe8, 0x6a, 0xa1, + 0x52, 0xf7, 0x5c, 0x5b, 0x39, 0xc0, 0xf0, 0x4c, 0x94, 0x91, 0xb9, 0x05, + 0xaa, 0xfd, 0x3e, 0xba, 0xeb, 0x6b, 0x68, 0xaa, 0xaa, 0x44, 0x55, 0x94, + 0x32, 0xa0, 0xcb, 0xf6, 0xf2, 0x58, 0xda, 0xb4, 0x78, 0xec, 0xf2, 0x2c, + 0xfd, 0xd1, 0x25, 0x76, 0xd7, 0x54, 0xf0, 0xe6, 0x9e, 0x36, 0x74, 0xf5, + 0xa5, 0x03, 0x70, 0x2c, 0xba, 0xc0, 0x78, 0x74, 0x91, 0xda, 0x80, 0x8f, + 0xee, 0xc6, 0x3a, 0x42, 0x01, 0x7f, 0x19, 0xd0, 0x65, 0xbb, 0xb9, 0x36, + 0x9f, 0xcd, 0xf1, 0xd0, 0xf9, 0x4b, 0x04, 0x34, 0x85, 0x37, 0x76, 0xb5, + 0xd2, 0x11, 0x0a, 0xdc, 0xd0, 0xf2, 0x4d, 0xcb, 0x66, 0x28, 0x32, 0xc3, + 0x72, 0x3a, 0x43, 0x47, 0x7d, 0x2d, 0x6d, 0x75, 0x35, 0x65, 0x40, 0x97, + 0xed, 0xe6, 0xd8, 0x5c, 0x26, 0xc7, 0x9f, 0x3d, 0x3f, 0xc4, 0x6b, 0x5a, + 0xea, 0xf8, 0xe5, 0xae, 0x66, 0x7c, 0xea, 0xcd, 0xe3, 0xbb, 0xb3, 0xf1, + 0x65, 0xc6, 0x67, 0xe6, 0x68, 0xa8, 0x0e, 0xd1, 0xd3, 0xdc, 0x78, 0x4b, + 0x3d, 0x67, 0xad, 0x0c, 0xb5, 0x9b, 0x6f, 0xcb, 0x79, 0x93, 0x0f, 0xff, + 0x7c, 0x80, 0xff, 0x70, 0x5b, 0x27, 0xf7, 0xb4, 0xd6, 0xdf, 0xf4, 0xeb, + 0x35, 0x55, 0x87, 0xf0, 0xeb, 0x1e, 0x86, 0x27, 0x23, 0x28, 0x40, 0xd7, + 0x2d, 0x04, 0x6a, 0xa5, 0x0c, 0xb7, 0x9b, 0x6f, 0xbf, 0xf7, 0xf8, 0x69, + 0xde, 0xfb, 0x32, 0x81, 0xb9, 0x60, 0xa1, 0x80, 0x9f, 0xdd, 0xed, 0xad, + 0x2c, 0x2c, 0x25, 0x88, 0x2e, 0x2e, 0x95, 0x3d, 0x74, 0xd9, 0x6e, 0x8c, + 0x7d, 0xe4, 0xc4, 0x79, 0xde, 0xdc, 0xdd, 0xcc, 0x6b, 0xb6, 0x08, 0x66, + 0x09, 0x0c, 0x44, 0x17, 0x39, 0x35, 0xb3, 0x40, 0x64, 0x29, 0x41, 0xce, + 0x30, 0xd0, 0x84, 0x20, 0xe4, 0x51, 0x69, 0xab, 0x0c, 0xb2, 0xb3, 0xbe, + 0x86, 0x3d, 0x8d, 0x75, 0x5b, 0x92, 0xe8, 0x42, 0x01, 0x3f, 0x1d, 0x8d, + 0xf5, 0x44, 0xe6, 0x17, 0xa8, 0xf0, 0xfb, 0xf0, 0xfb, 0xbc, 0x65, 0x0e, + 0x5d, 0xb6, 0xeb, 0xb7, 0x47, 0x2e, 0xcf, 0xf1, 0xe8, 0xe5, 0x39, 0x3e, + 0x75, 0x74, 0xef, 0x55, 0x07, 0x3f, 0xf2, 0x96, 0xcd, 0x4f, 0x26, 0x66, + 0xf8, 0xd1, 0xe8, 0x14, 0xbd, 0x55, 0x15, 0xdc, 0x1b, 0x6e, 0x62, 0x57, + 0x75, 0x25, 0x15, 0x5e, 0x4f, 0x31, 0xe0, 0x9b, 0x49, 0xa4, 0x18, 0x5b, + 0x58, 0x64, 0x2c, 0xba, 0x40, 0x67, 0x4d, 0x15, 0x77, 0x75, 0xb6, 0x51, + 0xb1, 0x05, 0x90, 0x8e, 0x5c, 0x9e, 0x42, 0x55, 0x14, 0xba, 0x5a, 0x9b, + 0x11, 0xdb, 0x7c, 0x10, 0xa6, 0x0c, 0xe8, 0x9b, 0x64, 0x69, 0xd3, 0xe2, + 0xfd, 0x4f, 0x9c, 0xe6, 0x13, 0x87, 0x6f, 0xa3, 0xb3, 0xd2, 0x7f, 0x45, + 0x8f, 0x3c, 0x18, 0x5b, 0xe6, 0xaf, 0xcf, 0x8e, 0xd2, 0x57, 0x53, 0xc1, + 0xef, 0xec, 0xeb, 0xc1, 0xbb, 0x05, 0x19, 0x6f, 0x78, 0x26, 0xca, 0xc5, + 0x99, 0x39, 0x7a, 0x9b, 0x1b, 0xe8, 0x6e, 0xac, 0xbf, 0xa2, 0xf6, 0x9c, + 0x37, 0x0c, 0x86, 0xc7, 0x2f, 0x13, 0x6e, 0x69, 0xa2, 0xaa, 0x22, 0x58, + 0x06, 0x74, 0xd9, 0xae, 0xdd, 0xbe, 0x74, 0x7e, 0x1c, 0x9f, 0xaa, 0xf0, + 0xae, 0x5d, 0xed, 0xe8, 0x9b, 0x80, 0x4d, 0x02, 0x8f, 0x4c, 0xcc, 0xf2, + 0xf0, 0x58, 0x84, 0x0f, 0x1c, 0xd8, 0xc9, 0xee, 0xea, 0xca, 0x6b, 0xba, + 0x46, 0xd6, 0x30, 0x38, 0x3d, 0x36, 0x41, 0x85, 0xd7, 0x4b, 0x6f, 0x5b, + 0x0b, 0x9e, 0x2b, 0xd0, 0x90, 0xcb, 0x33, 0x73, 0x98, 0xa6, 0x49, 0x47, + 0x6b, 0xf3, 0xb6, 0x1e, 0x78, 0x29, 0x07, 0x85, 0x37, 0xc1, 0xe2, 0x39, + 0x83, 0x17, 0x97, 0x52, 0x1c, 0x6e, 0xac, 0xdd, 0x14, 0xcc, 0x00, 0x3f, + 0x1a, 0x9f, 0xe1, 0xf1, 0xc9, 0x28, 0x1f, 0x3f, 0xbc, 0xf7, 0x9a, 0xc1, + 0x0c, 0xe0, 0xf3, 0x78, 0x38, 0xb4, 0xb3, 0x1b, 0xcb, 0xb2, 0x18, 0x9d, + 0x9e, 0xc1, 0xbe, 0x82, 0x6f, 0x6a, 0x6b, 0x6a, 0x20, 0x91, 0x48, 0x92, + 0xcf, 0xe7, 0xcb, 0x41, 0x61, 0xd9, 0xae, 0xcd, 0x1e, 0x8f, 0xcc, 0xd3, + 0x1d, 0x0a, 0xd2, 0x51, 0xe1, 0xdb, 0xf4, 0x98, 0x53, 0xd1, 0x38, 0x3f, + 0x9f, 0x89, 0xf1, 0xbb, 0xfb, 0x7a, 0x68, 0xf0, 0xeb, 0xeb, 0xf6, 0x4f, + 0x25, 0xd3, 0x9c, 0x9f, 0x8f, 0x93, 0xc9, 0xe5, 0xf1, 0x08, 0x08, 0x79, + 0x34, 0xc2, 0x55, 0x95, 0x74, 0xd4, 0x56, 0x95, 0x1c, 0xa7, 0x2a, 0x0a, + 0x7b, 0xbb, 0xc2, 0x9c, 0xb9, 0x38, 0x46, 0x34, 0x16, 0xa7, 0x69, 0x93, + 0xc1, 0x14, 0x45, 0x08, 0x42, 0x15, 0x41, 0x96, 0x96, 0x13, 0xf8, 0xbc, + 0xde, 0x6d, 0xcb, 0xa5, 0xcb, 0x1e, 0xfa, 0x26, 0xd8, 0xd8, 0x72, 0x9a, + 0xd6, 0xa0, 0x8f, 0xa0, 0x67, 0x63, 0x7f, 0x91, 0x34, 0x4c, 0x1e, 0x9b, + 0x9c, 0xe7, 0x35, 0x2d, 0x75, 0x74, 0xaf, 0x19, 0x2d, 0x34, 0xa5, 0xcd, + 0x57, 0xcf, 0x8d, 0xf1, 0xbd, 0xe1, 0x09, 0xa4, 0x94, 0xb4, 0x54, 0x06, + 0x68, 0xad, 0x0c, 0x12, 0xd4, 0x3d, 0x4c, 0x2c, 0x2e, 0xf1, 0xd8, 0xb9, + 0x61, 0xe2, 0xa9, 0x74, 0xa9, 0x57, 0x52, 0x14, 0xf6, 0x74, 0xb6, 0x73, + 0x69, 0x7a, 0x1a, 0xd3, 0xb2, 0x36, 0xad, 0x57, 0x4b, 0x63, 0x03, 0xd1, + 0x58, 0xac, 0xec, 0xa1, 0xcb, 0xb6, 0x75, 0x9b, 0x4e, 0x67, 0xb1, 0x91, + 0x74, 0x54, 0x6c, 0x1e, 0x08, 0x3e, 0x1f, 0x8d, 0x93, 0xb7, 0x6d, 0x5e, + 0xd3, 0x5a, 0x57, 0xb2, 0xdd, 0x92, 0x92, 0x3f, 0x3a, 0x71, 0x9e, 0xfd, + 0x35, 0x95, 0xfc, 0x56, 0x5f, 0x17, 0x35, 0x3e, 0x1d, 0x8f, 0x4b, 0x59, + 0x24, 0x90, 0xce, 0xe7, 0x59, 0x4c, 0xa4, 0x39, 0x3d, 0x76, 0x89, 0xbd, + 0xe1, 0x36, 0x1a, 0xaa, 0x42, 0xc5, 0x73, 0x03, 0x3e, 0x2f, 0x75, 0x55, + 0x55, 0x4c, 0x47, 0xe7, 0x09, 0x37, 0x37, 0x6d, 0x78, 0x5d, 0xaf, 0x57, + 0xc7, 0x34, 0x4d, 0x4c, 0xd3, 0xc4, 0xe3, 0xf1, 0x6c, 0xcb, 0xe7, 0x5f, + 0xf6, 0xd0, 0x37, 0xd8, 0x22, 0xa9, 0x2c, 0x42, 0x08, 0xda, 0x82, 0x1b, + 0xd3, 0x8d, 0xbc, 0x6d, 0x33, 0xba, 0x9c, 0xa6, 0xb3, 0x32, 0x40, 0xe5, + 0x1a, 0x0f, 0xfe, 0x99, 0x17, 0x2e, 0xb2, 0xb3, 0x2a, 0xc8, 0x6f, 0xef, + 0xe9, 0xa4, 0x31, 0xe0, 0x2b, 0x82, 0x19, 0x40, 0x00, 0x41, 0x5d, 0xa7, + 0xbd, 0xae, 0x9a, 0x03, 0x5d, 0x1d, 0x8c, 0x4c, 0x46, 0xc8, 0xe6, 0x72, + 0x25, 0xe7, 0x77, 0xb5, 0xb6, 0x10, 0x99, 0x9e, 0xbd, 0x62, 0xfd, 0x2a, + 0x83, 0x15, 0x24, 0xd7, 0x78, 0xf8, 0x32, 0xa0, 0xcb, 0xb6, 0xa9, 0x45, + 0xb3, 0x79, 0x04, 0xd0, 0xe0, 0xdf, 0x58, 0x1f, 0x8e, 0x66, 0xf2, 0xcc, + 0x67, 0xf3, 0x1c, 0xac, 0x0f, 0x95, 0x6c, 0x7f, 0x71, 0x39, 0xc5, 0xf3, + 0xf3, 0x71, 0xde, 0xb7, 0xb7, 0xfb, 0xaa, 0xd7, 0xa8, 0x0e, 0x06, 0xe8, + 0x6a, 0x6c, 0x60, 0x6c, 0x72, 0xba, 0x94, 0x4f, 0xab, 0x0a, 0x7e, 0x9f, + 0x97, 0x74, 0x3a, 0xb3, 0x39, 0xa0, 0x2b, 0x2a, 0x48, 0x95, 0x01, 0x5d, + 0xb6, 0xad, 0x5a, 0xc6, 0xb4, 0x10, 0x08, 0x36, 0x0b, 0xb9, 0x96, 0xf2, + 0x06, 0xcb, 0x79, 0x83, 0x1d, 0xa1, 0x52, 0x3d, 0xf8, 0x6b, 0x83, 0x13, + 0xfc, 0xde, 0x6d, 0xa5, 0x60, 0xb6, 0x25, 0x0c, 0xc4, 0x92, 0x3c, 0x17, + 0x5d, 0x26, 0x63, 0xae, 0x70, 0x63, 0xe1, 0x06, 0x78, 0x8a, 0x22, 0xc8, + 0xe5, 0x4a, 0x55, 0x8b, 0x9a, 0xaa, 0x10, 0x4b, 0x89, 0xe4, 0xa6, 0xf5, + 0xf3, 0xfb, 0x74, 0xb2, 0xd9, 0x6c, 0x19, 0xd0, 0x65, 0xdb, 0x9a, 0x49, + 0x40, 0x53, 0x36, 0x57, 0x10, 0x72, 0x96, 0x4d, 0xde, 0x96, 0xf8, 0xd7, + 0x68, 0xc6, 0xcf, 0xcd, 0x2d, 0xad, 0xe3, 0xd4, 0xdf, 0xba, 0x18, 0xe1, + 0xfe, 0x1f, 0x9e, 0xe4, 0xd0, 0xdf, 0x9f, 0xe0, 0xe3, 0x27, 0x5f, 0xc4, + 0x5c, 0x25, 0xcb, 0xe9, 0x9a, 0x86, 0x5f, 0xd7, 0x49, 0x67, 0x33, 0x6b, + 0x00, 0xeb, 0x23, 0x97, 0xdb, 0x1c, 0xb0, 0xba, 0x47, 0xbf, 0x62, 0xe0, + 0x58, 0x0e, 0x0a, 0xcb, 0x56, 0x62, 0xdd, 0x95, 0x01, 0x6a, 0xbd, 0xfa, + 0xa6, 0xfb, 0xeb, 0x7c, 0x3a, 0x87, 0x1b, 0xab, 0xd7, 0x6d, 0x7f, 0xa0, + 0xbd, 0xbe, 0x44, 0xb3, 0x36, 0x6d, 0x89, 0x47, 0x11, 0xbc, 0xb3, 0xa7, + 0xd9, 0x99, 0x00, 0x20, 0xdc, 0xd6, 0x22, 0x56, 0xe8, 0x45, 0xa8, 0x22, + 0x88, 0xb6, 0xa6, 0x61, 0x04, 0x02, 0x3e, 0xa4, 0xb4, 0x37, 0xff, 0xc1, + 0x35, 0x8d, 0xaa, 0x50, 0x68, 0xdb, 0x3e, 0xff, 0xf2, 0x48, 0xe1, 0x4d, + 0xf4, 0xd4, 0xe2, 0x26, 0x1c, 0x5b, 0xb6, 0x9b, 0xe4, 0xa1, 0x33, 0x99, + 0x0c, 0x86, 0x61, 0xa0, 0xaa, 0x1a, 0xc1, 0xe0, 0xd6, 0x66, 0x5e, 0x24, + 0x93, 0x49, 0x6c, 0x7b, 0xbd, 0xf7, 0x10, 0x42, 0xe0, 0xf5, 0x7a, 0xd1, + 0x75, 0x7d, 0x4b, 0xe5, 0x64, 0xb3, 0x39, 0xf2, 0xf9, 0xdc, 0xd5, 0x5b, + 0xeb, 0x26, 0xe5, 0x3a, 0x41, 0x93, 0x24, 0x10, 0x08, 0x6c, 0xa9, 0xae, + 0x42, 0x08, 0x82, 0x41, 0x67, 0x86, 0xf5, 0x96, 0x3d, 0xc5, 0x26, 0xdb, + 0x17, 0xb2, 0x06, 0x12, 0x49, 0xbd, 0x4f, 0xbf, 0xe2, 0xb1, 0xb6, 0x94, + 0x2c, 0xe6, 0x4c, 0x52, 0xa6, 0x85, 0x00, 0x6c, 0xa0, 0x3d, 0xe0, 0x45, + 0x5d, 0x43, 0x67, 0x16, 0x73, 0x06, 0x09, 0xc3, 0x5a, 0x57, 0x86, 0x10, + 0x10, 0xd4, 0x54, 0x6a, 0xbc, 0x9e, 0x32, 0xa0, 0xaf, 0xf4, 0x23, 0x5f, + 0xb8, 0x30, 0xc8, 0xcc, 0xcc, 0x0c, 0x99, 0x4c, 0x06, 0xcb, 0xb2, 0x50, + 0x14, 0x05, 0x9f, 0xcf, 0x4b, 0x7d, 0x7d, 0x3d, 0x3b, 0x77, 0xee, 0xa4, + 0xa9, 0x69, 0xbd, 0x06, 0x1a, 0x8b, 0xc5, 0x78, 0xf6, 0xd9, 0x93, 0x2c, + 0x2d, 0xc5, 0xb1, 0x6d, 0xb9, 0x21, 0xf0, 0x34, 0x4d, 0x25, 0x18, 0x0c, + 0xd2, 0xd6, 0xd6, 0xc6, 0xee, 0xdd, 0xbb, 0xf1, 0xf9, 0xd6, 0xcb, 0x5e, + 0xb6, 0x6d, 0x73, 0xe2, 0xc4, 0xd3, 0x44, 0x22, 0x11, 0x4c, 0xd3, 0xbc, + 0xfa, 0xcd, 0x69, 0x2a, 0xfb, 0xf7, 0xdf, 0x4e, 0x6f, 0x6f, 0x1f, 0x00, + 0xf9, 0x7c, 0x9e, 0xe7, 0x9f, 0x7f, 0x9e, 0xcb, 0x97, 0x27, 0x91, 0x52, + 0xd2, 0xd1, 0x11, 0xe6, 0xe8, 0xd1, 0xa3, 0xeb, 0xce, 0xb3, 0x2c, 0x8b, + 0xc7, 0x1e, 0x7b, 0xac, 0xa8, 0x16, 0xf8, 0x7c, 0x3e, 0x1e, 0x78, 0xe0, + 0x01, 0x2a, 0x2b, 0x2b, 0xae, 0x3f, 0x58, 0xb4, 0x2c, 0x3e, 0xf1, 0xdc, + 0x28, 0xa7, 0xa2, 0xcb, 0x48, 0xe0, 0x50, 0x63, 0x88, 0xdf, 0xdf, 0xd7, + 0x41, 0x73, 0x60, 0x63, 0x35, 0x24, 0x69, 0x58, 0xfc, 0xd5, 0xb9, 0xcb, + 0xfc, 0x74, 0x72, 0x1e, 0x5d, 0x51, 0x48, 0x9b, 0x16, 0xdf, 0x7f, 0xc3, + 0x1d, 0x34, 0xba, 0xa3, 0x8a, 0x0b, 0x59, 0x83, 0xff, 0xd5, 0x7f, 0x89, + 0x67, 0xe7, 0x96, 0x30, 0x37, 0x78, 0xa6, 0x08, 0xf0, 0x2a, 0x0a, 0xf5, + 0x3e, 0x0f, 0x77, 0x36, 0x84, 0x78, 0x7b, 0x77, 0x13, 0xed, 0x57, 0x18, + 0xb9, 0xbc, 0xe5, 0x00, 0x7d, 0xf2, 0xe4, 0x49, 0xfa, 0xfb, 0x07, 0x48, + 0xa7, 0xd3, 0xe4, 0xf3, 0x79, 0x6c, 0xdb, 0x46, 0x4a, 0x89, 0x10, 0x02, + 0x45, 0x51, 0xb8, 0x74, 0x69, 0x82, 0xc1, 0xc1, 0x21, 0xba, 0xba, 0x3a, + 0x39, 0x7a, 0xf4, 0x68, 0x89, 0xf7, 0x7b, 0xea, 0xa9, 0xa7, 0x18, 0x1b, + 0x1b, 0x2f, 0x7a, 0xbc, 0xc2, 0xb9, 0x25, 0xd1, 0xa9, 0xa2, 0xa0, 0x28, + 0x0a, 0x63, 0x63, 0xe3, 0x9c, 0x3d, 0xdb, 0xcf, 0x81, 0x03, 0x07, 0xb8, + 0xfd, 0xf6, 0x7d, 0x25, 0xc7, 0x0c, 0x0e, 0x0e, 0xf1, 0xc2, 0x0b, 0x2f, + 0x14, 0xf3, 0x11, 0xa4, 0x94, 0x1b, 0x7a, 0xfc, 0x82, 0x79, 0x3c, 0x1e, + 0xba, 0xbb, 0x57, 0x94, 0x83, 0x8b, 0x17, 0x47, 0x38, 0x7d, 0xfa, 0x0c, + 0x99, 0x8c, 0x03, 0xd4, 0x68, 0x34, 0x8a, 0x10, 0x0a, 0x47, 0x8e, 0xdc, + 0x5d, 0x4a, 0x01, 0xa4, 0x64, 0x76, 0x76, 0x8e, 0x64, 0x32, 0xe9, 0xf2, + 0xd2, 0x00, 0x96, 0x65, 0xbe, 0xa4, 0x07, 0xfd, 0x27, 0x27, 0x5f, 0xe4, + 0xcb, 0x17, 0x26, 0x8b, 0xe0, 0x7b, 0x66, 0x2e, 0x8e, 0x2a, 0x04, 0x1f, + 0x39, 0xd8, 0x4d, 0x85, 0x67, 0x7d, 0x52, 0x91, 0x29, 0x25, 0x23, 0xcb, + 0x69, 0x9e, 0x9e, 0x5d, 0xc2, 0xa7, 0x2a, 0x24, 0x0d, 0x93, 0x9c, 0x7b, + 0xaf, 0xa6, 0x2d, 0x79, 0x78, 0x22, 0xca, 0x5f, 0x9c, 0x1d, 0x47, 0x20, + 0x50, 0x04, 0x18, 0xb6, 0x5c, 0x97, 0xcb, 0xa1, 0x08, 0x81, 0x47, 0x11, + 0x3c, 0x3a, 0xb9, 0xc0, 0xd7, 0x06, 0xa7, 0x78, 0xf7, 0xee, 0x56, 0x3e, + 0xb4, 0xbf, 0x73, 0x5b, 0xa7, 0x90, 0x6e, 0x09, 0xd0, 0x8f, 0x3c, 0xf2, + 0x08, 0x83, 0x83, 0x43, 0x25, 0xe0, 0x69, 0x6c, 0x6c, 0xa4, 0xae, 0xae, + 0x96, 0x44, 0x22, 0x49, 0x24, 0x12, 0xc1, 0xb2, 0x2c, 0x12, 0x89, 0x04, + 0xfd, 0xfd, 0x03, 0x2c, 0x2f, 0x2f, 0x73, 0xff, 0xfd, 0xf7, 0x13, 0x72, + 0x83, 0x8f, 0xe5, 0xe5, 0x44, 0x09, 0x68, 0x9b, 0x9b, 0x9b, 0xa9, 0xac, + 0xac, 0x2c, 0x82, 0xda, 0x34, 0x4d, 0x22, 0x91, 0x08, 0xa9, 0x54, 0x8a, + 0x7c, 0x3e, 0x4f, 0x34, 0x1a, 0xe5, 0xc9, 0x27, 0x9f, 0x24, 0x99, 0x4c, + 0x94, 0x78, 0xd0, 0x64, 0x32, 0x51, 0xec, 0x15, 0x84, 0x10, 0x84, 0x42, + 0x21, 0x5a, 0x5a, 0x5a, 0x36, 0x05, 0xb5, 0xa2, 0xa8, 0xd4, 0xd6, 0xd6, + 0xad, 0xa2, 0x49, 0xe9, 0xe2, 0xf9, 0x85, 0xeb, 0xf6, 0xf7, 0xf7, 0xd3, + 0xd3, 0xd3, 0x4d, 0x63, 0x63, 0xe3, 0x86, 0x0d, 0xac, 0xf0, 0xfd, 0xa5, + 0xb0, 0xdc, 0xc5, 0x9c, 0xc1, 0x57, 0x07, 0xa7, 0x9c, 0x46, 0xe6, 0x52, + 0x06, 0x53, 0x4a, 0xbe, 0x75, 0x71, 0x9a, 0x77, 0xed, 0x6a, 0x61, 0x4f, + 0xf5, 0xc6, 0x29, 0x9d, 0xaa, 0x70, 0x14, 0x13, 0x4d, 0x11, 0x25, 0x19, + 0x72, 0xb6, 0x94, 0x2c, 0x64, 0x0d, 0x72, 0x96, 0x4d, 0xa5, 0x47, 0xc3, + 0xb0, 0x25, 0xf7, 0xb6, 0xd6, 0xd0, 0x12, 0x58, 0xf1, 0xc0, 0xa6, 0x65, + 0x73, 0x21, 0x9e, 0xe2, 0xdc, 0x62, 0x92, 0x94, 0x69, 0x91, 0x4e, 0x64, + 0xf9, 0xe4, 0xa9, 0x51, 0x2e, 0x25, 0x33, 0x7c, 0xfe, 0xd8, 0x1e, 0xb6, + 0x2b, 0xa6, 0xaf, 0x0a, 0xe8, 0xd1, 0xd1, 0x31, 0xce, 0x9d, 0x3b, 0x5f, + 0xfc, 0x71, 0x43, 0xa1, 0x10, 0xf7, 0xdd, 0x77, 0x1f, 0x3b, 0x76, 0xf4, + 0x14, 0x8f, 0x89, 0xc7, 0xe3, 0x3c, 0xfc, 0xf0, 0x8f, 0x5c, 0x8f, 0x27, + 0x18, 0x1d, 0x1d, 0xa3, 0xa9, 0x69, 0x80, 0x63, 0xc7, 0x8e, 0x6d, 0xe8, + 0x35, 0x5f, 0xf5, 0xaa, 0xbb, 0xe8, 0xe9, 0xe9, 0x29, 0x02, 0x5a, 0x08, + 0x81, 0x94, 0x92, 0x53, 0xa7, 0x4e, 0xf1, 0xe4, 0x93, 0x4f, 0x21, 0x84, + 0x20, 0x9f, 0xcf, 0x33, 0x38, 0x38, 0x44, 0x38, 0x1c, 0xa6, 0xbd, 0xbd, + 0x7d, 0x43, 0x9a, 0x12, 0x0e, 0x87, 0x79, 0xe0, 0x81, 0xfb, 0xb9, 0x52, + 0x5c, 0x7b, 0x35, 0x6f, 0x94, 0x4a, 0xa5, 0x38, 0x7e, 0xfc, 0x04, 0x6f, + 0x79, 0xcb, 0xaf, 0xdd, 0xb4, 0x87, 0xfc, 0xe5, 0x0b, 0x97, 0xc9, 0xdb, + 0x36, 0xea, 0xaa, 0xba, 0x68, 0x42, 0x30, 0x91, 0xcc, 0xf0, 0xff, 0x26, + 0x63, 0xec, 0x0c, 0x05, 0x8a, 0x40, 0xbf, 0xa6, 0x88, 0xde, 0x6d, 0x64, + 0x29, 0xd3, 0xe2, 0x03, 0xfb, 0x3a, 0x79, 0x43, 0xb8, 0xbe, 0x84, 0x72, + 0x58, 0xb6, 0xe4, 0x87, 0x97, 0xa2, 0x7c, 0xec, 0x99, 0x61, 0xa6, 0xd3, + 0x39, 0x54, 0x04, 0x5f, 0x3a, 0x3f, 0xc9, 0x6f, 0xec, 0x68, 0xe1, 0x58, + 0x73, 0xf5, 0xb6, 0x04, 0xf4, 0x55, 0xa3, 0x9c, 0xb1, 0xb1, 0xb1, 0x22, + 0x28, 0x54, 0x55, 0x65, 0xef, 0xde, 0xbd, 0x25, 0x60, 0x06, 0xa8, 0xae, + 0xae, 0xe6, 0x4d, 0x6f, 0x7a, 0x23, 0x86, 0x61, 0x14, 0xbb, 0xec, 0x85, + 0x85, 0x18, 0xe9, 0x74, 0xfa, 0x8a, 0x21, 0x93, 0x10, 0xa2, 0x58, 0xb6, + 0x10, 0x82, 0xbb, 0xee, 0xba, 0x8b, 0xee, 0xee, 0xee, 0xa2, 0xc7, 0x4d, + 0xa5, 0x52, 0x2c, 0x2d, 0x2d, 0x5d, 0x01, 0xac, 0x94, 0x94, 0xb3, 0xd1, + 0x67, 0x2b, 0x36, 0x3d, 0x1d, 0xa1, 0xbf, 0xbf, 0xff, 0xa6, 0x3d, 0xe4, + 0xaf, 0x5c, 0x88, 0x14, 0xc1, 0x2c, 0xa0, 0xf8, 0xdd, 0xa7, 0xaa, 0x7c, + 0x63, 0x38, 0x42, 0x3c, 0x67, 0xbc, 0x74, 0xb9, 0x4a, 0xac, 0xf9, 0xe0, + 0x78, 0xf7, 0xb7, 0x76, 0x37, 0xf2, 0xef, 0x7a, 0xdb, 0x30, 0x5c, 0xaa, + 0xa3, 0x08, 0xc1, 0x89, 0xd9, 0xf8, 0xb6, 0xa5, 0x1c, 0x57, 0x05, 0xf4, + 0xea, 0xe0, 0x4b, 0x55, 0x55, 0xbc, 0xde, 0x8d, 0x83, 0x98, 0xd5, 0x9c, + 0x59, 0x08, 0xb1, 0x21, 0x4f, 0xbe, 0x9a, 0xe5, 0xf3, 0x79, 0x72, 0xab, + 0xf2, 0x13, 0x3c, 0x1e, 0xcf, 0x86, 0xc1, 0xe1, 0x8d, 0xb6, 0x74, 0x3a, + 0xcb, 0xc0, 0xc0, 0xb9, 0x2b, 0x36, 0x9e, 0xeb, 0xb5, 0x6f, 0x0d, 0x47, + 0x58, 0x5c, 0x05, 0xd8, 0x9e, 0x90, 0x9f, 0xd7, 0x87, 0xeb, 0xc9, 0x59, + 0x36, 0x1e, 0x45, 0xf0, 0x6c, 0x74, 0x89, 0x53, 0xf3, 0x4e, 0xa0, 0x78, + 0x33, 0x2c, 0x6f, 0xdb, 0xc4, 0xdc, 0xe1, 0xf8, 0x02, 0x5d, 0x69, 0x0d, + 0x7a, 0x6f, 0x5d, 0x40, 0x6f, 0xac, 0x9a, 0x6e, 0xb0, 0xf5, 0x1a, 0xc0, + 0xbb, 0x5a, 0xfe, 0x2a, 0x70, 0xef, 0xa9, 0xa9, 0x08, 0x8f, 0x3e, 0xfa, + 0x18, 0x93, 0x93, 0x93, 0x2e, 0x05, 0x81, 0x8e, 0x8e, 0x30, 0x6d, 0x6d, + 0x6d, 0xd7, 0x21, 0x8e, 0x6d, 0xcd, 0x54, 0x55, 0x45, 0x4a, 0x89, 0xaa, + 0x2a, 0xcc, 0xcc, 0xcc, 0x14, 0xbd, 0xf4, 0x8d, 0x0c, 0x9a, 0x1e, 0x1a, + 0x8e, 0x14, 0x83, 0x35, 0x9f, 0xaa, 0xf0, 0x3b, 0x7b, 0xda, 0x79, 0x77, + 0x6f, 0x2b, 0xba, 0xaa, 0x20, 0x01, 0xbf, 0xa6, 0xf0, 0x57, 0xe7, 0x2e, + 0x63, 0xd9, 0xf2, 0x86, 0x03, 0x79, 0x30, 0x9e, 0xe2, 0xd3, 0x2f, 0x8c, + 0xf3, 0xed, 0x91, 0x19, 0x3c, 0x8a, 0x42, 0xce, 0xb2, 0xd9, 0x5d, 0x15, + 0x2c, 0xa5, 0x26, 0x65, 0x1d, 0xfa, 0xa5, 0x99, 0x6d, 0xdb, 0xcc, 0xcd, + 0xcd, 0x22, 0xa5, 0x4d, 0x22, 0x91, 0x64, 0x69, 0x69, 0x89, 0x68, 0x34, + 0xca, 0xd4, 0xd4, 0x14, 0xd9, 0x6c, 0xd6, 0x95, 0xf0, 0x34, 0x76, 0xef, + 0xde, 0xcd, 0xe1, 0xc3, 0x87, 0x37, 0xf5, 0xd0, 0x52, 0x4a, 0xe6, 0xe6, + 0xe6, 0x38, 0x75, 0xea, 0x14, 0xe6, 0xaa, 0x3c, 0x07, 0xcb, 0xb2, 0xb8, + 0xfb, 0xee, 0xc3, 0x57, 0xd5, 0x8c, 0xa5, 0x94, 0xb4, 0xb4, 0x34, 0x13, + 0x8b, 0x2d, 0x92, 0x4a, 0xa5, 0x90, 0x52, 0x72, 0xe1, 0xc2, 0x05, 0x3a, + 0x3b, 0xbb, 0x68, 0x6b, 0x6b, 0xbd, 0x21, 0xf7, 0xfa, 0x78, 0x64, 0x91, + 0xe1, 0x78, 0xba, 0xe8, 0x02, 0xea, 0x7d, 0x3a, 0xbf, 0xb5, 0xb3, 0x85, + 0xe5, 0xbc, 0xc9, 0xd1, 0xa6, 0x2a, 0x9e, 0x88, 0x2c, 0xe2, 0x55, 0x15, + 0x1e, 0x9d, 0x5c, 0x60, 0x28, 0x9e, 0x62, 0x6f, 0xed, 0xf5, 0xcb, 0x82, + 0x85, 0x6b, 0x8c, 0x2d, 0x67, 0xe8, 0x8f, 0x25, 0x79, 0x2e, 0xba, 0xc4, + 0x4f, 0x27, 0xe7, 0x39, 0x3d, 0x9f, 0x40, 0x53, 0x14, 0x0c, 0xdb, 0x66, + 0x5f, 0x4d, 0x05, 0x9f, 0x3d, 0xd6, 0xbb, 0xad, 0xb5, 0xe9, 0x97, 0x1d, + 0xd0, 0xa6, 0x69, 0x72, 0xea, 0xd4, 0x0b, 0x58, 0x96, 0x45, 0x3a, 0x9d, + 0x29, 0x91, 0xc3, 0x6a, 0x6a, 0x6a, 0x08, 0x87, 0xc3, 0xf4, 0xf4, 0xf4, + 0xd0, 0xd3, 0xd3, 0x85, 0xae, 0x7b, 0xaf, 0x08, 0xc8, 0x48, 0x24, 0xc2, + 0xc4, 0xc4, 0x44, 0xc9, 0xf6, 0x5c, 0x2e, 0xc7, 0xa1, 0x43, 0xaf, 0xda, + 0xd2, 0x20, 0x48, 0x5d, 0x5d, 0x1d, 0x7d, 0x7d, 0x7d, 0xfc, 0xf8, 0xc7, + 0xff, 0x8c, 0xae, 0x7b, 0x88, 0xc7, 0x97, 0x39, 0x73, 0xe6, 0x34, 0x35, + 0x35, 0xd5, 0x37, 0x44, 0x05, 0xf8, 0xe6, 0x70, 0x84, 0x94, 0xdb, 0xd8, + 0x14, 0x01, 0xaf, 0x0b, 0xd7, 0x51, 0xa5, 0x6b, 0x54, 0xe9, 0x1a, 0xf7, + 0xb5, 0xd6, 0x72, 0x7c, 0x26, 0x5e, 0xec, 0x67, 0xbe, 0x30, 0x70, 0x89, + 0x2f, 0xdd, 0xb3, 0xf7, 0xba, 0xd1, 0xec, 0x57, 0x55, 0xbe, 0x37, 0x3a, + 0xcb, 0xdf, 0x0e, 0x4d, 0xf1, 0xc2, 0x7c, 0x82, 0x68, 0x26, 0x8f, 0x22, + 0xc0, 0x92, 0x50, 0xeb, 0xd1, 0x78, 0x73, 0x57, 0x03, 0xef, 0xdd, 0xd3, + 0xce, 0x5d, 0x0d, 0xdb, 0x77, 0xd8, 0xfb, 0x15, 0x01, 0xb4, 0x94, 0x92, + 0x44, 0xc2, 0x91, 0xdf, 0xfc, 0x7e, 0x3f, 0x75, 0x75, 0xcd, 0x34, 0x36, + 0x36, 0xd2, 0xda, 0xda, 0x4a, 0x5d, 0x5d, 0x2d, 0xd5, 0xd5, 0xd5, 0xf8, + 0xfd, 0x5b, 0x5b, 0x68, 0x50, 0xd7, 0x75, 0x02, 0x81, 0x40, 0x09, 0xdd, + 0xf1, 0x5e, 0xc3, 0xf4, 0x22, 0x29, 0xa1, 0xaf, 0xaf, 0x97, 0xa1, 0xa1, + 0x61, 0x46, 0x47, 0x47, 0xf1, 0x78, 0x3c, 0x5c, 0xbc, 0x38, 0x42, 0x38, + 0x1c, 0xc6, 0xb2, 0xec, 0x97, 0x74, 0x9f, 0xe7, 0x16, 0x93, 0xbc, 0x30, + 0xbf, 0x8c, 0x69, 0xdb, 0xae, 0x1e, 0xac, 0xf0, 0xc1, 0xdb, 0x3b, 0x8a, + 0xfb, 0x1f, 0x6c, 0xaf, 0xe3, 0xef, 0x47, 0x67, 0x19, 0x8a, 0xa7, 0xf0, + 0xa8, 0x0a, 0x3f, 0x18, 0x9b, 0xe3, 0x13, 0x87, 0x76, 0xd2, 0xe4, 0xbf, + 0x76, 0x7e, 0xab, 0x08, 0x88, 0x65, 0xf3, 0xfc, 0xd9, 0xa9, 0x51, 0x86, + 0x97, 0xd2, 0xa8, 0x02, 0xaa, 0x75, 0x8d, 0xdb, 0xeb, 0x2a, 0xb9, 0xbf, + 0xad, 0x96, 0x63, 0xcd, 0xd5, 0xdc, 0x59, 0x1f, 0x22, 0xa4, 0x6f, 0xff, + 0xd4, 0x9d, 0x97, 0xfd, 0x0e, 0x35, 0x4d, 0xe3, 0xc0, 0x81, 0x03, 0xec, + 0xda, 0xb5, 0x93, 0x40, 0x20, 0x80, 0xc7, 0xe3, 0x41, 0xd7, 0xf5, 0x4d, + 0x83, 0xcd, 0x2b, 0xc9, 0x71, 0x3b, 0x76, 0xec, 0xe0, 0xde, 0x7b, 0xef, + 0x21, 0x9f, 0x37, 0x4a, 0x1a, 0xcc, 0xb5, 0x0c, 0x51, 0x6b, 0x9a, 0x87, + 0xc3, 0x87, 0x0f, 0x31, 0x3d, 0x3d, 0x5d, 0x54, 0x69, 0x9e, 0x7d, 0xf6, + 0xe4, 0x4b, 0x4e, 0xb1, 0xfc, 0xfe, 0xd8, 0x1c, 0x97, 0x93, 0x59, 0x14, + 0x21, 0x90, 0xc0, 0x1d, 0xf5, 0x95, 0xa8, 0x42, 0x61, 0x7c, 0x39, 0x83, + 0x10, 0x82, 0x1a, 0xaf, 0x87, 0x9e, 0x90, 0x9f, 0xa1, 0x78, 0x0a, 0x01, + 0xa4, 0x4d, 0x9b, 0xaf, 0x5c, 0x98, 0xe2, 0x8f, 0xee, 0xec, 0xb9, 0x2e, + 0xba, 0x51, 0xa1, 0x6b, 0xa8, 0xae, 0x66, 0x2d, 0x70, 0x66, 0xbf, 0xd4, + 0x78, 0x3d, 0x7c, 0xf0, 0xf6, 0x4e, 0x82, 0x9e, 0x5b, 0x67, 0xdd, 0xe8, + 0x97, 0x1d, 0xd0, 0xaa, 0xaa, 0xd2, 0xd1, 0xd1, 0xb1, 0xa1, 0xb6, 0x7c, + 0xad, 0x80, 0xf6, 0x7a, 0xbd, 0x04, 0x83, 0x41, 0x82, 0x2f, 0x71, 0xa9, + 0x89, 0x96, 0x96, 0x16, 0x0e, 0x1e, 0x3c, 0xc8, 0xf1, 0xe3, 0xc7, 0xd1, + 0x75, 0x9d, 0x54, 0x2a, 0xf5, 0x92, 0xca, 0x8b, 0xa4, 0x72, 0x1c, 0x9f, + 0x89, 0x93, 0xb5, 0xec, 0x22, 0xc0, 0x9e, 0x8f, 0x2e, 0xf3, 0xea, 0xef, + 0x3f, 0x53, 0xe4, 0xba, 0x02, 0xc8, 0x98, 0x2b, 0xda, 0xb4, 0xa6, 0x08, + 0x1e, 0x1a, 0x8a, 0xf0, 0xb1, 0x3b, 0x7a, 0xae, 0x99, 0xee, 0x48, 0x40, + 0x41, 0xf0, 0xe5, 0x7b, 0xf6, 0xf2, 0x2b, 0xff, 0xf7, 0x79, 0xb2, 0xa6, + 0x8d, 0x04, 0x9e, 0x9a, 0x8e, 0xf1, 0xdf, 0x4f, 0xbd, 0xc8, 0x9f, 0x1e, + 0xde, 0xcd, 0xad, 0xb2, 0xc8, 0xff, 0x0d, 0xcb, 0x87, 0xbe, 0x16, 0x85, + 0xee, 0xc6, 0xa9, 0x08, 0x37, 0x46, 0x19, 0xd0, 0x34, 0x8d, 0xbe, 0xbe, + 0x5e, 0xda, 0xda, 0xda, 0xaf, 0x38, 0x94, 0xbe, 0x55, 0x7b, 0x72, 0x7a, + 0x91, 0xb3, 0xb1, 0x44, 0xc9, 0x6a, 0x49, 0x86, 0x2d, 0x59, 0xca, 0x9b, + 0x2c, 0xbb, 0x9f, 0xa5, 0xbc, 0x49, 0x7e, 0xcd, 0xb5, 0xe2, 0x79, 0x83, + 0x6f, 0x5e, 0x8c, 0x5c, 0x5f, 0x6c, 0x22, 0x6d, 0x0e, 0xd6, 0x57, 0xf2, + 0x0f, 0xaf, 0xbb, 0xa3, 0xd8, 0x48, 0xf2, 0xb6, 0xe4, 0x6f, 0x2e, 0x4c, + 0xf1, 0x99, 0x33, 0x63, 0xd8, 0xdc, 0x1a, 0x49, 0x95, 0x57, 0xf5, 0xd0, + 0x85, 0x21, 0x6a, 0x21, 0x04, 0x86, 0x61, 0x10, 0x8d, 0xce, 0x17, 0xff, + 0x5f, 0xad, 0x5c, 0x8c, 0x8f, 0x5f, 0x2a, 0x76, 0xf5, 0x52, 0x4a, 0xbc, + 0x5e, 0x2f, 0x9a, 0x76, 0xb3, 0xa3, 0xe9, 0x1b, 0xe7, 0x76, 0xea, 0xeb, + 0xeb, 0xd9, 0xb7, 0x6f, 0x2f, 0xb1, 0xd8, 0x02, 0xa6, 0x69, 0x5e, 0x77, + 0xa3, 0x4b, 0x1a, 0x16, 0x8f, 0x47, 0x62, 0xcc, 0x67, 0xf2, 0xf8, 0x35, + 0x15, 0x4b, 0x4a, 0x1e, 0x6c, 0xaf, 0x2b, 0xc9, 0xae, 0x5b, 0xe1, 0xbe, + 0x82, 0xc9, 0x54, 0x96, 0x67, 0x66, 0xe3, 0x18, 0xb6, 0xc4, 0xb4, 0x25, + 0x5f, 0x1d, 0x9c, 0xe2, 0xdf, 0xee, 0x6e, 0xbd, 0xee, 0x3b, 0x3b, 0xda, + 0x54, 0xc5, 0xdf, 0xbd, 0x6e, 0x3f, 0xbf, 0xf9, 0xd3, 0x7e, 0x72, 0x96, + 0x8d, 0x29, 0x25, 0x9f, 0x3a, 0x3d, 0x46, 0xad, 0xd7, 0xc3, 0x7b, 0xfa, + 0xda, 0x4a, 0x46, 0x2b, 0x6f, 0x49, 0x40, 0xef, 0xdb, 0xb7, 0x97, 0xb3, + 0x67, 0xcf, 0x92, 0x4e, 0xa7, 0x11, 0x42, 0x30, 0x38, 0x38, 0x88, 0x65, + 0x99, 0xec, 0xdf, 0xbf, 0x9f, 0x60, 0x30, 0x88, 0x61, 0x18, 0x0c, 0x0f, + 0x5f, 0xe4, 0xe4, 0xc9, 0x93, 0x68, 0x9a, 0x86, 0x94, 0x4e, 0x5a, 0x66, + 0x57, 0x57, 0x07, 0x5e, 0xaf, 0x7e, 0x43, 0x2b, 0xbb, 0xba, 0x17, 0x90, + 0x52, 0x92, 0xcb, 0xe5, 0xdc, 0xfc, 0x0f, 0x63, 0x93, 0x9e, 0x00, 0x7c, + 0x3e, 0x3f, 0xbe, 0x2d, 0x2e, 0x52, 0xb8, 0x67, 0x4f, 0x1f, 0x13, 0x13, + 0x97, 0x18, 0x19, 0x79, 0xf1, 0xba, 0x7b, 0x83, 0x33, 0x0b, 0x09, 0x9e, + 0x9c, 0x5e, 0x44, 0x57, 0x15, 0x2c, 0x29, 0x69, 0xf0, 0xeb, 0x7c, 0xf7, + 0xc1, 0x83, 0xa8, 0x9b, 0xe0, 0x28, 0x65, 0x98, 0x1c, 0xfb, 0xfe, 0xb3, + 0x5c, 0x4e, 0x3a, 0x9c, 0x7d, 0x2c, 0x91, 0xe1, 0x89, 0x48, 0x8c, 0x43, + 0x8d, 0x55, 0xd7, 0xfd, 0x9c, 0x5e, 0xdb, 0x5a, 0xc7, 0x57, 0xee, 0xdb, + 0xcb, 0xef, 0x3e, 0x71, 0x9e, 0xa4, 0x69, 0x62, 0xda, 0xf0, 0xb1, 0x67, + 0x2e, 0x12, 0xf2, 0x68, 0xbc, 0x7d, 0x47, 0xd3, 0xb6, 0x06, 0xf5, 0x55, + 0x01, 0x1d, 0x0a, 0x85, 0x78, 0xfd, 0xeb, 0x5f, 0xcf, 0x53, 0x4f, 0x3d, + 0xc5, 0xc2, 0xc2, 0x02, 0x86, 0x61, 0x30, 0x30, 0x70, 0x8e, 0xfe, 0xfe, + 0x01, 0x74, 0x5d, 0x77, 0xc1, 0x24, 0xd1, 0x34, 0xa7, 0xa8, 0xaa, 0xaa, + 0x2a, 0x0e, 0x1e, 0x3c, 0x58, 0x4c, 0xd9, 0xbc, 0xa1, 0xfc, 0x48, 0x51, + 0x8a, 0x8a, 0x86, 0x94, 0x92, 0x8b, 0x17, 0x2f, 0x32, 0x32, 0x32, 0x72, + 0x45, 0x2a, 0x71, 0xe4, 0xc8, 0x11, 0xee, 0xbc, 0xf3, 0x8e, 0x2d, 0xab, + 0x26, 0x07, 0x0f, 0x1e, 0x64, 0x76, 0x76, 0x96, 0x44, 0x22, 0x59, 0xcc, + 0x31, 0xb1, 0x6d, 0x7b, 0x4b, 0x81, 0xa6, 0x61, 0x4b, 0x7e, 0x3e, 0xb3, + 0xc8, 0xc8, 0x52, 0x8a, 0x0a, 0x8f, 0x46, 0xd2, 0xb0, 0x78, 0xff, 0x6d, + 0x61, 0xc4, 0x15, 0x52, 0xf8, 0x83, 0x1e, 0x8d, 0xfb, 0xdb, 0xeb, 0xf8, + 0xfa, 0xd0, 0x14, 0xb6, 0x74, 0x3c, 0xfc, 0xb7, 0x2f, 0xce, 0x70, 0xb8, + 0xa9, 0x7a, 0xeb, 0x0d, 0x6a, 0x83, 0x5d, 0x6f, 0xec, 0x6c, 0xe0, 0xcf, + 0x8f, 0xf5, 0xf2, 0xd1, 0xa7, 0x87, 0x89, 0xe5, 0x9c, 0x44, 0xa6, 0x0f, + 0x1e, 0x1f, 0x44, 0x57, 0x15, 0xde, 0xd2, 0xdd, 0x78, 0xeb, 0x02, 0x1a, + 0xa0, 0xbb, 0xbb, 0x8b, 0xea, 0xea, 0x2a, 0xfa, 0xfb, 0x07, 0x88, 0x44, + 0xa6, 0x88, 0xc5, 0x16, 0x8b, 0x69, 0xa4, 0x42, 0x08, 0x7c, 0x3e, 0x3f, + 0x35, 0x35, 0xd5, 0x34, 0x37, 0xb7, 0xd0, 0xdb, 0xbb, 0x8b, 0x70, 0xb8, + 0xa3, 0xf4, 0x87, 0x36, 0x8c, 0xa2, 0x82, 0xa0, 0x28, 0xca, 0x75, 0xf3, + 0xd4, 0xf6, 0xf6, 0x36, 0xea, 0xeb, 0xeb, 0x99, 0x9d, 0x9d, 0x75, 0x65, + 0x35, 0x79, 0x55, 0x6e, 0xbc, 0x5a, 0xe7, 0xb6, 0x2c, 0xab, 0xa4, 0x2e, + 0xd6, 0x06, 0x73, 0xeb, 0xc2, 0xe1, 0x30, 0x77, 0xde, 0x79, 0x27, 0x27, + 0x4f, 0x3e, 0xc7, 0xf2, 0xf2, 0x32, 0xba, 0xae, 0x13, 0x0e, 0xb7, 0x13, + 0xdc, 0x42, 0xe4, 0x39, 0xba, 0x9c, 0xe6, 0xeb, 0xc3, 0x11, 0x0c, 0xdb, + 0x59, 0xe4, 0xbc, 0xd6, 0xe7, 0xe1, 0x6d, 0xdd, 0x4d, 0x57, 0x5d, 0x79, + 0xf4, 0xfd, 0xb7, 0x85, 0x79, 0x68, 0x70, 0x8a, 0xa4, 0x61, 0x61, 0x23, + 0x79, 0x7c, 0x3a, 0xc6, 0xf1, 0x99, 0x45, 0x6c, 0x09, 0x19, 0xc3, 0xc2, + 0xb2, 0x25, 0xa6, 0x61, 0xad, 0x34, 0x66, 0x9c, 0x91, 0x40, 0xc3, 0x30, + 0x49, 0x01, 0xd2, 0x34, 0x37, 0xcc, 0x89, 0x7e, 0xe7, 0x8e, 0x26, 0xd2, + 0xa6, 0xc5, 0xc7, 0x9f, 0x1b, 0x61, 0x3a, 0x95, 0x23, 0x69, 0x58, 0xbc, + 0xf7, 0x89, 0x01, 0x32, 0xd6, 0x1e, 0xde, 0xb5, 0xb3, 0x65, 0x5b, 0x02, + 0xfa, 0x9a, 0xa7, 0x60, 0x2d, 0x2e, 0x2e, 0xb2, 0xb0, 0x10, 0x23, 0x95, + 0x4a, 0x61, 0x9a, 0x26, 0xaa, 0xaa, 0x12, 0x08, 0xf8, 0xa9, 0xae, 0xae, + 0xa6, 0xa1, 0xa1, 0x61, 0x43, 0xee, 0x79, 0xee, 0xdc, 0xb9, 0xa2, 0x0c, + 0xa6, 0xaa, 0x2a, 0x5d, 0x5d, 0xdd, 0x54, 0x57, 0x5f, 0x5f, 0x97, 0x3a, + 0x3b, 0x3b, 0xc7, 0xdc, 0xdc, 0x2c, 0xb9, 0x5c, 0xfe, 0xaa, 0x91, 0xbb, + 0xa2, 0x28, 0xb4, 0xb6, 0xb6, 0x16, 0x27, 0x1d, 0xcc, 0xcc, 0xcc, 0x12, + 0x89, 0x44, 0x90, 0xd2, 0x46, 0x4a, 0x68, 0x6c, 0x6c, 0xa0, 0xa3, 0xa3, + 0x63, 0x03, 0x6a, 0x23, 0x19, 0x1f, 0x1f, 0x67, 0x71, 0x31, 0x8e, 0xdf, + 0xef, 0x27, 0x1c, 0x6e, 0xa7, 0xa2, 0xe2, 0xea, 0xa3, 0x78, 0xd3, 0xe9, + 0x1c, 0xdf, 0x1d, 0x99, 0x41, 0x15, 0x02, 0x4b, 0x4a, 0xc2, 0x15, 0x3e, + 0xde, 0xd4, 0xd9, 0xb0, 0xa5, 0x97, 0x02, 0x7d, 0x75, 0x70, 0xca, 0x19, + 0x84, 0x91, 0xe0, 0xd5, 0x14, 0xee, 0xaa, 0x0f, 0xb1, 0x98, 0x33, 0xe8, + 0x8f, 0x25, 0xd1, 0x14, 0x41, 0xde, 0x92, 0xbc, 0xef, 0xb6, 0x36, 0x2a, + 0x3d, 0x1a, 0x96, 0x94, 0x9c, 0x9a, 0x4f, 0xf0, 0x64, 0x64, 0x11, 0x5d, + 0x15, 0xe4, 0x2c, 0x9b, 0xb7, 0xf7, 0x34, 0xd1, 0xbd, 0xc1, 0x2a, 0xa7, + 0x39, 0xcb, 0xe6, 0x27, 0x93, 0x0b, 0xbc, 0xb8, 0x94, 0x46, 0x55, 0x04, + 0x86, 0x2d, 0x69, 0x09, 0x78, 0xf9, 0xcd, 0x1d, 0xcd, 0xdb, 0x52, 0xf9, + 0x28, 0xcf, 0x29, 0xbc, 0x45, 0x6d, 0xbb, 0xce, 0x63, 0xd4, 0xa4, 0x94, + 0x48, 0xdb, 0xe9, 0xce, 0x9c, 0x8f, 0xe5, 0x7c, 0x6c, 0x1b, 0xdb, 0xb6, + 0xb1, 0x6d, 0x0b, 0x5b, 0x5a, 0xce, 0x31, 0xb6, 0x8d, 0x94, 0x56, 0x31, + 0x93, 0x6e, 0xe5, 0xff, 0x95, 0x73, 0xb1, 0x6d, 0xd7, 0x03, 0x4a, 0x90, + 0x12, 0xcb, 0x2d, 0x1b, 0xf7, 0x63, 0xe3, 0x78, 0x47, 0x6c, 0x1b, 0x89, + 0x5b, 0x8e, 0x74, 0x45, 0x25, 0xf7, 0xbb, 0xfb, 0x4f, 0xf1, 0x3c, 0x49, + 0xe9, 0xdf, 0xd5, 0x11, 0x62, 0xc1, 0xdb, 0xba, 0xcd, 0x13, 0xe7, 0x10, + 0x59, 0x42, 0x2e, 0xe5, 0x3a, 0x9e, 0x59, 0xd8, 0x2e, 0x41, 0x8a, 0xab, + 0x52, 0x97, 0x86, 0x96, 0x9d, 0xb4, 0x76, 0xed, 0xdf, 0x5e, 0x9e, 0x6c, + 0x7b, 0x73, 0x68, 0xe9, 0xac, 0x6a, 0x82, 0x0b, 0xc6, 0x02, 0x90, 0xdd, + 0x8f, 0x65, 0x99, 0xd8, 0xb6, 0x05, 0xb6, 0x03, 0x76, 0xcb, 0xb2, 0x8a, + 0xc7, 0x49, 0xdb, 0xc2, 0xb2, 0x6d, 0x27, 0xa3, 0x4c, 0x9a, 0xee, 0x36, + 0xdb, 0x05, 0xa6, 0xc4, 0xb2, 0x2c, 0x6c, 0xf7, 0x3b, 0xd2, 0xc6, 0x76, + 0x01, 0x28, 0x0b, 0x80, 0xb6, 0x25, 0x12, 0xcb, 0x01, 0x65, 0x11, 0xd0, + 0x2e, 0xf8, 0x65, 0xa1, 0x4e, 0xab, 0x00, 0x6d, 0xaf, 0x06, 0xb4, 0x74, + 0xcb, 0x76, 0x21, 0xb9, 0x16, 0xd0, 0x72, 0x15, 0x70, 0xc1, 0x01, 0xaf, + 0x90, 0x28, 0xc2, 0x49, 0x8e, 0x97, 0xd8, 0x20, 0x15, 0x9c, 0x29, 0xa8, + 0x9b, 0xfc, 0xf0, 0x42, 0xe0, 0xf7, 0x55, 0x94, 0x5d, 0xfa, 0x2f, 0x0a, + 0xa0, 0x05, 0x80, 0xa2, 0x82, 0x90, 0x08, 0xa9, 0x22, 0x50, 0x91, 0xd2, + 0x46, 0x2d, 0x78, 0x4e, 0x59, 0xf0, 0xc6, 0x2e, 0xd8, 0x5c, 0xcf, 0x69, + 0xbb, 0x00, 0xa5, 0xe0, 0xd9, 0x0b, 0x5e, 0xd4, 0x05, 0x5a, 0x31, 0x80, + 0xb1, 0x6d, 0x24, 0x8e, 0x37, 0x2f, 0x82, 0xb2, 0xe0, 0x8d, 0x5d, 0xb8, + 0x39, 0x13, 0x67, 0x65, 0x11, 0xa4, 0x05, 0x1e, 0x5b, 0x68, 0x6c, 0x05, + 0xb0, 0xaf, 0xfc, 0x5f, 0x00, 0xb1, 0x5c, 0x9f, 0xb6, 0x5a, 0x2c, 0x77, + 0x7d, 0x07, 0xab, 0x20, 0x98, 0xcb, 0xe4, 0x38, 0xb3, 0xb0, 0x8c, 0x61, + 0x3b, 0xc7, 0x49, 0xdb, 0x76, 0x07, 0x38, 0xe4, 0x26, 0x9e, 0x4c, 0x30, + 0xb1, 0xac, 0xe2, 0xcd, 0xcd, 0xb3, 0xba, 0x64, 0xe9, 0xd6, 0xf1, 0x4d, + 0x9d, 0x0d, 0x28, 0xc2, 0xe1, 0xb1, 0xdf, 0x18, 0x9e, 0xe6, 0x27, 0x93, + 0x0b, 0x7c, 0xe4, 0x60, 0x17, 0xaf, 0x6a, 0x08, 0xf1, 0x27, 0x27, 0x47, + 0x98, 0xcd, 0xe4, 0xf9, 0xf3, 0x63, 0x7d, 0x04, 0x34, 0x85, 0x68, 0x26, + 0xcf, 0xdb, 0x1e, 0x39, 0xcd, 0x3b, 0x76, 0x34, 0x73, 0xb4, 0xa9, 0x8a, + 0xcf, 0x9d, 0xbd, 0xc4, 0x72, 0xde, 0x2a, 0xe1, 0xb2, 0x3e, 0x55, 0xe1, + 0xdf, 0xf7, 0xb6, 0xd2, 0x12, 0xd0, 0xf9, 0xd3, 0x17, 0xc6, 0xc8, 0x98, + 0x76, 0x31, 0xa8, 0x34, 0xa5, 0xe4, 0x53, 0x77, 0xef, 0x62, 0x6f, 0x6d, + 0x05, 0xdf, 0x1e, 0x99, 0xe6, 0xdb, 0xc3, 0xd3, 0xee, 0xd4, 0x2c, 0x49, + 0xbd, 0x57, 0xe7, 0x1d, 0x3b, 0x9a, 0xf8, 0x95, 0x8e, 0x7a, 0x14, 0x21, + 0x58, 0xc8, 0x19, 0x7c, 0xf4, 0xe9, 0x61, 0xa6, 0x92, 0xb9, 0xe2, 0xc2, + 0x37, 0x59, 0xcb, 0xe6, 0xbd, 0x7d, 0x6d, 0xfc, 0xfa, 0x0e, 0x27, 0x50, + 0x9d, 0x4e, 0xe7, 0xf8, 0xf0, 0x89, 0x21, 0x76, 0x54, 0x05, 0xf8, 0xc3, + 0xfd, 0x5d, 0x54, 0xad, 0xca, 0xf5, 0x58, 0xca, 0x9b, 0x7c, 0xf9, 0xc2, + 0x24, 0x27, 0x66, 0xe2, 0x78, 0x55, 0x85, 0x5f, 0xed, 0xac, 0xe7, 0x6d, + 0xdd, 0x4d, 0x04, 0xdc, 0x75, 0x40, 0x3e, 0xf9, 0xfc, 0x28, 0xcf, 0xcc, + 0xad, 0xe4, 0x8f, 0x9b, 0xb6, 0xe4, 0xf6, 0xba, 0x0a, 0x3e, 0x7c, 0xa0, + 0x6b, 0xc3, 0xe5, 0x81, 0x5f, 0x3e, 0x0f, 0x2d, 0x9c, 0x85, 0xab, 0x56, + 0x1e, 0xea, 0xf6, 0x1e, 0xf7, 0x7f, 0x64, 0x68, 0x9a, 0xff, 0x7c, 0x69, + 0x98, 0x94, 0x61, 0xad, 0xe9, 0x7f, 0xc5, 0xa6, 0xe2, 0xb7, 0x1c, 0xbf, + 0xb8, 0x81, 0x44, 0x67, 0x73, 0x77, 0x63, 0x35, 0xbf, 0xdc, 0x51, 0x8f, + 0x2e, 0x04, 0xb6, 0x84, 0xb1, 0x44, 0x9a, 0x13, 0x33, 0x8b, 0x2c, 0xe5, + 0xdb, 0x99, 0x4c, 0x65, 0xf9, 0xe1, 0x44, 0x94, 0xb3, 0x0b, 0x09, 0x42, + 0xba, 0xc6, 0xa7, 0x8e, 0xec, 0x26, 0x67, 0xdb, 0xfc, 0x2c, 0xb2, 0xc0, + 0xde, 0xda, 0x0a, 0xde, 0xd4, 0xd9, 0xc0, 0xbe, 0xda, 0x0a, 0x32, 0xa6, + 0xcd, 0xd7, 0x86, 0x26, 0xc9, 0x9a, 0x92, 0xff, 0xb4, 0x2f, 0x8c, 0xa6, + 0x08, 0x2a, 0x75, 0x8d, 0xc7, 0xa6, 0x62, 0x3c, 0x7c, 0x29, 0xca, 0xaf, + 0xef, 0x68, 0xa6, 0xbb, 0xd2, 0x8f, 0x2d, 0x9d, 0xe4, 0xfc, 0x0a, 0x8f, + 0x4a, 0x22, 0x6f, 0xf1, 0x37, 0x17, 0xa6, 0x98, 0x48, 0x64, 0x78, 0x63, + 0x67, 0x23, 0x75, 0x3e, 0x0f, 0x27, 0x66, 0xe3, 0xbc, 0xe3, 0x27, 0xa7, + 0x79, 0x4f, 0x6f, 0x1b, 0x5f, 0xbc, 0xe7, 0x36, 0x86, 0x16, 0x53, 0x7c, + 0xe5, 0xfc, 0x24, 0xf7, 0xb6, 0xd6, 0xf2, 0x4b, 0xed, 0xb5, 0xe4, 0x2d, + 0x49, 0xde, 0xb6, 0x69, 0x0a, 0x78, 0x01, 0x27, 0x68, 0xfd, 0xdf, 0xfd, + 0x13, 0x7c, 0x67, 0x64, 0x86, 0x06, 0x9f, 0xce, 0x8e, 0xca, 0x00, 0xef, + 0xee, 0x75, 0xd2, 0x66, 0xa7, 0x52, 0x39, 0xee, 0xfb, 0xa7, 0x67, 0x49, + 0x1a, 0x16, 0x6f, 0xef, 0x69, 0x22, 0x65, 0x58, 0xfc, 0xfe, 0xcf, 0x06, + 0xf9, 0x97, 0xa9, 0x45, 0x3e, 0x77, 0xac, 0x17, 0x01, 0x3c, 0x34, 0x34, + 0x45, 0xce, 0xb6, 0x79, 0x4f, 0x6f, 0x5b, 0xb1, 0x6e, 0x5d, 0x21, 0xff, + 0x86, 0xef, 0x27, 0xff, 0x57, 0x27, 0xdb, 0xfd, 0xa2, 0x99, 0x69, 0x64, + 0x37, 0x1c, 0x8a, 0xf7, 0x78, 0x54, 0x2e, 0xc5, 0x62, 0x34, 0xa8, 0x16, + 0x35, 0x8a, 0xdc, 0x92, 0xce, 0xab, 0x6a, 0xba, 0xa3, 0x41, 0xaf, 0xd9, + 0x9d, 0xb1, 0x6c, 0xde, 0xd8, 0x59, 0x5f, 0x32, 0x48, 0xe1, 0xcc, 0xc0, + 0x76, 0x72, 0x37, 0x04, 0x02, 0x4d, 0x08, 0x82, 0x9a, 0xca, 0x5f, 0x0e, + 0x4c, 0xf0, 0xf6, 0x9e, 0x26, 0xe7, 0x5d, 0x2b, 0xae, 0x02, 0xd2, 0x13, + 0xf2, 0xf3, 0x5f, 0xdc, 0x44, 0xa4, 0x1f, 0x8c, 0xcf, 0xb2, 0x80, 0xc1, + 0x27, 0x0e, 0xed, 0x04, 0x1c, 0x56, 0xf5, 0xb3, 0xe9, 0x45, 0x02, 0x9a, + 0xca, 0x7f, 0xdc, 0x1b, 0xe6, 0xe8, 0x1a, 0x4d, 0x3a, 0x96, 0x33, 0x50, + 0x04, 0x74, 0x87, 0xfc, 0xfc, 0xf1, 0x5d, 0x3d, 0x34, 0xfa, 0x75, 0xb2, + 0x96, 0xc5, 0xc1, 0xef, 0x9d, 0xe0, 0xef, 0x46, 0x67, 0xf8, 0xe2, 0x3d, + 0xb7, 0xa1, 0x08, 0x50, 0x14, 0xc1, 0x2f, 0xb5, 0xd7, 0xf2, 0x5f, 0xef, + 0xda, 0xb1, 0x5e, 0xad, 0xca, 0x59, 0x7c, 0x63, 0x38, 0x42, 0x53, 0x40, + 0x07, 0x09, 0x8f, 0x47, 0x62, 0xbc, 0xa5, 0xbb, 0x91, 0x90, 0xae, 0xf1, + 0x0f, 0xa3, 0x33, 0xcc, 0x67, 0x0c, 0x3e, 0x7e, 0x68, 0x07, 0x7f, 0x70, + 0x7b, 0x27, 0x00, 0xbf, 0x36, 0x36, 0xc7, 0x40, 0x2c, 0x49, 0x3c, 0x67, + 0x50, 0xeb, 0xf3, 0xa0, 0x2a, 0x82, 0x06, 0x5d, 0x2f, 0xd6, 0xf9, 0x17, + 0x4a, 0x87, 0xfe, 0x85, 0x8a, 0xde, 0x6d, 0x8b, 0xd1, 0x0b, 0xc7, 0x37, + 0x5c, 0x0e, 0x4b, 0x13, 0x82, 0xc3, 0x46, 0x8a, 0xbe, 0x26, 0x73, 0x4b, + 0x51, 0x91, 0xb4, 0x6d, 0xba, 0xfa, 0x8e, 0xe1, 0xf3, 0x57, 0xb2, 0x96, + 0xc8, 0xd8, 0x52, 0xd2, 0x53, 0x19, 0xb8, 0xe2, 0xa8, 0x9b, 0x2d, 0x9d, + 0xa4, 0xfe, 0xa4, 0x61, 0xf1, 0xa1, 0xe3, 0x43, 0x3c, 0xf4, 0xda, 0x7d, + 0x20, 0xd6, 0x2f, 0xe4, 0xb8, 0x8a, 0x69, 0xb9, 0xd4, 0xc2, 0x46, 0x08, + 0xa7, 0x1b, 0xff, 0x97, 0xa9, 0x18, 0x0b, 0x59, 0x83, 0x06, 0x9f, 0xce, + 0xa1, 0xc6, 0x2a, 0x56, 0xcf, 0xa5, 0x95, 0x12, 0x46, 0x97, 0x33, 0x9c, + 0x5d, 0x48, 0xf0, 0xb7, 0xc3, 0x11, 0x2c, 0x29, 0xf9, 0x90, 0x0b, 0xc0, + 0xc2, 0x0d, 0x5e, 0x58, 0x4c, 0xf2, 0x93, 0xcb, 0x0b, 0xa8, 0x02, 0xee, + 0x6e, 0xaa, 0x2e, 0x2e, 0x99, 0xf0, 0xbd, 0x17, 0x67, 0x58, 0x32, 0x4c, + 0xde, 0xb7, 0xa7, 0x1d, 0x4d, 0x11, 0x7c, 0x73, 0x78, 0x9a, 0xd3, 0x0b, + 0x09, 0xee, 0x69, 0xa9, 0x71, 0xe7, 0x63, 0x3a, 0x0b, 0xd5, 0x14, 0xec, + 0x2d, 0xdd, 0x8d, 0xc5, 0x01, 0x99, 0x78, 0xde, 0x40, 0xe0, 0x8c, 0x72, + 0xfe, 0x78, 0xc2, 0x49, 0x85, 0xe8, 0xad, 0x0e, 0xb2, 0xb3, 0x2a, 0x50, + 0x06, 0xf4, 0x8d, 0xb6, 0xe4, 0x52, 0x94, 0x68, 0x64, 0x78, 0xc3, 0xc1, + 0x1b, 0x55, 0x11, 0xb4, 0x69, 0x2a, 0x1d, 0x5b, 0x0c, 0xf1, 0x15, 0x8f, + 0xce, 0xde, 0xf0, 0xf5, 0xcf, 0x5e, 0xb1, 0xa4, 0xa4, 0xaf, 0x26, 0xc8, + 0x81, 0xda, 0x4a, 0xfe, 0xa2, 0x7f, 0x9c, 0xcf, 0x9e, 0x19, 0xdb, 0xd2, + 0x1b, 0xae, 0x0a, 0xde, 0xde, 0xb0, 0x6d, 0xfe, 0x69, 0x7c, 0x8e, 0x47, + 0x27, 0x63, 0x1c, 0x6d, 0xaa, 0xe2, 0xae, 0x86, 0x50, 0x91, 0x4f, 0x0b, + 0x04, 0x59, 0xcb, 0xe2, 0x4b, 0xe7, 0x2f, 0xf3, 0xdd, 0x91, 0x19, 0x1e, + 0x6c, 0xaf, 0xe5, 0x93, 0x87, 0x77, 0xf1, 0x1b, 0x3b, 0x9a, 0x4b, 0x9a, + 0xde, 0xe9, 0xf9, 0x04, 0x9f, 0xc9, 0x8e, 0xd3, 0xec, 0xd7, 0xd9, 0x55, + 0x1d, 0xa4, 0xc2, 0xa3, 0x62, 0x4b, 0xc9, 0x17, 0xcf, 0x5d, 0xa6, 0xc9, + 0xaf, 0xf3, 0x9e, 0xde, 0x36, 0xce, 0x2f, 0xa6, 0xf8, 0xc2, 0xd9, 0x09, + 0x9e, 0x9c, 0x5e, 0x74, 0x00, 0x7d, 0xc5, 0x3e, 0xab, 0x70, 0x75, 0x88, + 0x1b, 0x16, 0x9f, 0x3f, 0x7b, 0x09, 0x5d, 0x11, 0xfc, 0xf6, 0xee, 0x96, + 0x32, 0xa0, 0x6f, 0x86, 0x29, 0x9a, 0x87, 0x8e, 0x5d, 0x87, 0xd7, 0xfd, + 0x1c, 0xaa, 0x10, 0x8c, 0x2f, 0x67, 0x78, 0x6c, 0x2e, 0x4e, 0xc6, 0xdc, + 0xca, 0x48, 0xa5, 0xc4, 0xa3, 0xfb, 0x39, 0x75, 0x71, 0x7a, 0x5d, 0xe0, + 0xe9, 0x70, 0x59, 0x8d, 0x5f, 0xed, 0x68, 0xc0, 0xaf, 0x5d, 0x19, 0xa0, + 0x59, 0xd3, 0xe6, 0xc3, 0x07, 0xbb, 0x78, 0x7c, 0x3a, 0xc6, 0x77, 0x47, + 0x66, 0xdc, 0x00, 0x4d, 0x6c, 0xe1, 0xea, 0x12, 0xaf, 0xaa, 0xf0, 0xe1, + 0x83, 0xdd, 0xbc, 0xb6, 0xad, 0x16, 0x4d, 0x88, 0x75, 0xab, 0x9a, 0x6a, + 0x8a, 0xa0, 0x39, 0xe0, 0x25, 0xa4, 0xab, 0x54, 0x79, 0x3d, 0xbc, 0xb5, + 0xbb, 0x69, 0x1d, 0x85, 0x7a, 0x5d, 0xb8, 0x9e, 0xff, 0x76, 0x68, 0x27, + 0x59, 0xd3, 0x2a, 0x26, 0x48, 0xfd, 0xf3, 0xe5, 0x79, 0x2e, 0x2e, 0xa7, + 0x50, 0x85, 0xe0, 0x8f, 0x4f, 0x8e, 0x30, 0x97, 0xc9, 0xa3, 0x2a, 0xf0, + 0x7f, 0x46, 0x67, 0x79, 0x6f, 0x5f, 0x5b, 0x51, 0x48, 0xd2, 0x57, 0x5d, + 0x6f, 0x31, 0x67, 0x30, 0x9b, 0xc9, 0xd3, 0x59, 0xe1, 0x2b, 0xae, 0x1b, + 0xd9, 0xe8, 0xd3, 0xf9, 0xce, 0x83, 0xfb, 0xb1, 0x6c, 0x49, 0xe5, 0xbf, + 0x92, 0xc9, 0x03, 0xdb, 0x0e, 0xd0, 0x81, 0x8a, 0x5a, 0x02, 0x15, 0x35, + 0x1b, 0xc8, 0x6f, 0x0a, 0x8f, 0x0e, 0x4d, 0xf2, 0x95, 0x98, 0xbd, 0xe1, + 0x5a, 0x70, 0x9b, 0x68, 0x76, 0x88, 0x99, 0xe1, 0x75, 0x9b, 0x73, 0xb6, + 0xe4, 0xbe, 0x96, 0x1a, 0x1e, 0x6c, 0xaf, 0xc3, 0x7f, 0x95, 0x0c, 0x5c, + 0x89, 0x24, 0xa4, 0x6b, 0x7c, 0xe6, 0x48, 0x2f, 0x0f, 0x3e, 0xfc, 0x1c, + 0xae, 0x10, 0x79, 0xd5, 0x4b, 0xdb, 0xae, 0x14, 0x69, 0xd9, 0x12, 0xd3, + 0x92, 0xa4, 0x6d, 0x8b, 0x78, 0xce, 0xa0, 0x39, 0xe0, 0x75, 0x01, 0x25, + 0xd1, 0x14, 0xc1, 0x7b, 0xfa, 0xda, 0x68, 0xf2, 0x7b, 0xf8, 0x1f, 0xa7, + 0xc6, 0x78, 0xdf, 0x13, 0x03, 0x7c, 0xed, 0xb5, 0xfb, 0x4a, 0x56, 0xa7, + 0x0e, 0x79, 0x34, 0xaa, 0x75, 0x0d, 0x56, 0x01, 0xee, 0xf3, 0x67, 0x2f, + 0xe1, 0x11, 0x0a, 0xff, 0xf3, 0xee, 0x5d, 0x04, 0x35, 0x15, 0x8f, 0x2a, + 0x78, 0x32, 0xb2, 0xc8, 0xd7, 0x87, 0x23, 0xfc, 0x7c, 0x26, 0x4e, 0x77, + 0xa5, 0x9f, 0xac, 0x69, 0xf3, 0x8f, 0x63, 0x73, 0x1c, 0x6e, 0xac, 0x22, + 0x9a, 0xc9, 0xf3, 0xd9, 0x33, 0xe3, 0x78, 0x55, 0x85, 0x4f, 0x1f, 0xd9, + 0x4d, 0x83, 0x4f, 0xc7, 0x96, 0x12, 0x1b, 0x30, 0x2c, 0x1b, 0xd3, 0x96, + 0x44, 0x33, 0x79, 0x74, 0x45, 0x50, 0xef, 0xd7, 0xd1, 0x5e, 0xc1, 0x21, + 0xc8, 0x6d, 0x07, 0x68, 0x67, 0xe8, 0x7d, 0xe3, 0x07, 0x3a, 0xb0, 0x64, + 0x30, 0x91, 0x95, 0x88, 0x2d, 0xa5, 0x81, 0x0b, 0x2c, 0x33, 0xbf, 0x61, + 0xc7, 0x9b, 0x31, 0x2c, 0xfa, 0x6a, 0x2a, 0xd6, 0xd0, 0x07, 0x49, 0xce, + 0xb2, 0x49, 0x18, 0x4e, 0x5e, 0x85, 0x44, 0x92, 0x34, 0x4c, 0x74, 0x45, + 0x60, 0x4a, 0xc9, 0xe1, 0xa6, 0x2a, 0x3e, 0x7a, 0xb0, 0x9b, 0x8f, 0x9f, + 0x1c, 0xa1, 0x4a, 0x2f, 0x55, 0x92, 0x12, 0x86, 0xc5, 0xf2, 0x2a, 0xd5, + 0x45, 0x13, 0x0a, 0x35, 0xba, 0xc6, 0x72, 0xde, 0xe4, 0x03, 0x3f, 0xbf, + 0x80, 0x5f, 0x53, 0x91, 0xd2, 0x91, 0xed, 0xbe, 0xf7, 0xe0, 0x01, 0xf6, + 0xd6, 0x56, 0x90, 0x32, 0x2c, 0x6c, 0xe9, 0x78, 0xd1, 0x3f, 0xd8, 0xdf, + 0x45, 0xc2, 0xb0, 0xf8, 0xf4, 0xe9, 0x31, 0x52, 0xa6, 0xcd, 0x77, 0xee, + 0xbf, 0x1d, 0x4b, 0x82, 0x9d, 0x37, 0xc9, 0xac, 0xc9, 0x57, 0xf9, 0xd9, + 0x74, 0x9c, 0x9f, 0xcd, 0xc4, 0x39, 0xd2, 0x54, 0xc5, 0xfb, 0xf7, 0x86, + 0x8b, 0x23, 0x86, 0xbd, 0xd5, 0x41, 0x1e, 0x8f, 0xc4, 0xf8, 0xec, 0x99, + 0x71, 0x7e, 0xf0, 0x86, 0x3b, 0xf8, 0xc2, 0xbf, 0xe9, 0xe3, 0x73, 0x67, + 0x2f, 0xf1, 0xe0, 0xc3, 0xcf, 0x23, 0x90, 0x74, 0x55, 0x06, 0xf8, 0xd8, + 0x1d, 0xdd, 0x74, 0x87, 0x02, 0x58, 0x52, 0x12, 0xd0, 0x54, 0x06, 0xe3, + 0x29, 0x8e, 0xfc, 0xe3, 0x33, 0x6e, 0xdd, 0x6c, 0x8e, 0x34, 0x55, 0xf3, + 0x85, 0x57, 0xef, 0xa1, 0xed, 0x15, 0x5c, 0x26, 0x61, 0x5b, 0x0d, 0x7d, + 0x1b, 0xb9, 0x34, 0x83, 0xa7, 0x7f, 0x8a, 0x61, 0xe4, 0x36, 0x80, 0xa7, + 0xb3, 0x60, 0xa2, 0x61, 0x6d, 0xed, 0x76, 0x2d, 0xcb, 0xe0, 0xc0, 0xd1, + 0xb7, 0xa2, 0x7b, 0x03, 0xeb, 0x21, 0x2d, 0x1d, 0xbd, 0x78, 0x75, 0x8e, + 0x86, 0x94, 0x30, 0x9f, 0xcd, 0xb3, 0x64, 0x98, 0xb4, 0x04, 0xbc, 0xe8, + 0x8a, 0xc2, 0xe5, 0x54, 0x16, 0x55, 0x40, 0x47, 0x85, 0x1f, 0x81, 0x93, + 0x57, 0x31, 0x9f, 0xcd, 0x53, 0xeb, 0xf5, 0x94, 0x2c, 0x78, 0x3e, 0xba, + 0x9c, 0xc6, 0x92, 0xb0, 0x6b, 0x15, 0x07, 0xcd, 0x59, 0x36, 0xb3, 0x99, + 0x3c, 0x69, 0xd3, 0x2a, 0xe1, 0xb4, 0x1d, 0x15, 0x3e, 0x7c, 0xaa, 0xc2, + 0xe5, 0x54, 0x0e, 0xa4, 0xa4, 0x35, 0xe8, 0xc3, 0xe3, 0xe6, 0x68, 0x5c, + 0x4a, 0x66, 0x90, 0x12, 0xc2, 0x15, 0x3e, 0x24, 0x92, 0xf1, 0xe5, 0x2c, + 0xf5, 0x3e, 0x4f, 0x89, 0x2e, 0xbc, 0x98, 0x33, 0x89, 0x66, 0x72, 0x54, + 0x7b, 0x3d, 0xc5, 0x85, 0x1f, 0x0b, 0x7c, 0x3f, 0x92, 0xca, 0x91, 0xb5, + 0x6c, 0x7a, 0x42, 0x4e, 0x4e, 0x48, 0xc6, 0xb4, 0x89, 0x65, 0x0d, 0x84, + 0x70, 0x82, 0x5b, 0xaf, 0x2a, 0x8a, 0x1c, 0x7e, 0x29, 0xef, 0x50, 0x90, + 0xe2, 0x18, 0x16, 0x10, 0xd0, 0x54, 0x5a, 0x02, 0xde, 0xeb, 0x5a, 0x05, + 0xaa, 0x0c, 0xe8, 0x0d, 0x2c, 0x3e, 0x3f, 0xc9, 0xc8, 0xc0, 0xe3, 0x98, + 0xe6, 0x4b, 0x7b, 0xb9, 0xa4, 0x94, 0x12, 0xdd, 0x17, 0xe0, 0x8e, 0x57, + 0xbf, 0x13, 0x45, 0xb9, 0x75, 0xe6, 0xe3, 0x6d, 0x07, 0xdb, 0x56, 0x94, + 0x43, 0x4a, 0x9b, 0xea, 0xfa, 0xf5, 0xd3, 0xa8, 0x14, 0xe1, 0x78, 0xa6, + 0xcb, 0xc9, 0x2c, 0xa6, 0xb4, 0x29, 0xcc, 0x3c, 0xdb, 0xc8, 0x91, 0x08, + 0xb7, 0x9c, 0x8a, 0x8a, 0x46, 0x06, 0xe2, 0x69, 0x07, 0xd0, 0xee, 0x71, + 0x85, 0xa5, 0x80, 0x0b, 0x4b, 0x6d, 0x81, 0x33, 0x97, 0xaf, 0x70, 0xa2, + 0x10, 0x2b, 0x0a, 0xc0, 0xea, 0x0f, 0xab, 0x06, 0xae, 0x04, 0x94, 0x7c, + 0x5f, 0x5d, 0x0f, 0xb1, 0xaa, 0x0e, 0x45, 0x35, 0xdb, 0x2d, 0x44, 0x48, + 0x4a, 0x46, 0x14, 0x57, 0xbf, 0x1f, 0x6b, 0x75, 0x7d, 0xc4, 0x6a, 0x1d, + 0xa2, 0xa8, 0x89, 0xcb, 0x75, 0x72, 0x61, 0x09, 0x31, 0x13, 0x2b, 0xeb, + 0xe4, 0xad, 0x79, 0x51, 0x80, 0xbb, 0x6f, 0x4d, 0xf9, 0x6b, 0xee, 0xb3, + 0x74, 0xbb, 0x13, 0x80, 0xab, 0xaf, 0x90, 0x93, 0xbe, 0x65, 0xb2, 0xed, + 0xbe, 0x31, 0x3a, 0xcf, 0x1f, 0x3e, 0x3d, 0xe4, 0x4e, 0x4c, 0x55, 0x50, + 0x14, 0x81, 0x22, 0x24, 0x42, 0x28, 0xce, 0xff, 0x6a, 0x01, 0x1c, 0xce, + 0xf2, 0xb4, 0x8a, 0x3b, 0xc4, 0x2e, 0x14, 0x05, 0x55, 0x38, 0x92, 0x9f, + 0x47, 0x38, 0x83, 0x25, 0x9a, 0x70, 0x5e, 0x76, 0xa9, 0x00, 0x9a, 0x2a, + 0x50, 0x11, 0xa8, 0x8a, 0x40, 0x15, 0x02, 0x45, 0x71, 0xff, 0x17, 0x8e, + 0xee, 0xad, 0xb9, 0x6a, 0x84, 0x42, 0x61, 0xbf, 0x33, 0xe0, 0x51, 0xf8, + 0xd1, 0x3d, 0x38, 0xe5, 0x29, 0xee, 0x39, 0xce, 0x79, 0x0a, 0x8a, 0x70, + 0xae, 0xab, 0x28, 0xee, 0x39, 0x28, 0xc5, 0xe3, 0x34, 0x57, 0x82, 0x54, + 0x85, 0x13, 0x0d, 0xa8, 0x8a, 0x5b, 0x67, 0xa1, 0xa0, 0xba, 0xf5, 0x2a, + 0x94, 0xaf, 0xe0, 0xdc, 0xa7, 0xe2, 0x96, 0x2b, 0x84, 0x40, 0xc5, 0x99, + 0xfe, 0xa5, 0x28, 0x8a, 0xbb, 0xcf, 0xa1, 0x12, 0xc5, 0xed, 0x25, 0xe7, + 0x89, 0x62, 0xdd, 0x9c, 0x67, 0xb6, 0x7a, 0xbf, 0xf3, 0x5d, 0x75, 0x1b, + 0x84, 0xc0, 0x99, 0x9a, 0x57, 0xed, 0x55, 0xf1, 0xbf, 0x42, 0x88, 0xbe, + 0x65, 0xde, 0xb1, 0x12, 0x4d, 0xa5, 0xd0, 0xb1, 0xa9, 0xf6, 0xa9, 0x28, + 0x45, 0xe0, 0xca, 0xe2, 0x8f, 0x24, 0x5c, 0x37, 0x59, 0xf8, 0x91, 0x84, + 0x50, 0x50, 0x84, 0x86, 0x28, 0x00, 0xc7, 0x95, 0xcd, 0x34, 0x1c, 0xa0, + 0x3a, 0xa0, 0x2c, 0x00, 0xc7, 0x05, 0x84, 0xb2, 0x02, 0x8c, 0x02, 0xa0, + 0x34, 0x17, 0xec, 0x05, 0x90, 0x09, 0x51, 0x0a, 0x68, 0x8d, 0x15, 0xe0, + 0x15, 0x00, 0xad, 0x0a, 0x65, 0x05, 0x38, 0x62, 0x05, 0xd0, 0xaa, 0xc0, + 0x69, 0x2c, 0x6e, 0x59, 0x0e, 0xd8, 0x24, 0xaa, 0xa2, 0x38, 0xe5, 0x0a, + 0x05, 0xd5, 0x9d, 0x65, 0xae, 0xad, 0x05, 0x26, 0x4e, 0xb9, 0xc2, 0x6d, + 0x04, 0x4e, 0x1d, 0x14, 0x04, 0xee, 0x33, 0x58, 0x7d, 0xef, 0xac, 0xa9, + 0x2f, 0xab, 0xea, 0xe2, 0xd6, 0x5f, 0xb8, 0x3d, 0x8b, 0xe2, 0x96, 0x27, + 0xdc, 0x80, 0xdc, 0xe3, 0x36, 0xfc, 0x32, 0xe5, 0xb8, 0xa9, 0x54, 0x04, + 0x5e, 0xd3, 0x5c, 0x43, 0xbd, 0x4f, 0xc7, 0xa3, 0xac, 0xbc, 0x74, 0xad, + 0xd8, 0x9d, 0x17, 0x29, 0x81, 0x58, 0x4f, 0x0b, 0x44, 0xa1, 0x4b, 0x2f, + 0x00, 0x64, 0xe5, 0x78, 0x51, 0xf4, 0x4c, 0xab, 0xbe, 0xbb, 0x5d, 0xb4, + 0xd3, 0x68, 0xa4, 0xbb, 0xbf, 0x00, 0x14, 0x56, 0x28, 0x8b, 0x0b, 0x46, + 0xb1, 0x9a, 0xa2, 0x14, 0xc0, 0x21, 0x56, 0x68, 0x43, 0xf1, 0x3a, 0x52, + 0x94, 0xac, 0x2c, 0xaa, 0xac, 0x12, 0xe7, 0x4a, 0xeb, 0xe1, 0x1c, 0xa0, + 0xac, 0xa1, 0x3d, 0x45, 0x3a, 0x24, 0x56, 0x28, 0x4d, 0x09, 0x0d, 0xda, + 0x80, 0xba, 0x6c, 0xb8, 0x7f, 0x15, 0xdd, 0x28, 0x38, 0x00, 0x0a, 0xb4, + 0xa6, 0xd0, 0x90, 0x5f, 0xc1, 0x74, 0x8e, 0x72, 0x82, 0x7f, 0xd9, 0xb6, + 0x95, 0x95, 0xdf, 0x53, 0x58, 0xb6, 0x6d, 0x65, 0xff, 0x1f, 0x15, 0xa9, + 0x64, 0x27, 0x80, 0x33, 0x9e, 0x47, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, + 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; -unsigned int openair_logo_png_len = 4664; +unsigned int openair_logo_png_len = 7026; diff --git a/common/utils/T/tracer/openair_logo.png b/common/utils/T/tracer/openair_logo.png index 8b3dcfe46ef222f6b21f7d7517914b3e6019873f..6a14f2ab4bdf39e7d01bb396f80299b3e5dea075 100644 GIT binary patch literal 7026 zcmV-&8;#_NP)vH1ViXErQ_BvZx zXT9D{d?faIQ*rEyZN+CfPBwNddm~%Q>aa;klqiw_NdSZZ5CjIt0D}SMo<83G(LDnU z4icnDDF)|PHHASRuV43k-|u~Y-}ig3g_KfKwpY|_DY2zwA(LldKE~K$f@m^L&M;90 zC_cNPbEv?fmOA#- zRTHiZ;!%}#=PabNOvRTOTZprq$&GFFrO9V89H+Hqs5enSU@=eQTC^Exx zIzvZ&Ep2r*Wk8qh=Ga^&$Dchv#A{mW_~ouRfq8F9)>3)C_vXO1Zt%Wx0`Rj_xNev`!a#KV4;AY z-R-R`EG398E|ooW*=~$|HM2luDM8LK(1al5QE96Tva`O1 zJ&ko+lITJKKOK$rMCKQ$@cZ!lyk!nuw(GY?F3<7k}nN+k6nF4CtF= zY188UPn_lxhi{{^(tkydJQ!Q%ug{LsS5v|7?CZh11sQL6Cd$Q`IeMEL=x(gPqV}9O z42H)q6K-jusv=khblI-mzI1*ZpQ`Y#UG3-JA2)104=lgZ`r2ncyJ!c~=Y)K--orz#42yTY8gI7T!Ur)iVH6h#O^ z6+xDk6ZpK|ZOf(09{MKO*m9cIppT$uV}Fq}Odgw@=QS;LbgvmLG^Nc~&yDfD;R&Ra zv{VLYtqc;>JxnYv@z}Xx;;D40S5g%AbhdM8dK%NRHmz4nV*}Axtn8u7wso6MXR(oV zRBRpyJ|B&fw{2e2T352&l9E3Or$wIc8R^=HX5oz z#d8BbFLhN_Oh@MlH#co~U9VTiG)+v?#N+X7%jaMA&^Op3sVqVW+JYO?jl69$x}2u7 zGC<`T5B`}KF0!*K$ZzlIq%q(tf*C*nL0zZ4u9^c~9gIvy$mVh-=XbTX5SgC6V*M(E z6(rYq_%fi&wy8z4c?8hl-&h}xX7bEu^Bk-Xm27`;ImPqyao)GL`>NNd4hHCIY+!71 zx|C0=3VxrLbUL#+perg!l>uG0ty;#k5C}F4xt8(<%Xxzxp;A5gYl9Q~-fg8|wj~V2 zk~|k(CS$H}W8nsPiXzD6N>z)Rst`+we_+x)|a9AD-mU-=E;)Ctt)|CCllWhF{l7XESR6>m!%j9I(1azhdB64hqXw zV%?PiYQ6fV`|ErzC^P&ZHY$_ytAj-nE)W%)*@EuMW`Z(wx(eO0zRa) zH~+ykjjB*++dlvDNa0QN)Z!)_Teh3zp);8bhGC$p8o}V!W?m$dNo;$)_Ygwh^?K2D zeM{wJvpMql+|^s_CgnOolOzxbY^kn72!cUphV_;`#U|SqvIY`Ky-&a5v9^>f=1fwi zg#c`zJ>W%MLuVFq1_{GjSB4M})KqG`o-&}X^dn!mFv!fz44F&@%d$`u1)tALeSJMU zckZOAX}ty-i^X{M*^?|S#j$OOw+vj z&1ow8_uo!$Zyx~pe4gi@f1b;iCy`Rp(Glk8(WC3mvn-3p9($~)7WjNV9(dpZDl03l zKUlOZKJnZrr=rV9;80_T-{03kb6{gNBxzXu)w#?3baEbDQAnE>-+#j$G`gdT3t5Bz z)qja+=aw)xc%}&ODhl;J4|g_%czbsf?N=DNyyXCW^5jYS`v*v;)8zAcY}-aki4X!s zQMhzzg2BNdy1F_!dh}?C_j~H8rx+U>FM7Pfxh2u5qM#@WV`Jl-J=@QL0|&VM_I)MC z3=R(Q!V51H^AV(!8+!bLc|0DvyH}Khix)>YefkWUj04nYG>Q-kM~>WGN&%!~c6N?r zGU@Wt0G4IGqzC;cCtu{t7bc6~duA?6DfkzQMI=R5t2B&!U?p8juzjIrskZuXkk38}SgM&jQ z;Aw1Zq^_=(L?THf62Y=85{U%;{R1p7FLVF>_Y-o1kLBe=322*}o2jg|;kxpd!Z-bELNJlc@c$-b>-3=l(W%iD>gkHp})WXrak1ZT!<9G zETH(^r>cBoI6^#UymYxrtoh)0_qTR8^6z@vFkGsm2*HWj__n1SR|WLy;7e6iyxxt2 znAMzF2(ckgzMAFpd2*}r6FeTzhQZ;Dwsbnnz`(gHHlFLXZw*ISTm{&kke}Cw>&aO* z9!2nMbcs{*PM~-*EN|Py+~N2FU1<$^Z(TrdteS4H^%}stTK+0<@2RN>k3RYslarG! z1%Zx^Fl}vZ*CCE=%~VxIN{Ol}%*@Obz4VO?njRXC6oWONs_;8|+Ie?xE4r#60l%j3 zSLZHc+46=1c`%;h(=Uwk?U5NgibBq^*U}!DwX=ogyvfm~DxQce;#CzMom^ljo?>t9 z^~-{VYm6;t=#M3NF1o}|C+9gmpFmR-4BKX3O$DDl*1N5>>6abQrfG8O)C*XaMLL}+ zk;7_gY6yqJ^z`)5)6<2nd#?z{NF>6<#6-#VTrS6AV^(Z9esU${P@TJjIMi# z$Co*C<}@`m)i*>1_~vkgl-t-80j~?!QKf5C=^FR7)^dC%UhHSSFmQ=4-Lv<)(d<`M zzBf9{-wsXj!hC{gCXXV(l2Gf>cym_+@7>eRT@BlJ*!vX$w3L!W!ja$nem`|}%``SP z(%RZeU0p5J)z$d@TU%&Q*L4DcKndOPUc>YvDWR{gm!Y9yMn^~ScsyLZI6^oa#FL9}fmX;O{9z4kL;(3E_UW{B{Y$9zA)>rZmue+nzNbQcApDFPe6mvDgBpXwNdYgQ%O}C}o%&`~I_BPCA@@ERo@fNQ^^`RoDHTUfWv7 zSMJ-(?>=#!q-kQ>@Udqu67p!geMi%_2K7||9SVhb{p(-PQ%^m`!omWEVK6Xoj{g1u zbX|ABB+)ddsH&SDskk<5$?S6jxDPu2M-=( zc6OFTB3aBav2A-xfu>ir-#1&HbgC33h+w1uH&=j_GJp8vW z&TzP?dg~2pgI#azY~at2_43iDhl%B!M5YfOA4FFb-qPK8>jD~}ySt0(>MHvC2Z%(b zh{YC*X{163d_F%lHPtjXx6s?Wi*UH3^oKT#qJp3(%60S9_VzaF>+6}Fopoh3c~x$_ zTIaSbtE4X026OAe;V^gJc_$}NKF9L%GP18O4~A0KCNF^=EwCme34qT=eKc+=?|-yNAj6#`32!WBN=)Y-75mjZotaLO5k zk>J%7?y3*5m^0{)CD9Z?-jclUwl*p~8kUrtnosa#WD#8z|x~L5izVmxh*|w07;^UY=}wb7<+TYJv;K0+8L0WtrHv1-1ir%d(2cN!!A* zZ6~8ln(j8+1*XKZENu5X(#CcHC<}nLB@)X4Wf9OW_+_C^s{n1U2DEg`b|JYI&~g=U z!2z$3D8fmOm)IZ`oGGZA{P05H_f?c#`Y#Hg1%RT0kO-+FP?6F`EqG2@@Ww9KT+eB{ z0HxsB3trR(S}}mJZ6uC2FM_h*ja|4o6K7=+qy-*ZXlwc2df~M z%j7t-u#90l$4T3E2RP&=o=h;Ytm4hhv$|yI*6~f94Jg9lvELY;<|mU2eB@vkuWAVK zCnrak&E)y>V|@fPg=i+v+a5X1J9ad4w5f{EoxQ|z-YVg;K2_o0_qNg!(D~CB#>kj< zF{m`90zdlx#Ge%SK762S!{vcrJ`XLNg{xK`>h>P@e`IKy|9okflwqyuf5oQaw;aE? zfkbC>cVjib+)#&bE0^ zZ(Ff$T_OL5?@m)PM`gO9F#li2L;O|Cf_~Jdcp$JeE!7sJf@?Y=Tv0kmp zS$tzSLQ_Bo36Do&yrsL5kgo9$qchBB3_gBn2Y+yTCjh@THpf6LNjzsz>+_&0f(BhL z*7+AohyI0%-ffG~3&%HH4oee)!$yj}CUZ+sk+f~P`i|lASF)DK*izC{8Mxx8n=PHB z{-j~?q2oh5^xAzO)-U9^ifOsj!bS+E8~>N77zY8sxB^>@VysjSTaoBx2GLV5qxuan$rsj?rEuU=VLkx z)fDV4-HpWonRwnn;EZzqc*04A=&cU2vno&q^o_RUQj}<9c*DUPRS~plDji!4@fDBG z-thI$Ua_R4uO`TW+DiVSf1J;r8Qanut_t4XuxG=eo$&S-;1c{HkZ4ORi} z^Jg#N5eonF?p*{m6^|--GP20mha>!aCQf&ypR8%~k7IKjZmc4j$@AGW<9JntPaoM$ zgHOkn5*siq8`G9VGkJ7HQ192#Ucn*AZ3k#)=zZe{IKiJ-Cf@cs{zE z#*(mW6$i~(HnW*LY11mg>be5%6bR1T!1HR!|R=4f0>W{?uX6+R@A@#QS_K2M1* zyqGhIW^z<}J;j9|3w%G4%8|8fdO}W4NXE2@WetRIf?KaDiX46^?@*B97#0xFR9XVw z>ske>4CoCkK0nFGz~h+aOMAJbloH(+;Eq?n6Ggdo=HqP#+g6lAN}KBX_0y;n;drLY z$tgd_NgdE;L75UBwROH_>qKAP=tmk0LPWhG#sEhpez8#1%$E!i~^uE z7wiR)2~i4YjTPV(0IdpT1vp{_(5k>`EN)p2*d(f=IOPfj)tzOotpz4dxx#G(P8}2k z?lV|@@2sgWtLoy`U${Ms;+7}efZXFY{4(XZsZ<1B(_BNnPsgLIymYPDofj#ASWgQ? zp-V3SWaW5K^h~S1yIr)?Xr#Np02Edziwj1vnxYiIAy#NZ@j6nJtSqXm66Z?m;T)i> zp*=-9BvvR*2@TqSx@@?A72PN}01C9G(2!rjbdGX@f7!N`mETiXwryqq9~G%&CxA1a QM*si-07*qoM6N<$f{kqHssI20 literal 4664 zcmV-8636X{P)w%1 zG?$ZfmlGkxAAL>Y!wSgW&OYAi9$-aLE=8Uca#Eb6I~_O;0|Z2En^45UAC52_3eoKy zp*BC483nl?0dhUdXe7#iG`27|Cxd%umR=QYV@D4IBR+1QT}_I^@ev>&w7h)2mkytw zduNnU;C5Zp7{N${Qytypc-&MM6?_E9wU&ndVGdjznQS{pM7Z(lh8~V0h%ZuGPHR!3bJ5`+J7?){j!rqn^f-|3+vXQ5q;h}s{P?eQk&9Bzj6E>9f?LK(FKAb zeWs=Dx~%!8m5|YhMP+&_Oc7i^-O|Osu9}}z_rs&7DM)d!qA&+rz@hdIq_SB%r#7bB z5v-g)htuunsh?S$MC(pXAsmfh+X};w{AXhuziIC$WUJWp(qPxe7m?$N9rxq!oZ}Z~ zd&y39@y&(R++LV@^Q)}kNOVe76|!x-kto@&2_yViLo=IalrlGGqJM2(Hbed(4K3{~ ztcd|&NJ*y0LnIoVWW)<{a|r~4WTdCjHX5X9ILtE}>Iqs38}OJCv}VhThk1K6!uOZe z&@<}it{0B*3Zv?;6JTRjemmwJpj&a5xWz!&Q)iRceO9MTgUBV!6z^yLe^+*TOlMhzV4A7))yUd*e~n(e1L*?y`MJMMgz z739%&p>x8Br??m%^-T`w3<(G{5QtiMLm^)57-C=NAd85)d1|z(1u8$q(`#J3mB#;Mnfz|Ut-Q8n3A;YAjQh*8_+i7jgf}OETu&C5i8)9v3fsY|$i|n(E4lgO`%hlA_5jvT2Z&nSs)p z9c>pm=nb)X(b0w9@5e9WoeA)Eq=)7|{!j(X;2yV=p&!#^~% zGZ40k+BO#gV{E7>Vb{i6k|pG|*IuWwv2oHO4Z~pb=1o*pRRPe_(#mtsJ%?#tUbyDX zo5!7Z{z>Bd(W6J%yY~$YW9k6Rwry6dSWanaDbZ+@C!Y8PPNx%x!@;&~pC&syI|1DB z9qDpi0{uRuQANY7V?+@|lp|iLQL0*c3x-1X7 zI|upX?nb7{XNHfB!67x86r}bu~Vp45%=sw9Ed6NRU#RLB-J-MI!Z@J2ZmuJID34cMT-{l)KkAkYt5^# z?&iy1{!*e%DMd}qOyv4}`D(<+NVi*Sd_wOSZ3|(7l2zaWw8$$?`);zMHijZaFkb?hey6}M|FJRe;eWe;7 z+-WtFjjNs(=T3MQG4i3IAx@n-O;b}7fk1$0G|H+~x08~RGHDE-FTm*N2uf+RR%B*o zT{bD_bULvti?OjVM~)m}&6+!|{=lL(d%6YzSXG?Ow-?Rif7|;w=L_+Nt|5F;i*(1; zJDaa`4DkK8+c-Jo$I_bhMLDb~$+>aaUeh$$y?YPOKmP(+YowHTJRS-Q3s|w@Hma+u zrlfi4rJdNejSzxRD8x6u@d#;Yo+;-jEG)#bqV)7!4fEf?tyhVhsN zTdNBZ0zO+?!auy-%4u(q;{!fc7iUlJt^&a`ZM{7FW)t49g+mH*QyhG0P8mO3G3&;s z-y@L-g@pwa7Z+1iRZV_=9$8tJ=Xj+Qm6heBrn&)5Boe`K1@1IWlXdIX^0S|9$K`Ud zW5*8MZqHS%@tcR5ahnEG2)5P6g21ga3V5us9b0Su=I~kG_{6eljpZ~1553WZtu;k% zC*NCI%N-@zRHvt2xA@7tR{d^S7MnJ0q^_=R+BCLpvvTE1%FD~Ado@5#P7b%^j-)7;IIr@QD6MX28$r8SSOn9Z7!Y?Ou{pS-}=_MN(} zfS4|q3%A=%C=_D<{{2)`RFIL8fl`Wwh6a>UD5a>at-UT2+P0k-Gl?^#yrOYmzI-{m zcI}$B4e1JmX&4wq10So%jOwyS{iHCtYO!#T?B(6wr_u&oSYn@(I`G&EUQ^sTEd16cV6=( zN-4C~n5M~|J%5-K<=eK+t+y^<$&w{ki2mzoX=$aU#0vbWZBHkPNQ+q$AOE(Y_81b#q<41plqux=Iwz1 z2QCgHg<#CGd3at0zNpPJtrxMirZCmT12bdUXJ6Ff>DFGx>=^Tvr>C%`vH%S{f3BB} z6$MFY^@f2_j`WT2soG*P;;#Oyor5$F2M|J_(L7vVf$2&AIwE~XG@ zF)mHX`4H=LE2!oP&N3wJpIJ?rCxyd(BYgWv3lG+na`%p-j7BY5K79v!yN7t>U^5#l z@@W|f@@m&0DN?esC<~{QEPwVO_f{2B>TwaUY?Rjg^YL^1s=15L&nn@q-eJCZ@C=9V zzl~Qq26*&PGhdihLPV*=3itJRxo^iY)>jm;XG_c`KD4)q#vvbz^E3F?uixa~SJm;! znquyH?l2F`DxuWl`u}r5HPm+=t?h&#FDeLR>q##9gFGMS2SVvT`ObP~veRg`mmn zXTj44_{!XJ9;z?rt=?hI`9nOuww_PzKEV@by7=r1d0&T@t>nr)ynQq!fLzi5`#;#(=OPa&rsk1%2-aSOn zviaV!+ISy$bkPhB^o?-;E5~{1Dnzgtp+A!FX(Q)jz*y?Y1^{Qc6J8~fP0`&=X5fsUjr(V;PmHeYBG zhbAP*naZpM>yu&>t)V_AE#cnw2E(-b##m99$&tPhirp^C(o*Q~kKv12302fQ9Keu* znHjNw@ZBLl{h<%0*4?`Z-|)JWC$61 zeiK)1CIUl(Aq@;6Fbpt|F*-DckQ21hNId5;AXYB~GCt<`yfRTA10^=Uj_pUp)+Z71 z^?-=SUpLf-7^XAnd;4gJj*!imQWyy^z>pdx!6|^Kg((%%kT|8l6yTIH0fb{55W~PB zVl;-3I3-A8ZAQG`rC^x?Ohd;GP6-SYCgW|fh~FUvQpP}VNQsOCVhVvFW3*C93>i!9 u8-iGWKnWcKOn{1mWuVatw1|zP75pF9z&oqkWwD9?0000 Date: Tue, 12 Jul 2016 19:36:28 +0200 Subject: [PATCH 80/84] minor fix to iperf script --- cmake_targets/autotests/tools/iperf_script | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake_targets/autotests/tools/iperf_script b/cmake_targets/autotests/tools/iperf_script index fb540657b6..9f5990655e 100755 --- a/cmake_targets/autotests/tools/iperf_script +++ b/cmake_targets/autotests/tools/iperf_script @@ -39,7 +39,7 @@ timeout=${args[0]} iface=${args[1]} iperf_args=(${args[@]:2}) -ip_client=echo "$iperf_args" | sed -ne 's/.*\-c[ ]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p' +ip_client=`echo "$iperf_args" | sed -ne 's/.*\-c[ ]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p'` #array=${1:-1} echo "args = ${args[@]}" From ffec6a4e3c255b82ef98e393e56d676f37e28bba Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 17 Jul 2016 14:50:02 +0200 Subject: [PATCH 81/84] minor fix to disable error reporting for gitlab logs --- .gitlab-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ae57a56e36..2f2d95d4b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,6 +34,4 @@ job1: - cat $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log |cat ` - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest.log. Please check the logs\e[0m" ; fi - - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log |cat ` - - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest_cleanup.log. Please check the logs\e[0m" ; fi From f0792762220b25c568e9d606a5e017ca09bca063 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Tue, 19 Jul 2016 16:47:33 +0200 Subject: [PATCH 82/84] Tests for OAI UE --- cmake_targets/autotests/README.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cmake_targets/autotests/README.txt b/cmake_targets/autotests/README.txt index 31bf293a7b..cf1e28dd05 100644 --- a/cmake_targets/autotests/README.txt +++ b/cmake_targets/autotests/README.txt @@ -239,7 +239,7 @@ Obj.# Case# Test# Description 02 Functional test case -03 Non-Functional test case +03 Autotests specific to OAI UE 04 Failure test case @@ -249,6 +249,4 @@ Obj.# Case# Test# Description #TODO: Add test cases for 10,20 MHz #TODO: Add test cases for TDD/FDD #TODO: Test and compile seperately for Rel8/Rel10 -#TODO: Case03.py eMBMS test case - - +#TODO: Case03.py eMBMS test case \ No newline at end of file From d0b046581c2234f71ad8f7c693bb33ae493f3044 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Tue, 19 Jul 2016 17:25:47 +0200 Subject: [PATCH 83/84] hotfix: set DCINdi for 1st uplink TX in the UE's harq process --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 1 + 1 file changed, 1 insertion(+) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index c849adf2f6..1bd7db46a0 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -6389,6 +6389,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if (ulsch->harq_processes[harq_pid]->first_tx==1) { // ulsch->harq_processes[harq_pid]->Ndi = 1; ulsch->harq_processes[harq_pid]->first_tx=0; + ulsch->harq_processes[harq_pid]->DCINdi= ndi; ulsch->harq_processes[harq_pid]->round = 0; } else { if (ulsch->harq_processes[harq_pid]->DCINdi!=ndi) { // new SDU opportunity From 833714406c84cde6308155696328093fc8bdac91 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 20 Jul 2016 17:54:21 +0200 Subject: [PATCH 84/84] hotfix: RLC AM reported wrong number of bytes to retransmit This was causing oaisim to fail way too often at the startup of a connection. Things should go better with this patch. It may not be the end of the story, the use of retrans_num_bytes_to_retransmit is not clear to me. The problem I see is: what if the max number of retransimission has been reached (if that has a meaning at all in RLC AM)? will this value be decreased or not? --- openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c index 0b8abf3838..fd8279579d 100755 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c @@ -103,7 +103,7 @@ rlc_am_get_buffer_occupancy_in_bytes ( } #endif - return rlc_pP->status_buffer_occupancy + rlc_pP->retransmission_buffer_occupancy + rlc_pP->sdu_buffer_occupancy + max_li_overhead + header_overhead; + return rlc_pP->status_buffer_occupancy + rlc_pP->retrans_num_bytes_to_retransmit + rlc_pP->sdu_buffer_occupancy + max_li_overhead + header_overhead; } //----------------------------------------------------------------------------- void