From patchwork Mon Apr 29 11:51:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Berg X-Patchwork-Id: 1928949 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org 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=I5LrdWex; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=sipsolutions.net header.i=@sipsolutions.net header.a=rsa-sha256 header.s=mail header.b=d5pFVsMR; dkim-atps=neutral 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=patchwork.ozlabs.org) 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 (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VShXY31jSz23tc for ; Mon, 29 Apr 2024 21:52:45 +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=S4AYbT+zla8MOwRKarupsFWAvulMXHT2Vw1l11jKvNg=; b=I5LrdWexmvV45Q Di06Gzozbf5CimlHabncXIH8wdk5Wb/ob2YPQ2dono1euN9gJHms67bx0E0nlxKUCyQAuOHG8YRtR xSJYI2+Ol2EMyvXI2NuS2nxS2jLSWFHTFjnQisHt9xYzVArXgZ21heLKqRo8bFUrOgngPGnXKw7IP ++C9B2GGKJtpKdLsCZwfp2P/ImyvRns2E1MBS3QZbu/2zAqXaEk99EA2RD+xOzg8SKjxgM/GKky1/ fodyr6rwcBtTTvnrob6jQ51vnNUdvXtn/GO9lKzsi5TKkflvQinCy5SC5TODYOFUk3WMCTDBD9Tdm rQr83a6AZrYHAjfpgzLA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1PYZ-00000002XH5-1E0f; Mon, 29 Apr 2024 11:52:27 +0000 Received: from s3.sipsolutions.net ([2a01:4f8:242:246e::2] helo=sipsolutions.net) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s1PYK-00000002X9h-3LYK for hostap@lists.infradead.org; Mon, 29 Apr 2024 11:52:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sipsolutions.net; s=mail; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Content-Type:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-To: Resent-Cc:Resent-Message-ID; bh=RYXFtmiXy9KOIKtQK/bDIDjJ4eFyL6T0ktyaejVPCLI=; t=1714391532; x=1715601132; b=d5pFVsMRDS1oCIDTNOMmzeHkOPd0HleyZfK7JCzktpNPvGY DvSeVfa6N7MgtptFTD2qdBoRqvkX8Cai+lTmCb3XTzd8brcQ4oVBaB+TNx0hq5+xZ2IEvnvkESoIO yMgyuNplCMnsyLc3Be1ouMOka4xK/35Vn+CohRct8ed8jBjOj045+yXAonga4+t5Yw8tJknYOBsVX X0mhJZ6iLCXpI2pmoS3fXUGR+omyJDGNnTZE5zQUEjOmGaRBmnbhNd6wPo1TkMrPtVITq0tgyMakB ZZi4i54ovn+On2NUUYFjqHuQQj9OmK6XDXjIRAzDEA3pLxpQzeKqZQ7wmjE6sKfw==; Received: by sipsolutions.net with esmtpsa (TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim 4.97) (envelope-from ) id 1s1PYI-0000000CNIg-2iFa; Mon, 29 Apr 2024 13:52:10 +0200 From: benjamin@sipsolutions.net To: hostap@lists.infradead.org Cc: Benjamin Berg Subject: [PATCH 07/16] WNM: Move neighbor report test into wnm_is_bss_excluded Date: Mon, 29 Apr 2024 13:51:48 +0200 Message-ID: <20240429115157.211073-8-benjamin@sipsolutions.net> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240429115157.211073-1-benjamin@sipsolutions.net> References: <20240429115157.211073-1-benjamin@sipsolutions.net> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240429_045212_965922_C5BA7699 X-CRM114-Status: GOOD ( 16.05 ) X-Spam-Score: -0.2 (/) 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: From: Benjamin Berg Having it in wnm_is_bss_excluded is more generic as it works for other locations (e.g. MLD link selection). So move the test and add a check for the abridged bit while at it. Note that without the abr [...] Content analysis details: (-0.2 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 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 From: Benjamin Berg Having it in wnm_is_bss_excluded is more generic as it works for other locations (e.g. MLD link selection). So move the test and add a check for the abridged bit while at it. Note that without the abridged bit check another check would be needed (e.g. checking wnm_dialog_token) to ensure that there isn't a rejection unless a BTM is in progress. Signed-off-by: Benjamin Berg --- wpa_supplicant/wnm_sta.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c index 7283ff47c..e8776a14b 100644 --- a/wpa_supplicant/wnm_sta.c +++ b/wpa_supplicant/wnm_sta.c @@ -761,11 +761,6 @@ compare_scan_neighbor_results(struct wpa_supplicant *wpa_s, struct neighbor_report *nei; nei = &wpa_s->wnm_neighbor_report_elements[i]; - if (nei->preference_present && nei->preference == 0) { - wpa_printf(MSG_DEBUG, "Skip excluded BSS " MACSTR, - MAC2STR(nei->bssid)); - continue; - } target = wpa_bss_get_bssid(wpa_s, nei->bssid); if (!target) { @@ -2056,6 +2051,8 @@ void wnm_clear_coloc_intf_reporting(struct wpa_supplicant *wpa_s) bool wnm_is_bss_excluded(struct wpa_supplicant *wpa_s, struct wpa_bss *bss) { + int i; + /* * In case disassociation imminent is set, do no try to use a BSS to * which we are connected. @@ -2072,5 +2069,23 @@ bool wnm_is_bss_excluded(struct wpa_supplicant *wpa_s, struct wpa_bss *bss) } } + for (i = 0; i < wpa_s->wnm_num_neighbor_report; i++) { + struct neighbor_report *nei; + + nei = &wpa_s->wnm_neighbor_report_elements[i]; + if (!ether_addr_equal(nei->bssid, bss->bssid)) + continue; + + if (nei->preference_present && nei->preference == 0) + return true; + + break; + } + + /* If the abridged bit is set, then the BSS must be a known neighbor */ + if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_ABRIDGED && + wpa_s->wnm_num_neighbor_report == i) + return true; + return false; }