blob: b94703f243c89d2d584ae773d1011b50edc248ef [file] [edit]
#!/usr/bin/env sh
#
# Copyright (c) 2016 Wi-Fi Alliance
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
# USE OR PERFORMANCE OF THIS SOFTWARE.
#
#rm nul
declare -a array_list
index=0
i=0
st=0
tmp=""
interfacename=" "
ipaddress=" "
if [ $# -lt 2 ]
then
echo "usage: sta_reset_parm /interface <ifName> /arp <all | ipAddr>"
echo "2 -Command format error"
exit
fi
# i is as parameters here
for i in $*
do
array_list[$index]=$i
#echo ${array_list[$index]}
((index++))
done
# i is as index here
for (( i = 0 ; i < $# ; )) ##### for params in $* do loop
do
tmp=${array_list[$i]}
if [ ${tmp,,} = "/interface" ] ; then
((i++))
tmp=${array_list[$i]} # find next arg
interfacename=${tmp,,}
#echo "find interface $interfacename"
fi
if [ ${tmp,,} = "/arp" ] ; then
((i++))
if [ $i = $# ] ; then
ipaddress="x"
st=2
##echo " find empty arp param $ipaddress D"
else
tmp=${array_list[$i]} ## find next arg
ipaddress=${tmp,,}
fi
##echo "find ipaddress $ipaddress"
fi
((i++))
done
if [ $interfacename = " " -o $ipaddress = "x" ] ; then
st=2
else
if [ $ipaddress = "all" ] ; then
for (( i = 0 ; i < 2 ; ))
do
ip neigh flush dev $interfacename
#echo " for all $i"
sleep 2 ;
((i++))
done
else
arp -i $interfacename -d $ipaddress
fi
fi
##arp -a
if [ $st = 0 ] ; then
echo "$st -Reset parm OK"
else
echo "$st -Error command"
fi