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