99 lines
2.9 KiB
Bash
Executable File
99 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#/*
|
|
# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
# * contributor license agreements. See the NOTICE file distributed with
|
|
# * this work for additional information regarding copyright ownership.
|
|
# * The OpenAirInterface Software Alliance licenses this file to You under
|
|
# * the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
|
# * except in compliance with the License.
|
|
# * You may obtain a copy of the License at
|
|
# *
|
|
# * http://www.openairinterface.org/?page_id=698
|
|
# *
|
|
# * Unless required by applicable law or agreed to in writing, software
|
|
# * distributed under the License is distributed on an "AS IS" BASIS,
|
|
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# * See the License for the specific language governing permissions and
|
|
# * limitations under the License.
|
|
# *-------------------------------------------------------------------------------
|
|
# * For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
# * contact@openairinterface.org
|
|
# */
|
|
|
|
# \author Navid Nikaein, Rohit Gupta
|
|
|
|
#arg1 timeout to wait before running the script
|
|
#arg2 interface
|
|
#arg3 iperf arguments
|
|
|
|
echo "Start time of script: `date`"
|
|
|
|
args=($*)
|
|
timeout=${args[0]}
|
|
iface=${args[1]}
|
|
iperf_args=(${args[@]:2})
|
|
|
|
ip_client=`echo "$iperf_args" | sed -ne 's/.*\-c[ ]*\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).*/\1/p'`
|
|
|
|
#array=${1:-1}
|
|
echo "args = ${args[@]}"
|
|
echo "timeout = $timeout"
|
|
echo "iface = $iface"
|
|
echo "iperf_args = ${iperf_args[@]}"
|
|
echo "ip_client = $ip_client"
|
|
|
|
|
|
|
|
# Test an IP address for validity:
|
|
# Usage:
|
|
# valid_ip IP_ADDRESS
|
|
# if [[ $? -eq 0 ]]; then echo good; else echo bad; fi
|
|
# OR
|
|
# if valid_ip IP_ADDRESS; then echo good; else echo bad; fi
|
|
#
|
|
function valid_ip()
|
|
{
|
|
local ip=$1
|
|
local stat=1
|
|
|
|
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
|
OIFS=$IFS
|
|
IFS='.'
|
|
ip=($ip)
|
|
IFS=$OIFS
|
|
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
|
|
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
|
|
stat=$?
|
|
fi
|
|
return $stat
|
|
}
|
|
|
|
if valid_ip $iface; then
|
|
echo "$iface is Valid IP Address. Checking for connectivity..."
|
|
ping -c 1 $iface >& /dev/null
|
|
while [ "$?" != "0" ]; do
|
|
ping -c 1 $iface >& /dev/null
|
|
done
|
|
echo "$iface connectivity achieved at `date`, Seconds = $SECONDS"
|
|
|
|
else
|
|
|
|
echo "Waiting for Interface $iface to come up..."
|
|
while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done
|
|
echo "$iface is now available at `date` , Seconds = $SECONDS"
|
|
fi
|
|
|
|
|
|
#if [ -n "$ip_client" ]; then
|
|
#echo "Waiting for route to be setup before iperf makes connection..."
|
|
# var=`route -n | grep $ip_client`
|
|
# if ["$var" != "" ] ; then break; fi
|
|
#
|
|
#fi
|
|
|
|
echo "Sleeping for additional $timeout seconds"
|
|
sleep $timeout
|
|
|
|
echo "Starting iperf at `date` , Seconds = $SECONDS ...."
|
|
iperf ${iperf_args[@]}
|