# 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"
}
scan_interfaces() {
- local mode iftype iface
+ local mode iftype iface ifname device
interfaces=
config_cb() {
config_get iftype "$CONFIG_SECTION" TYPE
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
}
. /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"