summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
Diffstat (limited to 'package')
-rw-r--r--package/base-files/default/etc/hotplug.d/net/10-net5
-rwxr-xr-xpackage/base-files/default/lib/network/config.sh13
-rwxr-xr-xpackage/base-files/default/sbin/ifup5
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 8661a2851..b5140758a 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 d4864ae86..5bc74d128 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 86d10d7ca..c7055d480 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"