From patchwork Fri Jun 2 22:15:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wang X-Patchwork-Id: 1789844 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=CMOSILkS; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=mbgKkne/; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QXy5N0Z8Vz20Tj for ; Sat, 3 Jun 2023 08:16:23 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/Ma/fEAhknJlpKrZPROaBRJKbgvwZkLhmGymAXirmTc=; b=CMOSILkS8pmuYM GrqdQzBt3yW3hj/SEUjfppgwLlZp2NUU+2olO/b26pOUqtJSpTS9M9TOXnSPOuE65hreI0Me17KIg imBSwD3kFNk5cXpUVD0NO63APOyInl6Se+VoGtlwaRDw9pb3+/pi49/LLFaxQ4NqOf/uFju7i5dm1 lvBy86WqY0Uq4f8YSBzWh+aU9CfjsiUx2fNSX+D9jdsitF1NizEtGrLUp/7Vqxeel7y2A6zRmbsyx tlo0eDFzo4wknP24azGW9PMRMBd0L1KPOQPpWHpBv7so0dJ+jUi8xnKQazrOj/EURmbBiy6joPVvc /gwhQ+37OBWq5bpzTAOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q5D3N-0082OU-14; Fri, 02 Jun 2023 22:15:25 +0000 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q5D3K-0082Mj-2R for hostap@lists.infradead.org; Fri, 02 Jun 2023 22:15:24 +0000 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-25690e009c8so1318846a91.0 for ; Fri, 02 Jun 2023 15:15:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1685744121; x=1688336121; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=B+6EXNpSCQWKKI9ZmD/JUxlXirjn8/Tmd8VkB4zjI3o=; b=mbgKkne/7hTFcsd9EI0eeiT3F3qoKFBJUXbHDwaukhONV1TSY7Dctn2DZlTWfmDbrd kh3n33e+jNN0ZHk8v8IjcvOiwAdfAk21NLauGhGUgUM4RTlqO0M+oJKVACrSrQBg7tSg jOP293IYrGVdhRczTgxhCoFBSm/kHiCJBfVD8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685744121; x=1688336121; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=B+6EXNpSCQWKKI9ZmD/JUxlXirjn8/Tmd8VkB4zjI3o=; b=QuS3eD/urC847FB26eu2XTW7fpHJHRLQAYqaEA4YZTGtVRMS1bx/p2t6lFZHmf3Qw3 SQy+WKivinWROho8TcidWQU5H2bj8c5J0UPZTs3xWCH2egiwNVin4axvVSNO3M8Q9rJ3 qHzKY1MmGo4mIwcWfDlU4IZ45mP8qvH+FkoAmCwvXTaOcFHD28uYBNHrM8m8tL0BC9B3 9u1Aa3Lb+tGEfvPbeA89y7WHKC6SjLjC8n7aHG0fnAZdPYSyoophO+/N7Xn4wLDGTMVx lpO23P0aIYmdQ4T+PCAhgnwzLM3hogIgO7y34GK+nJvUS/QZt1e3iaWjyMYGf2e2zqIJ 621A== X-Gm-Message-State: AC+VfDzq4dE9O0QILKfpbXazJcIMiL11YwtJQQklh9OMO/rusJpDDYEq Dg2prPMcZj6DFAwYMMbp+6QFUQ== X-Google-Smtp-Source: ACHHUZ6M4xgtC4qPE5Lcng5YPzrZjZnxsbLSPIp5fMnMQxyhOatY2U3ecu7ebged3sc0jZ34vEfh4Q== X-Received: by 2002:a17:902:ec81:b0:1ae:2013:4bc8 with SMTP id x1-20020a170902ec8100b001ae20134bc8mr1044063plg.18.1685744120703; Fri, 02 Jun 2023 15:15:20 -0700 (PDT) Received: from matthewmwang2.mtv.corp.google.com ([2620:15c:9d:4:5a47:2855:d3e5:8d1a]) by smtp.gmail.com with ESMTPSA id i3-20020a170902c28300b001a245b49731sm1835313pld.128.2023.06.02.15.15.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Jun 2023 15:15:20 -0700 (PDT) From: Matthew Wang To: j@w1.fi Cc: hostap@lists.infradead.org, matthewmwang@chromium.org Subject: [PATCH 3/4] Parse 6ghz capability Date: Fri, 2 Jun 2023 15:15:10 -0700 Message-ID: <20230602221511.1237936-3-matthewmwang@chromium.org> X-Mailer: git-send-email 2.41.0.rc0.172.g3f132b7071-goog In-Reply-To: <20230602221511.1237936-1-matthewmwang@chromium.org> References: <20230602221511.1237936-1-matthewmwang@chromium.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230602_151522_795130_FAB3DF60 X-CRM114-Status: GOOD ( 16.98 ) X-Spam-Score: -0.4 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Store 6ghz capability on channel list update. Signed-off-by: Matthew Wang --- wpa_supplicant/scan.c | 25 + wpa_supplicant/wpa_supplicant.c | 23 +++++++++++++++++++++++ wpa_supplicant/wpa_supplic [...] Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:1034 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.2 DKIMWL_WL_HIGH DKIMwl.org - High trust sender X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Store 6ghz capability on channel list update. Signed-off-by: Matthew Wang --- wpa_supplicant/scan.c | 25 +------------------------ wpa_supplicant/wpa_supplicant.c | 23 +++++++++++++++++++++++ wpa_supplicant/wpa_supplicant_i.h | 2 ++ 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c index 1803d4b578e..8287d88af18 100644 --- a/wpa_supplicant/scan.c +++ b/wpa_supplicant/scan.c @@ -417,29 +417,6 @@ wpa_supplicant_build_filter_ssids(struct wpa_config *conf, size_t *num_ssids) } -#ifdef CONFIG_P2P -static bool is_6ghz_supported(struct wpa_supplicant *wpa_s) -{ - struct hostapd_channel_data *chnl; - int i, j; - - for (i = 0; i < wpa_s->hw.num_modes; i++) { - if (wpa_s->hw.modes[i].mode == HOSTAPD_MODE_IEEE80211A) { - chnl = wpa_s->hw.modes[i].channels; - for (j = 0; j < wpa_s->hw.modes[i].num_channels; j++) { - if (chnl[j].flag & HOSTAPD_CHAN_DISABLED) - continue; - if (is_6ghz_freq(chnl[j].freq)) - return true; - } - } - } - - return false; -} -#endif /* CONFIG_P2P */ - - static void wpa_supplicant_optimize_freqs( struct wpa_supplicant *wpa_s, struct wpa_driver_scan_params *params) { @@ -1492,7 +1469,7 @@ scan: } } - if (!params.freqs && is_6ghz_supported(wpa_s) && + if (!params.freqs && wpas_is_6ghz_supported(wpa_s, true) && (wpa_s->p2p_in_invitation || wpa_s->p2p_in_provisioning)) wpas_p2p_scan_freqs(wpa_s, ¶ms, true); #endif /* CONFIG_P2P */ diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index e0f3240e87a..e784434f861 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -7088,6 +7088,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, wpa_s->hw_capab == CAPAB_NO_HT_VHT) wpa_s->hw_capab = CAPAB_HT; } + wpa_s->support_6ghz = wpas_is_6ghz_supported(wpa_s, false); } capa_res = wpa_drv_get_capa(wpa_s, &capa); @@ -9211,3 +9212,25 @@ int wpa_drv_send_action(struct wpa_supplicant *wpa_s, unsigned int freq, return wpa_s->driver->send_action(wpa_s->drv_priv, freq, wait, dst, src, bssid, data, data_len, no_cck); } + + +bool wpas_is_6ghz_supported(struct wpa_supplicant *wpa_s, bool only_enabled) +{ + struct hostapd_channel_data *chnl; + int i, j; + + for (i = 0; i < wpa_s->hw.num_modes; i++) { + if (wpa_s->hw.modes[i].mode == HOSTAPD_MODE_IEEE80211A) { + chnl = wpa_s->hw.modes[i].channels; + for (j = 0; j < wpa_s->hw.modes[i].num_channels; j++) { + if (only_enabled && + (chnl[j].flag & HOSTAPD_CHAN_DISABLED)) + continue; + if (is_6ghz_freq(chnl[j].freq)) + return true; + } + } + } + + return false; +} diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index d5b3dab67f5..efd83c79eb5 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -1527,6 +1527,7 @@ struct wpa_supplicant { unsigned int enable_dscp_policy_capa:1; unsigned int connection_dscp:1; unsigned int wait_for_dscp_req:1; + bool support_6ghz; struct wpa_signal_info last_signal_info; }; @@ -1916,5 +1917,6 @@ int wpas_pasn_deauthenticate(struct wpa_supplicant *wpa_s, const u8 *own_addr, void wpas_pasn_auth_trigger(struct wpa_supplicant *wpa_s, struct pasn_auth *pasn_auth); void wpas_pasn_auth_work_done(struct wpa_supplicant *wpa_s, int status); +bool wpas_is_6ghz_supported(struct wpa_supplicant *wpa_s, bool only_enabled); #endif /* WPA_SUPPLICANT_I_H */