#!/bin/bash ########################################################### THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) declare -x OPENAIR_DIR="/usr/local/src/TEST2" declare -x OPENAIR1_DIR="/usr/local/src/TEST2/openair1" declare -x OPENAIR2_DIR="/usr/local/src/TEST2/openair2" declare -x OPENAIR3_DIR="/usr/local/src/TEST2/openair3" declare -x OPENAIR_TARGETS="/usr/local/src/TEST2/targets" ########################################################### black='\E[30m' red='\E[31m' green='\E[32m' yellow='\E[33m' blue='\E[34m' magenta='\E[35m' cyan='\E[36m' white='\E[37m' ROOT_UID=0 E_NOTROOT=67 trim () { echo "$1" | sed -n '1h;1!H;${;g;s/^[ \t]*//g;s/[ \t]*$//g;p;}' } cecho() # Color-echo # arg1 = message # arg2 = color { local default_msg="No Message." message=${1:-$default_msg} color=${2:-$black} echo -e "$color" echo -n "$message" tput sgr0 echo return } echo_error() { local my_string="" until [ -z "$1" ] do my_string="$my_string$1" shift done cecho "$my_string" $red } echo_warning() { local my_string="" until [ -z "$1" ] do my_string="$my_string$1" shift done cecho "$my_string" $yellow } echo_success() { local my_string="" until [ -z "$1" ] do my_string="$my_string$1" shift done cecho "$my_string" $green } bash_exec() { output=$($1 2>&1) result=$? if [ $result -eq 0 ] then echo_success "$1" else echo_error "$1: $output" fi } wait_process_started () { if [ -z "$1" ] then echo_error "WAITING FOR PROCESS START: NO PROCESS" return 1 fi ps -C $1 > /dev/null 2>&1 while [ $? -ne 0 ]; do echo_warning "WAITING FOR $1 START" sleep 2 ps -C $1 > /dev/null 2>&1 done echo_success "PROCESS $1 STARTED" return 0 } is_process_started () { if [ -z "$1" ] then echo_error "WAITING FOR PROCESS START: NO PROCESS" return 1 fi ps -C $1 > /dev/null 2>&1 if [ $? -ne 0 ] then echo_success "PROCESS $1 NOT STARTED" return 1 fi echo_success "PROCESS $1 STARTED" return 0 } set_openair() { path=`pwd` declare -i length_path declare -i index length_path=${#path} index=`echo $path | grep -b -o 'targets' | cut -d: -f1` #echo ${path%$token*} if [[ $index -lt $length_path && index -gt 0 ]] then declare -x OPENAIR_DIR index=`expr $index - 1` openair_path=`echo $path | cut -c1-$index` #openair_path=`echo ${path:0:$index}` export OPENAIR_DIR=$openair_path export OPENAIR1_DIR=$openair_path/openair1 export OPENAIR2_DIR=$openair_path/openair2 export OPENAIR3_DIR=$openair_path/openair3 export OPENAIR_TARGETS=$openair_path/targets return 0 fi return -1 } set_openair echo "Bringup UE interface" pkill oaisim /sbin/rmmod oai_nw_drv make naslite_netlink_ether oaisim /sbin/insmod $OPENAIR2_DIR/NAS/DRIVER/LITE/oai_nw_drv.ko oai_nw_drv_IMEI=3,9,1,8,3,6,7,3,0,5,0,0,0,0 #avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) #route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 ip link set oai0 broadcast ff:ff:ff:ff:ff:ff ip route add 239.0.0.160/28 dev eth1 ip link set oai0 up sleep 1 ifconfig oai0 10.0.1.9 netmask 255.255.255.0 broadcast 10.0.1.255 sleep 1 ip addr add dev oai0 2001:7::9/64 # -a -> Add RB # -d -> Delete RB # -cxx -> lcr # -ixx -> instance # -zxx -> dscp # -fxxx -> classref (uid of a classifier entry) if fn is used , fn is used for send classifier and n+1 for receive classifier # -sxxx -> source ipv4 address # -txxx -> destination ipv4 address # -x -> source ipv6 address # -y -> destination ipv6 address # -r -> radio bearer id #$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f0 -i0 -z0 -x 0::0/128 -y 0::0/128 -r 3 #$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f2 -i0 -z0 -s 10.0.1.6/32 -t 10.0.0.0/32 -r 3 #$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f4 -i0 -z64 -x 0::0/128 -y 0::0/128 -r 3 #$OPENAIR2_DIR/NAS/DRIVER/LITE/RB_TOOL/rb_tool -a -c0 -f6 -i0 -z64 -s 0.0.0.0/32 -t 0.0.0.0/32 -r 3 ip -6 r d default via 2001:7::1 dev oai0 ip -6 r a default via 2001:7::1 dev oai0 bash_exec "/sbin/iptables -A OUTPUT -t mangle -o oai0 -j MARK --set-mark 3" echo "to see UE stats, pleasae run : watch_ue script" echo "$OPENAIR_TARGETS/SIMU/USER/oaisim -b0 -M1 -p3 -g1 -Pwireshark -l7" pkill oaisim # nice --adjustment=-10 $OPENAIR_TARGETS/SIMU/USER/oaisim -E 5432 -l3 -b0 -M2 -p3 -g1 -m18 -V -Pwireshark -Deth0 > /tmp/ue.txt 2>&1 nice --adjustment=-10 $OPENAIR_TARGETS/SIMU/USER/oaisim -E 5431 -l5 -b0 -u1 -M1 -p3 -g1 -Pwireshark -Deth1 > /tmp/ue.txt #gdb --args $OPENAIR_TARGETS/SIMU/USER/oaisim -E 5432 -l3 -b0 -M2 -p3 -g1 -m18 -Deth0 echo "End"