2018-07-26 03:57:41 -05:00
#!/bin/bash
2019-03-10 21:16:33 -05:00
set -Eeuo pipefail
2018-07-26 03:57:41 -05:00
2019-03-10 21:16:33 -05:00
EMPTYBR=$(for br in /sys/devices/virtual/net/br*; do if [ ! -d $br ]; then continue; fi; ls $br/brif/ | grep -qv "vxlan\|vlan" || echo ${br##*/}; done)
2018-07-26 03:57:41 -05:00
2019-03-10 21:16:33 -05:00
for BRIDGE in $EMPTYBR
2018-07-26 03:57:41 -05:00
do
2019-03-10 21:16:33 -05:00
echo "removing unused customer bridge/vxlan: $BRIDGE"
2019-03-11 02:19:09 -05:00
for uplinkif in /sys/devices/virtual/net/$BRIDGE/brif/*; do
ip link del dev ${uplinkif##*/}
2019-03-10 21:16:33 -05:00
done
ip link set down $BRIDGE
brctl delbr $BRIDGE
2018-07-26 03:57:41 -05:00
done
2019-03-10 21:16:33 -05:00
for route in $(vtysh -c "show ip route kernel" | grep 'unknown inactive' | grep -Po 'K[ >]\* \K\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,3}')
2018-07-26 03:57:41 -05:00
do
echo "removing zombie route: $route"
ip route add blackhole $route
ip route del $route
done
#for route in $(vtysh -c "show ipv6 route kernel" | grep 'unknown inactive' | awk '{ print $3 }')
# do
# echo "removing zombie route: $route"
# ip route add blackhole $route
# ip route del $route
#done