From fb34f9b989e84ac6f91e9de06951281cfd71b7dd Mon Sep 17 00:00:00 2001
From: Navid Nikaein <navid.nikaein@eurecom.fr>
Date: Wed, 3 Sep 2014 09:00:44 +0000
Subject: [PATCH] updating the scripts for the distributed emulation

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5768 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 .../SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb | 64 ++++++++++++++++---
 .../SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue  | 54 +++++++++++++---
 2 files changed, 99 insertions(+), 19 deletions(-)

diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb
index 3ca952c2d1..6f5c891690 100755
--- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb
+++ b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb
@@ -1,27 +1,71 @@
 #!/bin/sh
+
+GREEN='\E[32m'
+NC='\e[0m'
+
+# check the compilation
 echo "Bringup eNB interface"
 sudo rmmod nasmesh
 make all
 sudo insmod $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko 
 
+# set params
+EMULATION_DEV_INTERFACE="eth0"
+EMULATION_MULTICAST_GROUP=1
+EMULATION_LOG_LEVEL=5 # 3 = error, 5 info, 7 debug, trace= 9 
+OAI_LOCAL_ADDRESS="10.0.1.1"
+OAI_REMOTE_ADDRESS="10.0.1.2"
+#EMULATION_DEV_ADDRESS= `hostname -I cut -f1 -d' '`
+EMULATION_DEV_ADDRESS=`ifconfig $EMULATION_DEV_INTERFACE | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
+
+echo "Setting Emulation Interface to $EMULATION_DEV_INTERFACE ($EMULATION_DEV_ADDRESS)"
+
+#funcs
+test_install_package() {
+  # usage: test_install_package package_name
+  if [ $# -eq 1 ]; then
+      dpkg -s "$1" > /dev/null 2>&1 && {
+          echo "$1 is installed." 
+      } || {
+          echo "$1 is not installed."
+          sudo apt-get install --assume-yes $1 
+      }
+  fi
+}
+
 #avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16)
 #sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
-sudo ip route add 239.0.0.160/28 dev eth0
+echo "Make sure that eth0 is the interface between the machines, otherwise change"
+sudo ip route add 239.0.0.160/28 dev $EMULATION_DEV_INTERFACE
+
+sudo ifconfig oai0 $OAI_LOCAL_ADDRESS netmask 255.255.255.0 broadcast 10.0.1.255
+
+echo "applying DRB classification"
+echo "$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s $OAI_LOCAL_ADDRESS -t $OAI_REMOTE_ADDRESS -r 1"
+$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s $OAI_LOCAL_ADDRESS -t $OAI_REMOTE_ADDRESS -r 1
+#PGM provide a reliable mutlicast data transport"
+
+test_install_package libpgm-dev 
+test_install_package libpgm-5.1-0
+
+PGM_FOUND=`dpkg-query -W -f='${Status}' libpgm-dev 2>/dev/null | grep -c "ok installed" `
 
-sudo ifconfig oai0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255
+if [ $PGM_FOUND = 1 ]; then 
+    PGM=-D$EMULATION_DEV_ADDRESS
+else 
+    PGM=" "
+fi 
 
-$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.1 -t 10.0.1.2 -r 1
-echo "to see eNB stats, pleasae run : watch_enb script"
 if   [ -z $1 ]; then 
-echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g3 -l3 > /dev/null"
-nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g3 -l3 > /dev/null
+echo "$OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2   -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM > /dev/null"
+sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM > /dev/null
 else
     if [ $1 = "all" ]; then 
-	echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g3 -l7" 
-	nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g3 -l7
+	echo "$OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM" 
+	sudo -E OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM
     else
-	echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g3 -l7 | grep -i $1" 
-	nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g3 -l7 | grep -i $1
+	echo "$OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2  -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM | grep -i $1" 
+	sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim  -u0 -M0 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM | grep -i $1
     fi
 fi
 echo "End"
diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue
index a4d9ae1e2f..ccddd5660f 100755
--- a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue
+++ b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue
@@ -1,28 +1,64 @@
 #!/bin/sh
+
 echo "Bringup UE interface"
 sudo rmmod nasmesh
 make nasmesh all
 sudo insmod  $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko 
 
+# set params
+EMULATION_DEV_INTERFACE="eth0"
+EMULATION_MULTICAST_GROUP=1
+EMULATION_LOG_LEVEL=5 # 3 = error, 5 info, 7 debug, trace= 9 
+OAI_LOCAL_ADDRESS="10.0.1.2"
+OAI_REMOTE_ADDRESS="10.0.1.1"
+#EMULATION_DEV_ADDRESS= `hostname -I cut -f1 -d' '`
+EMULATION_DEV_ADDRESS=`ifconfig $EMULATION_DEV_INTERFACE | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
+
+echo "Setting Emulation Interface to $EMULATION_DEV_INTERFACE ($EMULATION_DEV_ADDRESS)"
+
+#funcs
+test_install_package() {
+  # usage: test_install_package package_name
+  if [ $# -eq 1 ]; then
+      dpkg -s "$1" > /dev/null 2>&1 && {
+          echo "$1 is installed." 
+      } || {
+          echo "$1 is not installed."
+          sudo apt-get install --assume-yes $1 
+      }
+  fi
+}
+
 #avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16)
 #sudo route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
-sudo ip route add 239.0.0.160/28 dev eth0
+echo "Make sure that eth0 is the interface between the machines, otherwise change"
+sudo ip route add 239.0.0.160/28 dev $EMULATION_DEV_INTERFACE
 
 sudo ifconfig oai0 10.0.1.2 netmask 255.255.255.0 broadcast 10.0.1.255
 
-$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s 10.0.1.2 -t 10.0.1.1 -r 1
+$OPENAIR2_DIR/NAS/DRIVER/MESH/RB_TOOL/rb_tool -a -c0 -i0 -z0 -s $OAI_LOCAL_ADDRESS -t $OAI_REMOTE_ADDRESS  -r 1
+
+#PGM provide a reliable mutlicast data transport"
+test_install_package libpgm-dev 
+test_install_package libpgm-5.1-0
+PGM_FOUND=`dpkg-query -W -f='${Status}' libpgm-dev 2>/dev/null | grep -c "ok installed" `
+if [ $PGM_FOUND = 1 ]; then 
+    PGM=-D$EMULATION_DEV_ADDRESS
+else 
+    PGM=" "
+fi 
 
-echo "to see UE stats, pleasae run : watch_ue script"
+# running oaisim
 if   [ -z $1 ]; then 
-echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g3 -l3 > /dev/null"
-nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g3 -l3 > /dev/null
+echo "$OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM  > /dev/null"
+sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM  > /dev/null
 else
     if [ $1 = "all" ]; then 
-	echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g3 -l7"
-	nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g3 -l7 
+	echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM "
+	sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM 
     else
-	echo "nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g3 -l7 | grep -i $1" 
-	nice -10 $OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g3 -l7 | grep -i $1
+	echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM  | grep -i $1" 
+        sudo -E $OPENAIR_TARGETS/SIMU/USER/oaisim  -b0 -M1 -p2 -g$EMULATION_MULTICAST_GROUP -l$EMULATION_LOG_LEVEL $PGM  | grep -i $1
     fi	
 fi
 echo "End"
-- 
GitLab