Merge property setting to one function and a bit of bugsquashes, add mcast routing

This commit is contained in:
Alex D. 2023-08-17 08:17:50 +00:00
parent f8856c5b33
commit 6859984225
Signed by: caskd
GPG Key ID: F92BA85F61F4C173
2 changed files with 45 additions and 15 deletions

View File

@ -157,27 +157,37 @@ new_if_bridge() {
new_link "$if"
}
bridge_stp() {
local if="${1:?missing if}"
local state="${2:-1}"
bridge_property() {
local prop="${1:?missing prop}"
local if="${2:?missing if}"
local state="${3:-1}"
local downstate="${4-0}"
local sname="interface.$if.stp"
local sname="interface.$if.$prop"
ifbundle "$if" "$sname"
install -Dm644 <(
h_if "$if"
header_eb
header_if "$if"
cat <<EOF
define PROP $prop
define STATE $state
EOF
echo 'ip link set $INTERFACE type bridge stp_state $STATE'
header_path
echo 'ip link set $INTERFACE type bridge $PROP $STATE'
) rc/"$sname"/up
install -Dm644 <(
h_if "$if"
echo 'ip link set $INTERFACE type bridge stp_state 0'
[ -z "$downstate" ] || install -Dm644 <(
header_eb
header_if "$if"
cat <<EOF
define PROP $prop
define STATE $downstate
EOF
echo 'ip link set $INTERFACE type bridge $PROP $STATE'
) rc/"$sname"/down
install -Dm644 <(echo oneshot) rc/"$sname"/type
install -Dm644 /dev/null rc/"$sname"/dependencies.d/module.stp
install -Dm644 /dev/null rc/"$sname"/dependencies.d/interface."$if".create
[ "$prop" == 'stp_state' ] && install -Dm644 /dev/null rc/"$sname"/dependencies.d/module.stp
}
if_lladdress() {
@ -330,13 +340,17 @@ route_v6_vrf_default_if() {
ifbundle "$vrf" "$sname"
install -Dm644 <(
header_eb
header_vrf "$vrf"
h_if "$if"
header_if "$if"
header_path
echo 'ip -6 route add default dev $INTERFACE vrf $VRF'
) rc/"$sname"/up
install -Dm644 <(
header_eb
header_vrf "$vrf"
h_if "$if"
header_if "$if"
header_path
echo 'ip -6 route del default dev $INTERFACE vrf $VRF'
) rc/"$sname"/down
install -Dm644 <(echo oneshot) rc/"$sname"/type

View File

@ -20,6 +20,7 @@ new_if_phys "vnet5"
# Bridges
new_if_bridge "home"
bridge_property 'stp_state' "home"
new_forward "home"
new_if_slave "home" "vnet1"
new_if_slave "home" "phys3"
@ -29,13 +30,23 @@ new_if_bridge "br-dn42"
new_if_slave "br-dn42" "phys2-42"
new_if_bridge "f33d"
bridge_stp "f33d"
bridge_property 'stp_state' "f33d"
bridge_property 'mcast_snooping' "f33d"
bridge_property 'mcast_querier' "f33d"
bridge_property 'mcast_router' "f33d"
bridge_property 'mcast_stats_enabled' "f33d"
bridge_property 'mcast_mld_version' "f33d" '2' ''
if_lladdress "f33d" '02:00:00:00:f3:3d'
addr_v6_static_if "f33d" "2a04:5b81:2060:f33d::1/64"
new_if_slave "f33d" "vnet2"
new_if_bridge "b00b"
bridge_stp "b00b"
bridge_property 'stp_state' "b00b"
bridge_property 'mcast_snooping' "b00b"
bridge_property 'mcast_querier' "b00b"
bridge_property 'mcast_router' "b00b"
bridge_property 'mcast_stats_enabled' "d00d"
bridge_property 'mcast_mld_version' "b00b" '2' ''
if_lladdress "b00b" '02:00:00:00:b0:0b'
addr_v6_static_if "b00b" "2a04:5b81:2060:b00b::1/64"
new_if_slave "b00b" "vnet0"
@ -43,7 +54,12 @@ new_if_bridge "b00b"
new_if_slave "b00b" "phys2-66"
new_if_bridge "d00d"
bridge_stp "d00d"
bridge_property 'stp_state' "d00d"
bridge_property 'mcast_snooping' "d00d"
bridge_property 'mcast_querier' "d00d"
bridge_property 'mcast_router' "d00d"
bridge_property 'mcast_stats_enabled' "d00d"
bridge_property 'mcast_mld_version' "d00d" '2' ''
if_lladdress "d00d" '02:00:00:00:d0:0d'
addr_v6_static_if "d00d" "2a04:5b81:2060:d00d::1/64"
new_if_slave "d00d" "vnet3"