[PATCHv2 02/21] bridge: use safe default

Michael Braun michael-dev
Thu Jun 6 03:09:12 PDT 2013


Currently by default, all BSS share the bridge brvlan%d.
While this is sane when no tagged-interface is given, this
is insane when different tagged interfaces are given, as
it would result in bridging those tagged interfaces.

This patch therefore uses br%s%d with %s=tagged_interface
and %d=VLAN ID as bridge name when a tagged-interface is given.

Signed-hostap: Michael Braun <michael-dev at fami-braun.de>

diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
index d9f4c9d..49beb94 100644
--- a/hostapd/hostapd.conf
+++ b/hostapd/hostapd.conf
@@ -845,7 +845,9 @@ own_ip_addr=127.0.0.1
 #vlan_tagged_interface=eth0
 
 # Bridge (Prefix) to add the wifi and the tagged interface to. This gets the
-# VLAN ID appended.
+# VLAN ID appended. It defaults to brvlan%d if no tagged interface is given
+# and br%s.%d if a tagged interface is given, provided %s = tagged interface
+# and %d = VLAN ID.
 #vlan_bridge=brvlan
 
 # When hostapd creates a VLAN interface on vlan_tagged_interfaces, it needs
diff --git a/src/ap/vlan_init.c b/src/ap/vlan_init.c
index e9ebcdd..3cdd1a6 100644
--- a/src/ap/vlan_init.c
+++ b/src/ap/vlan_init.c
@@ -497,6 +497,10 @@ static void vlan_newlink(char *ifname, struct hostapd_data *hapd)
 				os_snprintf(br_name, sizeof(br_name), "%s%d",
 					    hapd->conf->vlan_bridge,
 					    vlan->vlan_id);
+			} else if (tagged_interface) {
+				os_snprintf(br_name, sizeof(br_name),
+				            "br%s.%d", tagged_interface,
+					    vlan->vlan_id);
 			} else {
 				os_snprintf(br_name, sizeof(br_name),
 				            "brvlan%d", vlan->vlan_id);
@@ -560,6 +564,10 @@ static void vlan_dellink(char *ifname, struct hostapd_data *hapd)
 				os_snprintf(br_name, sizeof(br_name), "%s%d",
 					    hapd->conf->vlan_bridge,
 					    vlan->vlan_id);
+			} else if (tagged_interface) {
+				os_snprintf(br_name, sizeof(br_name),
+				            "br%s.%d", tagged_interface,
+					    vlan->vlan_id);
 			} else {
 				os_snprintf(br_name, sizeof(br_name),
 				            "brvlan%d", vlan->vlan_id);



More information about the Hostap mailing list