From e90b9e1f763683e371bc29f6f1b5e53adcedbf6c Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Wed, 4 Dec 2013 16:58:20 +0000
Subject: [PATCH] testbench with distincts 2 hosts (1UE 1 eNB) with ethernet
 emulation execution mode of oaisim

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4595 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 targets/PROJECTS/SPECTRA/build_all.bash |  78 +++++++----------
 targets/PROJECTS/SPECTRA/start_enb.bash | 109 ++++++++++++++++++++++++
 targets/PROJECTS/SPECTRA/start_ue.bash  |  95 +++++++++++++++++++++
 3 files changed, 236 insertions(+), 46 deletions(-)
 create mode 100755 targets/PROJECTS/SPECTRA/start_enb.bash
 create mode 100755 targets/PROJECTS/SPECTRA/start_ue.bash

diff --git a/targets/PROJECTS/SPECTRA/build_all.bash b/targets/PROJECTS/SPECTRA/build_all.bash
index 4b385dd92b..ccbec7d7cd 100755
--- a/targets/PROJECTS/SPECTRA/build_all.bash
+++ b/targets/PROJECTS/SPECTRA/build_all.bash
@@ -5,18 +5,17 @@ THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
 source $THIS_SCRIPT_PATH/env_802dot21.bash
 ###########################################################
 
-cd $OPENAIR_TARGETS/SIMU/USER
-
-
-###############################
-# COMPILE oaisim
-###############################
 
+echo_success "\n###############################"
+echo_success "# Check installed utils and libs"
+echo_success "###############################"
 test_command_install_package "gccxml" "gccxml" "--force-yes"
 test_command_install_package "iptables" "iptables"
 test_command_install_package "ip" "iproute"
 test_install_package "openssl"
 test_install_package "libblas-dev"
+# for itti analyser
+test_install_package "libgtk-3-dev"
 test_install_package "libxml2"
 test_install_package "libxml2-dev"
 test_install_package "libforms-bin" "--force-yes"
@@ -29,67 +28,54 @@ test_install_package linux-headers-`uname -r`
     
 test_install_asn1c_4_rrc_cellular
     
-#make clean > /dev/null 
-#make cleancell >/dev/null
-
-echo_success "Executing: make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `"
-cd $OPENAIR_TARGETS/SIMU/USER
-make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `
-if [[ $? -eq 2 ]] ; then
-    exit 1
-fi
-
-
-###############################
-# COMPILE LTE_RAL_UE
-###############################
-echo_success "Compiling Radio Access Layer UE (RAL)"
-cd $OPENAIR3_DIR/RAL-LTE/LTE_RAL_UE
-make all
-
-
-###############################
-# COMPILE LTE_RAL_ENB
-###############################
-echo_success "Compiling Radio Access Layer eNB (RAL)"
-cd $OPENAIR3_DIR/RAL-LTE/LTE_RAL_ENB
-make all
 
-
-###############################
-# COMPILE rrm_std_cellular
-###############################
-echo_success "Compiling RRM"
+echo_success "\n###############################"
+echo_success "# COMPILE oaisim"
+echo_success "###############################"
 cd $OPENAIR_TARGETS/SIMU/USER
-make rrm_std_cellular
+#make clean > /dev/null 
+#make cleancell >/dev/null
+echo_success "Executing: make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `"
+make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 Rel10=1 -j`grep -c ^processor /proc/cpuinfo `
+#make oaisim NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 Rel10=1 
 if [[ $? -eq 2 ]] ; then
     exit 1
 fi
 
 
-###############################
-# COMPILE IP kernel drivers
-###############################
+echo_success "\n###############################"
+echo_success "# COMPILE IP kernel drivers"
+echo_success "###############################"
 echo_success "Compiling IP Drivers"
 cd $OPENAIR2_DIR
 make naslite_netlink_ether.ko
 cd $OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/
 make
 
-###############################
-# COMPILE MIH-F
-###############################
+
+echo_success "\n###############################"
+echo_success "# COMPILE MIH-F"
+echo_success "###############################"
 cd $ODTONE_ROOT
 b2 --boost-root=$BOOST_ROOT
 
 
-###############################
-# COMPILE MIH-USER
-###############################
+echo_success "\n###############################"
+echo_success "# COMPILE MIH-USER"
+echo_success "###############################"
 cd  $ODTONE_ROOT/app/lte_test_user/
 b2 --boost-root=$BOOST_ROOT linkflags=-lrt
 
 
+echo_success "\n###############################"
+echo_success "# COMPILE ITTI ANALYSER"
+echo_success "###############################"
+cd  $OPENAIR_HOME/common/utils/itti_analyzer
+if [ ! -f $OPENAIR_HOME/common/utils/itti_analyzer/Makefile ]
+    then
+        ./configure
+    fi
+make install
 
 
 
diff --git a/targets/PROJECTS/SPECTRA/start_enb.bash b/targets/PROJECTS/SPECTRA/start_enb.bash
new file mode 100755
index 0000000000..2d87280825
--- /dev/null
+++ b/targets/PROJECTS/SPECTRA/start_enb.bash
@@ -0,0 +1,109 @@
+#!/bin/bash
+
+
+#        +-----------+          +------+              +-----------+
+#        |  eNB      +------+   |  ovs | VLAN 1+------+    MME    |
+#        |           |cpenb0+------------------+cpmme0|           |
+#        |           +------+   |bridge|       +------+           |
+#        |           |upenb0+-------+  |              |           |
+#        +-----------+------+   |   |  |              +-----------+
+#                               +---|--+                    |
+#                                   |                 +-----------+
+#                                   |                 |  S+P-GW   |
+#                                   |  VLAN2   +------+           +-------+
+#                                   +----------+upsgw0|           |eth0   +---Internet access
+#                                              +------+           +-------+
+#                                                     |           |
+#                                                     +-----------+
+#
+
+###########################################################
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+source $THIS_SCRIPT_PATH/env_802dot21.bash
+###########################################################
+
+###########################################################
+IPTABLES=/sbin/iptables
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+declare -x OPENAIR_DIR=""
+declare -x OPENAIR1_DIR=""
+declare -x OPENAIR2_DIR=""
+declare -x OPENAIR3_DIR=""
+declare -x OPENAIR_TARGETS=""
+###########################################################
+
+set_openair
+cecho "OPENAIR_DIR     = $OPENAIR_DIR" $green
+cecho "OPENAIR1_DIR    = $OPENAIR1_DIR" $green
+cecho "OPENAIR2_DIR    = $OPENAIR2_DIR" $green
+cecho "OPENAIR3_DIR    = $OPENAIR3_DIR" $green
+cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green
+
+
+##################################################
+# LAUNCH eNB  executable
+##################################################
+declare MAKE_IP_DRIVER_TARGET="oai_nw_drv.ko"
+declare MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim USE_MME=R10"
+declare IP_DRIVER_NAME="oai_nw_drv"
+declare LTEIF="oai0"
+ENB_IPv4="10.0.0.1"
+ENB_IPv6="2001:1::1"
+ENB_IPv6_CIDR=$ENB_IPv6"/64"
+ENB_IPv4_CIDR=$ENB_IPv4"/24"
+#------------------------------------------------
+declare -a NAS_IMEI=( 3 9 1 8 3 6 6 2 0 0 0 0 0 0 )
+
+
+
+echo "Bringup UE interface"
+rmmod -f $IP_DRIVER_NAME > /dev/null 2>&1
+cecho "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET ....." $green
+# bash_exec "make --directory=$OPENAIR_TARGETS/SIMU/EXAMPLES/VIRT_EMUL_1eNB $MAKE_LTE_ACCESS_STRATUM_TARGET "
+bash_exec "make --directory=$OPENAIR2_DIR $MAKE_IP_DRIVER_TARGET "
+#bash_exec "make --directory=$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL "
+
+bash_exec "insmod  $OPENAIR2_DIR/NAS/DRIVER/LITE/$IP_DRIVER_NAME.ko oai_nw_drv_IMEI=${NAS_IMEI[0]},${NAS_IMEI[1]},${NAS_IMEI[2]},${NAS_IMEI[3]},${NAS_IMEI[4]},${NAS_IMEI[5]},${NAS_IMEI[6]},${NAS_IMEI[7]},${NAS_IMEI[8]},${NAS_IMEI[9]},${NAS_IMEI[10]},${NAS_IMEI[11]},${NAS_IMEI[12]},${NAS_IMEI[13]}"
+#bash_exec "insmod  $OPENAIR2_DIR/NAS/DRIVER/UE_LTE/$IP_DRIVER_NAME.ko"
+
+bash_exec "ip route flush cache"
+
+#bash_exec "ip link set $LTEIF broadcast ff:ff:ff:ff:ff:ff"
+bash_exec "ip link set $LTEIF up"
+sleep 1
+bash_exec "ip addr add dev $LTEIF $ENB_IPv4_CIDR"
+bash_exec "ip addr add dev $LTEIF $ENB_IPv6_CIDR"
+
+
+sleep 1
+
+bash_exec "sysctl -w net.ipv4.conf.all.log_martians=1"
+assert "  `sysctl -n net.ipv4.conf.all.log_martians` -eq 1" $LINENO
+
+echo "   Disabling reverse path filtering"
+bash_exec "sysctl -w net.ipv4.conf.all.rp_filter=0"
+assert "  `sysctl -n net.ipv4.conf.all.rp_filter` -eq 0" $LINENO
+
+
+bash_exec "ip route flush cache"
+
+# please add table 200 lte in/etc/iproute2/rt_tables
+ip rule add fwmark 5  table lte
+ip route add default dev $LTEIF table lte
+
+# start MIH-F
+xterm -hold -e $ODTONE_ROOT/dist/odtone-mihf --log 4 --conf.file $ODTONE_ROOT/dist/odtone.conf &
+
+wait_process_started odtone-mihf
+
+
+gdb --args $OPENAIR_TARGETS/SIMU/USER/oaisim -a  -l7 -u0 -M0 -p2  -g1 -D eth2  \
+             --enb-ral-listening-port   1234\
+             --enb-ral-link-id          enb_lte_link\
+             --enb-ral-ip-address       127.0.0.1\
+             --enb-mihf-remote-port     1025\
+             --enb-mihf-ip-address      127.0.0.1\
+             --enb-mihf-id              mihf1_enb
+
+
+
diff --git a/targets/PROJECTS/SPECTRA/start_ue.bash b/targets/PROJECTS/SPECTRA/start_ue.bash
new file mode 100755
index 0000000000..a455f963dc
--- /dev/null
+++ b/targets/PROJECTS/SPECTRA/start_ue.bash
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+
+
+
+###########################################################
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+source $THIS_SCRIPT_PATH/env_802dot21.bash
+###########################################################
+
+###########################################################
+IPTABLES=/sbin/iptables
+THIS_SCRIPT_PATH=$(dirname $(readlink -f $0))
+declare -x OPENAIR_DIR=""
+declare -x OPENAIR1_DIR=""
+declare -x OPENAIR2_DIR=""
+declare -x OPENAIR3_DIR=""
+declare -x OPENAIR_TARGETS=""
+###########################################################
+
+set_openair
+cecho "OPENAIR_DIR     = $OPENAIR_DIR" $green
+cecho "OPENAIR1_DIR    = $OPENAIR1_DIR" $green
+cecho "OPENAIR2_DIR    = $OPENAIR2_DIR" $green
+cecho "OPENAIR3_DIR    = $OPENAIR3_DIR" $green
+cecho "OPENAIR_TARGETS = $OPENAIR_TARGETS" $green
+
+
+##################################################
+# LAUNCH UE  executable
+##################################################
+declare MAKE_IP_DRIVER_TARGET="oai_nw_drv.ko"
+declare MAKE_LTE_ACCESS_STRATUM_TARGET="oaisim USE_MME=R10"
+declare IP_DRIVER_NAME="oai_nw_drv"
+declare LTEIF="oai0"
+UE_IPv4="10.0.0.8"
+UE_IPv6="2001:1::8"
+UE_IPv6_CIDR=$UE_IPv6"/64"
+UE_IPv4_CIDR=$UE_IPv4"/24"
+#------------------------------------------------
+declare -a NAS_IMEI=( 3 9 1 8 3 6 7 3 0 2 0 0 0 0 )
+
+
+
+echo "Bringup UE interface"
+rmmod -f $IP_DRIVER_NAME > /dev/null 2>&1
+cecho "make $MAKE_IP_DRIVER_TARGET $MAKE_LTE_ACCESS_STRATUM_TARGET ....." $green
+# bash_exec "make --directory=$OPENAIR_TARGETS/SIMU/EXAMPLES/VIRT_EMUL_1eNB $MAKE_LTE_ACCESS_STRATUM_TARGET "
+bash_exec "make --directory=$OPENAIR2_DIR $MAKE_IP_DRIVER_TARGET "
+#bash_exec "make --directory=$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL "
+
+bash_exec "insmod  $OPENAIR2_DIR/NAS/DRIVER/LITE/$IP_DRIVER_NAME.ko oai_nw_drv_IMEI=${NAS_IMEI[0]},${NAS_IMEI[1]},${NAS_IMEI[2]},${NAS_IMEI[3]},${NAS_IMEI[4]},${NAS_IMEI[5]},${NAS_IMEI[6]},${NAS_IMEI[7]},${NAS_IMEI[8]},${NAS_IMEI[9]},${NAS_IMEI[10]},${NAS_IMEI[11]},${NAS_IMEI[12]},${NAS_IMEI[13]}"
+#bash_exec "insmod  $OPENAIR2_DIR/NAS/DRIVER/UE_LTE/$IP_DRIVER_NAME.ko"
+
+bash_exec "ip route flush cache"
+
+#bash_exec "ip link set $LTEIF broadcast ff:ff:ff:ff:ff:ff"
+bash_exec "ip link set $LTEIF up"
+sleep 1
+bash_exec "ip addr add dev $LTEIF $UE_IPv4_CIDR"
+bash_exec "ip addr add dev $LTEIF $UE_IPv6_CIDR"
+
+
+sleep 1
+
+bash_exec "sysctl -w net.ipv4.conf.all.log_martians=1"
+assert "  `sysctl -n net.ipv4.conf.all.log_martians` -eq 1" $LINENO
+
+echo "   Disabling reverse path filtering"
+bash_exec "sysctl -w net.ipv4.conf.all.rp_filter=0"
+assert "  `sysctl -n net.ipv4.conf.all.rp_filter` -eq 0" $LINENO
+
+
+bash_exec "ip route flush cache"
+
+# please add table 200 lte in file /etc/iproute2/rt_tables
+ip rule add fwmark 5  table lte
+ip -4 route add default dev $LTEIF table lte
+ip -6 route add default dev $LTEIF table lte
+
+# start MIH-F
+xterm -hold -e $ODTONE_ROOT/dist/odtone-mihf --log 4 --conf.file $ODTONE_ROOT/dist/odtone.conf &
+
+wait_process_started odtone-mihf
+
+gdb --args $OPENAIR_TARGETS/SIMU/USER/oaisim -a  -l7 -u1 -b0 -M1 -p2 -g1 -D eth2  \
+             --ue-ral-listening-port   1234\
+             --ue-ral-link-id          ue_lte_link\
+             --ue-ral-ip-address       127.0.0.1\
+             --ue-mihf-remote-port     1025\
+             --ue-mihf-ip-address      127.0.0.1\
+             --ue-mihf-id              mihf2_ue
+
+
+
-- 
GitLab