Re: [PATCH] cfg80211: Use capability info to detect mesh beacons.
From: Vivek Natarajan <hidden>
Date: 2011-05-30 10:51:24
On Wed, May 4, 2011 at 10:54 PM, Javier Cardona [off-list ref] wrote:
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?
quoted hunk ↗ jump to hunk
index fbf6f33..62e542a 100644--- a/net/wireless/scan.c +++ b/net/wireless/scan.c
quoted hunk ↗ jump to hunk
@@ -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?
meshid = cfg80211_find_ie(WLAN_EID_MESH_ID, res->pub.information_elements, --
Vivek.