mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 18:58:01 +00:00 
			
		
		
		
	timed wanlink script
This commit is contained in:
		
							
								
								
									
										136
									
								
								timed_ice_pause.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										136
									
								
								timed_ice_pause.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,136 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | # scripts | ||||||
|  | cd /home/lanforge/scripts | ||||||
|  | trap do_sigint INT | ||||||
|  |  | ||||||
|  | function do_sigint() { | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd --cmd \ | ||||||
|  |       "set_wanlink_info $link_name-A NA NA NA NA NA 0" &>/dev/null | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd --cmd \ | ||||||
|  |       "set_wanlink_info $link_name-B NA NA NA NA NA 0" &>/dev/null | ||||||
|  |  | ||||||
|  |    exit 0  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function stop_cx() { | ||||||
|  |    [ -z "$1" ] && echo "No connection name, bye." && exit 1 | ||||||
|  |    local name=$1 | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd \ | ||||||
|  |       --cmd "set_cx_state all $name QUIESCE" &>/dev/null | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function start_cx() { | ||||||
|  |    [ -z "$1" ] && echo "No connection name, bye." && exit 1 | ||||||
|  |    local name=$1 | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd \ | ||||||
|  |       --cmd "set_cx_state all $name RUNNING" &>/dev/null | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function pause_wl() { | ||||||
|  |    [ -z "$1" ] && echo "No connection name, bye." && exit 1 | ||||||
|  |    [ -z "$2" ] && echo "No sleep seconds, bye." && exit 1 | ||||||
|  |    local name=$1 | ||||||
|  |    local pause_time=$2 | ||||||
|  |  | ||||||
|  |    # read the max-drop-rate | ||||||
|  |    local formerDrA=-1 | ||||||
|  |    local formerDrB=-1 | ||||||
|  |    local info | ||||||
|  |    mapfile -t info < <(./lf_firemod.pl --mgr localhost --quiet on --action do_cmd \ | ||||||
|  |       --cmd "show_endpoints $name-A") | ||||||
|  |    for L in "${info[@]}"; do | ||||||
|  |       #echo "L: $L" | ||||||
|  |       if [[ $L == *DropFreq:* ]]; then | ||||||
|  |          formerDrA=`echo $L | grep -oP 'DropFreq: (\S+)'` | ||||||
|  |          formerDrA=${formerDrA/DropFreq: /} | ||||||
|  |          #echo "formerDrA: $formerDrA" | ||||||
|  |       fi | ||||||
|  |    done | ||||||
|  |    if [ $formerDrA -lt 0 ]; then | ||||||
|  |       echo "DropFreq not found for $name-A" | ||||||
|  |       exit 1 | ||||||
|  |    fi | ||||||
|  |  | ||||||
|  |    mapfile -t info < <(./lf_firemod.pl --mgr localhost --quiet on --action do_cmd \ | ||||||
|  |       --cmd "show_endpoints $name-B") | ||||||
|  |    for L in "${info[@]}"; do | ||||||
|  |       #echo "L: $L" | ||||||
|  |       if [[ $L == *DropFreq:* ]]; then | ||||||
|  |          formerDrB=`echo $L | grep -oP 'DropFreq: (\S+)'` | ||||||
|  |          formerDrB=${formerDrB/DropFreq: /} | ||||||
|  |          #echo "formerDrB: $formerDrB" | ||||||
|  |       fi | ||||||
|  |    done | ||||||
|  |    if [ $formerDrB -lt 0 ]; then | ||||||
|  |       echo "DropFreq not found for $name-B" | ||||||
|  |       exit 1 | ||||||
|  |    fi | ||||||
|  |  | ||||||
|  |    if [ -z "$formerDrA" -o $formerDrA -lt 0 ] ; then  | ||||||
|  |       echo "Unable to read wanlink-A speed, or wanlink already paused." | ||||||
|  |       exit 1 | ||||||
|  |    fi | ||||||
|  |    if [ -z "$formerDrB" -o $formerDrB -lt 0 ] ; then  | ||||||
|  |       echo "Unable to read wanlink-B speed, or wanlink already paused." | ||||||
|  |       exit 1 | ||||||
|  |    fi | ||||||
|  |  | ||||||
|  |  | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd --cmd \ | ||||||
|  |       "set_wanlink_info $name-A NA NA NA NA NA 1000000" &>/dev/null | ||||||
|  |  | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd --cmd \ | ||||||
|  |       "set_wanlink_info $name-B NA NA NA NA NA 1000000" &>/dev/null | ||||||
|  |  | ||||||
|  |    echo -n "Pausing $pause_time" | ||||||
|  |    sleep $pause_time | ||||||
|  |  | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd --cmd \ | ||||||
|  |       "set_wanlink_info $name-A NA NA NA NA NA $formerDrA" &>/dev/null | ||||||
|  |    ./lf_firemod.pl --mgr localhost --quiet on --action do_cmd --cmd \ | ||||||
|  |       "set_wanlink_info $name-B NA NA NA NA NA $formerDrB" &>/dev/null | ||||||
|  |  | ||||||
|  |    echo -n " go " | ||||||
|  | } | ||||||
|  |  | ||||||
|  | show_help=0 | ||||||
|  | run_time_sec=0 | ||||||
|  | pause_time_sec=0 | ||||||
|  | link_name='' | ||||||
|  |  | ||||||
|  | while getopts "h:n:r:p:" arg; do | ||||||
|  |    #echo "ARG[$arg] OPTARG[$OPTARG]" | ||||||
|  |    case $arg in  | ||||||
|  |    n) link_name=$OPTARG | ||||||
|  |       ;; | ||||||
|  |    r) run_time_sec=$OPTARG | ||||||
|  |       ;; | ||||||
|  |    p) pause_time_sec=$OPTARG | ||||||
|  |       ;; | ||||||
|  |    h) show_help=1 | ||||||
|  |       ;; | ||||||
|  |    *) | ||||||
|  |       echo "Ignoring option $arg $OPTARG" | ||||||
|  |    esac | ||||||
|  | done | ||||||
|  |  | ||||||
|  | if [ -z "$link_name" -o $run_time_sec -eq 0 -o $pause_time_sec -eq 0 ]; then | ||||||
|  |    show_help=1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [ $show_help -gt 0 ]; then | ||||||
|  |    echo "Usage: $0 -n {CX name} -r {run time in seconds} -p {pause time in seconds}" | ||||||
|  |    exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  |  | ||||||
|  | echo "Starting connection $link_name..." | ||||||
|  | start_cx $link_name | ||||||
|  | while true; do | ||||||
|  |    sleep $run_time_sec | ||||||
|  |    #echo "pausing..." | ||||||
|  |    pause_wl $link_name $pause_time_sec | ||||||
|  |    #echo "resumed" | ||||||
|  | done | ||||||
|  | # | ||||||
		Reference in New Issue
	
	Block a user
	 Jed Reynolds
					Jed Reynolds