bridge: Use safe default bridge interface
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@fami-braun.de>
This commit is contained in:
parent
2aaeedfa07
commit
459eee923c
2 changed files with 11 additions and 1 deletions
|
@ -845,7 +845,9 @@ own_ip_addr=127.0.0.1
|
||||||
#vlan_tagged_interface=eth0
|
#vlan_tagged_interface=eth0
|
||||||
|
|
||||||
# Bridge (prefix) to add the wifi and the tagged interface to. This gets the
|
# 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
|
#vlan_bridge=brvlan
|
||||||
|
|
||||||
# When hostapd creates a VLAN interface on vlan_tagged_interfaces, it needs
|
# When hostapd creates a VLAN interface on vlan_tagged_interfaces, it needs
|
||||||
|
|
|
@ -497,6 +497,10 @@ static void vlan_newlink(char *ifname, struct hostapd_data *hapd)
|
||||||
os_snprintf(br_name, sizeof(br_name), "%s%d",
|
os_snprintf(br_name, sizeof(br_name), "%s%d",
|
||||||
hapd->conf->vlan_bridge,
|
hapd->conf->vlan_bridge,
|
||||||
vlan->vlan_id);
|
vlan->vlan_id);
|
||||||
|
} else if (tagged_interface) {
|
||||||
|
os_snprintf(br_name, sizeof(br_name),
|
||||||
|
"br%s.%d", tagged_interface,
|
||||||
|
vlan->vlan_id);
|
||||||
} else {
|
} else {
|
||||||
os_snprintf(br_name, sizeof(br_name),
|
os_snprintf(br_name, sizeof(br_name),
|
||||||
"brvlan%d", vlan->vlan_id);
|
"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",
|
os_snprintf(br_name, sizeof(br_name), "%s%d",
|
||||||
hapd->conf->vlan_bridge,
|
hapd->conf->vlan_bridge,
|
||||||
vlan->vlan_id);
|
vlan->vlan_id);
|
||||||
|
} else if (tagged_interface) {
|
||||||
|
os_snprintf(br_name, sizeof(br_name),
|
||||||
|
"br%s.%d", tagged_interface,
|
||||||
|
vlan->vlan_id);
|
||||||
} else {
|
} else {
|
||||||
os_snprintf(br_name, sizeof(br_name),
|
os_snprintf(br_name, sizeof(br_name),
|
||||||
"brvlan%d", vlan->vlan_id);
|
"brvlan%d", vlan->vlan_id);
|
||||||
|
|
Loading…
Reference in a new issue