From patchwork Wed Dec 13 14:04:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875666 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=Z1ej7uhR; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=k+qrZQg7; 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 4Sqy1P2NBkz20LY for ; Thu, 14 Dec 2023 01:05:29 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=WkZIhm90cNkU+SzPQd4xNTd/6eCnzxNNuTVKRAq+OWs=; b=Z1ej7uhRaZe6EH rkxvq/OCPBcMvRzevODqv5KiU9kJj0Jm1l+fOhREpHSSM3JvkxZxwF6pqYBB/4qr/NUxYUTK1vByT BisxfF5bEwsozYYJqZdO0944RV05uVEImQDF6nqvbrqFXIhKV8+77YQbPk/0KzsPSFgtWKmXUyAjH pYp4eoPoz3ONnyEfM4VUExLdwzfzR8zTDmYjugWyQrAIH6Mo3cV4QfpUaPpA3DAqpJ0pq+v1iFe6s 9WOCUa/p7sM29yCtg7d2WW0NASZnyh9iJRFa9qUaIQHkPpv+PCxJIDgiouJJABOyppVefXsqZxex9 RgBq9x4sErm7/LuYtnDA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPqn-00Ex1F-05; Wed, 13 Dec 2023 14:04:37 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPqk-00Ewzg-0t for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:04:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476274; x=1734012274; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=axbfNjlXpV4tWYiKPbsdHu61geIm2PJaVQMKQ/8f0WM=; b=k+qrZQg7eo3C9tWcsdzV4UI9sTjg+Lzm44N4urIJfOyT2+4mDxyZU29g WBs+qlEiV7kA+smQsEljPVNvvtA/bk15/EqknRwizLO7fb9wlbLMyK9CR GEopZfZSsk/d+6+Xo9Os9+60mJ4GyFgjM7MF5fS5kBdUge6/agzEpvAnW yr1KrTg/njXBc2W5lJwofCgPNxfpUju7UPVfajnYsqwHBp9e0Cl8ex+og tIWF6Qyy0OUOpIgEdGbX+5ZmdA+gQ11jyZ4SPIy6oGJqvGP8xqJNeo/Xn s2W83SkBUw10JOStriX2kxBRE0C7Dm5K2TnCW8rZP+NnCwWbmh+H6RCjk g==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808112" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808112" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723659742" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723659742" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:29 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Ilan Peer Subject: [PATCH 1/8] AP: WNM: Use correct address when configured as AP MLD Date: Wed, 13 Dec 2023 16:04:05 +0200 Message-Id: <20231213140412.326465-1-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060434_364541_AE303EF9 X-CRM114-Status: GOOD ( 12.38 ) 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: From: Ilan Peer When the AP is configured to operate as AP MLD, use the AP MLD address when needed for transmission of WNM action frames. Signed-off-by: Ilan Peer --- src/ap/wnm_ap.c | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+), 12 deletions(-) Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 From: Ilan Peer When the AP is configured to operate as AP MLD, use the AP MLD address when needed for transmission of WNM action frames. Signed-off-by: Ilan Peer --- src/ap/wnm_ap.c | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/src/ap/wnm_ap.c b/src/ap/wnm_ap.c index 153ee40334..06906dead9 100644 --- a/src/ap/wnm_ap.c +++ b/src/ap/wnm_ap.c @@ -43,6 +43,17 @@ static int ieee80211_11_set_tfs_ie(struct hostapd_data *hapd, const u8 *addr, return hostapd_drv_wnm_oper(hapd, oper, addr, buf, buf_len); } +const u8 *wnm_ap_get_own_addr(struct hostapd_data *hapd, struct sta_info *sta) +{ + const u8 *own_addr = hapd->own_addr; + +#ifdef CONFIG_IEEE80211BE + if (hapd->conf->mld_ap && (!sta || sta->mld_info.mld_sta)) + own_addr = hapd->mld_addr; +#endif /* CONFIG_IEEE80211BE */ + + return own_addr; +} /* MLME-SLEEPMODE.response */ static int ieee802_11_send_wnmsleep_resp(struct hostapd_data *hapd, @@ -63,6 +74,7 @@ static int ieee802_11_send_wnmsleep_resp(struct hostapd_data *hapd, struct sta_info *sta; enum wnm_oper tfs_oper = action_type == WNM_SLEEP_MODE_ENTER ? WNM_SLEEP_TFS_RESP_IE_ADD : WNM_SLEEP_TFS_RESP_IE_NONE; + const u8 *own_addr; sta = ap_get_sta(hapd, addr); if (sta == NULL) { @@ -70,6 +82,8 @@ static int ieee802_11_send_wnmsleep_resp(struct hostapd_data *hapd, return -EINVAL; } + own_addr = wnm_ap_get_own_addr(hapd, sta); + /* WNM-Sleep Mode IE */ os_memset(&wnmsleep_ie, 0, sizeof(struct wnm_sleep_element)); wnmsleep_ie_len = sizeof(struct wnm_sleep_element); @@ -144,8 +158,8 @@ static int ieee802_11_send_wnmsleep_resp(struct hostapd_data *hapd, goto fail; } os_memcpy(mgmt->da, addr, ETH_ALEN); - os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN); - os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN); + os_memcpy(mgmt->sa, own_addr, ETH_ALEN); + os_memcpy(mgmt->bssid, own_addr, ETH_ALEN); mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_ACTION); mgmt->u.action.category = WLAN_ACTION_WNM; @@ -366,6 +380,7 @@ static int ieee802_11_send_bss_trans_mgmt_request(struct hostapd_data *hapd, u8 dialog_token) { struct ieee80211_mgmt *mgmt; + const u8 *own_addr = wnm_ap_get_own_addr(hapd, NULL); size_t len; u8 *pos; int res; @@ -373,9 +388,10 @@ static int ieee802_11_send_bss_trans_mgmt_request(struct hostapd_data *hapd, mgmt = os_zalloc(sizeof(*mgmt)); if (mgmt == NULL) return -1; + os_memcpy(mgmt->da, addr, ETH_ALEN); - os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN); - os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN); + os_memcpy(mgmt->sa, own_addr, ETH_ALEN); + os_memcpy(mgmt->bssid, own_addr, ETH_ALEN); mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_ACTION); mgmt->u.action.category = WLAN_ACTION_WNM; @@ -821,14 +837,15 @@ int wnm_send_disassoc_imminent(struct hostapd_data *hapd, { u8 buf[1000], *pos; struct ieee80211_mgmt *mgmt; + const u8 *own_addr = wnm_ap_get_own_addr(hapd, sta); os_memset(buf, 0, sizeof(buf)); mgmt = (struct ieee80211_mgmt *) buf; mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_ACTION); os_memcpy(mgmt->da, sta->addr, ETH_ALEN); - os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN); - os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN); + os_memcpy(mgmt->sa, own_addr, ETH_ALEN); + os_memcpy(mgmt->bssid, own_addr, ETH_ALEN); mgmt->u.action.category = WLAN_ACTION_WNM; mgmt->u.action.u.bss_tm_req.action = WNM_BSS_TRANS_MGMT_REQ; mgmt->u.action.u.bss_tm_req.dialog_token = 1; @@ -887,14 +904,15 @@ int wnm_send_ess_disassoc_imminent(struct hostapd_data *hapd, u8 buf[1000], *pos; struct ieee80211_mgmt *mgmt; size_t url_len; + const u8 *own_addr = wnm_ap_get_own_addr(hapd, sta); os_memset(buf, 0, sizeof(buf)); mgmt = (struct ieee80211_mgmt *) buf; mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_ACTION); os_memcpy(mgmt->da, sta->addr, ETH_ALEN); - os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN); - os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN); + os_memcpy(mgmt->sa, own_addr, ETH_ALEN); + os_memcpy(mgmt->bssid, own_addr, ETH_ALEN); mgmt->u.action.category = WLAN_ACTION_WNM; mgmt->u.action.u.bss_tm_req.action = WNM_BSS_TRANS_MGMT_REQ; mgmt->u.action.u.bss_tm_req.dialog_token = 1; @@ -939,6 +957,7 @@ int wnm_send_bss_tm_req(struct hostapd_data *hapd, struct sta_info *sta, u8 *buf, *pos; struct ieee80211_mgmt *mgmt; size_t url_len; + const u8 *own_addr = wnm_ap_get_own_addr(hapd, sta); wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request to " MACSTR @@ -952,8 +971,8 @@ int wnm_send_bss_tm_req(struct hostapd_data *hapd, struct sta_info *sta, mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_ACTION); os_memcpy(mgmt->da, sta->addr, ETH_ALEN); - os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN); - os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN); + os_memcpy(mgmt->sa, own_addr, ETH_ALEN); + os_memcpy(mgmt->bssid, own_addr, ETH_ALEN); mgmt->u.action.category = WLAN_ACTION_WNM; mgmt->u.action.u.bss_tm_req.action = WNM_BSS_TRANS_MGMT_REQ; mgmt->u.action.u.bss_tm_req.dialog_token = dialog_token; @@ -1016,6 +1035,7 @@ int wnm_send_coloc_intf_req(struct hostapd_data *hapd, struct sta_info *sta, u8 buf[100], *pos; struct ieee80211_mgmt *mgmt; u8 dialog_token = 1; + const u8 *own_addr = wnm_ap_get_own_addr(hapd, sta); if (auto_report > 3 || timeout > 63) return -1; @@ -1024,8 +1044,8 @@ int wnm_send_coloc_intf_req(struct hostapd_data *hapd, struct sta_info *sta, mgmt->frame_control = IEEE80211_FC(WLAN_FC_TYPE_MGMT, WLAN_FC_STYPE_ACTION); os_memcpy(mgmt->da, sta->addr, ETH_ALEN); - os_memcpy(mgmt->sa, hapd->own_addr, ETH_ALEN); - os_memcpy(mgmt->bssid, hapd->own_addr, ETH_ALEN); + os_memcpy(mgmt->sa, own_addr, ETH_ALEN); + os_memcpy(mgmt->bssid, own_addr, ETH_ALEN); mgmt->u.action.category = WLAN_ACTION_WNM; mgmt->u.action.u.coloc_intf_req.action = WNM_COLLOCATED_INTERFERENCE_REQ; From patchwork Wed Dec 13 14:04:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875665 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=4ckTra4e; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=Gjz02WX4; 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 4Sqy1P0X4Tz20H6 for ; Thu, 14 Dec 2023 01:05:29 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=3TcWPuszXuuj2LhP7JY/rILguAM0wLBhXEsgu5O9oJs=; b=4ckTra4edgwk/s o1oHn/43hVAobR4y3EtsFB26IC5+i8CnJsOD1IyJquw7Ks7ErpNvPh3A02kBlWYofVaPULi4oo2ni OaT0QMfWMGJrHr+vbdWlaPRH9AX2e51h/siH0LqB4gw0iemZdZ/bsKtbnAwKiPOAL6BZqjBRW2LMD AXizRna+2lY1cfLZoamtHVvNYPzJPtt7opZUZrNf75d4odhyLs/VBniYSbQRIpZ3RZ8Uy9/j6VX47 8L31fAtKLCUxC6SCEeEsb0sn2K3bQE0hED1qbtPM6e/X0fkx6BbfR1kPiy0XlASyvJvqTUE8vzOft uOYuqQbp9VyYSY9HAeHQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPqs-00Ex27-0V; Wed, 13 Dec 2023 14:04:42 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPqp-00Ewzg-1A for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:04:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476280; x=1734012280; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=aODqSeqyKBOjDSmYSkZ3HlWJ/0ydl/guxIyuFfl12WA=; b=Gjz02WX41sYAsOjsBK8PivijXu//qW4yDZkVDyENJa2d2Hq+6dM46hsX VYAKhopG3DXxIWrYzYbv5JL5likTe5kPVaUwlCK7GPFWWUNvYDyo6bbal jlpNJrIZSsNSMV1gOYsWANjiFmb3LIXUsInJYEfriTDRM0as5IqVDs6oP 6evFcfyIRpE9fT49ogen37Nnfgs0KIbZygGaZpt+aalVNNJTnJZev7qtt pS4VPEpzhanzFVSanKgPMoKvFgLo9ijZ+XW9ITxRXvrLlhso4G76hmIcb X6P0QshfOeFcekNyUnu2kUqBjnXTb6d6qCh4T4o1UGKd6d8zcNpqon+uL A==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808150" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808150" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723659885" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723659885" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:37 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Ilan Peer Subject: [PATCH 2/8] WNM: Allow frames from AP MLD Date: Wed, 13 Dec 2023 16:04:06 +0200 Message-Id: <20231213140412.326465-2-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060439_445263_08F29566 X-CRM114-Status: GOOD ( 10.84 ) 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: From: Ilan Peer Allow frames where the DA is the AP MLD address as the driver might have performed address translation. Signed-off-by: Ilan Peer --- wpa_supplicant/wnm_sta.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 From: Ilan Peer Allow frames where the DA is the AP MLD address as the driver might have performed address translation. Signed-off-by: Ilan Peer --- wpa_supplicant/wnm_sta.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c index ccfc34d20b..493821b37f 100644 --- a/wpa_supplicant/wnm_sta.c +++ b/wpa_supplicant/wnm_sta.c @@ -1878,7 +1878,8 @@ static void ieee802_11_rx_wnm_notif_req(struct wpa_supplicant *wpa_s, pos, end - pos); if (wpa_s->wpa_state != WPA_COMPLETED || - os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0) { + (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) && + os_memcmp(sa, wpa_s->ap_mld_addr, ETH_ALEN))) { wpa_dbg(wpa_s, MSG_DEBUG, "WNM: WNM-Notification frame not " "from our AP - ignore it"); return; @@ -1922,7 +1923,8 @@ static void ieee802_11_rx_wnm_coloc_intf_req(struct wpa_supplicant *wpa_s, return; /* only nonzero values are used for request */ if (wpa_s->wpa_state != WPA_COMPLETED || - os_memcmp(sa, wpa_s->bssid, ETH_ALEN) != 0) { + (os_memcmp(sa, wpa_s->bssid, ETH_ALEN) && + os_memcmp(sa, wpa_s->ap_mld_addr, ETH_ALEN))) { wpa_dbg(wpa_s, MSG_DEBUG, "WNM: Collocated Interference Request frame not from current AP - ignore it"); return; @@ -1952,9 +1954,10 @@ void ieee802_11_rx_wnm_action(struct wpa_supplicant *wpa_s, wpa_printf(MSG_DEBUG, "WNM: RX action %u from " MACSTR, act, MAC2STR(mgmt->sa)); if (wpa_s->wpa_state < WPA_ASSOCIATED || - os_memcmp(mgmt->sa, wpa_s->bssid, ETH_ALEN) != 0) { - wpa_printf(MSG_DEBUG, "WNM: Ignore unexpected WNM Action " - "frame"); + (os_memcmp(mgmt->sa, wpa_s->bssid, ETH_ALEN) && + os_memcmp(mgmt->sa, wpa_s->ap_mld_addr, ETH_ALEN))) { + wpa_printf(MSG_DEBUG, + "WNM: Ignore unexpected WNM Action frame"); return; } From patchwork Wed Dec 13 14:04:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875667 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=JqhAQWJ1; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=Gn8f7Mwg; 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 4Sqy1Q2C31z20Qm for ; Thu, 14 Dec 2023 01:05:30 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=qFvRJCcqYg+hhCmtV5MKGhsmdLl6Y+mAAHByMf2ooA8=; b=JqhAQWJ1IeqIly OUI9Bg9JNa9+5s6jQrMUS6qkvkl+stGRmkIokqhBzra8glOwsaXbmeZFu3yhm19pJ+bTEZM9mqXqM PfA4SnYrzBrmaEoiSss6aez6m2lbwBcVkpKSCgWKg6BdoT0JXoFWt2+EGCaYTdo0S/NQ9YZo/4S5L snzQ+VsWp1ZFh8V+TEAKKjhtDPuz0RcYAFkoUfVvBat5Y1IkkFxCFhkgfBTlWuGJBgDCs0Ms16dFf JGkK3RbRCIjgevByp8SnniyVgcUvOuYEKFlpHCDfGB2ezuhfsb7YZcgrLz6+bwPncpueUiW6bsG/6 zndarjgB+r8lpE9P+pww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPr4-00Ex5o-0S; Wed, 13 Dec 2023 14:04:54 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPqx-00Ex30-2h for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:04:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476291; x=1734012291; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=GFUDVYXA89teOImZ92IWLxoS1ipJALNhu9fOh4Up3O4=; b=Gn8f7MwggOuv7B/pujjz5xLIoqaZw4ZPsYzaIsxINCDAEkUWcYfzBLc4 ItpUJA29E7XkksYqHPE6YMO1l1dEgiimTmVam4ZWJay0nVkdUKRLr3vbd E/ZRtQ4ADCPkKsKhWLvaoC7VfW/A9vi7o3xLXAcerjN+MQ3M6FvOBsOtm 5VlyjDPjgrtZeK8bfRHdPwMnSWtYdKLbjyvN7qDq0+4u9wJ9VvQ2MwhoE 4Lh84a0HkweJ+1O3dLDpAl8B5vY8YdL6hVUt/2fRYtG0Z7/WU6TaQ3hIz QvmJE99ICQk+Ssa/bgX73Cf8y4olH1TF2ycVNY05RJw2RrSHSon/C53A6 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808167" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808167" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723659924" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723659924" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:42 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Ilan Peer Subject: [PATCH 3/8] AP: Use AP MLD address when sending de-authentication and disassociation Date: Wed, 13 Dec 2023 16:04:07 +0200 Message-Id: <20231213140412.326465-3-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060450_936563_A445C584 X-CRM114-Status: GOOD ( 11.17 ) 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: From: Ilan Peer Signed-off-by: Ilan Peer --- src/ap/ap_drv_ops.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c index 11a4eac822..fd0f97748e 100644 --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c @@ -832,15 +832,21 @@ int hostapd_drv_sta_deauth(struct h [...] Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 From: Ilan Peer Signed-off-by: Ilan Peer --- src/ap/ap_drv_ops.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c index 11a4eac822..fd0f97748e 100644 --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c @@ -832,15 +832,21 @@ int hostapd_drv_sta_deauth(struct hostapd_data *hapd, const u8 *addr, int reason) { int link_id = -1; + const u8 *own_addr = hapd->own_addr; #ifdef CONFIG_IEEE80211BE - if (hapd->conf->mld_ap) + if (hapd->conf->mld_ap) { + struct sta_info *sta = ap_get_sta(hapd, addr); + link_id = hapd->mld_link_id; + if (sta && sta->mld_info.mld_sta) + own_addr = hapd->mld_addr; + } #endif /* CONFIG_IEEE80211BE */ if (!hapd->driver || !hapd->driver->sta_deauth || !hapd->drv_priv) return 0; - return hapd->driver->sta_deauth(hapd->drv_priv, hapd->own_addr, addr, + return hapd->driver->sta_deauth(hapd->drv_priv, own_addr, addr, reason, link_id); } @@ -848,9 +854,20 @@ int hostapd_drv_sta_deauth(struct hostapd_data *hapd, int hostapd_drv_sta_disassoc(struct hostapd_data *hapd, const u8 *addr, int reason) { + const u8 *own_addr = hapd->own_addr; + +#ifdef CONFIG_IEEE80211BE + if (hapd->conf->mld_ap) { + struct sta_info *sta = ap_get_sta(hapd, addr); + + if (sta && sta->mld_info.mld_sta) + own_addr = hapd->mld_addr; + } +#endif /* CONFIG_IEEE80211BE */ + if (!hapd->driver || !hapd->driver->sta_disassoc || !hapd->drv_priv) return 0; - return hapd->driver->sta_disassoc(hapd->drv_priv, hapd->own_addr, addr, + return hapd->driver->sta_disassoc(hapd->drv_priv, own_addr, addr, reason); } From patchwork Wed Dec 13 14:04:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875668 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=LYJw2g84; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=e0ov9Rj4; 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 4Sqy1V6zWlz20H6 for ; Thu, 14 Dec 2023 01:05:34 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=8UHop8xZ68Z85E7afdAOIxbBXBISMJgrkQ0FohkbLZI=; b=LYJw2g84V/+Zfg hOhUqJ9w+fDt1YLUyF4KVH54pSKwBf6tcSiofzuKmw/zG7p8EQYD+hCKRMENGch+UAN1q+aQ+yLyt /pAUV/bZCbVpsYTaf2H1L8NxK4sK9YFpEzhBnTjyP06mnwnb+gLFB3w/ucNAxb6+jGHzm23jAy23X p/3EOXa8va3xtXMF/jOZerqfzC1ceiCRXl9hx5CS7JRNRsmmmLkPeXD+W/ShsmzXCVnCEgZn1ab44 kNXa04b9LEoN3d+uRWrK/pepDazEdw5WL049ZKyuzvStxvMo86iZhomkdHo2VDfQ1pSkL/v+p2+cC 0AF2ZXgQE1fK3Jq5rxzw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPr9-00Ex9I-2Q; Wed, 13 Dec 2023 14:04:59 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPr6-00Ex30-0z for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:04:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476296; x=1734012296; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=OVUwPzQ5UoH3i0la2xXvQsvrZvUf2/Nvl73c4rd0w38=; b=e0ov9Rj4igowSkqxM5xchRo6oboAKv16BCIKjheXTRGpYETkyZfrlq3U FZwXvJ8eoHrOSmkID1kHjAKnZNoMN2qYUw+dP7oUaPcsycOO2eViE5Jrb GHOKdLfRqTVkXgOnRCO5pDHOp2zqIU4ijgJglUKDnijNUkx2W3kHUCuCk hqTPQnRj3/2wMpEQUYiOrCfUJSKY+vCVq0Y7xkoMTfaUEA36YPXHX9x0u SUJ3fGgusodQl/8TQ2Xsf0f8WuNcDLCAo5JEedHbWF59Xnuz3aFZP1qY2 3y3OgwjSu3agVajEaaR24D898gYUd+rGZ3/Ws/9fgxnIasRvhKMJQ8klt w==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808178" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808178" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723660029" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723660029" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:51 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Ilan Peer Subject: [PATCH 4/8] AP: When sending action frames, use MLD address if needed Date: Wed, 13 Dec 2023 16:04:08 +0200 Message-Id: <20231213140412.326465-4-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060456_398718_DFB1CD39 X-CRM114-Status: GOOD ( 12.56 ) 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: From: Ilan Peer When the AP sends an action frame to an MLO station, use the AP mld address instead of the local AP address. Signed-off-by: Ilan Peer --- src/ap/ap_drv_ops.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 From: Ilan Peer When the AP sends an action frame to an MLO station, use the AP mld address instead of the local AP address. Signed-off-by: Ilan Peer --- src/ap/ap_drv_ops.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c index fd0f97748e..2a546daff7 100644 --- a/src/ap/ap_drv_ops.c +++ b/src/ap/ap_drv_ops.c @@ -886,17 +886,18 @@ int hostapd_drv_send_action(struct hostapd_data *hapd, unsigned int freq, unsigned int wait, const u8 *dst, const u8 *data, size_t len) { + const u8 *own_addr = hapd->own_addr; const u8 *bssid; const u8 wildcard_bssid[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + struct sta_info *sta; if (!hapd->driver || !hapd->driver->send_action || !hapd->drv_priv) return 0; bssid = hapd->own_addr; if (!is_multicast_ether_addr(dst) && len > 0 && data[0] == WLAN_ACTION_PUBLIC) { - struct sta_info *sta; /* * Public Action frames to a STA that is not a member of the BSS @@ -914,9 +915,19 @@ int hostapd_drv_send_action(struct hostapd_data *hapd, unsigned int freq, * so have to use the wildcard BSSID value. */ bssid = wildcard_bssid; +#ifdef CONFIG_IEEE80211BE + } else if (hapd->conf->mld_ap) { + sta = ap_get_sta(hapd, dst); + + if (sta && sta->mld_info.mld_sta) { + own_addr = hapd->mld_addr; + bssid = own_addr; + } +#endif /* CONFIG_IEEE80211BE */ } + return hapd->driver->send_action(hapd->drv_priv, freq, wait, dst, - hapd->own_addr, bssid, data, len, 0); + own_addr, bssid, data, len, 0); } From patchwork Wed Dec 13 14:04:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875669 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=pZf6b7bQ; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=F52alZGq; 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 4Sqy1m4FY3z20H6 for ; Thu, 14 Dec 2023 01:05:48 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=P6ud5Fp22ZsfhWZIUUE7kv1u+TmIvlGwCW0VmTS4reA=; b=pZf6b7bQtkKEOF mizfzpRZG68vIrJN5c4tDtCfBIAeuDuP6G6UgGb9Hh1JSmeHOJEpi+Mk3HslxKiLPubjIA3FvuuxK UBnJ0PCL7T3gsjrbIOQ1efJjTAhlaktQg9Ia/que6zihE/XB1tZhjwQMpDvBZf/OJRPtCpqBAaETf pxGZvehDL/4v6BXeyQsMJptTFYdE3zpVKBx+Z1GA8u9sXI+snDG/tKezXo1gPFg7QT2zFSTnocWjT KlHdUmjvJ6HN9ps/SHBC+ljQSXJ78cB7BV3jRpEYj5eBAezP1zDdeWPfFIV2+qM3z1c/XerYowWZp r7xeISGDP5cMWN97IxaA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrI-00ExG5-04; Wed, 13 Dec 2023 14:05:08 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrD-00Ex30-0j for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:05:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476303; x=1734012303; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=DnBK/6Ruo5i9Sp06ilmyYm2tmuy7mUaE8WM2EurVsYk=; b=F52alZGqo0rGimbRscZcbiMY1yJZUBoV6saky3/8dip07sN4H3Mp+MN4 A8sJGPw0k2g9ss385ATkN3EtdCaBP/wmYoqJcDQaBh8tzNmeLvny+Sz/4 pZ6dFnFdj6sQERI6oPav4piSHWs1hye+Q1+018PDDPjciOwcqgubrrKoA Ov/ByeT9oPzntjQQurWb/vbPH0R45N0FqBjtocQYuqyo1DvkOUGoDaDzU 57eA3U7ZnBXDOl+sh3inpWmEbtuRpuuZaL4qm8sRIU4mQjdMDvm6mbN8K ZHXFdN4IzsH7GeVGZucA6kiFaI1QKgyNOrcKwevFrqITa1vOpS752qMXt w==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808202" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808202" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:05:03 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723660100" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723660100" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:04:57 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Ilan Peer Subject: [PATCH 5/8] AP: MLD: Extend BSS transition management request Date: Wed, 13 Dec 2023 16:04:09 +0200 Message-Id: <20231213140412.326465-5-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060503_331607_E5EEA62D X-CRM114-Status: UNSURE ( 7.92 ) X-CRM114-Notice: Please train this message. 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: From: Ilan Peer To also support link removal imminent indication Signed-off-by: Ilan Peer --- src/ap/ctrl_iface_ap.c | 2 ++ 1 file changed, 2 insertions(+) Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 From: Ilan Peer To also support link removal imminent indication Signed-off-by: Ilan Peer --- src/ap/ctrl_iface_ap.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c index 3c4c4b1f7b..32a5b8ecdd 100644 --- a/src/ap/ctrl_iface_ap.c +++ b/src/ap/ctrl_iface_ap.c @@ -1315,6 +1315,8 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd, req_mode |= WNM_BSS_TM_REQ_ABRIDGED; if (os_strstr(cmd, " disassoc_imminent=1")) req_mode |= WNM_BSS_TM_REQ_DISASSOC_IMMINENT; + if (os_strstr(cmd, " link_removal_imminent=1")) + req_mode |= WNM_BSS_TM_REQ_LINK_REMOVAL_IMMINENT; #ifdef CONFIG_MBO pos = os_strstr(cmd, "mbo="); From patchwork Wed Dec 13 14:04:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875670 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=CiCjPcyL; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=BrcNnsrN; 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 4Sqy1v53mvz20H6 for ; Thu, 14 Dec 2023 01:05:55 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=R3m1aYko2FwnJhSqnN6SVz193fZbk/w++Xtlh4VPgi4=; b=CiCjPcyLwR0ry3 6HXAnvOQ8/vp35kuOyvxlTTSTI0YFrFzD2VJzeKlp1KiiLhsEmxIum/k3u3E66Xc5LjjBR/BrvOCR uSSQ0MnEm3vlGRjimFqitAI99YbsZqez934HKNkkp30NmCg04OEnCuimsRw6JZVwnMhE/DBlNIGTs xa3gAp+qABgoPnd/zHKy4T+t2AT/c1TzRF/5vkfrV58FHOeMQegUpyMOkNTD/pDdAWnjVee88/4CM GaC1xHhJNM6fZXaMg6FqR0/cVwJMT45t4WUHUwXebEbEoBskwfmoKScKCjcaVichjld6mg3CK3dlw 6Kb6bTRaXHym4ShZmLJQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrM-00ExIk-18; Wed, 13 Dec 2023 14:05:12 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrJ-00Ex30-2d for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:05:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476310; x=1734012310; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=R0Aq2NcC22O2oUwC/86NEFWPa6qngskwEoHcoE6dGV8=; b=BrcNnsrNxd7/TsKLBg7U/s74d91Atgetj81P+XmJejY9ukqqf+7TBlcx FugC3PB5KLB3xmfx7NTZAFyeIwwbVzs0jNkldnGx29lA54jjkMTWzjoZn vRCL/Kc/kVmJQKl0UPlV9iQJ7W3tlcCo6fhNW8brtkR2OI0cEm5RT4x9N hTJZRyYKj/WHEwQ4XdcrunbsqSQbcXpqhJiuLKE25eO5Hx1XRCGYuCzJf i7+TGylCTBcpphATadt9BfDyDtBlC8lBqAobhKXMy5STTt5Cf/GRNV3Fg VwWYpk/eenm/pI5pLLzSnTuKNyjPomRpmMuhxhAUm0SRSh2eIWDE043mb A==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808240" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808240" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:05:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723660168" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723660168" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:05:07 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Ilan Peer , Andrei Otcheretianski Subject: [PATCH 6/8] WNM: Handle BTM request with "Link Removal Imminent" Date: Wed, 13 Dec 2023 16:04:10 +0200 Message-Id: <20231213140412.326465-6-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060509_904363_BB5B20D3 X-CRM114-Status: GOOD ( 12.08 ) 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: From: Ilan Peer Based on Draft P802.11be_D3.0, when a station is non-AP MLD with more then one link and "Link Removal Imminent" is set, the "Disassociation Imminent" and "BSS Termination Included" can be ignored, as [...] Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 From: Ilan Peer Based on Draft P802.11be_D3.0, when a station is non-AP MLD with more then one link and "Link Removal Imminent" is set, the "Disassociation Imminent" and "BSS Termination Included" can be ignored, as the station will not be disassociated. Signed-off-by: Ilan Peer Signed-off-by: Andrei Otcheretianski --- src/common/ieee802_11_defs.h | 11 ++++++----- wpa_supplicant/wnm_sta.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/common/ieee802_11_defs.h b/src/common/ieee802_11_defs.h index cd33f6a8f5..2d865e639c 100644 --- a/src/common/ieee802_11_defs.h +++ b/src/common/ieee802_11_defs.h @@ -1880,11 +1880,12 @@ enum wnm_action { }; /* IEEE 802.11v - BSS Transition Management Request - Request Mode */ -#define WNM_BSS_TM_REQ_PREF_CAND_LIST_INCLUDED BIT(0) -#define WNM_BSS_TM_REQ_ABRIDGED BIT(1) -#define WNM_BSS_TM_REQ_DISASSOC_IMMINENT BIT(2) -#define WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED BIT(3) -#define WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT BIT(4) +#define WNM_BSS_TM_REQ_PREF_CAND_LIST_INCLUDED BIT(0) +#define WNM_BSS_TM_REQ_ABRIDGED BIT(1) +#define WNM_BSS_TM_REQ_DISASSOC_IMMINENT BIT(2) +#define WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED BIT(3) +#define WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT BIT(4) +#define WNM_BSS_TM_REQ_LINK_REMOVAL_IMMINENT BIT(5) /* IEEE Std 802.11-2012 - Table 8-253 */ enum bss_trans_mgmt_status_code { diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c index 493821b37f..bcbd8c04c9 100644 --- a/wpa_supplicant/wnm_sta.c +++ b/wpa_supplicant/wnm_sta.c @@ -1479,6 +1479,20 @@ static void ieee802_11_rx_bss_trans_mgmt_req(struct wpa_supplicant *wpa_s, } #endif /* CONFIG_MBO && CONFIG_TESTING_OPTIONS */ + /* + * Based on Draft P802.11be_D3.0, when a station is non-AP MLD with more + * then one link and "link removal imminent" is set, the below flags can + * be ignored, as the station will not be disassociated. + */ + if ((wpa_s->valid_links & (wpa_s->valid_links - 1)) != 0 && + wpa_s->wnm_mode & WNM_BSS_TM_REQ_LINK_REMOVAL_IMMINENT && + (wpa_s->wnm_mode & WNM_BSS_TM_REQ_DISASSOC_IMMINENT || + wpa_s->wnm_mode & WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED)) { + wpa_printf(MSG_INFO, + "WNM: BTM request for single MLO link. ignore"); + return; + } + pos += 5; if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_BSS_TERMINATION_INCLUDED) { From patchwork Wed Dec 13 14:04:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875671 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=kCeiF0q/; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=X/mJk4YQ; 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 4Sqy1y0nNMz20H6 for ; Thu, 14 Dec 2023 01:05:58 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=qdnOD85bV9RC113SsIaF9b0ObkwGjt+KG0PsrMdqzVc=; b=kCeiF0q/mkCQoi Bv/tcq4mJgsZBIutxNxsJ3pFsDKzo2A9uKj8o809WgpFH5CsViztvCWg9cK/74Bj+VnGhZ2Z5mZYK CYDWiyN4PVR3H4MDWvhdsk03bPfCBUOZBDbNsHYDndVMhmJfrF4UUNlpcWLQzVTeqxHQS6a8b7TAS O5aBE7cGoTC85TpFgegJVhjB+w/nQgS+qQ6lG/xOYUClp/V9x/aqZXivgy1EG1nuxhaLyuSjhh8EY G2rSKBWdEj7BIDui9go1z2vVFZGq9ry19Z4auglg21jkQCSPu4VLidvWM/wF3bQVUOwFPngD9iGHg nvljL9HK3SnMmBr3wMVQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrT-00ExNO-0J; Wed, 13 Dec 2023 14:05:19 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrO-00Ex30-2a for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:05:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476315; x=1734012315; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=reZEgBDQoNCtj2JYmNjPSQKU1q39MhYmz9U+F6BNDeE=; b=X/mJk4YQ9DBmDxvXKz08Xo3hdHNzNVoPOkyovHUYpSaaadpc6Zv38nTm /BgtjM5FsDcBCe1+7iyVvEA5Dr9NEx01c9BhdIqi44ZvaedAtsS7M2Hbh 8+7xmirvTpndupOSSnVfgLXH+GnUetr+24yvkfSvY6u80a0q/h5GR0Yv5 v2PQKPHe5cVyBy394BcGlcWT+ZJrgpmr5uihs+U+UtI52Gu/AANFuioKb FRH0BffBTt/aI7Gby7AWWJoYhmgHbapzgX7RHvHw4b0IR7dMkRxKMaNPw 9jSrWB+CpH8kQLlhjuLvYhR2I5YuhnDYyLXCSv73s5d5bpeDSCIR/4FY5 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808257" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808257" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:05:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723660205" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723660205" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:05:12 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Ilan Peer Subject: [PATCH 7/8] tests: Verify BTM request with link removal imminent flow Date: Wed, 13 Dec 2023 16:04:11 +0200 Message-Id: <20231213140412.326465-7-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060514_886501_A1E1FC74 X-CRM114-Status: UNSURE ( 9.08 ) X-CRM114-Notice: Please train this message. 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: From: Ilan Peer Signed-off-by: Ilan Peer --- tests/hwsim/test_eht.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/hwsim/test_eht.py b/tests/hwsim/test_eht.py index dbffe172f5..c1a6b17121 100644 --- a/tests/hwsim/test_eht.py +++ b/tests/hwsim/test_eht.py @@ -882,3 +882,40 @@ def test_eht_mld_lin [...] Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 From: Ilan Peer Signed-off-by: Ilan Peer --- tests/hwsim/test_eht.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/hwsim/test_eht.py b/tests/hwsim/test_eht.py index dbffe172f5..c1a6b17121 100644 --- a/tests/hwsim/test_eht.py +++ b/tests/hwsim/test_eht.py @@ -882,3 +882,40 @@ def test_eht_mld_link_removal(dev, apdev): logger.info("Test traffic after 1st link disabled") traffic_test(wpas, hapd0, success=False) + +def test_eht_mld_bss_trans_mgmt_link_removal_imminent(dev, apdev): + """EHT MLD with two links. BSS transition management with link removal imminent""" + + with HWSimRadio(use_mlo=True) as (hapd0_radio, hapd0_iface), \ + HWSimRadio(use_mlo=True) as (wpas_radio, wpas_iface): + + wpas = WpaSupplicant(global_iface='/tmp/wpas-wlan5') + wpas.interface_add(wpas_iface) + + ssid = "mld_ap_owe_two_link" + params = eht_mld_ap_wpa2_params(ssid, key_mgmt="OWE", mfp="2") + params["bss_transition"] = "1" + params["mbo"] = "1" + + hapd0 = eht_mld_enable_ap(hapd0_iface, params) + + params['channel'] = '6' + + hapd1 = eht_mld_enable_ap(hapd0_iface, params) + + wpas.connect(ssid, scan_freq="2412 2437", key_mgmt="OWE", ieee80211w="2") + eht_verify_status(wpas, hapd0, 2412, 20, is_ht=True, mld=True, valid_links=3, + active_links=3) + eht_verify_wifi_version(wpas) + traffic_test(wpas, hapd0) + + addr = wpas.own_addr() + cmd = "BSS_TM_REQ " + addr + " disassoc_timer=3 disassoc_imminent=1 link_removal_imminent=1" + + if "OK" not in hapd0.request(cmd): + raise Exception("BSS_TM_REQ command failed") + + # The station is expected to ignore the BSS TM request as it is associated with multiple links + ev = hapd0.wait_event(['BSS-TM-RESP'], timeout=2) + if ev: + raise Exception("Unexpected BSS TM response: " + ev ) From patchwork Wed Dec 13 14:04:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Otcheretianski X-Patchwork-Id: 1875672 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=zmXAd/f1; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=QR/idQZL; 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 4Sqy204fcYz20H6 for ; Thu, 14 Dec 2023 01:06:00 +1100 (AEDT) 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: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:In-Reply-To:References: List-Owner; bh=rqyBfHKsrVmH6tWLNJV3ympsYXmJXvTKO8y0ihXXFD0=; b=zmXAd/f177SNGJ nWuE9Pgw1bq38WEFbYhGDzJsqxsEGq3A7h+IKbNiOgMhkl2eT1Kxe9lBMlOrG7RDJaTYpLvSC+XO2 XWsFJEgBy+iAe9ln/w7WKx2O8++VQ1kLxF1JqBOWYVWw7L9RSKY5qWA/BhPdpWqNAWxo0x2oNHK6v cvoDnSU27lgKOV+bFNpn3tUZHzoiCahA1YegG18IcOgU4wGzGWbWDn81JJdAwfrI0g+aHRFqCVTqR inMiJ+h+hb8Fr+K1yGL6TdjD4eMMKyFs3zdxQzaBZEeKx5WQzWf03fl8tbYYpgeohUaMkvqqTjhzd r20egS6DXN+kg2vP91mQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrY-00ExRG-1U; Wed, 13 Dec 2023 14:05:24 +0000 Received: from mgamail.intel.com ([198.175.65.11]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rDPrV-00Ex30-1V for hostap@lists.infradead.org; Wed, 13 Dec 2023 14:05:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702476322; x=1734012322; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=LfiNvQexr0YfHNC6cMCxcvI+sYrqOx5T57IBAIPFPdU=; b=QR/idQZLMN4+qoP2E+/xE5pKuK60hKqDyLYW3PavenBwcOIJ2I/HAGrO 3/YJXsGyY9TMC4bGpBsh6gkgIdy9mhJz+h6KPd1OvStIbIRk4TNiecPbi 1ZcDmATfvboRN5DKa04yfzxX6zflrJbhQW3I4fzUmJYfmKvLMK7ks9BnE ohev6etxS2gql7av7HudWPCrDawwIYtOgSKr1pDfcifBfNfqIwPR5phL1 3PelNRieaN9nkf5SFnafDtXfDZMJX6eOsY4Zr5TKYkuIc9HXHKoif2cZQ pKVx/nWwWtkofr16ZCJ+G0kzNFVuwAttcMGm6XkiY1IIuOoHGAMcbnJ71 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="1808282" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="1808282" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:05:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="723660269" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="723660269" Received: from mwaksma1-mobl1.ger.corp.intel.com (HELO localhost.localdomain) ([10.254.159.208]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 06:05:19 -0800 From: Andrei Otcheretianski To: hostap@lists.infradead.org Cc: Andrei Otcheretianski , Ilan Peer Subject: [PATCH 8/8] WNM: Skip current connection BSS when disassociate imminent is set Date: Wed, 13 Dec 2023 16:04:12 +0200 Message-Id: <20231213140412.326465-8-andrei.otcheretianski@intel.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231213_060521_570173_85E57D8C X-CRM114-Status: GOOD ( 17.50 ) 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: During scan results matching for connection skip BSS entires for the current connection if disassociation imminent is set. Signed-off-by: Ilan Peer Signed-off-by: Andrei Otcheretianski --- wpa_supplicant/events.c | 8 ++++++++ wpa_supplicant/wnm_sta.c | 37 +++++++++++ [...] Content analysis details: (-0.4 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 SPF_NONE SPF: sender 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 During scan results matching for connection skip BSS entires for the current connection if disassociation imminent is set. Signed-off-by: Ilan Peer Signed-off-by: Andrei Otcheretianski --- wpa_supplicant/events.c | 8 ++++++++ wpa_supplicant/wnm_sta.c | 37 +++++++++++++++++++++++++++++++++++++ wpa_supplicant/wnm_sta.h | 2 +- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 4644f54888..600d27d5b3 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -1689,6 +1689,14 @@ struct wpa_ssid * wpa_scan_res_match(struct wpa_supplicant *wpa_s, return NULL; } +#ifdef CONFIG_WNM + if (wnm_is_bss_excluded(wpa_s, bss)) { + if (debug_print) + wpa_dbg(wpa_s, MSG_DEBUG, " skip - BSSID excluded"); + return NULL; + } +#endif /* CONFIG_WNM */ + for (ssid = group; ssid; ssid = only_first_ssid ? NULL : ssid->pnext) { if (wpa_scan_res_ok(wpa_s, ssid, match_ssid, match_ssid_len, bss, bssid_ignore_count, debug_print)) diff --git a/wpa_supplicant/wnm_sta.c b/wpa_supplicant/wnm_sta.c index bcbd8c04c9..6a2c874475 100644 --- a/wpa_supplicant/wnm_sta.c +++ b/wpa_supplicant/wnm_sta.c @@ -2058,3 +2058,40 @@ void wnm_clear_coloc_intf_reporting(struct wpa_supplicant *wpa_s) wpa_s->coloc_intf_auto_report = 0; #endif /* CONFIG_WNM */ } + +int wnm_is_bss_excluded(struct wpa_supplicant *wpa_s, struct wpa_bss *bss) +{ + /* + * In case disassociation imminent is set, do no try to use a BSS to + * which we are connected. + */ + if (wpa_s->wnm_mode & WNM_BSS_TM_REQ_DISASSOC_IMMINENT) { + unsigned int i; + + if (wpa_s->current_bss && + !os_memcmp(wpa_s->current_bss->bssid, + bss->bssid, + ETH_ALEN)) { + wpa_dbg(wpa_s, MSG_DEBUG, + "WNM: disassociation imminent: current BSS"); + return 1; + } + + if (!wpa_s->valid_links) + return 0; + + for (i = 0; i < MAX_NUM_MLD_LINKS; i++) { + if (!(wpa_s->valid_links & BIT(i))) + continue; + + if (!os_memcmp(wpa_s->links[i].bssid, + bss->bssid, ETH_ALEN)) { + wpa_dbg(wpa_s, MSG_DEBUG, + "WNM: MLD: disassociation imminent"); + return 1; + } + } + } + + return 0; +} diff --git a/wpa_supplicant/wnm_sta.h b/wpa_supplicant/wnm_sta.h index e4957e48aa..6f2408e9eb 100644 --- a/wpa_supplicant/wnm_sta.h +++ b/wpa_supplicant/wnm_sta.h @@ -70,7 +70,7 @@ int wnm_send_coloc_intf_report(struct wpa_supplicant *wpa_s, u8 dialog_token, const struct wpabuf *elems); void wnm_set_coloc_intf_elems(struct wpa_supplicant *wpa_s, struct wpabuf *elems); - +int wnm_is_bss_excluded(struct wpa_supplicant *wpa_s, struct wpa_bss *bss); #ifdef CONFIG_WNM