From 0d90c73f35149633921c78eaa8cc41e9792f6d0a Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Mon, 13 Apr 2015 19:40:40 +0000
Subject: [PATCH] V0 to be tested

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7140 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 cmake_targets/tools/run_enb_ue_virt_s1 | 146 +++++++++++++++++++++++++
 1 file changed, 146 insertions(+)
 create mode 100755 cmake_targets/tools/run_enb_ue_virt_s1

diff --git a/cmake_targets/tools/run_enb_ue_virt_s1 b/cmake_targets/tools/run_enb_ue_virt_s1
new file mode 100755
index 000000000..343bb4612
--- /dev/null
+++ b/cmake_targets/tools/run_enb_ue_virt_s1
@@ -0,0 +1,146 @@
+#!/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_s1
+# 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)
+# MME+SP-GW executable have to be launched by your own (run_hss, run_epc) before this script is invoked.
+#
+
+
+
+###########################################################
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+. $THIS_SCRIPT_PATH/build_helper
+###########################################################
+
+function trim2()
+{
+    local var=$@
+    var="${var#"${var%%[![:space:]]*}"}"   # remove leading whitespace characters
+    var="${var%"${var##*[![:space:]]}"}"   # remove trailing whitespace characters
+    echo -n "$var"
+}
+
+function is_tun_interface()
+{
+  my_bool=1
+  for var in "$@"
+  do
+    if [ "a$var" == "a" ]; then
+      echo "0";
+      return;
+    fi
+    if [[ "$var" != *tun* ]]; then
+      echo "0";
+      return;
+    fi
+  done
+  echo "$my_bool"
+}
+
+# $1 is enb_config file
+function main()
+{
+  set_openair_env
+  cecho "OPENAIR_DIR    = $OPENAIR_DIR" $green
+
+  local CONFIG_FILE_ENB=$OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf
+
+
+  #######################################################
+  # SOURCE CONFIG FILE
+  #######################################################
+  rm -f /tmp/source.txt
+  VARIABLES="
+           ENB_INTERFACE_NAME_FOR_S1_MME\|\
+           ENB_IPV4_ADDRESS_FOR_S1_MME\|\
+           ENB_INTERFACE_NAME_FOR_S1U\|\
+           ENB_IPV4_ADDRESS_FOR_S1U"
+
+  VARIABLES=$(echo $VARIABLES | sed -e 's/\\r//g')
+  VARIABLES=$(echo $VARIABLES | tr -d ' ')
+  cat $CONFIG_FILE_ENB | grep -w "$VARIABLES"| tr -d " " | tr -d ";" > /tmp/source.txt
+  source /tmp/source.txt
+
+  declare ENB_IPV4_NETMASK_FOR_S1_MME=$(       echo $ENB_IPV4_ADDRESS_FOR_S1_MME        | cut -f2 -d '/')
+  declare ENB_IPV4_NETMASK_FOR_S1U=$(          echo $ENB_IPV4_ADDRESS_FOR_S1U        | cut -f2 -d '/')
+
+  ENB_IPV4_ADDRESS_FOR_S1_MME=$(               echo $ENB_IPV4_ADDRESS_FOR_S1_MME        | cut -f1 -d '/')
+  ENB_IPV4_ADDRESS_FOR_S1U=$(                  echo $ENB_IPV4_ADDRESS_FOR_S1U           | cut -f1 -d '/')
+
+
+  is_tun=`is_tun_interface $ENB_INTERFACE_NAME_FOR_S1_MME  $ENB_INTERFACE_NAME_FOR_S1U`
+#  if [ $is_tun = "1" ]; then
+#    $SUDO openvpn --mktun --dev $ENB_INTERFACE_NAME_FOR_S1U;sync
+#    $SUDO openvpn --mktun --dev $ENB_INTERFACE_NAME_FOR_S1_MME;sync
+#    $SUDO ip -4 addr add $ENB_IPV4_ADDRESS_FOR_S1U/$ENB_IPV4_NETMASK_FOR_S1U        dev $ENB_INTERFACE_NAME_FOR_S1U;sync
+#    $SUDO ip -4 addr add $ENB_IPV4_ADDRESS_FOR_S1_MME/$ENB_IPV4_NETMASK_FOR_S1_MME  dev $ENB_INTERFACE_NAME_FOR_S1_MME;sync
+#    $SUDO ifconfig  $ENB_INTERFACE_NAME_FOR_S1U up;sync
+#    $SUDO ifconfig  $ENB_INTERFACE_NAME_FOR_S1_MME up;sync
+#    echo_success "Configured local eNB S1 tun interfaces"
+#  else
+#     echo_success "eNB S1 tun interfaces should be ethernet interfaces (no tunnels configured)"
+#  fi
+
+  ##################################################
+  # LAUNCH eNB + UE executable
+  ##################################################
+  $SUDO pkill oaisim
+  $SUDO rmmod ue_ip > /dev/null 2>&1
+
+  echo_success "Bringup UE interface..."
+  $SUDO insmod  $OPENAIR_DIR/targets/bin/ue_ip.ko
+
+  $SUDO ip route flush cache
+
+  # Check table 200 lte in /etc/iproute2/rt_tables
+  fgrep lte /etc/iproute2/rt_tables  > /dev/null
+  if [ $? -ne 0 ]; then
+    $SUDO echo "200 lte " >> /etc/iproute2/rt_tables
+  fi
+  $SUDO ip rule add fwmark 5 table lte
+  $SUDO ip route add default dev oip1 table lte
+
+
+  gdb --args $OPENAIR_DIR/targets/bin/oaisim \
+      -u1 -l9 \
+      -K itti_enb_ue_s1.log \
+      --enb-conf $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf  | tee stdout_enb_ue_s1.log
+
+}
+
+main "$@"
-- 
GitLab