implementing multiple BSSID addresses for different VAPs, or 'why was the flag called bssid again?'
Adrian Chadd
adrian at freebsd.org
Mon Oct 21 05:05:50 UTC 2013
So, I finally (!) figured out how this address cloning crap works.
In if_ath.c, there's assign_address(). It, yes, assigns addresses. If the
hardware supports the bssid mask field and the clone flag is set, it sets
up multiple addresses. This works great for up to 4 MACs. We have to modify
it to support more than 4 MAC addresses per NIC.
.. but, how do you set the clone flag?
The ifconfig manpage has two entries for 'bssid'.
* the first is when you 'create' a VAP. It's passed as an arguement during
create, but before wlanmode. It doesn't take an option.
* the second is for setting the BSS ID for the VAP. It _does_ take an
option (the MAC.)
If you try this, it fails:
* ifconfig wlan11 create wlandev ath0 wlanmode hostap ssid 'foo_2' bssid
If you try this, it works:
* ifconfig wlan11 create wlandev ath0 bssid wlanomde hostap ssid 'foo_2'
So, if you run multi-VAP, and you want to use WPA on all of the VAPs,
please try using 'bssid' as above and ensure you get multiple MAC
addresses. This should make things behave much, much better. If it doesn't
then we have bigger problems.
Thanks,
-adrian
More information about the freebsd-wireless
mailing list