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