Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp2885763pxk; Sun, 20 Sep 2020 22:15:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyonrigMwa/6de/A0yznA5cXyH/nkVfbRRhf8aEuwWQDJqUSMYGPE1GqcmE+cFhlLgR/p24 X-Received: by 2002:a17:906:30c5:: with SMTP id b5mr48870800ejb.98.1600665351548; Sun, 20 Sep 2020 22:15:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600665351; cv=none; d=google.com; s=arc-20160816; b=a322QGiGloeGjPdJIxoq7Y5TLVehxiqCRZQiKPlZhgwwWPnHIKwBES/c1Yw/zxFSxu 1uxXO190ka5XXh/O7szOALyTvaztLKMMJfyI/kdWn4J4vioBcSBXiNaQELYJoMm/Nm3i Yh6dZYXrCstrJXx6ybfIcGsUHgkrg9dUUq3bRKuRmZrqeK0qmf6wVzpSek4XXKj72B71 Ky+HYsmL4atO/LdPzVnQm1W2wxYbKEM4OCiX8gljsMJyVRtL/2ImWk/T14ZBhLiUi2Dl HVpb1mGC98KRs0zyVYC81Tu3JQ0Id5jdlGBLRPvltC9Hy/+cBROJjPXAojq6jdPVGHJ9 FrtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:message-id:user-agent :references:in-reply-to:subject:cc:to:from:date:mime-version; bh=l+vOJyRlOgqmF2+71Go2p6WwC8rViGJW8Mf+B+T1ncw=; b=VR9gL7CO5Sj+1gsHfLT0vyFPndAr1pkt8TfP9cfV1ijofkIzjISROpvcsAOnKhfYPr mgkv+ewqQERTPCt++73PjZ67mPj3yuarnTDSu2NjwUyN2U51xg0QGHKnlV/NVXeSkoQH YKLwcCF6JGKFUH6mUpyBsc3ba8Nm2xCSYj/DL92j81xcmR8dmEKfBzsx2VIBuuxW//P0 3mtpSQxZGFjgpKRsdoN5TC36lwjmzHCxClRmFCyEj8tNn1tlUAF3B45+MxHYt/17eYM2 //F7pue6hcQsm9KIwVDWxr+rmpezbyLNHJ5AhsZzKhzXIREac2pGvb+LTAcDwXDIILve ZPVg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d17si3938780edr.273.2020.09.20.22.15.26; Sun, 20 Sep 2020 22:15:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726341AbgIUFNB (ORCPT + 99 others); Mon, 21 Sep 2020 01:13:01 -0400 Received: from mail.adapt-ip.com ([173.164.178.19]:45988 "EHLO web.adapt-ip.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726186AbgIUFNB (ORCPT ); Mon, 21 Sep 2020 01:13:01 -0400 Received: from localhost (localhost [127.0.0.1]) by web.adapt-ip.com (Postfix) with ESMTP id 973B04F9B64; Mon, 21 Sep 2020 05:13:00 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at web.adapt-ip.com Received: from web.adapt-ip.com ([127.0.0.1]) by localhost (web.adapt-ip.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id T-yp0UyaMhTn; Mon, 21 Sep 2020 05:12:58 +0000 (UTC) Received: from mail.ibsgaard.io (c-73-223-60-234.hsd1.ca.comcast.net [73.223.60.234]) (Authenticated sender: thomas@adapt-ip.com) by web.adapt-ip.com (Postfix) with ESMTPSA id D794D4F9809; Mon, 21 Sep 2020 05:12:57 +0000 (UTC) MIME-Version: 1.0 Date: Sun, 20 Sep 2020 22:12:57 -0700 From: Thomas Pedersen To: Johannes Berg Cc: linux-wireless Subject: Re: [PATCH v2 11/22] cfg80211: parse S1G Operation element for BSS channel In-Reply-To: References: <20200831205600.21058-1-thomas@adapt-ip.com> <20200831205600.21058-12-thomas@adapt-ip.com> User-Agent: Roundcube Webmail/1.4.7 Message-ID: X-Sender: thomas@adapt-ip.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On 2020-09-18 03:45, Johannes Berg wrote: > On Mon, 2020-08-31 at 13:55 -0700, Thomas Pedersen wrote: >> Extract the BSS primary channel from the S1G Operation >> element. > > Out of curiosity, do you even need to? > > I mean ... you know what channel you received it on, surely? Consider the case where the BSS is operating @ 2Mhz, but primary is one of the 1Mhz channels. The hardware (or driver) may not be able to tell you exactly which primary channel (upper or lower) the packet came in on. >> @@ -1318,15 +1318,26 @@ cfg80211_get_bss_channel(struct wiphy *wiphy, >> const u8 *ie, size_t ielen, >> tmp = cfg80211_find_ie(WLAN_EID_DS_PARAMS, ie, ielen); >> if (tmp && tmp[1] == 1) { >> channel_number = tmp[2]; >> - } else { >> - tmp = cfg80211_find_ie(WLAN_EID_HT_OPERATION, ie, ielen); >> - if (tmp && tmp[1] >= sizeof(struct ieee80211_ht_operation)) { >> - struct ieee80211_ht_operation *htop = (void *)(tmp + 2); >> + goto found_channel; >> + } >> >> - channel_number = htop->primary_chan; >> - } >> + tmp = cfg80211_find_ie(WLAN_EID_HT_OPERATION, ie, ielen); >> + if (tmp && tmp[1] >= sizeof(struct ieee80211_ht_operation)) { >> + struct ieee80211_ht_operation *htop = (void *)(tmp + 2); >> + >> + channel_number = htop->primary_chan; >> + goto found_channel; >> + } >> + >> + tmp = cfg80211_find_ie(WLAN_EID_S1G_OPERATION, ie, ielen); >> + if (tmp && tmp[1] >= sizeof(struct ieee80211_s1g_oper_ie)) { >> + struct ieee80211_s1g_oper_ie *s1gop = (void *)(tmp + 2); >> + >> + channel_number = s1gop->primary_ch; >> + goto found_channel; >> } > > I *am* a bit worried about this though - do you really want to try to > parse DS elements on S1G, or S1G elements on other bands? Seems like > there ought to be a band check here? OK. I'll rework this to handle garbage input a little better. -- thomas