2017-05-15 19:06:19 -05:00
|
|
|
#!/bin/bash
|
|
|
|
#
|
|
|
|
# usage:
|
|
|
|
# arp_update: Send gratuitous ARP requests to VLAN member neighbors to refresh
|
|
|
|
# the neighbors state.
|
|
|
|
|
2017-09-12 16:13:27 -05:00
|
|
|
VLAN=`sonic-cfggen -d -v 'VLAN.keys() | join(" ") if VLAN'`
|
2017-05-15 19:06:19 -05:00
|
|
|
for vlan in $VLAN; do
|
|
|
|
# generate a list of arping commands:
|
|
|
|
# arping -q -w 0 -c 1 -i <VLAN interface> <IP 1>;
|
|
|
|
# arping -q -w 0 -c 1 -i <VLAN interface> <IP 2>;
|
|
|
|
# ...
|
|
|
|
arpingcmd="sed -e 's/ / -i /' -e 's/^/arping -q -w 0 -c 1 /' -e 's/$/;/'"
|
|
|
|
ipcmd="ip -4 neigh show | grep $vlan | cut -d ' ' -f 1,3 | $arpingcmd"
|
|
|
|
|
|
|
|
eval `eval $ipcmd`
|
|
|
|
done
|