base-files: fix configuration generation of network if "bridge" exists
authorINAGAKI Hiroshi <musashino.open@gmail.com>
Sun, 23 May 2021 11:30:58 +0000 (20:30 +0900)
committerRafał Miłecki <rafal@milecki.pl>
Mon, 24 May 2021 07:09:00 +0000 (09:09 +0200)
After the commit 43fc720657c6e3b30c6ed89d7227ee6e646c158b
("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>
package/base-files/files/bin/config_generate

index 604c49a7090d670bab9fbd1941cdddb86ac5f014..be688a4ba3106bb39a904f62f4194dbb00dd9696 100755 (executable)
@@ -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=""
        }