From 852775ac50f26e03055bc8f341c67445deb6c799 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 25 Apr 2016 19:24:54 +0200 Subject: [PATCH 1/5] cherry pick commits from bugfix-48-L1L2signalling to develop --- cmake_targets/CMakeLists.txt | 4 +-- cmake_targets/autotests/test_case_list.xml | 12 +++---- targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp | 37 +++++++++++++++----- 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 51d779fa59..0b2a9c0b93 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -171,13 +171,13 @@ set(CMAKE_CXX_FLAGS ######################### -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${OPENAIR_TARGETS}/bin") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_CURRENT_BINARY_DIR}") ######################### # set a flag for changes in the source code # these changes are related to hardcoded path to include .h files add_definitions(-DCMAKER) set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3 -O2") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS} -g -DMALLOC_CHECK_=3 -O3") set(GIT_BRANCH "UNKNOWN") diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index eddc83c334..1403885a70 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -4638,7 +4638,7 @@ targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w BLADERF -x -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E $OPENAIR_DIR/cmake_targets/tools/start_bladerf.py + $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 @@ -4714,7 +4714,7 @@ targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w BLADERF -x -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E $OPENAIR_DIR/cmake_targets/tools/start_bladerf.py + $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 @@ -4789,7 +4789,7 @@ targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w BLADERF -x -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E $OPENAIR_DIR/cmake_targets/tools/start_bladerf.py + $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 @@ -4864,7 +4864,7 @@ targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w BLADERF -x -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E $OPENAIR_DIR/cmake_targets/tools/start_bladerf.py + $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 @@ -4938,7 +4938,7 @@ targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w BLADERF -x -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E $OPENAIR_DIR/cmake_targets/tools/start_bladerf.py + $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 @@ -5012,7 +5012,7 @@ targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf ENB_PORT_FOR_S1U 2152 $OPENAIR_DIR/cmake_targets/build_oai --eNB -w BLADERF -x -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash ; sudo -E $OPENAIR_DIR/cmake_targets/tools/start_bladerf.py + $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 diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp index bc60c1f7c8..7732cf8ff2 100644 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -597,11 +597,10 @@ extern "C" { openair0_cfg[0].rx_gain_calib_table = calib_table_b210_38; bw_gain_adjust=1; } - s->usrp->set_master_clock_rate(30.72e6); switch ((int)openair0_cfg[0].sample_rate) { case 30720000: - // from usrp_time_offset + s->usrp->set_master_clock_rate(30.72e6); openair0_cfg[0].samples_per_packet = 4096; openair0_cfg[0].tx_sample_advance = 115; openair0_cfg[0].tx_bw = 20e6; @@ -609,6 +608,7 @@ extern "C" { openair0_cfg[0].tx_scheduling_advance = 11*openair0_cfg[0].samples_per_packet; break; case 23040000: + s->usrp->set_master_clock_rate(23.04e6); //to be checked openair0_cfg[0].samples_per_packet = 2048; openair0_cfg[0].tx_sample_advance = 113; openair0_cfg[0].tx_bw = 20e6; @@ -616,20 +616,23 @@ extern "C" { openair0_cfg[0].tx_scheduling_advance = 8*openair0_cfg[0].samples_per_packet; break; case 15360000: + s->usrp->set_master_clock_rate(30.72e06); openair0_cfg[0].samples_per_packet = 2048; - openair0_cfg[0].tx_sample_advance = 113; + openair0_cfg[0].tx_sample_advance = 103; openair0_cfg[0].tx_bw = 20e6; openair0_cfg[0].rx_bw = 20e6; - openair0_cfg[0].tx_scheduling_advance = 5*openair0_cfg[0].samples_per_packet; + openair0_cfg[0].tx_scheduling_advance = 10240; break; case 7680000: + s->usrp->set_master_clock_rate(30.72e6); openair0_cfg[0].samples_per_packet = 1024; - openair0_cfg[0].tx_sample_advance = 70;//103; + openair0_cfg[0].tx_sample_advance = 80; openair0_cfg[0].tx_bw = 20e6; openair0_cfg[0].rx_bw = 20e6; openair0_cfg[0].tx_scheduling_advance = 5*openair0_cfg[0].samples_per_packet; break; case 1920000: + s->usrp->set_master_clock_rate(7.68e6); openair0_cfg[0].samples_per_packet = 256; openair0_cfg[0].tx_sample_advance = 40; openair0_cfg[0].tx_bw = 20e6; @@ -652,8 +655,8 @@ extern "C" { for(i=0;iusrp->get_rx_num_channels();i++) { if (iusrp->set_rx_rate(openair0_cfg[0].sample_rate,i); - s->usrp->set_rx_bandwidth(openair0_cfg[0].rx_bw,i); - printf("Setting rx freq/gain on channel %lu/%lu : BW %f (readback %f)\n",i,s->usrp->get_rx_num_channels(),openair0_cfg[0].rx_bw/1e6,s->usrp->get_rx_bandwidth(i)/1e6); + //s->usrp->set_rx_bandwidth(openair0_cfg[0].rx_bw,i); + //printf("Setting rx freq/gain on channel %lu/%lu : BW %f (readback %f)\n",i,s->usrp->get_rx_num_channels(),openair0_cfg[0].rx_bw/1e6,s->usrp->get_rx_bandwidth(i)/1e6); s->usrp->set_rx_freq(openair0_cfg[0].rx_freq[i],i); set_rx_gain_offset(&openair0_cfg[0],i,bw_gain_adjust); @@ -673,8 +676,8 @@ extern "C" { for(i=0;iusrp->get_tx_num_channels();i++) { if (iusrp->set_tx_rate(openair0_cfg[0].sample_rate,i); - s->usrp->set_tx_bandwidth(openair0_cfg[0].tx_bw,i); - printf("Setting tx freq/gain on channel %lu/%lu: BW %f (readback %f)\n",i,s->usrp->get_tx_num_channels(),openair0_cfg[0].tx_bw/1e6,s->usrp->get_tx_bandwidth(i)/1e6); + //s->usrp->set_tx_bandwidth(openair0_cfg[0].tx_bw,i); + //printf("Setting tx freq/gain on channel %lu/%lu: BW %f (readback %f)\n",i,s->usrp->get_tx_num_channels(),openair0_cfg[0].tx_bw/1e6,s->usrp->get_tx_bandwidth(i)/1e6); s->usrp->set_tx_freq(openair0_cfg[0].tx_freq[i],i); s->usrp->set_tx_gain(openair0_cfg[0].tx_gain[i],i); } @@ -683,6 +686,8 @@ extern "C" { // display USRP settings std::cout << boost::format("Actual master clock: %fMHz...") % (s->usrp->get_master_clock_rate()/1e6) << std::endl; + + sleep(1); // create tx & rx streamer uhd::stream_args_t stream_args_rx("sc16", "sc16"); @@ -701,6 +706,20 @@ extern "C" { std::cout << boost::format("tx_max_num_samps %u") % (s->tx_stream->get_max_num_samps()) << std::endl; + /* Setting TX/RX BW after streamers are created due to USRP calibration issue */ + for(i=0;iusrp->get_tx_num_channels();i++) { + if (iusrp->set_tx_bandwidth(openair0_cfg[0].tx_bw,i); + printf("Setting tx freq/gain on channel %lu/%lu: BW %f (readback %f)\n",i,s->usrp->get_tx_num_channels(),openair0_cfg[0].tx_bw/1e6,s->usrp->get_tx_bandwidth(i)/1e6); + } + } + for(i=0;iusrp->get_rx_num_channels();i++) { + if (iusrp->set_rx_bandwidth(openair0_cfg[0].rx_bw,i); + printf("Setting rx freq/gain on channel %lu/%lu : BW %f (readback %f)\n",i,s->usrp->get_rx_num_channels(),openair0_cfg[0].rx_bw/1e6,s->usrp->get_rx_bandwidth(i)/1e6); + } + } + s->usrp->set_time_now(uhd::time_spec_t(0.0)); From 9eaa72d86bc29a1238bb73a39d1fc937af5a71e1 Mon Sep 17 00:00:00 2001 From: Chun-Yeow Yeoh Date: Tue, 14 Jul 2015 18:21:03 +0800 Subject: [PATCH 2/5] UE: add PCO in PDN Connectivity Request message Add the PCO so that MME allocates the IP address accordingly. The protocol ID known as "IP address allocation via NAS signalling" is assigned. Otherwise, the OAI UE will always has IP address set to 0.0.0.0 This has tested with OAI eNB with S1 interface using OAI EPC. Reference: http://www.sharetechnote.com/html/Handbook_LTE_ProtocolConfigurationOption.html This patch is merged with Cedric's patch and tested. Signed-off-by: Chun-Yeow Yeoh Signed-off-by: Cedric Roux --- openair3/NAS/UE/ESM/SAP/esm_send.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.c b/openair3/NAS/UE/ESM/SAP/esm_send.c index ab5341062a..51cd96fdc8 100755 --- a/openair3/NAS/UE/ESM/SAP/esm_send.c +++ b/openair3/NAS/UE/ESM/SAP/esm_send.c @@ -181,6 +181,35 @@ int esm_send_pdn_connectivity_request(int pti, int is_emergency, int pdn_type, } } + /* Add PCO */ +# define CONFIGURATION_PROTOCOL_PPP 0 +# define PROTOCOL_ID_IPCP 0x8021 +# define PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS 0x000D +# define PROTOCOL_ID_IP_ADDR_NAS_SIGNALING 0x000A + + msg->presencemask |= PDN_CONNECTIVITY_REQUEST_PROTOCOL_CONFIGURATION_OPTIONS_PRESENT; + msg->protocolconfigurationoptions.configurationprotol = CONFIGURATION_PROTOCOL_PPP; + msg->protocolconfigurationoptions.num_protocol_id_or_container_id = 3; + msg->protocolconfigurationoptions.protocolid[0] = PROTOCOL_ID_IPCP; + msg->protocolconfigurationoptions.lengthofprotocolid[0] = 16; /* Size of PROTOCOL_ID_IPCP */ + msg->protocolconfigurationoptions.protocolidcontents[0].value = (uint8_t *) + /* PROTOCOL_ID_IPCP data */ + /* the format is as of RFC 1331 (see page 27) */ + "\x01" /* Configure-Request */ + "\x00" /* Indentifier (set to 0) */ + "\x00\x10" /* Length (16 bytes) */ + "\x81" /* Type = Primary DNS - see RFC 1877 */ + "\x06" /* length */ + "\x00\x00\x00\x00" /* IP address set to 0 */ + "\x83" /* Type = Secondary DNS - see RFC 1877 */ + "\x06" /* length */ + "\x00\x00\x00\x00"; /* IP address set to 0 */ + msg->protocolconfigurationoptions.protocolidcontents[0].length = 16; + msg->protocolconfigurationoptions.protocolid[1] = PROTOCOL_ID_DNS_SERVER_IPV4_ADDRESS; + msg->protocolconfigurationoptions.lengthofprotocolid[1] = 0x00; + msg->protocolconfigurationoptions.protocolid[2] = PROTOCOL_ID_IP_ADDR_NAS_SIGNALING; + msg->protocolconfigurationoptions.lengthofprotocolid[2] = 0x00; + LOG_TRACE(INFO, "ESM-SAP - Send PDN Connectivity Request message " "(pti=%d, ebi=%d)", msg->proceduretransactionidentity, msg->epsbeareridentity); From 2493ea4a3cdee73ec7c6052380691dd1e018817b Mon Sep 17 00:00:00 2001 From: Navid Nikaein Date: Tue, 26 Apr 2016 13:51:50 +0200 Subject: [PATCH 3/5] update the run_enb_ue_virt_s1 script to birng up oip interface automatically --- cmake_targets/tools/run_enb_ue_virt_s1 | 18 ++++++++++++++++-- openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c | 2 +- openair2/UTIL/OPT/probe.c | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/cmake_targets/tools/run_enb_ue_virt_s1 b/cmake_targets/tools/run_enb_ue_virt_s1 index 9cc226a698..8f7255332a 100755 --- a/cmake_targets/tools/run_enb_ue_virt_s1 +++ b/cmake_targets/tools/run_enb_ue_virt_s1 @@ -81,8 +81,10 @@ function help() echo_error " " echo_error "Options:" echo_error "Mandatory arguments to long options are mandatory for short options too." + echo_error " -a, --abstraction enable phy abstraction mode" echo_error " -c, -C, --config-file eNB_config_file eNB config file, (see $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF)" echo_error " Default eNB config file if not set is $1" + echo_error " -l, --log-level set the global log level (8:trace, 7:debug, 6:info, 4:warn, 3:error). Note that the log configuration is eNB config file is ignored for oaisim." echo_error " -g, --gdb Run with GDB." echo_error " -h, --help Print this help." 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)" @@ -114,8 +116,14 @@ function main() until [ -z "$1" ] do case "$1" in + -a | --abstraction ) + abstraction_flag=1 + echo "enabling abstraction mode" + exe_arguments="$exe_arguments -a" + shift; + ;; -c | -C | --config-file) - CONFIG_FILE_ENB=$2 + CONFIG_FILE_ENB=$2 # may be relative path if [ -f $(dirname $(readlink -f $0))/$CONFIG_FILE ]; then CONFIG_FILE_ENB=$(dirname $(readlink -f $0))/$CONFIG_FILE @@ -131,6 +139,11 @@ function main() fi shift 2; ;; + -l | --log-level) + echo "setting the log level to $2" + exe_arguments="$exe_arguments -l $2" + shift 2; + ;; -g | --gdb) run_gdb=1 echo "setting GDB flag to: $GDB" @@ -241,7 +254,8 @@ function main() if [ $? -ne 0 ]; then bash -c echo "200 lte " >> /etc/iproute2/rt_tables fi - ip rule add fwmark 1 table lte + ip rule add fwmark 1 table lte + ifconfig oip1 up ip route add default dev oip1 table lte exe_arguments="$exe_arguments -s15 -AAWGN -y1 -b1 -u1 -Q0" diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c index 8ac79a61b9..ea304f93ae 100755 --- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c +++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c @@ -484,7 +484,7 @@ int pdcp_fifo_read_input_sdus (const protocol_ctxt_t* const ctxt_pP) ctxt.enb_flag = ENB_FLAG_NO; ctxt.module_id = pdcp_read_header_g.inst - oai_emulation.info.nb_enb_local + oai_emulation.info.first_ue_local; ctxt.rnti = pdcp_UE_UE_module_id_to_rnti[ctxt.module_id]; - rab_id = pdcp_read_header_g.rb_id; + rab_id = pdcp_read_header_g.rb_id % maxDRB; } CHECK_CTXT_ARGS(&ctxt); diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c index effd0bee85..28bad4d6c9 100644 --- a/openair2/UTIL/OPT/probe.c +++ b/openair2/UTIL/OPT/probe.c @@ -515,7 +515,7 @@ int init_opt(char *path, char *ip, char *port, radio_type_t radio_type_p) strncpy( in_path, path, sizeof(in_path) ); in_path[sizeof(in_path) - 1] = 0; // terminate string } else { - strcpy( in_path, "/tmp/oai_opt.pcap" ); + strcpy( in_path, "/tmp/opt.pcap" ); } if (ip != NULL) { From 2f529ce8d18a31a70295049ca8328538b1559757 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Wed, 27 Apr 2016 11:23:58 +0200 Subject: [PATCH 4/5] hotfix for gnutls/nettle installation from source to avoid conflicts with openair-CN installation --- cmake_targets/tools/build_helper | 54 ++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 294c5006a5..a40bd8c996 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -132,10 +132,21 @@ compilations() { ############################################ install_nettle_from_source() { + nettle_install_log=$OPENAIR_DIR/cmake_targets/log/nettle_install_log.txt + echo_info "\nInstalling Nettle. The log file for nettle installation is here: $nettle_install_log " + ( cd /tmp echo "Downloading nettle archive" - rm -rf /tmp/nettle-2.5.tar.gz* /tmp/nettle-2.5 - wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz + $SUDO rm -rf /tmp/nettle-2.5.tar.gz* /tmp/nettle-2.5 + wget https://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz + if [ $? -ne 0 ]; then + wget ftp://ftp.lysator.liu.se/pub/security/lsh/nettle-2.5.tar.gz + fi + if [ ! -f nettle-2.5.tar.gz ]; then + echo_error "Could not download nettle source files" + cd - + return + fi tar -xzf nettle-2.5.tar.gz cd nettle-2.5/ ./configure --disable-openssl --enable-shared --prefix=/usr @@ -143,21 +154,32 @@ install_nettle_from_source() { make -j`nproc` make check $SUDO make install - rm -rf /tmp/nettle-2.5.tar.gz /tmp/nettle-2.5 + ) >& $nettle_install_log } install_gnutls_from_source(){ + gnutls_install_log=$OPENAIR_DIR/cmake_targets/log/gnutls_install_log.txt + echo_info "\nInstalling Gnutls. The log file for Gnutls installation is here: $gnutls_install_log " + ( cd /tmp echo "Downloading gnutls archive" - rm -rf /tmp/gnutls-3.1.23.tar.xz* /tmp/gnutls-3.1.23 - wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz - tar -xzf gnutls-3.1.23.tar.xz + $SUDO rm -rf /tmp/gnutls-3.1.23.tar.xz* /tmp/gnutls-3.1.23 + wget http://mirrors.dotsrc.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz + if [ $? -ne 0 ]; then + wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1/gnutls-3.1.23.tar.xz + fi + if [ ! -f gnutls-3.1.23.tar.xz ]; then + echo_error "Could not download gnutls source files" + cd - + return + fi + tar -xJf gnutls-3.1.23.tar.xz cd gnutls-3.1.23/ ./configure --prefix=/usr echo "Compiling gnutls" make -j`nproc` $SUDO make install - rm -rf /tmp/gnutls-3.1.23.tar.xz /tmp/gnutls-3.1.23 + )>& $gnutls_install_log } @@ -274,12 +296,12 @@ check_install_oai_software() { android-tools-adb $SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so - if [ `lsb_release -rs` = '12.04' ] ; then - install_nettle_from_source - install_gnutls_from_source - else - $SUDO apt-get install -y libgnutls-dev nettle-dev nettle-bin - fi + + # First we remove gnutls/nettle installation and then install from sources + $SUDO apt-get remove -y libgnutls-dev nettle-dev nettle-bin + install_nettle_from_source + install_gnutls_from_source + $SUDO pip install paramiko $SUDO pip install pyroute2 install_asn1c_from_source @@ -288,8 +310,8 @@ check_install_oai_software() { } install_asn1c_from_source(){ - asn1_install_dir=$OPENAIR_DIR/cmake_targets/log/asn1c_install_log.txt - echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_dir " + asn1_install_log=$OPENAIR_DIR/cmake_targets/log/asn1c_install_log.txt + echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_log " ( $SUDO rm -rf /tmp/asn1c-r1516 mkdir -p /tmp/asn1c-r1516 @@ -303,7 +325,7 @@ install_asn1c_from_source(){ ./configure make -j`nproc` $SUDO make install - ) > $asn1_install_dir 2>&1 + ) > $asn1_install_log 2>&1 } ################################################# From 878e9d21a34c4dc4c44c57f5cb6dbc6470ca71e4 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Wed, 27 Apr 2016 17:27:35 +0200 Subject: [PATCH 5/5] minor fix for Huawei E398 modem script + stoppping UEs in test setup --- cmake_targets/autotests/test_case_list.xml | 2 +- .../tools/configure_cots_huaweiE398_ue.py | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 1403885a70..4aaf84e2b9 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -8,7 +8,7 @@ develop oaisim* oaisim_nos1* lte-softmodem* lte-softmodem-nos1* mme_gw* run_epc* run_hss* hss hss_sim configure_cots* wvdial* iperf iperf_script ping tshark rrh_gw 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; uname -a; dmesg|tail +$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_huaweiE398_ue.py --stop-ue; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue; uname -a; sudo -E dmesg|tail 36000 0102+ 010304 010305 0104+ 015502 015505 015506 015507 015508 015509 015510 015511 015602 015605 015702 015705 015802 015805 016102 016105 016502 016505 0170+ 017502 017505 018002 018005 018502 018505 025502 025505 3 diff --git a/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py b/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py index 9646cc69ff..b173d6157c 100755 --- a/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py +++ b/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py @@ -180,11 +180,16 @@ def start_ue () : thread_ppp.join() def stop_ue(): - timeout=60 - os.system('killall wvdial') - send_command('AT', 'OK' , timeout) - send_command('AT+CGATT=0' , 'OK|ERROR' , timeout) - #send_command('AT+CFUN=4' , 'OK' , timeout) + stringIdBandrich='Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard' + status, out = commands.getstatusoutput('lsusb | grep -i \'' + stringIdBandrich + '\'') + if (out == '') : + print "Huawei E398 Adapter not found. Exiting now..." + sys.exit() + timeout=60 + os.system('killall wvdial') + send_command('AT', 'OK' , timeout) + send_command('AT+CGATT=0' , 'OK|ERROR' , timeout) + #send_command('AT+CFUN=4' , 'OK' , timeout) #reset the USB BUS of Bandrich UE @@ -192,7 +197,7 @@ def reset_ue(): stringIdBandrich='Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard' status, out = commands.getstatusoutput('lsusb | grep -i \'' + stringIdBandrich + '\'') if (out == '') : - print "Bandrich 4G LTE Adapter not found. Exiting now..." + print "Huawei E398 Adapter not found. Exiting now..." sys.exit() p=re.compile('Bus\s*(\w+)\s*Device\s*(\w+):\s*ID\s*(\w+):(\w+)') res=p.findall(out)