disable vxlan if no peers available #226

Closed
rohammer wants to merge 6 commits from rohammer:vxlan-disable-no-GW into master
2 changed files with 9 additions and 10 deletions

View File

@ -8,9 +8,11 @@ uci batch <<EOF
set network.vxlan0.ageing=30
set network.vxlan0.mtu=1422
set network.vxlan0.vid=0
set network.vxlan0.disabled=1
set network.vxbat=interface
set network.vxbat.proto=batadv_hardif
set network.vxbat.master=bat0
set network.vxbat.ifname=vxlan0
set network.vxbat.disabled=1
EOF

View File

@ -2,26 +2,23 @@ protocol=vxlan
vxlan_clear() {
while uci -q delete network.@vxlan_peer[0]; do :; done
uci set network.vxlan0.vid="0"
uci set network.vxlan0.disabled="1"
uci set network.vxbat.disabled="1"
}
vxlan_addpeer() {
uci set network.vxlan0.vid="$id"
json_get_var address address
address=$(ping6 -w1 -c1 "$address" | awk '/from/ {print substr($4, 1, length($4)-1); exit}')
[ -z $address ] && return ## address not reachable
uci set network.vxlan0.vid="$id"
uci set network.vxlan0.disabled="0"
uci set network.vxbat.disabled="0"
uci add network vxlan_peer
uci set network.@vxlan_peer[-1].vxlan="vxlan0"
uci set network.@vxlan_peer[-1].dst="$address"
}
vxlan_start_stop() {
uci commit network
# reload_config will not add new peers. A ifup is needed
ifup vxlan0
# this workaround is cleaning up old fdb entries
# and can be removed if someday netifd will do that
bridge fdb show dev vxlan0 state permanent | while read mac dst ip rest ; do
grep -q "$ip" /etc/config/network || bridge fdb del $mac dev vxlan0 dst $ip
done
reload_config
}