diff --git a/targets/PROJECTS/MEDIEVAL/startcell_MAR3_1UE b/targets/PROJECTS/MEDIEVAL/startcell_MAR3_1UE new file mode 100755 index 0000000000..31bffbca66 --- /dev/null +++ b/targets/PROJECTS/MEDIEVAL/startcell_MAR3_1UE @@ -0,0 +1,264 @@ +#! /bin/bash +#set -x + +########################################################### +THIS_SCRIPT_PATH=$(dirname $(readlink -f $0)) +########################################################### + +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 +} + +wait_process_ended () { + if [ -z "$1" ] + then + echo_error "WAITING FOR PROCESS START: NO PROCESS" + return 1 + fi + pkill $1 + ps -C $1 > /dev/null 2>&1 + while [ $? -eq 0 ]; do + echo_warning "WAITING FOR $1 END" + pkill $1 + sleep 2 + ps -C $1 > /dev/null 2>&1 + done + echo_success "PROCESS $1 ENDED" + return 0 +} + +assert() { + # If condition false + # exit from script with error message + E_PARAM_ERR=98 + E_PARAM_FAILED=99 + + if [ -z "$2" ] # Not enought parameters passed. + then + return $E_PARAM_ERR + fi + + lineno=$2 + if [ ! $1 ] + then + echo "Assertion failed: \"$1\"" + echo "File \"$0\", line $lineno" + exit $E_ASSERT_FAILED + fi +} + +control_c() +# run if user hits control-c +{ + echo -en "\n*** Exiting ***\n" + pkill oaisim_eNB + wait_process_ended oaisim_eNB + pkill cell_rrm + sleep 1 + cp /tmp/log_rrm ./log_rrm.txt + cp /tmp/log_oaiENB ./log_oaiENB.txt + cp /tmp/log_lteralenb ./log_lteralenb.txt + sleep 1 + ip link set oai0 down + /sbin/rmmod nascellrg + exit $? +} + + +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 +} + + +trap control_c SIGINT +#set_openair +echo "OPENAIR1_DIR="$OPENAIR1_DIR +echo "OPENAIR2_DIR="$OPENAIR2_DIR +echo "OPENAIR3_DIR="$OPENAIR3_DIR +echo "OPENAIR_TARGETS="$OPENAIR_TARGETS + +echo "Bring up eNB interface" +pkill oaisim_eNB +pkill oaisim_eNB +pkill cell_rrm +/sbin/rmmod nascellrg +echo "REMOVING MULTICAST ROUTING RULE" +ip route del 239.0.0.160/28 dev eth1 +#sudo make naslite_netlink_ether oaisim +#make naslite_netlink_ether oaisim +/sbin/insmod $OPENAIR2_DIR/NAS/DRIVER/CELLULAR/NASRG/nascellrg.ko +echo "eNB interface network driver started" +sleep 1 + +echo " Configuring ipv6 dad.." +#sysctl -w net.ipv6.conf.default.dad_transmits=0 +#assert "`sudo sysctl -n net.ipv6.conf.all.forwarding` -eq 1" $LINENO + +echo " Enabling ipv6 forwarding.." +#sysctl -w net.ipv6.conf.all.forwarding=1 +#assert "`sudo sysctl -n net.ipv6.conf.all.forwarding` -eq 1" $LINENO + +#ip link set oai0 broadcast ff:ff:ff:ff:ff:ff +#macchanger oai0 -m 90:f6:52:0c:60:aa +#sleep 3 + +ip link set oai0 up +sleep 1 +echo "CONFIGURING eNB INTERFACE" +ifconfig oai0 10.0.1.3 netmask 255.255.255.0 broadcast 10.0.1.255 +echo "eNB interface network driver IPv4 address configured" +sleep 1 +ip addr add dev oai0 2001:660:382:14::1/64 + +#avoid conflict with reserved multicast addresses (224.0.0.11,224.0.0.13, 224.0.0.16) +echo " ADDING MULTICAST ROUTING RULE" +ip route add 239.0.0.160/28 dev eth1 + +#rm -f /tmp/lte_enb.log +#rm -f rrm_log.txt +sleep 1 +echo "Starting RRM module" +exec $OPENAIR_TARGETS/SIMU/USER/cell_rrm > /tmp/log_rrm 2>&1 & +sleep 2 +echo "Starting OAI Access Stratum ..." + +#Activate next line to start without MIH-LTE-SAP +#nice --adjustment=-10 $OPENAIR_TARGETS/SIMU/USER/oaisim_eNB -E 1 -u0 -b1 -M0 -p2 -g1 -l6 +#Activate next line to start with MIH-LTE-SAP +nice --adjustment=-10 $OPENAIR_TARGETS/SIMU/USER/oaisim_eNB -E 1 -u0 -b1 -M0 -p2 -g1 -l6 > /tmp/log_oaiENB 2>&1 & + +#Next lines are draft tentative, do not activate +#$OPENAIR_TARGETS/SIMU/USER/oaisim_eNB -E 1 -u0 -b1 -M0 -p2 -g1 -l6 > /tmp/log_oaiENB 2>&1 & +#nice --adjustment=-10 $OPENAIR_TARGETS/SIMU/USER/oaisim_eNB -E 1 -u0 -b1 -M0 -p2 -g1 -l6 +#$OPENAIR_TARGETS/SIMU/USER/oaisim_eNB -E 1 -u0 -b1 -M0 -p2 -g1 -l6 +#sudo nice --adjustment=-10 $OPENAIR_TARGETS/SIMU/USER/oaisim_eNB -E 1 -u0 -b1 -M0 -p2 -l6 +#nice --adjustment=-10 $OPENAIR_TARGETS/SIMU/USER/oaisim_eNB -E 1234 -u0 -b1 -M0 -p2 -l6 > /dev/null 2>&1 &log_oaiENB +#gdb --args /usr/local/src/trunk/targets/SIMU/USER/oaisim -E 1234 -u0 -M0 -p2 -g1 -l7 +wait_process_started oaisim_eNB + +#Activate next line to start with MIH-LTE-SAP +sleep 4 +$OPENAIR3_DIR/RAL-LTE/LTE_RAL_ENB/LTE_RAL_ENB > /tmp/log_lteralenb 2>&1 & + +#echo " Enabling ping broadcast" +#bash_exec "sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0" +#assert "`sysctl -n net.ipv4.icmp_echo_ignore_broadcasts` -eq 0" $LINENO + +#echo " Enabling ipv4 forwarding.." +#sudo sysctl -w net.ipv4.ip_forward=1 +#assert "`sysctl -n net.ipv4.ip_forward` -eq 1" $LINENO + +#echo " Enabling ipv4 forwarding.." +#sudo sysctl -w net.ipv4.conf.all.forwarding=1 +#assert "`sudo sysctl -n net.ipv4.conf.all.forwarding` -eq 1" $LINENO + + +#while true; do sleep 10000; done + +echo "End" +