Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Oct 2013 22:05:49 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org>, =?ISO-8859-1?Q?Ulrich_Sp=F6rlein?= <uqs@spoerlein.net>
Subject:   implementing multiple BSSID addresses for different VAPs, or 'why was the flag called bssid again?'
Message-ID:  <CAJ-VmoksV3Es3Ef8ecxGzfrD%2BoA8Mx_t=Y_NEB92WoP5Ld6_cQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmoksV3Es3Ef8ecxGzfrD%2BoA8Mx_t=Y_NEB92WoP5Ld6_cQ>