base-files: set MAC for bridge ports (devices) instead of bridge itself

This restores the original config_generate behaviour. With MAC set for
bridged devices the bridge automatically gets its MAC adjusted (it picks
the lowest MAC of bridged devices).

This fixes confusing interfaces setup (bridge ports not having custom
MAC assigned).

Reported-by: Koen Vandeputte <koen.vandeputte@citymesh.com>
Fixes: e002179a6d ("base-files: simplify setting device MAC")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki 2021-06-14 20:18:14 +02:00
parent f6a03bff5b
commit c8d8eb9d13

View File

@ -114,9 +114,17 @@ generate_network() {
add network device add network device
set network.@device[-1].name='br-$1' set network.@device[-1].name='br-$1'
set network.@device[-1].type='bridge' set network.@device[-1].type='bridge'
set network.@device[-1].macaddr='$macaddr'
EOF EOF
for port in $ports; do uci add_list network.@device[-1].ports="$port"; done for port in $ports; do uci add_list network.@device[-1].ports="$port"; done
[ -n "macaddr" ] && {
for port in $ports; do
uci -q batch <<-EOF
add network device
set network.@device[-1].name='$port'
set network.@device[-1].macaddr='$macaddr'
EOF
done
}
device=br-$1 device=br-$1
type= type=
macaddr="" macaddr=""