From bf24ed1972b3a8bf807a8951aa39f776db4aeba0 Mon Sep 17 00:00:00 2001 From: sam Date: Wed, 7 Mar 2007 04:31:49 +0000 Subject: when starting up an ibss master use a random address for the bssid; this is required for wifi alliance compliance Obtained from: Atheros MFC after: 2 weeks --- sys/net80211/ieee80211_node.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sys/net80211/ieee80211_node.c') diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c index 2be1003..074c32f 100644 --- a/sys/net80211/ieee80211_node.c +++ b/sys/net80211/ieee80211_node.c @@ -436,8 +436,11 @@ ieee80211_create_ibss(struct ieee80211com* ic, struct ieee80211_channel *chan) ni->ni_capinfo |= IEEE80211_CAPINFO_IBSS; /* XXX */ if (ic->ic_flags & IEEE80211_F_DESBSSID) IEEE80211_ADDR_COPY(ni->ni_bssid, ic->ic_des_bssid); - else - ni->ni_bssid[0] |= 0x02; /* local bit for IBSS */ + else { + get_random_bytes(ni->ni_bssid, IEEE80211_ADDR_LEN); + /* clear group bit, add local bit */ + ni->ni_bssid[0] = (ni->ni_bssid[0] &~ 0x01) | 0x02; + } } else if (ic->ic_opmode == IEEE80211_M_AHDEMO) { if (ic->ic_flags & IEEE80211_F_DESBSSID) IEEE80211_ADDR_COPY(ni->ni_bssid, ic->ic_des_bssid); -- cgit v1.1