Thread (32 messages) 32 messages, 6 authors, 2011-06-01

Re: [PATCH] cfg80211: Use capability info to detect mesh beacons.

From: Eliad Peller <hidden>
Date: 2011-05-31 18:10:18

On Tue, May 31, 2011 at 8:26 PM, Javier Cardona [off-list ref] wrote:
On Mon, May 30, 2011 at 3:51 AM, Vivek Natarajan [off-list ref] wrote:
quoted
On Wed, May 4, 2011 at 10:54 PM, Javier Cardona [off-list ref] wrote:
quoted
Mesh beacons no longer use all-zeroes BSSID.  Beacon frames for MBSS,
infrastructure BSS, or IBSS are differentiated by the Capability
Information field in the Beacon frame.  A mesh STA sets the ESS and IBSS
subfields to 0 in transmitted Beacon or Probe Response management
frames.
This breaks P2P mode as a P2P STA also sets the ESS and IBSS subfields
to zero. Is there any other way to find if it is a mesh other than
this check?
Bummer.  I guess that's a collision between WiFi Alliance and IEEE,
respectively the organizations standardizing P2P and 802.11s.
The 11s draft is pretty clear about that.  I can consult the task
group and see if they have thought about this conflict.
quoted
quoted
index fbf6f33..62e542a 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
quoted
@@ -407,7 +407,7 @@ cfg80211_bss_update(struct cfg80211_registered_device *dev,
       res->ts = jiffies;

-       if (is_zero_ether_addr(res->pub.bssid)) {
+       if (WLAN_CAPABILITY_IS_MBSS(res->pub.capability)) {
               /* must be mesh, verify */
Reverting the above change, makes P2P work. Any other better fix?
We could check that the WLAN_CAPABILITY_IS_MBSS *and* that the bssid
matches the TA.  Do you think that would work?
i guess you are referring to SA (rather than TA).
in that case, this solution is not enough, as SA==bssid also holds
true for the p2p probe responses (at least when a single vif is being
used).

btw, i've already submitted some workaround for this issue:
http://permalink.gmane.org/gmane.linux.kernel.wireless.general/70763

in case we won't find a better solution...

Eliad.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help