Re: [PATCH 5/7] d80211: indicate if unassociate/radio off status
From: Dan Williams <hidden>
Date: 2006-09-22 14:04:30
On Fri, 2006-09-22 at 10:32 +0200, Johannes Berg wrote:
On Thu, 2006-09-21 at 16:30 -0400, Dan Williams wrote:quoted
That's kind a hole in the WE API. In this case, I think, SIOCGIWAP should always return the BSSID of the current association, or none if there is no association.I was never sure if it was a hole or just a lack of clearly defined semantics (duh, I should probably look at the iwconfig code......)quoted
Doing an iwconfig ap xx:xx:xx:xx:xx:xx should make the driver internally locked to that BSSID, such that until you clear that lock, SIOCGIWAP should only show either that BSSID or 00:00:00:00:00:00. SIOCGIWAP should not return a valid BSSID when there is no association. Hopefully nl80211 can fix this omission in WE.I think I have addressed this already. + /* set access point BSSID for userspace roaming */ + NL80211_CMD_SET_BSSID, ... + + /* BSSID to associate to, only used when roaming control + * is in userspace */ + NL80211_ATTR_BSSID, + ... + /* get current association information, if not associated then + * the BSSID attribute is not present in response */ + NL80211_CMD_GET_ASSOCIATION, as well as in the compatibility document: +SIOCSIWAP + -> if bssid is all-ones: set roaming to kernel, reassociate + -> if bssid is all-zeroes: set roaming to kernel + -> otherwise: set roaming to userspace, set bssid + +SIOCGIWAP + -> get association parameters and fill return bssid appropriately I think that should do what you need, no?
Looks like it, yes. As long as there are separate mechanisms for the getting/setting a 'locked' BSSID, and a separate attribute for the currently associated access point (if any). Which this looks like it would provide. Thanks! Dan