diff options
-rw-r--r-- | package/base-files/default/etc/hotplug.d/net/10-net | 5 | ||||
-rwxr-xr-x | package/base-files/default/lib/network/config.sh | 13 | ||||
-rwxr-xr-x | package/base-files/default/sbin/ifup | 5 |
3 files changed, 17 insertions, 6 deletions
diff --git a/package/base-files/default/etc/hotplug.d/net/10-net b/package/base-files/default/etc/hotplug.d/net/10-net index 8661a2851d..b5140758af 100644 --- a/package/base-files/default/etc/hotplug.d/net/10-net +++ b/package/base-files/default/etc/hotplug.d/net/10-net @@ -9,7 +9,10 @@ addif() { # find all vlan configurations for this interface and set them up as well for ifc in $interfaces; do config_get iftype "$ifc" type - config_get ifs "$ifc" ifname + case "$iftype" in + bridge) config_get ifs "$ifc" ifnames;; + *) config_get ifs "$ifc" ifname;; + esac for dev in $ifs; do [ "${dev%%\.*}" = "$INTERFACE" -a "$dev" != "$INTERFACE" ] && { add_vlan "$dev" diff --git a/package/base-files/default/lib/network/config.sh b/package/base-files/default/lib/network/config.sh index d4864ae86e..5bc74d1285 100755 --- a/package/base-files/default/lib/network/config.sh +++ b/package/base-files/default/lib/network/config.sh @@ -21,7 +21,7 @@ find_config() { } scan_interfaces() { - local mode iftype iface + local mode iftype iface ifname device interfaces= config_cb() { config_get iftype "$CONFIG_SECTION" TYPE @@ -29,10 +29,15 @@ scan_interfaces() { interface) config_get proto "$CONFIG_SECTION" proto append interfaces "$CONFIG_SECTION" + config_get iftype "$CONFIG_SECTION" iftype + case "$iftype" in + bridge) + config_get ifname "$CONFIG_SECTION" ifname + config_set "$CONFIG_SECTION" ifnames "$ifname" + config_set "$CONFIG_SECTION" ifname br-"$CONFIG_SECTION" + ;; + esac ( type "scan_$proto" ) >/dev/null 2>/dev/null && eval "scan_$proto '$CONFIG_SECTION'" - config_get ifname "$CONFIG_SECTION" ifname - config_get device "$CONFIG_SECTION" device - config_set "$CONFIG_SECTION" device "${device:-$ifname}" ;; esac } diff --git a/package/base-files/default/sbin/ifup b/package/base-files/default/sbin/ifup index 86d10d7ca3..c7055d4807 100755 --- a/package/base-files/default/sbin/ifup +++ b/package/base-files/default/sbin/ifup @@ -4,7 +4,10 @@ . /sbin/ifdown "$@" config_get iftype "$1" type -config_get ifname "$1" ifname +case "$iftype" in + bridge) config_get ifname "$1" ifnames;; + *) config_get ifname "$1" ifname;; +esac for dev in $ifname; do setup_interface "$dev" "$1" |