Do not override WDS VLAN assignment for STA
The 4-address frames WDS design in mac80211 uses VLAN interfaces similarly to the way VLAN interfaces based on VLAN IDs are used. The EAP authentication case ended up overriding the WDS specific assignment even when the RADIUS server did not assign any specific VLAN for the STA. This broke WDS traffic. Fix this by skipping VLAN assignment to VLAN ID 0 for STAs that have been detected to use 4-address frames. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
87998f80e7
commit
43ededa9c7
1 changed files with 7 additions and 0 deletions
|
@ -1027,6 +1027,13 @@ int ap_sta_bind_vlan(struct hostapd_data *hapd, struct sta_info *sta)
|
||||||
int ret;
|
int ret;
|
||||||
int old_vlanid = sta->vlan_id_bound;
|
int old_vlanid = sta->vlan_id_bound;
|
||||||
|
|
||||||
|
if ((sta->flags & WLAN_STA_WDS) && sta->vlan_id == 0) {
|
||||||
|
wpa_printf(MSG_DEBUG,
|
||||||
|
"Do not override WDS VLAN assignment for STA "
|
||||||
|
MACSTR, MAC2STR(sta->addr));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
iface = hapd->conf->iface;
|
iface = hapd->conf->iface;
|
||||||
if (hapd->conf->ssid.vlan[0])
|
if (hapd->conf->ssid.vlan[0])
|
||||||
iface = hapd->conf->ssid.vlan;
|
iface = hapd->conf->ssid.vlan;
|
||||||
|
|
Loading…
Reference in a new issue