From a11ce0031075e6137f00a324613946bcc8f95bf9 Mon Sep 17 00:00:00 2001 From: Lionel Gauthier <lionel.gauthier@eurecom.fr> Date: Tue, 21 Apr 2015 15:01:18 +0000 Subject: [PATCH] To be tested git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7244 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- cmake_targets/tools/run_enb_ue_virt_noS1 | 216 +++++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100755 cmake_targets/tools/run_enb_ue_virt_noS1 diff --git a/cmake_targets/tools/run_enb_ue_virt_noS1 b/cmake_targets/tools/run_enb_ue_virt_noS1 new file mode 100755 index 0000000000..30c795146e --- /dev/null +++ b/cmake_targets/tools/run_enb_ue_virt_noS1 @@ -0,0 +1,216 @@ +#!/bin/bash +################################################################################ +# OpenAirInterface +# Copyright(c) 1999 - 2014 Eurecom +# +# OpenAirInterface is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# +# OpenAirInterface is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenAirInterface.The full GNU General Public License is +# included in this distribution in the file called "COPYING". If not, +# see <http://www.gnu.org/licenses/>. +# +# Contact Information +# OpenAirInterface Admin: openair_admin@eurecom.fr +# OpenAirInterface Tech : openair_tech@eurecom.fr +# OpenAirInterface Dev : openair4g-devel@eurecom.fr +# +# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE +# +################################################################################ +# file start_enb_ue_virt_noS1 +# brief +# author Lionel Gauthier +# company Eurecom +# email: lionel.gauthier@eurecom.fr +########################################### +# INPUT OF THIS SCRIPT: +# THE DIRECTORY WHERE ARE LOCATED THE CONFIGURATION FILES +######################################### +# This script start ENB+UE (all in one executable, on one host) +# eNB is in standalone mode, it does not require a MME. + + + +########################################################### +THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) +. $THIS_SCRIPT_PATH/build_helper +########################################################### + + + + +function help() +{ + echo_error " " + echo_error "Usage: start_enb_ue_virt_noS1 [OPTION]..." + echo_error "Run the eNB and/or UE executable with no hardware." + echo_error " " + echo_error "Options:" + echo_error "Mandatory arguments to long options are mandatory for short options too." + 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 " -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)" + echo_error " -m, --mscgen directory Generate mscgen output files in a directory" + echo_error " -V, --vcd Dump timings of processing in a GTKWave compliant file format." + echo_error " -x, --xforms Run XFORMS scope windows." +} + + + +function main() +{ + set_openair_env + cecho "OPENAIR_DIR = $OPENAIR_DIR" $green + + local -i run_gdb=0 + local -i run_mscgen=0 + local exe_arguments="" + local DEFAULT_CONFIG_FILE_ENB=$OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf + local CONFIG_FILE_ENB=$DEFAULT_CONFIG_FILE_ENB + local MSC_DIR="/tmp" + + until [ -z "$1" ] + do + case "$1" in + -c | -C | --config-file) + 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 + echo "setting config file to: $CONFIG_FILE" + CONFIG_FILE_ACCESS_OK=1 + else + # may be absolute path + if [ -f $CONFIG_FILE_ENB ]; then + echo "setting config file to: $CONFIG_FILE_ENB" + else + echo_fatal "config file $CONFIG_FILE_ENB not found" + fi + fi + shift 2; + ;; + -g | --gdb) + run_gdb=1 + echo "setting GDB flag to: $GDB" + shift; + ;; + -h | --help) + help $DEFAULT_CONFIG_FILE_ENB + shift; + exit 0 + ;; + -K | --itti-dump-file) + ITTI_DUMP_FILE=$2 + # can omit file name if last arg on the line + if [ "x$ITTI_DUMP_FILE" = "x" ]; then + ITTI_DUMP_FILE="/tmp/itti_enb_ue_s1.log" + shift 1; + else + shift 2; + fi + echo "setting ITTI dump file to: $ITTI_DUMP_FILE" + exe_arguments="$exe_arguments -K $ITTI_DUMP_FILE" + ;; + + -m | --mscgen) + MSC_DIR=$2 + # can omit file name if last arg on the line + if [ -d "$MSC_DIR" ]; then + echo "setting mscgen log files to dir: $MSC_DIR" + run_mscgen=1 + shift 2; + else + echo_error "Mscgen log dir does not exist" + exit -1 + fi + ;; + + -V | --vcd) + "setting gtk-wave output" + exe_arguments="$exe_arguments -V /tmp/oai_gtk_wave.vcd" + shift ; + ;; + *) + echo "Unknown option $1" + help + exit 0 + ;; + esac + done + + # may use default config file + exe_arguments="$exe_arguments --enb-conf $CONFIG_FILE_ENB" + + + ################################################## + # LAUNCH eNB + UE executable + ################################################## + $SUDO pkill oaisim + $SUDO rmmod nasmesh > /dev/null 2>&1 + + echo_success "Bringup UE interface..." + $SUDO insmod $OPENAIR_DIR/targets/bin/nasmesh.ko + sync + + echo "bring up oai0 interface for enb" + $SUDO ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 + sync + echo "bring up oai1 interface for ue 1" + $SUDO ifconfig oai1 10.0.2.2 netmask 255.255.255.0 broadcast 10.0.2.255 + sync + + # enb -> ue1 + $OPENAIR_DIR/targets/bin/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.2 -r 1 + # ue1 -> enb + $OPENAIR_DIR/targets/bin/rb_tool -a -c0 -i1 -z0 -s 10.0.2.2 -t 10.0.2.1 -r 1 + + + exe_arguments="$exe_arguments -s15 -AAWGN -y1 -b1 -u1 -V" + + cd $OPENAIR_DIR/targets/bin + + + if [ $run_mscgen -eq 1 ]; then + $SUDO rm -f /tmp/openair.msc.* + fi + + if [ $run_gdb -eq 0 ]; then + exec $SUDO $OPENAIR_DIR/targets/bin/oaisim $exe_arguments | tee /tmp/enb_ue_nos1.log.txt + else + touch ~/.gdb_enb_ue_nos1 + chmod 777 ~/.gdb_enb_ue_nos1 + echo "file $OPENAIR_DIR/targets/bin/oaisim" > ~/.gdb_enb_ue_nos1 + echo "set args $exe_arguments" >> ~/.gdb_enb_ue_nos1 + echo "run" >> ~/.gdb_enb_ue_nos1 + cat ~/.gdb_enb_ue_nos1 + $SUDO gdb -n -x ~/.gdb_enb_ue_nos1 + fi + + if [ $run_mscgen -eq 1 ]; then + cd $MSC_DIR + last_created_file=`ls -t mscgen* | head -1 | tr -d ':'` + $OPENAIR_DIR/targets/SCRIPTS/msc_gen.py + sync + last_created_file2=`ls -t mscgen* | head -1 | tr -d ':'` + + if [ x"$last_created_file" != x"$last_created_file2" ]; then + if [ -f ./$last_created_file2/oai_mscgen_page_0.png ]; then + command -v eog 2>/dev/null && eog ./$last_created_file2/oai_mscgen_page_0.png + fi + fi + fi +} + +main "$@" -- GitLab