mac80211: rework mac address allocation
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 17 Apr 2013 15:37:36 +0000 (15:37 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 17 Apr 2013 15:37:36 +0000 (15:37 +0000)
commitb4cdc60e29a8948eb0ec94a98e7f54efb8cefdec
tree709c958ec3556a8307ecbd8e098ee13976871acb
parentb812c102d1382e7073d164255ffe070b668033d4
mac80211: rework mac address allocation

If the first byte is available in the address mask, use only that one -
set the local bit and xor it with the id << 2. This ensures that there
are no hardware BSSID & BSSID-mask conflicts with devices that have
almost the same MAC address with just a small offset. The MAC address
conflict has been observed in a deployment with some devices from the
same batch when running with multiple interfaces.

If only some bits of the last byte are available, xor the id onto the
last MAC address byte (relevant mostly for Ralink devices).

In other cases (should not happen at this point), use the previous MAC
address offset calculation but without the local bit.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Backport of r36353

git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@36354 3c298f89-4303-0410-b956-a3cf2f4a3e73
package/mac80211/files/lib/wifi/mac80211.sh