hostapd: Inherit correct MAC address for AP VLAN interfaces
When using multiple vifs and dynamic vlan tagging is enabled on any interface, the created AP VLAN interfaces get the BSSID of the first AP mode interface instead of the BSSID of the corresponding AP mode interface. Example: wlan0 - xx:xx:xx:xx:x0 wlan1 - xx:xx:xx:xx:x1 Assume a STA connects to the AP interface wlan1 and gets a dynamic VLAN tag 100 assigned by the RADIUS server. Hostapd will create an AP VLAN interface wlan1.100 but doesn't set an address for this interface which results in wlan1.100 getting the same address as wlan0: wlan1.100 - xx:xx:xx:xx:x0 As a result the STA that was moved to wlan1.100 isn't able to finish its 4-way handshake since mac80211 won't pass its frames to wlan1.100 due to the different address. To fix this issue make use of the address of the AP interface when creating an AP VLAN interface. Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
This commit is contained in:
parent
9526fd293f
commit
e926bcffd8
1 changed files with 2 additions and 2 deletions
|
@ -280,8 +280,8 @@ int hostapd_vlan_if_add(struct hostapd_data *hapd, const char *ifname)
|
|||
{
|
||||
char force_ifname[IFNAMSIZ];
|
||||
u8 if_addr[ETH_ALEN];
|
||||
return hostapd_if_add(hapd, WPA_IF_AP_VLAN, ifname, NULL, NULL, NULL,
|
||||
force_ifname, if_addr);
|
||||
return hostapd_if_add(hapd, WPA_IF_AP_VLAN, ifname, hapd->own_addr,
|
||||
NULL, NULL, force_ifname, if_addr);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue