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.cquoted
@@ -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.