Return-path: Received: from mail-gy0-f174.google.com ([209.85.160.174]:60767 "EHLO mail-gy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932093Ab1EaSKS convert rfc822-to-8bit (ORCPT ); Tue, 31 May 2011 14:10:18 -0400 Received: by gyd10 with SMTP id 10so1872364gyd.19 for ; Tue, 31 May 2011 11:10:17 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1304513847.3563.15.camel@jlt3.sipsolutions.net> <1304529896-20934-1-git-send-email-javier@cozybit.com> Date: Tue, 31 May 2011 21:10:15 +0300 Message-ID: (sfid-20110531_201022_652174_7ACF9231) Subject: Re: [PATCH] cfg80211: Use capability info to detect mesh beacons. From: Eliad Peller To: Javier Cardona Cc: Vivek Natarajan , "John W. Linville" , Thomas Pedersen , devel@lists.open80211s.org, Johannes Berg , linux-wireless@vger.kernel.org, jlopex@gmail.com Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: On Tue, May 31, 2011 at 8:26 PM, Javier Cardona wrote: > On Mon, May 30, 2011 at 3:51 AM, Vivek Natarajan wrote: >> On Wed, May 4, 2011 at 10:54 PM, Javier Cardona 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? > > 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. > >>> index fbf6f33..62e542a 100644 >>> --- a/net/wireless/scan.c >>> +++ b/net/wireless/scan.c >> >>> @@ -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.