disable vxlan if no peers available #226
|
@ -8,9 +8,11 @@ uci batch <<EOF
|
||||||
set network.vxlan0.ageing=30
|
set network.vxlan0.ageing=30
|
||||||
set network.vxlan0.mtu=1422
|
set network.vxlan0.mtu=1422
|
||||||
set network.vxlan0.vid=0
|
set network.vxlan0.vid=0
|
||||||
|
set network.vxlan0.disabled=1
|
||||||
|
|
||||||
set network.vxbat=interface
|
set network.vxbat=interface
|
||||||
set network.vxbat.proto=batadv_hardif
|
set network.vxbat.proto=batadv_hardif
|
||||||
set network.vxbat.master=bat0
|
set network.vxbat.master=bat0
|
||||||
set network.vxbat.ifname=vxlan0
|
set network.vxbat.ifname=vxlan0
|
||||||
|
set network.vxbat.disabled=1
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -2,26 +2,23 @@ protocol=vxlan
|
||||||
|
|
||||||
vxlan_clear() {
|
vxlan_clear() {
|
||||||
while uci -q delete network.@vxlan_peer[0]; do :; done
|
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() {
|
vxlan_addpeer() {
|
||||||
uci set network.vxlan0.vid="$id"
|
|
||||||
json_get_var address address
|
json_get_var address address
|
||||||
address=$(ping6 -w1 -c1 "$address" | awk '/from/ {print substr($4, 1, length($4)-1); exit}')
|
address=$(ping6 -w1 -c1 "$address" | awk '/from/ {print substr($4, 1, length($4)-1); exit}')
|
||||||
[ -z $address ] && return ## address not reachable
|
[ -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 add network vxlan_peer
|
||||||
uci set network.@vxlan_peer[-1].vxlan="vxlan0"
|
uci set network.@vxlan_peer[-1].vxlan="vxlan0"
|
||||||
uci set network.@vxlan_peer[-1].dst="$address"
|
uci set network.@vxlan_peer[-1].dst="$address"
|
||||||
}
|
}
|
||||||
|
|
||||||
vxlan_start_stop() {
|
vxlan_start_stop() {
|
||||||
uci commit network
|
reload_config
|
||||||
# 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
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue