bridge: Give bridge name in per-bss configuration
Currently, when different BSS using different tagged vlan interfaces, they are forced to share the bridge brvlan#, which is not desirable. This patch fixes this by making the bridge name configurable. Signed-hostap: Michael Braun <michael-dev@fami-braun.de>
This commit is contained in:
parent
de36e348f9
commit
2aaeedfa07
4 changed files with 24 additions and 4 deletions
|
@ -180,6 +180,7 @@ struct hostapd_nai_realm_data {
|
|||
struct hostapd_bss_config {
|
||||
char iface[IFNAMSIZ + 1];
|
||||
char bridge[IFNAMSIZ + 1];
|
||||
char vlan_bridge[IFNAMSIZ + 1];
|
||||
char wds_bridge[IFNAMSIZ + 1];
|
||||
|
||||
enum hostapd_logger_level logger_syslog_level, logger_stdout_level;
|
||||
|
|
|
@ -493,8 +493,14 @@ static void vlan_newlink(char *ifname, struct hostapd_data *hapd)
|
|||
while (vlan) {
|
||||
if (os_strcmp(ifname, vlan->ifname) == 0) {
|
||||
|
||||
os_snprintf(br_name, sizeof(br_name), "brvlan%d",
|
||||
vlan->vlan_id);
|
||||
if (hapd->conf->vlan_bridge[0]) {
|
||||
os_snprintf(br_name, sizeof(br_name), "%s%d",
|
||||
hapd->conf->vlan_bridge,
|
||||
vlan->vlan_id);
|
||||
} else {
|
||||
os_snprintf(br_name, sizeof(br_name),
|
||||
"brvlan%d", vlan->vlan_id);
|
||||
}
|
||||
|
||||
if (!br_addbr(br_name))
|
||||
vlan->clean |= DVLAN_CLEAN_BR;
|
||||
|
@ -550,8 +556,14 @@ static void vlan_dellink(char *ifname, struct hostapd_data *hapd)
|
|||
|
||||
while (vlan) {
|
||||
if (os_strcmp(ifname, vlan->ifname) == 0) {
|
||||
os_snprintf(br_name, sizeof(br_name), "brvlan%d",
|
||||
vlan->vlan_id);
|
||||
if (hapd->conf->vlan_bridge[0]) {
|
||||
os_snprintf(br_name, sizeof(br_name), "%s%d",
|
||||
hapd->conf->vlan_bridge,
|
||||
vlan->vlan_id);
|
||||
} else {
|
||||
os_snprintf(br_name, sizeof(br_name),
|
||||
"brvlan%d", vlan->vlan_id);
|
||||
}
|
||||
|
||||
if (vlan->clean & DVLAN_CLEAN_WLAN_PORT)
|
||||
br_delif(br_name, vlan->ifname);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue