Return-path: Received: from mail-vx0-f174.google.com ([209.85.220.174]:64754 "EHLO mail-vx0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758064Ab1EaSii convert rfc822-to-8bit (ORCPT ); Tue, 31 May 2011 14:38:38 -0400 Received: by vxi39 with SMTP id 39so3504660vxi.19 for ; Tue, 31 May 2011 11:38:37 -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> From: Javier Cardona Date: Tue, 31 May 2011 11:38:17 -0700 Message-ID: (sfid-20110531_203847_375957_A0ED5831) Subject: Re: [PATCH] cfg80211: Use capability info to detect mesh beacons. To: Eliad Peller 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 11:10 AM, Eliad Peller wrote: > 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). Yes, you are right, SA or Address 2 (11s changes the address field definitions from DA, SA, BSSID to Address 1, 2 and 3). In mesh management frames, Address 2 always equals Address 3. Is this also the case for some P2P management frames? > 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... OK. If the answer to my question above is yes, then I guess we'll have to do it as you suggest. Thanks! Javier -- Javier Cardona cozybit Inc. http://www.cozybit.com