base-files: fix configuration generation of network if "bridge" exists

After the commit 43fc720657
("base-files: generate "device UCI type section for bridge"), the wrong
network configuration is generated for the devices that already have the
bridge device section for VLAN, such as the devices in realtek target.

As a result, the bridge device by additional "device" section is
specified to the "ports" option in the "bridge-vlan" section and netifd
shuts down the switch and the ethernet when the network service started.

Fixes: 43fc720657 ("base-files: generate "device" UCI type section for bridge")
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
[rmilecki: use $ports for generate_bridge_vlan argument]
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 8cc4e87a2f)
This commit is contained in:
INAGAKI Hiroshi 2021-05-23 20:30:58 +09:00 committed by Rafał Miłecki
parent fc605c01f6
commit 77d96e925f

View File

@ -109,7 +109,7 @@ generate_network() {
ports="$ifname"
}
[ -n "$ports" ] && {
[ -n "$ports" -a -z "$bridge" ] && {
uci -q batch <<-EOF
add network device
set network.@device[-1].name='br-$1'
@ -123,11 +123,12 @@ generate_network() {
}
[ -n "$bridge" ] && {
[ -z "$ports" ] && ports="$ifname"
if [ -z "$vlan" ]; then
bridge_vlan_id=$((bridge_vlan_id + 1))
vlan=$bridge_vlan_id
fi
generate_bridge_vlan $1 $bridge "$ifname" $vlan
generate_bridge_vlan $1 $bridge "$ports" $vlan
ifname=$bridge.$vlan
type=""
}