#!/usr/bin/env bash ../fill_config.py --check-stale || ( echo "STALE CONFIGS. Hit enter to continue anyway."; read enter_to_continue ) dev="${ETH_DEV}" ip2="${PUBLIC_IP2}" apn="${APN_DEV}" sudo true || exit 1 if [ -z "$(sudo iptables -L -t nat | grep MASQUERADE)" ]; then sudo iptables -t nat -A POSTROUTING -s ${GGSN_NET} -o $dev -j MASQUERADE fi if [ "$(sudo cat /proc/sys/net/ipv4/ip_forward)" = "0" ]; then sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" fi if [ -z "$(ip tuntap show | grep $apn)" ]; then sudo ip tuntap add dev $apn mode tun user $USER group $USER sudo ip addr add ${GGSN_NET} dev $apn sudo ip link set $apn up fi if [ -z "$(ip addr show dev $dev | grep "$ip2")" ]; then sudo ip addr add ${PUBLIC_IP2}/32 dev $dev fi logdir="current_log" mkdir -p "$logdir" term() { title="$2" if [ -z "$title" ]; then title="$(basename $@)" fi terminal="$(which urxvt || which xterm)" if ! which $terminal; then echo "CANNOT FIND XTERM PROGRAM" fi exec $terminal -title "CN:$title" -e sh -c "export LD_LIBRARY_PATH='/usr/local/lib'; $1; echo; while true; do echo 'q Enter to close'; read q_to_close; if [ \"x\$q_to_close\" = xq ]; then break; fi; done" } sudo tcpdump -i $dev -n -w current_log/$dev.single.pcap -U not port 22 & sudo tcpdump -i lo -n -w current_log/lo.single.pcap -U not port 22 & hnbgw="osmo-hnbgw" msc="gdb -ex run --args $(which osmo-msc)" gbproxy="osmo-gbproxy" sgsn="osmo-sgsn" ggsn="osmo-ggsn" mgw4msc="osmo-mgw -c osmo-mgw-for-msc.cfg" #mgw4bsc="gdb -ex run --args osmo-mgw -c osmo-mgw-for-bsc.cfg" #mgw4bsc="strace osmo-mgw -c osmo-mgw-for-bsc.cfg" mgw4bsc="osmo-mgw -c osmo-mgw-for-bsc.cfg" hlr="LD_LIBRARY_PATH=/usr/local/lib gdb -ex run --args osmo-hlr" stp="osmo-stp" bsc="LD_LIBRARY_PATH=/usr/local/lib gdb -ex run --args osmo-bsc -c osmo-bsc.cfg" term "$ggsn" GGSN & sleep .2 term "$stp" STP & sleep .2 term "$hlr" HLR & sleep .2 term "$sgsn" SGSN & sleep .2 term "$gbproxy" GBPROXY & sleep .2 term "$mgw4msc" MGW4MSC & sleep .2 term "$mgw4bsc" MGW4BSC & sleep .2 term "$msc" MSC & sleep 2 term "$hnbgw" HNBGW & sleep .2 term "$bsc" BSC & #ssh bts rm /tmp/bts.log /tmp/pcu.log #ssh bts neels/run_remote.sh & echo enter to close read enter_to_close echo Closing... #ssh bts neels/stop_remote.sh kill %1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 %12 killall osmo-msc killall osmo-bsc killall osmo-gbproxy killall osmo-sgsn #killall osmo-hnbgw killall osmo-mgw killall osmo-hlr killall -9 osmo-stp sudo killall tcpdump killall osmo-ggsn set +e cp *.cfg "$logdir"/ echo echo enter name to save log read log_name if [ -n "$log_name" ]; then newlogdir="log/$log_name" #scp "bts:/tmp/{bts,pcu}.log" "bts:neels/osmo-{bts,pcu}.cfg" "$logdir" else newlogdir="autolog/log_$(date +%Y-%m-%d_%H-%M-%S)" fi mkdir -p "$(dirname "$newlogdir")" mergecap -w "$logdir/trace.pcap" "$logdir/"*.single.pcap && rm -f "$logdir/"*.single.pcap if [ -x "$newlogdir" ]; then echo "already exists, move it manually: $newlogdir" else echo mv "$logdir" "$newlogdir" mv "$logdir" "$newlogdir" mkdir -p "$logdir" logdir="$newlogdir" fi rm lastlog ln -s "$logdir" lastlog