From patchwork Wed May 13 09:59:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237629 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=oAk3bdq6; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=eAjexB31; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=g/tD20OV; 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 4gFpsz55Mbz1yJ5 for ; Wed, 13 May 2026 20:02:31 +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=YM/SuGVeGXy520XfvX8nxJ95ldpamqBRbB0bzucMV6g=; b=oAk3bdq62JRpfR I3IIAEpoWA9kDrI1VlDqiarHCyqOGX38tFhWqu2IIJxOCp3vyvGNMuOOoPVlKjqDddU61zyldIDkT qV/tV9pf0OBWR0Yh7m6ERPPgkXIZOXFEoUnIzkQlEZFcuB+BxI4Nr0r14WQlYmzYaM95tWYYgPSvJ v9UOk7xNgtymIQkWOn9+CSz7a8ky71AGscV801pbgcrD9jjAXGDBgDShDQC0jp5neSILFd6yMa90X FnqnGQEtvbZYIjbaFfgHnfxB5fOm9HBwYQtQ7aGHTbgjaCFLUvgi/5I/IqjOIkqXId/0+5OVxHgBp dDSWjex29FTj2PeRKFmg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6OW-000000020e5-29Pl; Wed, 13 May 2026 10:00:48 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6OR-000000020cT-3oDf for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:46 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pGW02338913 for ; Wed, 13 May 2026 10:00:43 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=z2NvlkkPK2m ss9P5oLUgO9kFeDXK1NEBOWgESPn2jBs=; b=eAjexB31DDkCnw9VbHjp3kmHIbr 9G6rzOSLCK38+PF1r4iK6nwBZzILeuvxbotwvFgDAJmKYhDhDSyQCmGhqQ3e5QS+ Ha/pE3QvRyVsBGfGasV48Fr8zq18SIqis3YK8iunII3hsOELwXPyR/B+dXeykhJi C9P2tmZtewlVSeUnW7h6X7yBPkQ1f2ebm4K3gsx4SsFZ1weY+xusGzl7eZgK8vtj N+1jOKKhLYqSvm6z8ZKUQCJ8vtSGh7ywClXTtlUYSPwIeonEEMMG1SuXoMTZWlZK 6Oauit9esjMX7/ud6REYwNoGDsSCclxcepLUn1+GWHqa/PCL7Ky919oNEuQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavtr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:42 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b2e8bba2e6so86136535ad.1 for ; Wed, 13 May 2026 03:00:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666442; x=1779271242; darn=lists.infradead.org; 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=z2NvlkkPK2mss9P5oLUgO9kFeDXK1NEBOWgESPn2jBs=; b=g/tD20OV8PlKOa2UlmzzUuwNAE8cIsudeaAGqWcTv5wamdQt5bhsD7a8RGq3FhxHYm 5sdDaCMSdcGdrP/y90YYfrij+V2v8X9RKZaoZx9p2cwGTR+DNFEAsz0A/ruDZ+Htv2ge fUODF0m38kuo4bF6qeeYrDhmJfhwjYT4Xc/6RNprjLx9po/o9soBQCbdmKFnX1eaxkN+ ngvmZfW1u87BExOw4j4PQkpwZVqQz0396jycd6qUU9bmxsfyZPNVhfLakjxDqC1+df7Q I/2RcMdLW2ovh7QLxqA6R4yOgKHPQzLzhHgMwXmSXv06+OI1PBv5fhnafZLBC0YHyPof sSYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666442; x=1779271242; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=z2NvlkkPK2mss9P5oLUgO9kFeDXK1NEBOWgESPn2jBs=; b=XWkvcOhmbZ3N0GUMc4KWiRPOxhgTUT8RAU8gltSdpttH7C8txgLtf9iKUSszh3NmOk 59cbj8M3HZoW7A8an1Z5Vc74hM/w6OvZo9tXy30xEwwiAWBkcyD9dcUvqca2qQw/TnZ8 8YksjQ2hHHG1DhEbnY0C3HWfYJfw+v3LUkBVdzzvxnU7SsETY7eITyYwUxiLI+FycWqT fXhwceEaWDzJj5PngPnWA8vjBIG6CFpzHz2iGqon2+Ip4HF9gYoPk6H6hCIL7kCvy+99 PnqIxK6IHR0BlhSeWs9J32Ng/CloThZxdPjUY7OvOIWtxZEzEuNGPclDCV5do0EhkZr8 xg6A== X-Gm-Message-State: AOJu0Yyo1cCz9tn0+5PzPv3OUhchlIWYjDQhRxym3q5Jgmmirprt1HRC Y1oQhzZh2xuPiXdFUFIia4Fw98N56c1UL+CWQYYbfsk+2+AFzVSX9Fj+vuEp5jWK3vUAH5iJInQ iEDpOpVOy2Wduw5JXDhfwCBBd/0Dc51VxV4jUaaqb9tuUDJ0n1+aYIg8XTAv9xe1gOKxATbpN X-Gm-Gg: Acq92OEYNf5SNU+9ihjRc9p0X2lwdiiC3CC918+Y6yKHVCY+qTlF1jbIwb0N6KGzo7m UO5Lr8Ks8GshZucOMOfy9nnA+Fv5yjrOQ26STZjLU7D8ZcLkBl5C4968r5PYEGsBsjFaHu436mn 1OdvFFp6v4d934/pDtMD/DOTXX+4KKglRy7Plxt2jVXCAQeHcpcZiW3fnj5bAMYWn7VaefX9E1I E/jXovRC76IScuYk1xiTITwS2mCmmgUO221qit4clZ0JTHsFk4X8FPhBrV566Sof89r6K9MUhBU 6kMSVZ4Zh9P0I2o+YUdtqo7EmkxrJ6a8ip4yuyuUu+BiOVC7A0BDNx0DvN9bW3nn/uhhG3p+qx0 71+LubA8Su1IpenNWD6+RDiS4gCv3Q7+/iQ4xw2RtPM3fSDEtdowRMA== X-Received: by 2002:a17:902:6b44:b0:2ba:83f8:7b7b with SMTP id d9443c01a7336-2bd2770a1a6mr24007245ad.33.1778666441220; Wed, 13 May 2026 03:00:41 -0700 (PDT) X-Received: by 2002:a17:902:6b44:b0:2ba:83f8:7b7b with SMTP id d9443c01a7336-2bd2770a1a6mr24006535ad.33.1778666440289; Wed, 13 May 2026 03:00:40 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:40 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 01/46] nl80211: Sync with wireless-next.git include/uapi/linux/nl80211.h Date: Wed, 13 May 2026 15:29:25 +0530 Message-Id: <20260513100010.1947710-2-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: hm1YGw0iVBqBXXNuqveVdUAWhrUqc3vz X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX8fv+o6QoVwP8 xnz3xIbBYTShMXAbX8Ao0tn48FHfVz3R7SHQR2j90xe2OnuC6n98SXj7TmBV+KUJ6paIcRtFQeC o895vsXQ5p2xSJ11Qzl433hirvES3DBiwuAkDIW9oH8yUtQuwg3T6YvUiKu8STCU9CyljMy7I7C Hj5XgiqiqzwfOgaJzt5UVwwftO7RsgFgZLwTG3n9ov0zJ8wKvhiGh5pZLY6ODSM9bqcLp6Si3m/ fWkWFe0PqNOYNBThXM8gtWGntGt3lJc9BBw3Io2nuiOBhzuerptQxWJYjKiChhFDPPun0bRc7OZ 2li5m3cD5jSnV7UblZ8pzGJRvRtGSVYw0zXEtVUYJq0mw8qnGLmB4HRuOqaGrJTq6PTaiHIx8Go Aalvlbp69MdHamUiKkKo2hKKOFPRqztiPAtIs9LhH2OaJIZoPfIBJCHaKEfL1MUjxvyWkY6Oqdv 7IjcbjOHrgqh+TsMINw== X-Proofpoint-GUID: hm1YGw0iVBqBXXNuqveVdUAWhrUqc3vz X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044bca cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=9GDywKREGw5lC7mZHnYA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1011 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030044_132238_300922E9 X-CRM114-Status: GOOD ( 24.53 ) X-Spam-Score: -2.8 (--) 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: This brings in nl80211 definitions as of 2026-05-05. Signed-off-by: Kavita Kavita --- src/drivers/driver_nl80211_event.c | 2 + src/drivers/nl80211_copy.h | 303 +++++++++++++++++++++++++++-- 2 files changed, 292 insertion [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 This brings in nl80211 definitions as of 2026-05-05. Signed-off-by: Kavita Kavita --- src/drivers/driver_nl80211_event.c | 2 + src/drivers/nl80211_copy.h | 303 +++++++++++++++++++++++++++-- 2 files changed, 292 insertions(+), 13 deletions(-) diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c index a281f5953..86503f62e 100644 --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c @@ -197,6 +197,8 @@ static const char * nl80211_command_to_string(enum nl80211_commands cmd) C2S(NL80211_CMD_NAN_SET_PEER_SCHED) C2S(NL80211_CMD_NAN_ULW_UPDATE) C2S(NL80211_CMD_NAN_CHANNEL_EVAC) + C2S(NL80211_CMD_START_PD) + C2S(NL80211_CMD_STOP_PD) C2S(__NL80211_CMD_AFTER_LAST) } #undef C2S diff --git a/src/drivers/nl80211_copy.h b/src/drivers/nl80211_copy.h index 3d55bf4be..9998f6c0a 100644 --- a/src/drivers/nl80211_copy.h +++ b/src/drivers/nl80211_copy.h @@ -729,7 +729,9 @@ * to remain on the channel. This command is also used as an event to * notify when the requested duration starts (it may take a while for the * driver to schedule this time due to other concurrent needs for the - * radio). + * radio). An optional attribute %NL80211_ATTR_MAC can be used to filter + * incoming frames during remain-on-channel, such that frames + * addressed to the specified destination MAC are reported. * When called, this operation returns a cookie (%NL80211_ATTR_COOKIE) * that will be included with any events pertaining to this request; * the cookie is also used to cancel the request. @@ -1204,10 +1206,12 @@ * user space through the connect result as the user space would have * initiated the connection through the connect request. * - * @NL80211_CMD_STA_OPMODE_CHANGED: An event that notify station's - * ht opmode or vht opmode changes using any of %NL80211_ATTR_SMPS_MODE, - * %NL80211_ATTR_CHANNEL_WIDTH,%NL80211_ATTR_NSS attributes with its - * address(specified in %NL80211_ATTR_MAC). + * @NL80211_CMD_STA_OPMODE_CHANGED: An event that notifies that a station's + * HT opmode or VHT opmode changed using any of %NL80211_ATTR_SMPS_MODE, + * %NL80211_ATTR_CHANNEL_WIDTH, %NL80211_ATTR_NSS attributes with its + * address (specified in %NL80211_ATTR_MAC). + * Note that 80+80 and 160 MHz might not be differentiated, i.e. may + * report %NL80211_CHAN_WIDTH_160 instead of %NL80211_CHAN_WIDTH_80P80. * * @NL80211_CMD_GET_FTM_RESPONDER_STATS: Retrieve FTM responder statistics, in * the %NL80211_ATTR_FTM_RESPONDER_STATS attribute. @@ -1415,6 +1419,12 @@ * identifying the evacuated channel. * User space may reconfigure the local schedule in response to this * notification. + * @NL80211_CMD_START_PD: Start PD operation, identified by its + * %NL80211_ATTR_WDEV interface. This interface must have been previously + * created with %NL80211_CMD_NEW_INTERFACE. + * @NL80211_CMD_STOP_PD: Stop the PD operation, identified by + * its %NL80211_ATTR_WDEV interface. + * * @NL80211_CMD_MAX: highest used command number * @__NL80211_CMD_AFTER_LAST: internal use */ @@ -1690,6 +1700,9 @@ enum nl80211_commands { NL80211_CMD_NAN_CHANNEL_EVAC, + NL80211_CMD_START_PD, + NL80211_CMD_STOP_PD, + /* add new commands above here */ /* used to define NL80211_CMD_MAX below */ @@ -2991,11 +3004,13 @@ enum nl80211_commands { * @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a * station interface. * - * @NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS: Extended MLD capabilities and - * operations that userspace implements to use during association/ML - * link reconfig, currently only "BTM MLD Recommendation For Multiple - * APs Support". Drivers may set additional flags that they support - * in the kernel or device. + * @NL80211_ATTR_EXT_MLD_CAPA_AND_OPS: Extended MLD capabilities and operations. + * For association and link reconfiguration, indicates extra capabilities + * that userspace implements, currently only "BTM MLD Recommendation For + * Multiple APs Support". + * For wiphy information, additional flags that drivers will set, but + * this is informational only for userspace (it's not expected to set + * these.) * * @NL80211_ATTR_WIPHY_RADIO_INDEX: (int) Integer attribute denoting the index * of the radio in interest. Internally a value of -1 is used to @@ -3140,6 +3155,16 @@ enum nl80211_commands { * association response etc., since it's abridged in the beacon. Used * for START_AP etc. * + * @NL80211_ATTR_ASSOC_ENCRYPTED: Flag attribute, used only with the + * %NL80211_CMD_CONNECT event in SME-in-driver mode. The driver should + * set this flag to indicate that both the (Re)Association Request frame + * and the corresponding (Re)Association Response frame are transmitted + * encrypted over the air. Enhanced Privacy Protection (EPP), as defined + * in IEEE P802.11bi/D4.0, mandates this encryption. + * + * @NL80211_ATTR_NPCA_PRIMARY_FREQ: NPCA primary channel (u32) + * @NL80211_ATTR_NPCA_PUNCT_BITMAP: NPCA puncturing bitmap (u32) + * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use @@ -3695,7 +3720,7 @@ enum nl80211_attrs { NL80211_ATTR_MLO_RECONF_REM_LINKS, NL80211_ATTR_EPCS, - NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS, + NL80211_ATTR_EXT_MLD_CAPA_AND_OPS, NL80211_ATTR_WIPHY_RADIO_INDEX, @@ -3733,6 +3758,11 @@ enum nl80211_attrs { NL80211_ATTR_NAN_MAX_CHAN_SWITCH_TIME, NL80211_ATTR_NAN_PEER_MAPS, + NL80211_ATTR_ASSOC_ENCRYPTED, + + NL80211_ATTR_NPCA_PRIMARY_FREQ, + NL80211_ATTR_NPCA_PUNCT_BITMAP, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, @@ -3747,6 +3777,7 @@ enum nl80211_attrs { #define NL80211_ATTR_SAE_DATA NL80211_ATTR_AUTH_DATA #define NL80211_ATTR_CSA_C_OFF_BEACON NL80211_ATTR_CNTDWN_OFFS_BEACON #define NL80211_ATTR_CSA_C_OFF_PRESP NL80211_ATTR_CNTDWN_OFFS_PRESP +#define NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS NL80211_ATTR_EXT_MLD_CAPA_AND_OPS /* * Allow user space programs to use #ifdef on new attributes by defining them @@ -3829,6 +3860,7 @@ enum nl80211_attrs { * @NL80211_IFTYPE_NAN_DATA: NAN data interface type (netdev); NAN data * interfaces can only be brought up (IFF_UP) when a NAN interface * already exists and NAN has been started (using %NL80211_CMD_START_NAN). + * @NL80211_IFTYPE_PD: PD device interface type (not a netdev) * @NL80211_IFTYPE_MAX: highest interface type number currently defined * @NUM_NL80211_IFTYPES: number of defined interface types * @@ -3851,6 +3883,7 @@ enum nl80211_iftype { NL80211_IFTYPE_OCB, NL80211_IFTYPE_NAN, NL80211_IFTYPE_NAN_DATA, + NL80211_IFTYPE_PD, /* keep last */ NUM_NL80211_IFTYPES, @@ -5790,6 +5823,18 @@ enum nl80211_key_default_types { * @NL80211_KEY_MODE: the mode from enum nl80211_key_mode. * Defaults to @NL80211_KEY_RX_TX. * @NL80211_KEY_DEFAULT_BEACON: flag indicating default Beacon frame key + * @NL80211_KEY_LTF_SEED: LTF key seed is used by the driver to generate + * secure LTF keys used in case of peer measurement request with FTM + * request type as either %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED + * or %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED. Secure LTF key seeds + * will help enable PHY security in peer measurement session. + * The LTF key seed is installed along with the TK (Temporal Key) using + * %NL80211_CMD_NEW_KEY. The TK is configured using the + * %NL80211_ATTR_KEY_DATA attribute, while the LTF key seed is configured + * using this attribute. Both keys must be configured before initiation + * of peer measurement to ensure peer measurement session is secure. + * Only valid if %NL80211_EXT_FEATURE_SET_KEY_LTF_SEED is set. This + * attribute is restricted to pairwise keys (%NL80211_KEYTYPE_PAIRWISE). * * @__NL80211_KEY_AFTER_LAST: internal * @NL80211_KEY_MAX: highest key attribute @@ -5806,6 +5851,7 @@ enum nl80211_key_attributes { NL80211_KEY_DEFAULT_TYPES, NL80211_KEY_MODE, NL80211_KEY_DEFAULT_BEACON, + NL80211_KEY_LTF_SEED, /* keep last */ __NL80211_KEY_AFTER_LAST, @@ -7029,6 +7075,16 @@ enum nl80211_feature_flags { * (NL80211_CMD_AUTHENTICATE) in non-AP STA mode, as specified in * "IEEE P802.11bi/D4.0, 12.16.5". * + * @NL80211_EXT_FEATURE_ROC_ADDR_FILTER: Driver supports MAC address + * filtering during remain-on-channel. When %NL80211_ATTR_MAC is + * provided with %NL80211_CMD_REMAIN_ON_CHANNEL, the driver will + * forward frames with a matching MAC address to userspace during + * the off-channel period. + * + * @NL80211_EXT_FEATURE_SET_KEY_LTF_SEED: Driver supports installing the + * LTF key seed via %NL80211_KEY_LTF_SEED. The seed is used to generate + * secure LTF keys for secure LTF measurement sessions. + * * @NUM_NL80211_EXT_FEATURES: number of extended features. * @MAX_NL80211_EXT_FEATURES: highest extended feature index. */ @@ -7108,6 +7164,8 @@ enum nl80211_ext_feature_index { NL80211_EXT_FEATURE_EPPKE, NL80211_EXT_FEATURE_ASSOC_FRAME_ENCRYPTION, NL80211_EXT_FEATURE_IEEE8021X_AUTH, + NL80211_EXT_FEATURE_ROC_ADDR_FILTER, + NL80211_EXT_FEATURE_SET_KEY_LTF_SEED, /* add new features before the definition below */ NUM_NL80211_EXT_FEATURES, @@ -7960,6 +8018,26 @@ enum nl80211_peer_measurement_resp { NL80211_PMSR_RESP_ATTR_MAX = NUM_NL80211_PMSR_RESP_ATTRS - 1 }; +/** + * enum nl80211_peer_measurement_ftm_req_type - FTM ranging request type, + * used with %NL80211_PMSR_PEER_ATTR_REQ_TYPE + * + * @NL80211_PMSR_FTM_REQ_TYPE_INFRA: infrastructure ranging, i.e. STA-to-AP + * @NL80211_PMSR_FTM_REQ_TYPE_PD: peer-to-peer ranging as defined in the + * Wi-Fi Alliance specification "Proximity Ranging (PR) Implementation + * Consideration Draft 1.9 Rev 1" + * @NUM_NL80211_PMSR_FTM_REQ_TYPE: internal + * @NL80211_PMSR_FTM_REQ_TYPE_MAX: highest request type value + */ +enum nl80211_peer_measurement_ftm_req_type { + NL80211_PMSR_FTM_REQ_TYPE_INFRA, + NL80211_PMSR_FTM_REQ_TYPE_PD, + + /* keep last */ + NUM_NL80211_PMSR_FTM_REQ_TYPE, + NL80211_PMSR_FTM_REQ_TYPE_MAX = NUM_NL80211_PMSR_FTM_REQ_TYPE - 1 +}; + /** * enum nl80211_peer_measurement_peer_attrs - peer attributes for measurement * @__NL80211_PMSR_PEER_ATTR_INVALID: invalid @@ -7973,6 +8051,9 @@ enum nl80211_peer_measurement_resp { * @NL80211_PMSR_PEER_ATTR_RESP: This is a nested attribute indexed by * measurement type, with attributes from the * &enum nl80211_peer_measurement_resp inside. + * @NL80211_PMSR_PEER_ATTR_REQ_TYPE: u32 attribute specifying the ranging + * request type, using values from &enum nl80211_peer_measurement_ftm_req_type. + * If absent, defaults to %NL80211_PMSR_FTM_REQ_TYPE_INFRA. * * @NUM_NL80211_PMSR_PEER_ATTRS: internal * @NL80211_PMSR_PEER_ATTR_MAX: highest attribute number @@ -7984,6 +8065,7 @@ enum nl80211_peer_measurement_peer_attrs { NL80211_PMSR_PEER_ATTR_CHAN, NL80211_PMSR_PEER_ATTR_REQ, NL80211_PMSR_PEER_ATTR_RESP, + NL80211_PMSR_PEER_ATTR_REQ_TYPE, /* keep last */ NUM_NL80211_PMSR_PEER_ATTRS, @@ -8010,6 +8092,18 @@ enum nl80211_peer_measurement_peer_attrs { * meaningless, just a list of peers to measure with, with the * sub-attributes taken from * &enum nl80211_peer_measurement_peer_attrs. + * @NL80211_PMSR_ATTR_MAX_PEER_ISTA_ROLE: u32 attribute indicating the + * maximum number of peers supported when the device operates in the + * ISTA (Initiator STA) role. If absent, no role-specific peer limit + * applies. The sum of %NL80211_PMSR_ATTR_MAX_PEER_ISTA_ROLE and + * %NL80211_PMSR_ATTR_MAX_PEER_RSTA_ROLE is enforced when the device + * supports concurrent ISTA/RSTA operation. + * @NL80211_PMSR_ATTR_MAX_PEER_RSTA_ROLE: u32 attribute indicating the + * maximum number of peers supported when the device operates in the + * RSTA (Responder STA) role. If absent, no role-specific peer limit + * applies. The sum of %NL80211_PMSR_ATTR_MAX_PEER_ISTA_ROLE and + * %NL80211_PMSR_ATTR_MAX_PEER_RSTA_ROLE is enforced when the device + * supports concurrent ISTA/RSTA operation. * * @NUM_NL80211_PMSR_ATTR: internal * @NL80211_PMSR_ATTR_MAX: highest attribute number @@ -8022,6 +8116,8 @@ enum nl80211_peer_measurement_attrs { NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR, NL80211_PMSR_ATTR_TYPE_CAPA, NL80211_PMSR_ATTR_PEERS, + NL80211_PMSR_ATTR_MAX_PEER_ISTA_ROLE, + NL80211_PMSR_ATTR_MAX_PEER_RSTA_ROLE, /* keep last */ NUM_NL80211_PMSR_ATTR, @@ -8080,6 +8176,54 @@ enum nl80211_peer_measurement_attrs { * This limits the allowed combinations of LTF repetitions and STS. * @NL80211_PMSR_FTM_CAPA_ATTR_RSTA_SUPPORT: flag attribute indicating the * device supports operating as the RSTA in PMSR FTM request + * @NL80211_PMSR_FTM_CAPA_ATTR_ISTA_CAPS: nested attribute containing ISTA + * (initiator) role capabilities. Uses the same sub-attributes as + * %NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS. + * @NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS: nested attribute containing RSTA + * (responder) role capabilities. + * @NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_NTB: flag attribute (used inside + * %NL80211_PMSR_FTM_CAPA_ATTR_ISTA_CAPS or + * %NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS) indicating NTB ranging support. + * @NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_TB: flag attribute (used inside + * %NL80211_PMSR_FTM_CAPA_ATTR_ISTA_CAPS or + * %NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS) indicating TB ranging support. + * @NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_EDCA: flag attribute (used inside + * %NL80211_PMSR_FTM_CAPA_ATTR_ISTA_CAPS or + * %NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS) indicating EDCA based ranging + * support. + * @NL80211_PMSR_FTM_CAPA_ATTR_TYPE_CAPS: nested attribute containing ranging + * type capabilities. Uses sub-attributes from + * &enum nl80211_peer_measurement_ftm_type_capa. + * @NL80211_PMSR_FTM_CAPA_ATTR_CONCURRENT_ISTA_RSTA_SUPPORT: flag attribute + * indicating that the device can simultaneously act as initiator and + * responder in a multi-peer measurement request. Only valid if + * @NL80211_PMSR_FTM_CAPA_ATTR_RSTA_SUPPORT is set. + * @NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_TX_ANTENNAS: u32 attribute indicating + * the maximum number of transmit antennas supported for EDCA based ranging + * (0 means unknown) + * @NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_RX_ANTENNAS: u32 attribute indicating + * the maximum number of receive antennas supported for EDCA based ranging + * (0 means unknown) + * @NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_EDCA: u32 attribute indicating + * the minimum EDCA ranging interval supported by the device + * in milli seconds. (0 means unknown). Applications can use this value + * to estimate the burst period to be given in the FTM request for the + * EDCA based ranging case. If non-zero, this value will be used to + * validate the burst period in the FTM request. + * @NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_NTB: u32 attribute indicating + * the minimum NTB ranging interval supported by the device + * in milli seconds. (0 means unknown). Applications can use this value + * to estimate the burst period to be given in the FTM request for the + * NTB ranging case. If non-zero, this value will be used to validate + * the nominal time in the FTM request. + * @NL80211_PMSR_FTM_CAPA_ATTR_PD_PREAMBLES: u32 bitmap of values from + * &enum nl80211_preamble indicating the supported preambles for PD + * ranging requests. Only valid if %NL80211_PMSR_FTM_TYPE_CAPA_ATTR_PD_SUPPORT + * is set. + * @NL80211_PMSR_FTM_CAPA_ATTR_PD_BANDWIDTHS: u32 bitmap of values from + * &enum nl80211_chan_width indicating the supported channel bandwidths + * for PD ranging requests. Only valid if + * %NL80211_PMSR_FTM_TYPE_CAPA_ATTR_PD_SUPPORT is set. * * @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal * @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number @@ -8105,12 +8249,52 @@ enum nl80211_peer_measurement_ftm_capa { NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_TX, NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_RX, NL80211_PMSR_FTM_CAPA_ATTR_RSTA_SUPPORT, + NL80211_PMSR_FTM_CAPA_ATTR_ISTA_CAPS, + NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS, + NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_NTB, + NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_TB, + NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_EDCA, + NL80211_PMSR_FTM_CAPA_ATTR_TYPE_CAPS, + NL80211_PMSR_FTM_CAPA_ATTR_CONCURRENT_ISTA_RSTA_SUPPORT, + NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_TX_ANTENNAS, + NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_RX_ANTENNAS, + NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_EDCA, + NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_NTB, + NL80211_PMSR_FTM_CAPA_ATTR_PD_PREAMBLES, + NL80211_PMSR_FTM_CAPA_ATTR_PD_BANDWIDTHS, /* keep last */ NUM_NL80211_PMSR_FTM_CAPA_ATTR, NL80211_PMSR_FTM_CAPA_ATTR_MAX = NUM_NL80211_PMSR_FTM_CAPA_ATTR - 1 }; +/** + * enum nl80211_peer_measurement_ftm_type_capa - FTM ranging type capability + * sub-attributes, used inside %NL80211_PMSR_FTM_CAPA_ATTR_TYPE_CAPS + * @__NL80211_PMSR_FTM_TYPE_CAPA_ATTR_INVALID: invalid + * + * @NL80211_PMSR_FTM_TYPE_CAPA_ATTR_INFRA_SUPPORT: flag attribute indicating + * that the device supports infrastructure ranging (STA-to-AP or + * AP-to-STA) as part of Proximity Detection + * @NL80211_PMSR_FTM_TYPE_CAPA_ATTR_PD_SUPPORT: flag attribute indicating that + * the device supports peer-to-peer ranging as mentioned in the + * specification "PR Implementation Consideration Draft 1.9 rev 1" where + * PD stands for proximity detection + * + * @NUM_NL80211_PMSR_FTM_TYPE_CAPA_ATTR: internal + * @NL80211_PMSR_FTM_TYPE_CAPA_ATTR_MAX: highest attribute number + */ +enum nl80211_peer_measurement_ftm_type_capa { + __NL80211_PMSR_FTM_TYPE_CAPA_ATTR_INVALID, + + NL80211_PMSR_FTM_TYPE_CAPA_ATTR_INFRA_SUPPORT, + NL80211_PMSR_FTM_TYPE_CAPA_ATTR_PD_SUPPORT, + + /* keep last */ + NUM_NL80211_PMSR_FTM_TYPE_CAPA_ATTR, + NL80211_PMSR_FTM_TYPE_CAPA_ATTR_MAX = NUM_NL80211_PMSR_FTM_TYPE_CAPA_ATTR - 1 +}; + /** * enum nl80211_peer_measurement_ftm_req - FTM request attributes * @__NL80211_PMSR_FTM_REQ_ATTR_INVALID: invalid @@ -8129,9 +8313,11 @@ enum nl80211_peer_measurement_ftm_capa { * default 15 i.e. "no preference"). For non-EDCA ranging, this is the * burst duration in milliseconds (optional with default 0, i.e. let the * device decide). - * @NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST: number of successful FTM frames - * requested per burst + * @NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST: (Optional) number of successful + * FTM frames requested per burst * (u8, 0-31, optional with default 0 i.e. "no preference") + * If the attribute is absent ("no preference"), the driver or firmware can + * choose a suitable value. * @NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES: number of FTMR frame retries * (u8, default 3) * @NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI: request LCI data (flag) @@ -8165,6 +8351,50 @@ enum nl80211_peer_measurement_ftm_capa { * Only valid if %NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK is set (so the * RSTA will have the measurement results to report back in the FTM * response). + * @NL80211_PMSR_FTM_REQ_ATTR_MIN_TIME_BETWEEN_MEASUREMENTS: minimum time + * between two consecutive range measurements in units of 100 microseconds, + * for non-trigger based ranging (u32). Should be set as short as possible + * to minimize turnaround time, since two-way ranging with delayed LMR + * requires two measurements. Only valid if + * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set. + * @NL80211_PMSR_FTM_REQ_ATTR_MAX_TIME_BETWEEN_MEASUREMENTS: maximum time + * between two consecutive range measurements in units of 10 milliseconds, + * for non-trigger based ranging (u32). Acts as a session timeout; if + * exceeded, the ranging session should be terminated. Only valid if + * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set. + * @NL80211_PMSR_FTM_REQ_ATTR_NOMINAL_TIME: The nominal time field shall be + * set to the nominal duration between adjacent Availability Windows in + * units of milli seconds (u32). Mandatory if + * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set. + * @NL80211_PMSR_FTM_REQ_ATTR_AW_DURATION: (Optional) The AW duration field + * shall be set to the duration of the AW in units of 1ms (0-255 ms) (u32). + * Only valid if %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set. + * If the attribute is absent ("no preference"), the driver or firmware + * can choose a suitable value. + * @NL80211_PMSR_FTM_REQ_ATTR_NUM_MEASUREMENTS: (Optional) number of + * Availability Windows (AWs) to schedule for non-trigger-based ranging. + * Each AW may contain multiple FTM exchanges as configured by + * %NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST. Only valid if + * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set. + * If the attribute is absent ("no preference"), the driver or firmware + * can choose a suitable value. + * @NL80211_PMSR_FTM_REQ_ATTR_PAD: ignore, for u64/s64 padding only. + * @NL80211_PMSR_FTM_REQ_ATTR_INGRESS: optional u64 attribute in units of mm. + * When specified, the measurement result of the peer needs to be + * indicated if the device moves into this range. + * @NL80211_PMSR_FTM_REQ_ATTR_EGRESS: optional u64 attribute in units of mm. + * When specified, the measurement result of the peer needs to be + * indicated if the device moves out of this range. + * If neither or only one of @NL80211_PMSR_FTM_REQ_ATTR_INGRESS and + * @NL80211_PMSR_FTM_REQ_ATTR_EGRESS is specified, only the specified + * threshold is used. If both are specified, both thresholds are applied. + * If neither is specified, results are reported without threshold + * filtering. + * @NL80211_PMSR_FTM_REQ_ATTR_PD_SUPPRESS_RESULTS: Flag to suppress ranging + * results for PD requests. When set, ranging measurements are performed + * but results are not reported to userspace, regardless of ranging role + * or type. Only valid when %NL80211_PMSR_PEER_ATTR_REQ_TYPE is set to + * %NL80211_PMSR_FTM_REQ_TYPE_PD. * * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number @@ -8186,6 +8416,15 @@ enum nl80211_peer_measurement_ftm_req { NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK, NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR, NL80211_PMSR_FTM_REQ_ATTR_RSTA, + NL80211_PMSR_FTM_REQ_ATTR_MIN_TIME_BETWEEN_MEASUREMENTS, + NL80211_PMSR_FTM_REQ_ATTR_MAX_TIME_BETWEEN_MEASUREMENTS, + NL80211_PMSR_FTM_REQ_ATTR_NOMINAL_TIME, + NL80211_PMSR_FTM_REQ_ATTR_AW_DURATION, + NL80211_PMSR_FTM_REQ_ATTR_NUM_MEASUREMENTS, + NL80211_PMSR_FTM_REQ_ATTR_PAD, + NL80211_PMSR_FTM_REQ_ATTR_INGRESS, + NL80211_PMSR_FTM_REQ_ATTR_EGRESS, + NL80211_PMSR_FTM_REQ_ATTR_PD_SUPPRESS_RESULTS, /* keep last */ NUM_NL80211_PMSR_FTM_REQ_ATTR, @@ -8272,6 +8511,33 @@ enum nl80211_peer_measurement_ftm_failure_reasons { * @NL80211_PMSR_FTM_RESP_ATTR_PAD: ignore, for u64/s64 padding only * @NL80211_PMSR_FTM_RESP_ATTR_BURST_PERIOD: actual burst period used by * the responder (similar to request, u16) + * @NL80211_PMSR_FTM_RESP_ATTR_TX_LTF_REPETITION_COUNT: negotiated value of + * number of tx ltf repetitions in NDP frames (u32, optional) + * @NL80211_PMSR_FTM_RESP_ATTR_RX_LTF_REPETITION_COUNT: negotiated value of + * number of rx ltf repetitions in NDP frames (u32, optional) + * @NL80211_PMSR_FTM_RESP_ATTR_MAX_TIME_BETWEEN_MEASUREMENTS: negotiated value + * where latest time by which the ISTA needs to complete the next round of + * measurements, in units of 10 ms (u32, optional) + * @NL80211_PMSR_FTM_RESP_ATTR_MIN_TIME_BETWEEN_MEASUREMENTS: negotiated + * minimum time between two consecutive range measurements initiated by an + * ISTA, in units of 100 us (u32, optional) + * @NL80211_PMSR_FTM_RESP_ATTR_NUM_TX_SPATIAL_STREAMS: number of Tx space-time + * streams used in NDP frames during the measurement sounding phase + * (u32, optional). + * @NL80211_PMSR_FTM_RESP_ATTR_NUM_RX_SPATIAL_STREAMS: number of Rx space-time + * streams used in the NDP frames during the measurement sounding phase + * (u32, optional) + * @NL80211_PMSR_FTM_RESP_ATTR_NOMINAL_TIME: negotiated nominal time used in + * this session in milliseconds. (u32, optional) + * @NL80211_PMSR_FTM_RESP_ATTR_AVAILABILITY_WINDOW: negotiated availability + * window time used in this session, in units of milli seconds. + * (u32, optional) + * @NL80211_PMSR_FTM_RESP_ATTR_CHANNEL_WIDTH: u32 attribute indicating channel + * width used for measurement, see &enum nl80211_chan_width (optional). + * @NL80211_PMSR_FTM_RESP_ATTR_PREAMBLE: u32 attribute indicating the preamble + * type used for the measurement, see &enum nl80211_preamble (optional). + * @NL80211_PMSR_FTM_RESP_ATTR_IS_DELAYED_LMR: flag, indicates if the + * current result is delayed LMR data. * * @NUM_NL80211_PMSR_FTM_RESP_ATTR: internal * @NL80211_PMSR_FTM_RESP_ATTR_MAX: highest attribute number @@ -8301,6 +8567,17 @@ enum nl80211_peer_measurement_ftm_resp { NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC, NL80211_PMSR_FTM_RESP_ATTR_PAD, NL80211_PMSR_FTM_RESP_ATTR_BURST_PERIOD, + NL80211_PMSR_FTM_RESP_ATTR_TX_LTF_REPETITION_COUNT, + NL80211_PMSR_FTM_RESP_ATTR_RX_LTF_REPETITION_COUNT, + NL80211_PMSR_FTM_RESP_ATTR_MAX_TIME_BETWEEN_MEASUREMENTS, + NL80211_PMSR_FTM_RESP_ATTR_MIN_TIME_BETWEEN_MEASUREMENTS, + NL80211_PMSR_FTM_RESP_ATTR_NUM_TX_SPATIAL_STREAMS, + NL80211_PMSR_FTM_RESP_ATTR_NUM_RX_SPATIAL_STREAMS, + NL80211_PMSR_FTM_RESP_ATTR_NOMINAL_TIME, + NL80211_PMSR_FTM_RESP_ATTR_AVAILABILITY_WINDOW, + NL80211_PMSR_FTM_RESP_ATTR_CHANNEL_WIDTH, + NL80211_PMSR_FTM_RESP_ATTR_PREAMBLE, + NL80211_PMSR_FTM_RESP_ATTR_IS_DELAYED_LMR, /* keep last */ NUM_NL80211_PMSR_FTM_RESP_ATTR, From patchwork Wed May 13 09:59:26 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237628 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=FDD4gMSV; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=cUeIds8H; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=IWC9Q7W/; 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 4gFpsv2c8tz1yLY for ; Wed, 13 May 2026 20:02:27 +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=UQpF4zYu+YZadGX4dTosyfst5rpzzFcl34XwK/VzHYs=; b=FDD4gMSV9z87Ww uo2sfsA1/QzLNOx4+TYjmHV2xbRHVXTQV3HJ9pdk34sOq4vzDCBfTyFP9LwAfVCaIBZCP5LygNB0h FfGwz0Vfy1JXYMJmDLwUZEjXzHL8dYIoJNSUPS/vWIEJbCLmwXiIXzzqlaDaDhDd/9Rl8b2+zqQml uxCJxTNLZyBUnY/+THmrmXwdcJ/E6EnWeCKTfHsL558KgMEKbcHTc2cJZgkFCAlJi9UqyQRasPbJd gk6hOqlWOQAwwCVQJsckvVZZ4ECg2e8KnFi4aOq36un/ekHTHmSMRYWiPlqqG8eGy+7t2IEL9BY11 3ZbuoQ7I4n/gzMQEufbQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6OW-000000020em-3nqE; Wed, 13 May 2026 10:00:48 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6OT-000000020d7-1cZV for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:47 +0000 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D9jhpQ3007619 for ; Wed, 13 May 2026 10:00:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=TvbRKvIhbAK k+xHhofD8WhzY/Mr36G/1IulEeomjQf0=; b=cUeIds8Hw5xIutD2BIgWxfdeACU u7fQmdpzFxcNJSS5X47asTdx1w5+vorf3DNgVJxhouXce5CLWhJE5fJdH9zXxuvf nEG9OOAWq93Iw7uQFPOaVWvbc/NpIm10tMCV533pehPUuuX0QAtCTjZwcDXOdzkK sPSxAFGxSFhoWg0JoCZtFNiZXk1q261ZTDr72l7C9GLuHD2JXL9VB3aTV7BuWeVL DfjtG2qQwj0e5VBzIUOyAQLIt8zHU0CloDm1TbOiAjUO1LiwIq7iXsi+ydMjGGGm NRhuUKwj9BfwuTDl8QXAPbHCWutaf7YnYsQJsALlcGvYQeDn4eA0psW6H/w== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4py0g213-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:44 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b4678c6171so69462285ad.1 for ; Wed, 13 May 2026 03:00:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666443; x=1779271243; darn=lists.infradead.org; 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=TvbRKvIhbAKk+xHhofD8WhzY/Mr36G/1IulEeomjQf0=; b=IWC9Q7W/EtmLE3Xk7sefjJLCD2/S6a0EbtJRBsz09eudvQwSIjHU4/YIC/x6l49See NXrfqxiLDsUBV0vJcAITf8IZ2LAujXvVbfsmtB8CnhJgp0E7GXeyADjZm8WNXu3dS58e t9+Oo5eKooV2nPN1+vVCdsf4aOyyMv8oJ2pzx/j4nP6JLGg6herxRNVZkNY9ZRWY9y8V ISeUMiND+s5IUKHxoo0pErrymFce57Kp6aw3ijRfIHifLUdHGpnd5iGWddu10luH6g0U 6xeU92cDxfBkNfrcjGv9Y8DS+gqg/RAxUu1azyYuOHWCNrOg8akI7rNz0rquKr4ZEvkS 5CXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666443; x=1779271243; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TvbRKvIhbAKk+xHhofD8WhzY/Mr36G/1IulEeomjQf0=; b=HhM4niKUZDG43UsHeHDNyNfwrwkaANp8569HqA5QhFkAiYzcHYn2aYCqF/U8/ZYYzK HROxJoKd8wlJVU82zepoul2HDc+YX54Jbmyb3Y6Oe7hbdiA/o032DM/8libene3n8pLg 06eHB0CdsjikS57ir3pzdwjig7H6HhDtKM6wIRvhFf4wSaJ4kXZd1H0by9AoBmLSkmz8 O+aiRzlMPjKO/GQbGN/UIk0zNRUS+NVlBblx/1u8JdI9mb9VoXHkEV3z1z2MtHuM3Ir9 uemOZotVErbPR8AwZQdAZNJ4fNtfUsxccJm8BetDQCozvQwxauNx6Clpk2zgWvU+ruZj KK7Q== X-Gm-Message-State: AOJu0YySLJh0c75JmWGbd9YvMl7c7OJYSaHDI9XqDyyUeaUKETdAUd90 Hhl7C5v5bsUE1F9jPBVvBgxxe07k5K2oVlRlHkQvYCObFOLP/uhibeH7ObvlPh08I3BfhN2AnMZ q9+7Myo/Tx/YPVF7SvWKw91iLReJHN5b69AGB2CnKvdPSS6K/HYXP4RyyxHX+tZJYrS+wxO3Z X-Gm-Gg: Acq92OGm2v4TMb2A2NYJ26JJHVu0dW6pQRSFGtGKYJHj375qukLEt0Nr612viX1Wt4K FquW+36dlZWNWwZjQ7pKXYIBC+jEIYGsi1/yt1uaM4tkt52mkLkwAQvcvXsvIEIzZ0lJJaxbv1m yi6ipE8ToX0dOxEkQKXJ2pZCDQZay5KU5hiiuapxvU84vs79gofuI+eoIj7GNarC4HmDvJfSyPA v++YEvs5e0erYY99H8XQnYcioqEH97CsUUcz+VfqOV4Hvbx9rpNUOG9VrU4yNwKVDAjtLqZ8d8F 8+5BumS5PgT9RZ15nuywBufRbqIMST0T5YghzGfXZkxVMER4XcvT//aQ49WAqKnNoPHMoKCbLam nWpNdvGeBBT3iIQSaxThHvyrYVsYCn3DpzNxuJkTfL5z+Vi8AUcFETg== X-Received: by 2002:a17:903:228f:b0:2b2:4b4e:e4d2 with SMTP id d9443c01a7336-2bd27184609mr30923965ad.15.1778666443256; Wed, 13 May 2026 03:00:43 -0700 (PDT) X-Received: by 2002:a17:903:228f:b0:2b2:4b4e:e4d2 with SMTP id d9443c01a7336-2bd27184609mr30923325ad.15.1778666442503; Wed, 13 May 2026 03:00:42 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:42 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 02/46] PR: Add CONFIG_PR to defconfig Date: Wed, 13 May 2026 15:29:26 +0530 Message-Id: <20260513100010.1947710-3-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX4nKespxuHzY6 x7bLNf+jO4bjrGAJkJ4YpcihMn+SvssnpkYELDnL1Z14jxbUgdEqP2m8yaIZknHqbPc+kWnTOUb GGvtPbVuheb3wIFmNZYIxipxDf36u0ojbR3ApBgd+nrYJqAG6CCl86T9FMl3hM6oBOy3AGgrScL Tlcus2or1UFyfngrYiJR2iDFNKGTaM+Xq2TpTekq+7ta7SHAqKm9aeKl3qbqHmDgjk8ll91+DTr oWk1IWX7Dwc0Ne6BpECVMH75892YJYKwn7niUmVnNge4cF5MSv95tNZerQSU9Wh1+G76SFTisjS W/dDyqFECCiqrombgoLWzoah9TzOp6j50A/t0Qp1Nze9UaxpwZfg6QboUUGmFygNkgAiH91W6vB MGHB/5HsY9wBu+AlabPxz4/fJR0Ai+yLefG00ML4DDCYTQCo3SffXiUesejGlKV5qG/GOKLydbY OnHO6z2d9TDTU/4rK7A== X-Authority-Analysis: v=2.4 cv=XqXK/1F9 c=1 sm=1 tr=0 ts=6a044bcc cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=h0LNm5_alQlSezEyEmoA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: j65AgOZqPz9KPdY8Oe2MlizYGUNl3j8n X-Proofpoint-GUID: j65AgOZqPz9KPdY8Oe2MlizYGUNl3j8n X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 phishscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1011 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030046_379309_EE34C848 X-CRM114-Status: GOOD ( 12.57 ) X-Spam-Score: -2.8 (--) 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: Add build option for Proximity Ranging support. Signed-off-by: Kavita Kavita --- wpa_supplicant/defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wpa_supplicant/defconfig b/wpa_supplicant/defconfig index 15512b915..75832dbba 100644 --- a/wpa_supplicant/defconfig +++ b/wpa_supplicant/defconfig @@ -681,6 +681,9 @@ CONFIG_DPP2=y # Wi- [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 Add build option for Proximity Ranging support. Signed-off-by: Kavita Kavita --- wpa_supplicant/defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wpa_supplicant/defconfig b/wpa_supplicant/defconfig index 15512b915..75832dbba 100644 --- a/wpa_supplicant/defconfig +++ b/wpa_supplicant/defconfig @@ -681,6 +681,9 @@ CONFIG_DPP2=y # Wi-Fi Aware (NAN) support #CONFIG_NAN=y +# Proximity Ranging (PR) support +#CONFIG_PR=y + # Enhanced Privacy Protection (IEEE P802.11bi) # Note: These features are experimental and still changing; do not enable for # production use. From patchwork Wed May 13 09:59:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237626 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=TbizxVEM; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=iPacOEI/; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=A67cvnwn; 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 4gFpsv0BQQz1yLT for ; Wed, 13 May 2026 20:02:27 +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=Js5lbIS4d+3ocEiGlQY09xayeVSWDQmIckPFxlWnJKk=; b=TbizxVEMAN8D18 5pv7/7kJGZKRwmw8Jbezzx7m1N/w7lkUIuTp/t6Xm43Kp5jqWj5bcBajY99HSz1dqnkoeZc+BZ7jQ C9FH8mHZAj0hlZlIk1eMBSKgt4eb2DtVitvGEBAnWhgD1NaKbXALCKBglI06UKt/gQQ9ni6Gqut0R Hsb78O0dcYnl4/wtmF9R0oF+Yaj08PzSfZV4f/CkktsZ53fTvUAgcitnByHtifgiB6tRoeK+rq01w M9zOvLeQR8x2m8ZtGetg966LtW3TWKc7b+HyiJGbR/e2aeW0EkqXfeJKPtcJ5S+JhoXe827i7vIfY NbaeTmTOyOCgQZ5Jhk0A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6OZ-000000020fj-0Bes; Wed, 13 May 2026 10:00:51 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6OW-000000020dv-1us9 for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:49 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D6FZQZ3326359 for ; Wed, 13 May 2026 10:00:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=H3XlbFQzOkA LhqIUoeJkATWl72rFqByYjIe1RLBg6Uk=; b=iPacOEI/Ch9dC1VYA15r0cornHe a1sLrWjS/RjNEz+oAr7wKX0RslbFZSL5YtPTVP8PUrlnbG5XmeA10kj9J5uw8Wh8 5xO5hZhPD5H+ktoE5ca7RbP5hhPMJ837j69Rk1xfBIFanJDpSA3/jfBchY8TnvUY yU8ORlRWKdfKGnvWoHRob98Oqggwa8o7gpyj0L9xKbs2XbaTzcdTM0SUedRmn91Y R67WJw4gjXGDm40UWv8HGw5vzqvbNgMwxSkfRP+/FOq08F7OHLeStsHRJE2WMLzi NeJjJeocsfED26CDmd7LTtKl0Y1MP3CLA3/n2DdPU8ZrNxnQUDVQjmp+N3w== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4kvd8wjb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:47 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b4654f9bb6so69796375ad.2 for ; Wed, 13 May 2026 03:00:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666446; x=1779271246; darn=lists.infradead.org; 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=H3XlbFQzOkALhqIUoeJkATWl72rFqByYjIe1RLBg6Uk=; b=A67cvnwnAXaH37NlJ6eW9EHMAyn88ekgxPsCbAMKkBM6Xz7bceeqHwOge51MLmzH75 pU9A89L822p7kJ8Yyyf1VcG7LtJYuVYhyMiLQ4dPrfOqtyq8RJtZ4zrrDQJtAqe0Lvqx ITmnzV2KL54QDyMRJ6//hvqoUo+wUAllKe2h005NPZiM2/8RxaIRuZqGKapwVFQwkdIu WGFk3VTuTA2NK+hY55drOx7jcEySl8tGLbCZVSAJDgKOiYlNdksIwpDCXJsZch+9+8vj 7eecMC41D3LN5HtjhAjYnouofCRjq5z2+5/w5t4p3P2rp77WHHMG6HvWyX8+3pWjVULw +IYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666446; x=1779271246; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=H3XlbFQzOkALhqIUoeJkATWl72rFqByYjIe1RLBg6Uk=; b=qaAeZEiHXyW4T5Hy/396CcgV7QjjLekE8hKi/iRuQMxwb+M7g7naNx/b4IHf7XlMyF +iusSGlmEXN96nvAE0bTs3VagmWlf/OTVkfHEGitHNeGiDesDmPxfTDmaqJpwt6WAPs6 2PstsaSvQKevokDrC/FMY8u7l8i+sgabcLz3SUNXPtG7awDw8c4I3OONxuVAEHgIjFvV /kHH9eIqQAOes7hptsY9MOsTD+LLtPOsSfpn/pnMfjwgHezl0UBOv+EQB4aPCKAldUQK vp5w6lTydwwZd2yNRPe9DZOaXHJvd/jmjdZNjbLcBQjVikYolQpeLAyes1psyHcVSHaZ O23w== X-Gm-Message-State: AOJu0YxKIEZK1QJj83dPYcwfMaeBizpRdevqFvRXNx9asFYPjEhZxnOH 4PbumoXCPpTt7aJwvvJXom3GSB4SkWTO10qYc0fEt1MJzMicvSPqp/AouN5zoDxJmF5Jdv0uvsb KqXuCh1/bhuGRt3pZzkqMItzrRTFkb2l5G7+crGFqM5sIOhATRLP4+Ey6cTnlPF/slCaPy4Zd X-Gm-Gg: Acq92OEv6lFFn2+v+Lnwem4LsSx3wH08QLhQNWWYcaFIRGOFHQoUh72ljmN+27XRFIY 1ar8cCqCJv0JL63AU4Ha1cNHeEN0DlIWv+bw/9fEuCJl91YTlhGUdN6SFrEIqpF/M8V/OoWA5lJ cvuFE0YIA4nl/NlkDFb2DMcU/WPMvc/nZ6FmeceaqDLCpGV8t3KovUkHaEzjQ30cMYdcXFkNFOA oJe3Lyup0wwyZmwsuy3kx2JZZMBj0qtC6Og3wKi30Sy9TVvSQJ3RqndxdVm6OGJ7vZzqO11zMg9 WItovosRxlVVqnfvym0HV6CYTHQtjshe4wlDfSFHHJC6sFscpTEVICoFfOXt8VhVRjMF/kruPuK hsa8jOoabW5LikcZq4wkrI/ndEj6lNWH8Niq2x561z1OBSPtyecCeiA== X-Received: by 2002:a17:903:f8e:b0:2b2:5258:a23d with SMTP id d9443c01a7336-2bd27173d16mr30503655ad.14.1778666445747; Wed, 13 May 2026 03:00:45 -0700 (PDT) X-Received: by 2002:a17:903:f8e:b0:2b2:5258:a23d with SMTP id d9443c01a7336-2bd27173d16mr30502585ad.14.1778666444677; Wed, 13 May 2026 03:00:44 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:44 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 03/46] PR: Guard wpas_pr_usd_elems() against uninitialized PR context Date: Wed, 13 May 2026 15:29:27 +0530 Message-Id: <20260513100010.1947710-4-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: RHBi-e7cK5xoVX8cPA5nQEUAhLdQHng3 X-Proofpoint-ORIG-GUID: RHBi-e7cK5xoVX8cPA5nQEUAhLdQHng3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX+fTIIc4pvxnf caOZpsTur1c+M0OrQ4vSBa9g2rubjk5EWKzE1NN6BhR1H9TwPIjHEoiiMIuH0eIQn7Wtmcj0lif hH8lfN/PQdESGztsK3qtKU9I6itCmAlxtGyzFu9yyk0JO3sUorjBV3Ai5iWfsE980DCVmExx4Ui ssk+dgtRem24RLGltinujHtKzl2K3Ia/y82pIJMxUKh0Fa2xB1LPj/87HzeeEO2G0B/tckv0Gab pV3cai7Q+oODUQ4ikdY3QG9zX1l6WD+FCUAN5+RoCAeKpvOc8+TxhUCeXT83aKH+nuYp6EqyeE4 aJWley4U/SRHZPREKH+9kVkYKmAqaetimCNBV4TRUveTF8ekSuKFIJ4nRCZ/H5j8F5yRn2/jWXa d31Sp/KhBE5u441u/1twGfQFeeKVLCgSc/ROptMWTlNB0NliwL6Ygo79VvCGqWiZ6Sbi+Sn+Sac NKzjllSq6kYmA7yJzsQ== X-Authority-Analysis: v=2.4 cv=Iu0utr/g c=1 sm=1 tr=0 ts=6a044bcf cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=DpTUfWFfgYByhdoE76wA:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1011 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030048_623604_5A0EA860 X-CRM114-Status: GOOD ( 14.01 ) X-Spam-Score: -2.8 (--) 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: global->pr is initialized only when the driver advertises proximity ranging support. Add a NULL check in wpas_pr_usd_elems() to return NULL when the PR context is not available. Fixes: a760532f76ef ("PR: USD for Proximity Ranging") Signed-off-by: Kavita Kavita --- wpa_supplicant/pr_supplicant.c | 3 +++ 1 file changed, 3 insertions(+) Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 global->pr is initialized only when the driver advertises proximity ranging support. Add a NULL check in wpas_pr_usd_elems() to return NULL when the PR context is not available. Fixes: a760532f76ef ("PR: USD for Proximity Ranging") Signed-off-by: Kavita Kavita --- wpa_supplicant/pr_supplicant.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index c50d4bd92..f47407e5c 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -315,6 +315,9 @@ static void wpas_pr_pasn_clear_keys(void *ctx, const u8 *own_addr, struct wpabuf * wpas_pr_usd_elems(struct wpa_supplicant *wpa_s) { + if (!wpa_s->global->pr) + return NULL; + return pr_prepare_usd_elems(wpa_s->global->pr); } From patchwork Wed May 13 09:59:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237631 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=nNSaPwL/; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=ENlLYQvp; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=dhP+HSck; 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 4gFptD3vLLz1yJ5 for ; Wed, 13 May 2026 20:02:44 +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=sjBkWwBluA2FJtfQQHGlgEA0t/J1OumuNmS8qzx9NFY=; b=nNSaPwL/IBWrob DKS1zXihWOghAVEAQl1vOrnyicq9vJgdps3DZpy7/I3uf/046Gp3/6fEdQAz8JYY/bH0eTHFQTjzp CBZPtjaQ54jOfoXOyAVIzanbcPKFNeB6cERuJ8iyxb+xUVkwbAB66mblP+5YBS6fvAmIZ62FZr00K DegRXLNpVU/YL8ndgO76wmgCfPfyOqc13KmuEA+CY3WpLC9EbSHmWZdRuiT/1mHE07aFyQBZzXm7w n+ikxGsma899yAJSw3r/2jONOyexaF1ALHGrhMab6rHnD9Ixw8TXjbLOi4bCj8OWHTVizK1E6wboc O3F76Wkp3ZbSoQiwfrbg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ob-000000020gz-0gtx; Wed, 13 May 2026 10:00:53 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6OY-000000020f5-00jH for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:51 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p6aG2338787 for ; Wed, 13 May 2026 10:00:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=eIxFlyAeV6l G003Bnujl2J5LPLwkJ/mnQ8PQdmzy7a8=; b=ENlLYQvpKKw78mGpgR7ob0so8Mg viMtZ1OrDrdPHEj+HgHiM0T3NA1A2Xg8kBlBdR1H4/ObXhZY/eGQTObTpBaCGGlJ Y7JAiP0GdT9fuD1s0j0Qc+Hg8mNIOgAlsBw9K/DADEQTu/kKoUVmAQfOExe8GOrU ASWlQoIMb5jbRBEAN+9j5c2/JDSTa+2BgLC8SzKrY50nrQqqMYKnk76sEcBhlCcG HHdPLuIPzikXJwzelf5E0+MTclW7BU20h2uPCfJP2D24UaADQ6ulWJ+5DMSPli96 iDWTSySnq1JXxzhcZXsZhFFwdAgust7jPoG8YJN9OPiYSSxzULhptBod53w== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavue-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:48 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba838d3fa4so73538655ad.3 for ; Wed, 13 May 2026 03:00:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666448; x=1779271248; darn=lists.infradead.org; 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=eIxFlyAeV6lG003Bnujl2J5LPLwkJ/mnQ8PQdmzy7a8=; b=dhP+HSckCIegR2xLkJV5a5lymKbtqowcR546ZnePEUyKpzEyF6xLGOWs9tF0/ATcBo bmGFoYhDXkxp+EXlAehu7Tnh0AYIXoesc/IRPXdTWh9AYRDUoQspUGLjd9Od0Yv0tlo/ XWd60vJOREXXqwqPO559g5eo13maPvu3TxfEkxK1tMHfep7lCjVKgqJ989Q3oXXYjgy+ vJhfTy3lq6x35qQ2jsUTOhHG/7icRxZgiBstRVHt7ijd/Qr55bpG6+IT/1wyyAgP47Fi uKBn0Hv08ZLBWlzGpkwaq1o3BdAUqgwTHW0+hyE8unKDnFtF49MuxIUpcBYyOUyZsbdy xVKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666448; x=1779271248; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eIxFlyAeV6lG003Bnujl2J5LPLwkJ/mnQ8PQdmzy7a8=; b=CXkv3ghxNlXtVtLkCCfcgZUlAW36MBwv+qjd16PKg7/dmk8CQ7pJRmRqkNjiPNOjDD v1XyHAWjjDGA+wdsIl0IS3UfpUSliFH+Veqj2qbhjCqe9Itk0pqEt783nxJ8G3r0mx6S 6WCqAqnLY34tPuHzD1Tu/QegfKt1CsQPsWQe9LNCA5C8ynKpHel6zo2q6w8MzdlydEGf 7mPQM0BzPAC7VT1QP97fEuKm3GT/vR3gtSs0B4tvmQjAKUikBG26S/xoPcICBf/SLuon J4+uGdEXmPB/dA5YdongWM4DzyNf7BUBb9e3s9iZwL8u3j0Pihs7zqQLR1DPNTbkf6RU SnIA== X-Gm-Message-State: AOJu0YzRe9jXig4X4MmnJPtJQyiHL7rVAR1g+nsBmyzh1ABQYrGgk3fW 42JTLXvqhWLRB+CmP6/TuK6guVDIMO7D4UyctbmylIzcjpeCzLUDSfaysBK+nyQq4SSd2+siv42 sd6bizUdAD/lf3WExUuQrEfpvhLzm27llaoPLhDNUyMe3zgXIhMB6nRggbfOqofVvaaeCrl2B X-Gm-Gg: Acq92OGbvSQ6egHcyBruXRVlIt+fjRVjEuxggpNTs7zJMkBLM5VYwsXEfWhs3ihIuBy +l6KojDjyB8ojUZOU1jB9Dp3ub3pirf5TYImnr3L17YVxZpFH9I5ODO9ZXw7HMJ8dOd2mx5VNRP 64BKLqiKjCsatk41rSJ5uYPEzzQFM/3zdpX6q1NuqkKXHDMBMUzdyZZREzyma6TYOKuH7LcExlj JRE0ChFORboH1cIk998wW2eHy8kbYU9M+virix3FcpXvFwv503Tif85CFaAjmBS/z6iyYPMVGW2 m0LgmV0/198pPr3d+OhvQmwQqM/vzFxUOJegxiSl0y2oJ3+P5+Ll89hUkWIK4hyEHm3GBC239yk KDbJAMrPcfklxZUuP55EHbdpq4C1rnp5aHX6JeQ3RL8QYOIn3wvkglw== X-Received: by 2002:a17:902:ed8e:b0:2b2:4cd2:e16c with SMTP id d9443c01a7336-2bd2fc221camr15601995ad.20.1778666447628; Wed, 13 May 2026 03:00:47 -0700 (PDT) X-Received: by 2002:a17:902:ed8e:b0:2b2:4cd2:e16c with SMTP id d9443c01a7336-2bd2fc221camr15601485ad.20.1778666446919; Wed, 13 May 2026 03:00:46 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:46 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 04/46] ctrl_iface: Add forced_addr parameter to NAN_PUBLISH and NAN_SUBSCRIBE Date: Wed, 13 May 2026 15:29:28 +0530 Message-Id: <20260513100010.1947710-5-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: g5k-LziuzfOMA4L971eCYenNdJksHCH7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXyt9UKu5rOOZK Go9459UAb2stuNd3vSWnU4wx4R/jmNJavAz+44VtZ8CY6K8o4FOXHu8uPFaRVx0JRMFv3p6GmmW UHocglFXZH/J+QfGN4sNVTubqCz5ZQx9qwCxgU3z1igd7KEjsiNVRHj5C4LwxsJPfo2YfNQWUnB LZ0+gvFz51QmKecViO87tfMzbN4aqHhasR69aJL8VpJ9vHDboCI/LmZKntBVaLhaKj6Lb0/qGEz FeOXHWBfmPwBebKzE+OAXjlxK+8OzmJCYuofUrfiA38qh3MrRG1hHrmqOoDSo2n43fWyTmel4sk WYSOgbZFK4CxCx57GvBCy4EnQCUjaifHqfxeflj1K2jkJiO+po6lETBp64T/k18QaRkb9YMIme0 764n1Aq3Z7xV4G8CLU+J0HxGs7oZQQOr7gr84KebwdpYEYB7nvlNUe31H/it+M5Fp2h2JK7t8WQ PbulZ72Hn1PuKO/bhkw== X-Proofpoint-GUID: g5k-LziuzfOMA4L971eCYenNdJksHCH7 X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044bd0 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=8HOlqU9dc93ZUqpRTJAA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1011 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030050_162813_0609242C X-CRM114-Status: GOOD ( 14.83 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy The NAN_PUBLISH and NAN_SUBSCRIBE control interface commands had no way to specify a per-service transmitter address for NAN Service Discovery Frames. Add a forced_addr parameter to both commands to a [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy The NAN_PUBLISH and NAN_SUBSCRIBE control interface commands had no way to specify a per-service transmitter address for NAN Service Discovery Frames. Add a forced_addr parameter to both commands to allow the caller to pass the desired transmitter address into the NAN Discovery Engine. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/ctrl_iface.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 14b4cd9d2..d31acbef4 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -12795,6 +12795,7 @@ static int wpas_ctrl_nan_publish(struct wpa_supplicant *wpa_s, char *cmd, int *cipher_list = NULL; u8 nd_pmk[PMK_LEN]; bool p2p = false; + u8 forced_addr[ETH_ALEN]; os_memset(¶ms, 0, sizeof(params)); /* USD shall use both solicited and unsolicited transmissions */ @@ -12946,6 +12947,16 @@ static int wpas_ctrl_nan_publish(struct wpa_supplicant *wpa_s, char *cmd, continue; } + if (os_strncmp(token, "forced_addr=", 12) == 0) { + if (hwaddr_aton(token + 12, forced_addr)) { + wpa_printf(MSG_INFO, + "CTRL: Invalid forced_addr"); + goto fail; + } + params.forced_addr = forced_addr; + continue; + } + wpa_printf(MSG_INFO, "CTRL: Invalid NAN_PUBLISH parameter: %s", token); goto fail; @@ -13074,6 +13085,7 @@ static int wpas_ctrl_nan_subscribe(struct wpa_supplicant *wpa_s, char *cmd, enum nan_service_protocol_type srv_proto_type = 0; int *freq_list = NULL; bool p2p = false; + u8 forced_addr[ETH_ALEN]; os_memset(¶ms, 0, sizeof(params)); params.freq = NAN_USD_DEFAULT_FREQ; @@ -13189,6 +13201,16 @@ static int wpas_ctrl_nan_subscribe(struct wpa_supplicant *wpa_s, char *cmd, continue; } + if (os_strncmp(token, "forced_addr=", 12) == 0) { + if (hwaddr_aton(token + 12, forced_addr)) { + wpa_printf(MSG_INFO, + "CTRL: Invalid forced_addr"); + goto fail; + } + params.forced_addr = forced_addr; + continue; + } + wpa_printf(MSG_INFO, "CTRL: Invalid NAN_SUBSCRIBE parameter: %s", token); From patchwork Wed May 13 09:59:29 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237632 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=kA1MwRLB; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=Qv/iHnte; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=RbVKLjdY; 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 4gFptD42vKz1yLV for ; Wed, 13 May 2026 20:02:44 +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=Hr1SZC65eJ+C5830co48/YNXn1PKv255nVS9OzL/9Yo=; b=kA1MwRLBG+SFnU KDbhLnYYfyG5TNe1NXZAXxDmhg/IP0mH17iN6KHJ2Q6B5Ho9PL9zTmXsKZtjjiJhPA/sRXRDLuDTv W+/r63rV3vMhusSJ9HlYsBKkKjFFh8ohyqVQ+tUlSGEuv8u6iGzCWLgOTIxsMYOWcpkGzzx/BHshy tEsWR/nEO8M63v6pLIwbN7hQPqjybW6S6faLjz8zL9OuPbs96aWPh+Pdtojx/84goBIty280+Wv4M stH5m9NI2RJA3xdxJTwNtDfWU4GmyO0eJ9eyV3vHkpufKqkemNUS4GX/vUQyqf2Rtex3df0bKXdC4 gyZnAVCbQASzzZBwpl1A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Od-000000020ie-1rf9; Wed, 13 May 2026 10:00:55 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Oa-000000020gj-3xrj for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:54 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D6FItq3324658 for ; Wed, 13 May 2026 10:00:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=evLfIWNdu4W MN6wjI8qoeL1iJK3nvE48HzHV664dLJI=; b=Qv/iHnte5D4UcTvGsdxcTNSCxLc M0oH+q1Bm0vtI2unldrRMRFzGWv7OidbSkxdtBP3r9jGYxAsA4lxSrQMH4NElqzv zohBTHYW+6SBjqAkiLbbJCtyYPrAvXcZ1DWYR5yg2+a5Wre8D0euhe/zKs3KOk/d 2Yw14hgXFwwjH64bbBgEg8hdAND/qymSGLDRBBz8oVtBEziaIMnsOolZhOHOvNtV hZ6jR364/owAcmwPyVn3L9vD5N47LvRDDDp96FYik8RPOKg/vjxeA5q4xzskjnxr CwJBc1SEMVggLa6B0TzrNsdcRHtWvuQmsR8qCLPiJ8ih/N5t3u1+S0YEVkQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4kvd8wjj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:51 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2ba6ca20ceeso72900135ad.2 for ; Wed, 13 May 2026 03:00:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666450; x=1779271250; darn=lists.infradead.org; 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=evLfIWNdu4WMN6wjI8qoeL1iJK3nvE48HzHV664dLJI=; b=RbVKLjdYoUZ9so9cQteIpAbautaW4N8tUMYGoGmbL0ZID++GUmDre0GVhJHRVHnKPP /xCmwmJBy5p/iCEG8oyYuk64TdotZ9MAb84ucbRrtmEipKZXSYxdZtqXk5CZz+UvRrnu azTD6QtYnLTi0IOfUUnTwnF81smHucW6/5orhs45LX7heGPU2N0HvnFiQK9yOZwXM0Ph mqOCucFK3rcxM0+hWXI8+9iFYLqxN5K9xTPV4dwaeLttYM32iYRCteKGiA+92HzfK3Lo xKHwH6v68tpC6rHi82QfCUYzbAdg88SG5KGDFQDaDjESV2UIbjyAH/f5bl4eBRkuZqjP LKgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666450; x=1779271250; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=evLfIWNdu4WMN6wjI8qoeL1iJK3nvE48HzHV664dLJI=; b=lZI/RtsFBqfEIkOJbo4s9taqpa5WZH5SPZ/k2qsoev1E6iEWOJcAq1mYzEyXoFmy0S ueFUG7jmD0STPWZtZs6y1RSKuOzRiScixOAchfmulu4z2iXM2H75wEnaPTnTO4HKgwfV vOPGSyI8t7jsXlo3yTjGCvVjqrtxMnPzVJXKGf5Ex89PseETIq6uB+LZxj3kNRByF574 k+EShHUroraaM/qiO9OSiNG2WIaO6Kxyx0mKFPfIfO8J6T7WLCh3Lu4shef00EZSH+c/ Pa2Cjzl8P1a/KxhrlpDhhpuf+BPoMeyeOw/crS45zsw2XVwJ44Xh3P9HVIHndJ9g/xjO BR1A== X-Gm-Message-State: AOJu0YwWLBWoLev++psQzJ3RaUetHDV8lKFodky12dj6ZwpSt9PNWyzA 5WnycC9LHKwwggCQDfH20ZgN5nvWnVnZZrAUQ7mfG7hhU4elTDeUSsyb9rTHln6Uo4Zd+NEi3/2 cITMDGZz38W/3QzDtsuP1Avi+S4k0rvm8drjQnz8BhEf8Mlv/Itk3cH8y2pvJwMXMfgOcb9+t X-Gm-Gg: Acq92OEF0XFmxqTGUiOrLMlx0UtiyFs47y20MmsnKJ/D9RIt1jlLuZAMFAqlrvLg3zr 7+PW9wh99SHOLYKg9jJV8OksUjuxAgle46JWDNadXTPxOP1VDFyUNf4JO35RUf3V4ECGr5Txp1j wp3O4L+PEJzGV1WGtOTzagI4naoacZo8fwnYb4/qQ+epmkmxHZUOsEKOvBaH3WHUhuuLzBYUcOT oRa6KDMPj/kzODgXmYUIc/acH0sv6j7puTTAlt7Ix1g1Xd2r5UBMzSY5CqGCcuBoDh56gwbyBHr R/n1gZq3pNNtdxNC+Y1p3M1/EufrN/MSY5HVJmiZOomhhavmtgzig7J3x+5VMMc3ma9Sn3fPGks xHWyVdJtigvFR7GiL3Z01QJAlRlN2r5QY/rfZ7uPhNs2INhBe++VDnw== X-Received: by 2002:a17:903:249:b0:2b2:5314:e96a with SMTP id d9443c01a7336-2bd276e7a13mr29114415ad.34.1778666449774; Wed, 13 May 2026 03:00:49 -0700 (PDT) X-Received: by 2002:a17:903:249:b0:2b2:5314:e96a with SMTP id d9443c01a7336-2bd276e7a13mr29113785ad.34.1778666449169; Wed, 13 May 2026 03:00:49 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:48 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 05/46] nl80211: Add MAC address filter support for remain-on-channel Date: Wed, 13 May 2026 15:29:29 +0530 Message-Id: <20260513100010.1947710-6-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: 9fyBiGSnZUdX2OJD8ZAy98uyEFbjYGOx X-Proofpoint-ORIG-GUID: 9fyBiGSnZUdX2OJD8ZAy98uyEFbjYGOx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX0QeVIQn5xar+ O++oFrOYK1MhySUunS0+0tz4My012yASaxc1HWZbdcW7iHhPEEIIJdtrk5uyIFVeMdItcsn+5Xl yHwyMIqfzPLLAwCs9SMKbKkwhNbIIZQjuEspuC37A3W/zIgYYiVqAS2N6G1lb/lYfu6dw7euQV2 VZpcYHICU2A8rpJvH07uYQ3oam3jSYYXHxqyn5mLGftgEJgEXWiLMvT2xBw0TqaH/d8CgoPfBLA y+MsivdajFQURuLBH2fOrMAcwjcUT6ro3WWARFaAssO1ZV3z/BWtbTcp+rZ2aAxt0dP+5gTWyMi MUBYOMDTyK+GAISH79BlBedaQQs7LVgEAWNcab4gojZSBqi62R7INy7DRgkrLQx2ZXQBa57GTpy risNdemNr9BlkpDvqwZDqVs5nCkN3rR2E7D8lTwyjGK4zzPlap93xZWQSMYongZWWe+Ue14dQ5P /RUEcS27X65ZoCwmEDw== X-Authority-Analysis: v=2.4 cv=Iu0utr/g c=1 sm=1 tr=0 ts=6a044bd3 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=TELfNRclQfz8eO72Y8MA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1011 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030053_116881_BF15E424 X-CRM114-Status: GOOD ( 31.05 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Currently, the remain_on_channel driver interface does not support filtering received frames by a specific MAC address. This prevents use cases like Proximity Ranging from listening for frames address [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Currently, the remain_on_channel driver interface does not support filtering received frames by a specific MAC address. This prevents use cases like Proximity Ranging from listening for frames addressed to a custom MAC address that differs from the interface address. Add a filter_addr parameter to the remain_on_channel driver operation and its wpa_drv_remain_on_channel() wrapper. When provided, the nl80211 driver adds NL80211_ATTR_MAC to the remain-on-channel command to configure hardware-level frame filtering. A new driver capability flag WPA_DRIVER_FLAGS2_ROC_ADDR_FILTER, detected from the kernel's NL80211_EXT_FEATURE_ROC_ADDR_FILTER, guards this behavior. All existing callers are updated to pass NULL to maintain backward compatibility. Signed-off-by: Peddolla Harshavardhan Reddy --- src/drivers/driver.h | 10 +++++++++- src/drivers/driver_nl80211.c | 27 +++++++++++++++++++++++---- src/drivers/driver_nl80211_capa.c | 3 +++ wpa_supplicant/dpp_supplicant.c | 2 +- wpa_supplicant/driver_i.h | 5 +++-- wpa_supplicant/nan_supplicant.c | 2 +- wpa_supplicant/offchannel.c | 4 ++-- wpa_supplicant/p2p_supplicant.c | 2 +- 8 files changed, 43 insertions(+), 12 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index b8e01d2d7..69231d468 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2529,6 +2529,8 @@ struct wpa_driver_capa { #define WPA_DRIVER_FLAGS2_802_1X_AUTH 0x0000000800000000ULL /** Driver supports PMKSA caching privacy */ #define WPA_DRIVER_FLAGS2_PMKSA_PRIVACY 0x0000001000000000ULL +/** Driver supports MAC address filter for remain-on-channel */ +#define WPA_DRIVER_FLAGS2_ROC_ADDR_FILTER 0x0000002000000000ULL u64 flags2; #define FULL_AP_CLIENT_STATE_SUPP(drv_flags) \ @@ -4490,6 +4492,8 @@ struct wpa_driver_ops { * @priv: Private driver interface data * @freq: Frequency (in MHz) of the channel * @duration: Duration in milliseconds + * @filter_addr: MAC address to filter received frames (NULL for no + * filter) * Returns: 0 on success, -1 on failure * * This command is used to request the driver to remain awake on the @@ -4498,6 +4502,10 @@ struct wpa_driver_ops { * Probe Request frames may also be requested to be reported by calling * probe_req_report(). These will be reported with EVENT_RX_PROBE_REQ. * + * If filter_addr is provided, the driver will configure an additional MAC + * address for frame filtering. i.e., this new address would be used in + * addition to the interface address. + * * The driver may not be at the requested channel when this function * returns, i.e., the return code is only indicating whether the * request was accepted. The caller will need to wait until the @@ -4508,7 +4516,7 @@ struct wpa_driver_ops { * executed. */ int (*remain_on_channel)(void *priv, unsigned int freq, - unsigned int duration); + unsigned int duration, const u8 *filter_addr); /** * cancel_remain_on_channel - Cancel remain-on-channel operation diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index ea89bcd8c..6adc7c853 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -10039,7 +10039,8 @@ static int nl80211_put_any_link_id(struct nl_msg *msg, static int wpa_driver_nl80211_remain_on_channel(void *priv, unsigned int freq, - unsigned int duration) + unsigned int duration, + const u8 *filter_addr) { struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; @@ -10055,12 +10056,30 @@ static int wpa_driver_nl80211_remain_on_channel(void *priv, unsigned int freq, return -1; } + /* Add MAC address filter if provided and supported */ + if (filter_addr) { + if (!(drv->capa.flags2 & WPA_DRIVER_FLAGS2_ROC_ADDR_FILTER)) { + wpa_printf(MSG_ERROR, + "nl80211: Driver does not support ROC address filter"); + nlmsg_free(msg); + return -1; + } + + if (nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, filter_addr)) { + wpa_printf(MSG_ERROR, + "nl80211: Failed to add MAC address filter"); + nlmsg_free(msg); + return -1; + } + } + cookie = 0; ret = send_and_recv_resp(drv, msg, cookie_handler, &cookie); if (ret == 0) { - wpa_printf(MSG_DEBUG, "nl80211: Remain-on-channel cookie " - "0x%llx for freq=%u MHz duration=%u", - (long long unsigned int) cookie, freq, duration); + wpa_printf(MSG_DEBUG, + "nl80211: Remain-on-channel cookie 0x%llx for freq=%u MHz duration=%u%s", + (unsigned long long) cookie, freq, duration, + filter_addr ? " (with MAC filter)" : ""); drv->remain_on_chan_cookie = cookie; drv->pending_remain_on_chan = 1; return 0; diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c index 178bf8774..1799c5395 100644 --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c @@ -602,6 +602,9 @@ static void wiphy_info_ext_feature_flags(struct wiphy_info_data *info, if (ext_feature_isset(ext_features, len, NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED)) capa->flags |= WPA_DRIVER_FLAGS_MGMT_TX_RANDOM_TA_CONNECTED; + if (ext_feature_isset(ext_features, len, + NL80211_EXT_FEATURE_ROC_ADDR_FILTER)) + capa->flags2 |= WPA_DRIVER_FLAGS2_ROC_ADDR_FILTER; if (ext_feature_isset(ext_features, len, NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI)) capa->flags |= WPA_DRIVER_FLAGS_SCHED_SCAN_RELATIVE_RSSI; diff --git a/wpa_supplicant/dpp_supplicant.c b/wpa_supplicant/dpp_supplicant.c index ab9d81593..a55d0e7ab 100644 --- a/wpa_supplicant/dpp_supplicant.c +++ b/wpa_supplicant/dpp_supplicant.c @@ -1034,7 +1034,7 @@ static void dpp_start_listen_cb(struct wpa_radio_work *work, int deinit) wpa_s->dpp_pending_listen_freq = lwork->freq; if (wpa_drv_remain_on_channel(wpa_s, lwork->freq, - wpa_s->max_remain_on_chan) < 0) { + wpa_s->max_remain_on_chan, NULL) < 0) { wpa_printf(MSG_DEBUG, "DPP: Failed to request the driver to remain on channel (%u MHz) for listen", lwork->freq); diff --git a/wpa_supplicant/driver_i.h b/wpa_supplicant/driver_i.h index 2166d86e3..f92a96e02 100644 --- a/wpa_supplicant/driver_i.h +++ b/wpa_supplicant/driver_i.h @@ -460,11 +460,12 @@ static inline int wpa_drv_if_remove(struct wpa_supplicant *wpa_s, static inline int wpa_drv_remain_on_channel(struct wpa_supplicant *wpa_s, unsigned int freq, - unsigned int duration) + unsigned int duration, + const u8 *filter_addr) { if (wpa_s->driver->remain_on_channel) return wpa_s->driver->remain_on_channel(wpa_s->drv_priv, freq, - duration); + duration, filter_addr); return -1; } diff --git a/wpa_supplicant/nan_supplicant.c b/wpa_supplicant/nan_supplicant.c index c08c095f9..3a578334c 100644 --- a/wpa_supplicant/nan_supplicant.c +++ b/wpa_supplicant/nan_supplicant.c @@ -4224,7 +4224,7 @@ static void wpas_nan_usd_start_listen_cb(struct wpa_radio_work *work, duration = wpa_s->max_remain_on_chan; wpa_printf(MSG_DEBUG, "NAN: Start listen on %u MHz for %u ms", lwork->freq, duration); - if (wpa_drv_remain_on_channel(wpa_s, lwork->freq, duration) < 0) { + if (wpa_drv_remain_on_channel(wpa_s, lwork->freq, duration, NULL) < 0) { wpa_printf(MSG_DEBUG, "NAN: Failed to request the driver to remain on channel (%u MHz) for listen", lwork->freq); diff --git a/wpa_supplicant/offchannel.c b/wpa_supplicant/offchannel.c index 9e591d7d6..688718cd7 100644 --- a/wpa_supplicant/offchannel.c +++ b/wpa_supplicant/offchannel.c @@ -124,7 +124,7 @@ static void wpas_send_action_cb(void *eloop_ctx, void *timeout_ctx) #endif /* CONFIG_TESTING_OPTIONS */ if (wpa_drv_remain_on_channel( wpa_s, wpa_s->pending_action_freq, - duration) < 0) { + duration, NULL) < 0) { wpa_printf(MSG_DEBUG, "Off-channel: Failed to " "request driver to remain on " "channel (%u MHz) for Action Frame " @@ -369,7 +369,7 @@ int offchannel_send_action(struct wpa_supplicant *wpa_s, unsigned int freq, wait_time += wpa_s->extra_roc_dur; } #endif /* CONFIG_TESTING_OPTIONS */ - if (wpa_drv_remain_on_channel(wpa_s, freq, wait_time) < 0) { + if (wpa_drv_remain_on_channel(wpa_s, freq, wait_time, NULL) < 0) { wpa_printf(MSG_DEBUG, "Off-channel: Failed to request driver " "to remain on channel (%u MHz) for Action " "Frame TX", freq); diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 81f1cad41..7ae584a5a 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -3265,7 +3265,7 @@ static void wpas_start_listen_cb(struct wpa_radio_work *work, int deinit) } #endif /* CONFIG_TESTING_OPTIONS */ - if (wpa_drv_remain_on_channel(wpa_s, lwork->freq, duration) < 0) { + if (wpa_drv_remain_on_channel(wpa_s, lwork->freq, duration, NULL) < 0) { wpa_printf(MSG_DEBUG, "P2P: Failed to request the driver " "to remain on channel (%u MHz) for Listen " "state", lwork->freq); From patchwork Wed May 13 09:59:30 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237625 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=ZLZKTldP; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=O0wTkXVa; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=YTiNq4Yu; 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 4gFpst71rtz1yJ5 for ; Wed, 13 May 2026 20:02:26 +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=af0aoUws+3/W6G2BuwC+34OdiOrsB60Ewmlij14Ad7s=; b=ZLZKTldPNAurFn sNyIsUodm86txBR4Qgc6tPUVW7wF/mH9DhW9J/qPjt89cgcaRLzlxz1CP9/O4B/zsv7NwOCNvg4cr 13YZJKnbDy+vorBzeU2F2/WH/XEs83rDIBQeRehnQ8gmQ+86DvgfrgC6Fbbf/euWJdN9mMpwopKRh zJX+5mQhNUXfznW6YO1/qSaJekxVAtoJdrWM8RNvf5DJYjJN56SzDxEL1MVMO8xMX963314Od6gDr wrp2L+o1GM+L26+5+zrD2ICNH/vwJEJGfwObTjh4BVOjpEdlU3GmEapNbaSSbNfdYGHGBa+GunTWp EaiQbEWKGIxMpkCUlqHw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Oe-000000020jW-2XcL; Wed, 13 May 2026 10:00:56 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Oc-000000020ha-1zdx for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:56 +0000 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8mDQq3474757 for ; Wed, 13 May 2026 10:00:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=KnyV0d3ECEW o3nsgSqpr9zCw2fVpvA97vuZeqvmaQoI=; b=O0wTkXVaXWBZe1A0aeQj/9SXX8q F3FmJIXfOrKuKjt26xX6ARn690rGYEaVtyt8/KRq/kxqrxOoOqyHArCotRACa08C wEJwhPk+mZ3C6bfqBzd5cH85Qh0xyXJJjUSq7YT5+WAg0uJkX4E38L2gOY+z1R+L DV5sYEbfZQ9LCm6j8/rzzjEAStdgyL6+d8zR/6/BSQsEz3hKear/M6w+qdohYXSx 0U7GBKpQCTdqFU0vIK0urEszOlzrQoeS1MtnpfOUCghc27tglEyLVBy/4eMdzCgz 0ljzcZTf1EpoYFcZYX2hNtpT1ofj1r81ptTc/WSvS2D7c+PZrl5xWAmdwYw== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p41896p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:53 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2bd00a65673so18039135ad.1 for ; Wed, 13 May 2026 03:00:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666452; x=1779271252; darn=lists.infradead.org; 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=KnyV0d3ECEWo3nsgSqpr9zCw2fVpvA97vuZeqvmaQoI=; b=YTiNq4YueB4zAtbZwvbOcSJWc+bcbNwK1qEnXo7aOICbq2z6ltHirq97DWAIRm6J9q u1W9kE6NB5tlJ/8PV6vMEI+1RbqJ92rC/exfYxmMPHHhUpiYX/eM8fzJ+GnXk2ehvxrr zHBPImlXs33Ek83euxVyZY5wKaq0Hc1KyL9P33KF2U/LXdmVv2v0yLOpoIIZTB7Eh6xX 0h6jI3tjOTT1UrTss7QCFsEVK/Kdv1Y5MDIyHq5RbnhmPUb7No3PlAa6QFZHnoYAMOzv 3TXZAJqTA4/c4xCSCJCEoHpr3cvFoh+KOBUESY1IlsiC/qaG8BpfReAkH1k2venXxsPF H9Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666452; x=1779271252; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KnyV0d3ECEWo3nsgSqpr9zCw2fVpvA97vuZeqvmaQoI=; b=jH0q59YJ5KlZeYD1mCg8nSS2v1bsBXvYjk6w/KJMnJ8bvtu1mSFjyaSUf7cqXlDHb2 kCrKEjkz/iMGlZHuBvD2cjsiVfKSlJ6hivdnPiQ557D1ebNtaPra/wO94R5r5af6vMPC mAD/M+aV9tUV9YKXjpcXNe/8OoI9PoOWsnrP6hhMs4OsLtv6z696wU5V/25K8wfhw03S ct1yBCB0/72t03C71ZuQUj/WsP4PdleJVWlr6ihdpenhZwzQWClIAyblEvNTXQmCToRc cU2ToKcagTlOlakaV4BPf/s1oIKF4Uo4VF9JJN//9w8A7qIj0ULZvHDjxsQwpDEPiDGb t7Wg== X-Gm-Message-State: AOJu0Yz7KI6W5biwlLGZeOZPwoYoh1lAaLZubMLwpufe991OfxN8hjsb 1oY3tz7gBCK4VNWdE3YKmPd7HeEdXDkndW/EP57R+cacc4WTp3VOwEMqlgHBiu+Z70lQNKY58JX TGd6pQD/dGriwwfbRysmF9n7AG2Tnn7Fe8k1Nsk32BINx15D8IvY/B45X0VTEP80K3GAjImRM X-Gm-Gg: Acq92OEnEdGylQbrDAyXBZSNtgtC9GeeKJ9ZXp0CKze6Y78RFg6CxmsTzFWUIw5XilH Rum29vGQDGfVnTTmS2H8tlvOnbF/1MmbApoMyU/cUavnPGsSJzHfsu6nbvbLcnMuwHEOr0QYtNM vBANLiVUWytL5d0+ibkECLy8/1n2jGmQbF1L1ZnynM10HpQCgSDFSkObdQG7ikpS52Gh/ONRv8D GKypKsFFGti+ZLBFiJb8/rNv1Zel5yXsxSkdTmPQvFFwC7E5lifmrG/Uwk74at7AnPvvZDXcFKQ elKWVNjFwZiT9vtKotxuEAr6cbAffnJ+nlKdy8O6ghkwWpQaY9LlJP1FruaB+OmExyuSTwmFEKS Dr2p7quckn1KrcfPReGIb4fyuA9Yh8+zZ09JB3T6TCyfswO8iIoKljg== X-Received: by 2002:a17:903:390f:b0:2ba:21c2:d6cb with SMTP id d9443c01a7336-2bd273ad627mr26897475ad.16.1778666451888; Wed, 13 May 2026 03:00:51 -0700 (PDT) X-Received: by 2002:a17:903:390f:b0:2ba:21c2:d6cb with SMTP id d9443c01a7336-2bd273ad627mr26897115ad.16.1778666451313; Wed, 13 May 2026 03:00:51 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:51 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 06/46] nl80211: Allow NAN USD frames with foreign destination address Date: Wed, 13 May 2026 15:29:30 +0530 Message-Id: <20260513100010.1947710-7-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=df+wG3Xe c=1 sm=1 tr=0 ts=6a044bd5 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=O4GJ2gd11o2y1mued0kA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX9dIc+3/eDOZC /PIyWJjnQ42tKKdWwUBkiaYwocAy7w17DCgVEHOcad2MkFStdG1JsXCpDjxM0H/VBDwmhFmFo6R pYT5m+oydZd1t0ykMfm1mdyC7IGLQBGZaAFIEuMC2gtO6Q2FrNjATXzzWoW5DSqc1Lh7IxSp80s hQ97qtLjn1glsTCvPX4lmCWojKinjuQRYT3NeNhh+Hlis/GfRAkznQ8Zx+3T8+/lDtXViGdZRK9 FKqehMiP/gN9S+SXPhBQzL5FXyJyh0++Q4tz6RWQ3PdZojL0lCW/seCznA8OcQCcxuOK+FEivCP /uuKkp9GeefXfEZNtAdyvip14e/Zlwre/UVyoOp6QMFyi5IgT88epx7R0SE9XKpWKYbz20YaNrI 7i3vNwnJEMjtKH+mOUSpcXcHkoKfVCbAltipX0yG3xgp1nV+oJcKyXSYss730nx6QIm77dUMoPX Yqp3OoUe0+YzaFOoQpg== X-Proofpoint-GUID: 2hpSVTC_zEHG_esPkOUYj9vA9N0LJApf X-Proofpoint-ORIG-GUID: 2hpSVTC_zEHG_esPkOUYj9vA9N0LJApf X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030054_993590_FA2DF767 X-CRM114-Status: GOOD ( 16.02 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy NAN USD (Unsynchronized Service Discovery) frames are Public Action / Vendor Specific frames with NAN SDF OUI (50:6f:9a:13). They can arrive addressed to: - The NAN Network ID (51:6f:9a:01:00:00) for [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy NAN USD (Unsynchronized Service Discovery) frames are Public Action / Vendor Specific frames with NAN SDF OUI (50:6f:9a:13). They can arrive addressed to: - The NAN Network ID (51:6f:9a:01:00:00) for multicast publish/subscribe - A unicast forced_addr for solicited publish replies and follow-ups Both cases have a destination address different from bss->addr or bss->rand_addr and were being silently dropped by the foreign address filter in the MLME event handler. Fix by checking the frame content (Action category + PA Vendor Specific subtype + NAN SDF OUI) instead of the destination address, alongside the existing PASN exception. Signed-off-by: Peddolla Harshavardhan Reddy --- src/drivers/driver_nl80211_event.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c index 86503f62e..b60de54c1 100644 --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c @@ -1849,6 +1849,7 @@ static void mlme_event(struct i802_bss *bss, size_t len; int link_id = -1; struct i802_link *mld_link = NULL; + const struct ieee80211_mgmt *mgmt; if (timed_out && addr) { mlme_timeout_event(drv, cmd, addr); @@ -1889,9 +1890,11 @@ static void mlme_event(struct i802_bss *bss, /* PASN Authentication frame can be received with a different source MAC * address. Allow NL80211_CMD_FRAME event with foreign addresses also. + * NAN USD frames (Public Action/Vendor Specific with NAN SDF OUI) may + * be addressed to the NAN Network ID or unicast to a forced address + * (e.g. solicited publish replies, follow-ups), allow those too. */ if (cmd == NL80211_CMD_FRAME && len >= 24) { - const struct ieee80211_mgmt *mgmt; u16 fc; mgmt = (const struct ieee80211_mgmt *) data; @@ -1905,6 +1908,19 @@ static void mlme_event(struct i802_bss *bss, wpa_printf(MSG_DEBUG, "nl80211: %s: Allow PASN frame for foreign address", bss->ifname); +#ifdef CONFIG_NAN_USD + } else if (cmd == NL80211_CMD_FRAME && + stype == WLAN_FC_STYPE_ACTION && + len >= offsetof(struct ieee80211_mgmt, + u.action.u.vs_public_action.variable) + 1 && + mgmt->u.action.category == WLAN_ACTION_PUBLIC && + mgmt->u.action.u.vs_public_action.action == + WLAN_PA_VENDOR_SPECIFIC && + WPA_GET_BE32(mgmt->u.action.u.vs_public_action.oui) == + NAN_SDF_VENDOR_TYPE) { + wpa_printf(MSG_DEBUG, "nl80211: %s: Allow NAN USD frame", + bss->ifname); +#endif /* CONFIG_NAN_USD */ } else if (cmd != NL80211_CMD_FRAME_TX_STATUS && !(data[4] & 0x01) && !ether_addr_equal(bss->addr, data + 4) && From patchwork Wed May 13 09:59:31 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237622 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=KLN5nToo; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=aPeQP/oU; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=dIBhOo4/; 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 4gFpsl11XJz1yLT for ; Wed, 13 May 2026 20:02:19 +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=QJ5Yf7SSwZZZMaNShIQQoDmw0NG0XnYImxDZrDkIYXA=; b=KLN5nToogcW1AV 6SRg2p+F7hZw0G8WvhcQIHIzvRiyEcJclWAuPMuD7CYeccoKmBZYgEZF4hdnSxrYlEcs1URfbdRQh SqgTqRd9auDR5ROThfVTcbAL7auq3zQAzWhbauOfI9/JBiNa3Wf24gj2AUKdNuxdPeuGW0+CJoSF9 ekLpXZ3QafqhzBHqdvSw4Bxq+qyO/bUxu8373KxL/1r1u7wIvEEK+z4x3eu92bw5tWjEykhcoY8zj k5BC4d8RBbtIHU+1nEGX64/vc0Fa4X96IFkfNyRFEMEu8Fx2g7exmEidykzQHMkmyZIPiLa7ewnKL 6Cxq1HOa9t0ixj0/ajkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Oh-000000020lK-36H6; Wed, 13 May 2026 10:00:59 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Of-000000020jl-1VXL for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:58 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p5ox2338760 for ; Wed, 13 May 2026 10:00:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=MBeYMlBhdJ+ 7xZ8sLm4ZCMoMGzuj241L1VkPwNeE6AA=; b=aPeQP/oUclxbArG65yqgzWcbWDu nhPC0aPSDjVa8NBlIBQjpl+KXuR0+O+zZBFpmPysc3Q+2iRmLtTM3tq2MeaOgnee U5HtbaQlfHB1RDkdTSzg0kZ4HRW3J6fbGYPYDQLQHkNxOjF7yPWUwkEouOeODVq5 ABXuL1Ey5Kqf2sz0bGectdvS2TzNju/nUbpR6P3hbfmtKomvM/iE8b5z+WCcJPqS 4wXEIbwIpwZRpOlxK6MG9lnyBBJLuwcOUDWsqN8VzhtE5Mr8qjvvSY36nKVLRJdk EJmPlll8vbQMUCkCCiaM+41PJXij/UtdRloUagZbyhwujD/mmJ0Nfh9q9cQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavv8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:56 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b9fe2d6793so119447985ad.0 for ; Wed, 13 May 2026 03:00:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666455; x=1779271255; darn=lists.infradead.org; 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=MBeYMlBhdJ+7xZ8sLm4ZCMoMGzuj241L1VkPwNeE6AA=; b=dIBhOo4/OT5STh6kxldearjCIV3JHt8hrJcAvRs76vip/E/pbbyP3Mx4syh2snXI3v gDmxFUQV097eSTNXCYdf68Q4LNC7WpVlMIkDjBkOY7RrsdmHQ7o2PYR7zy/tvV2MdVg2 dqDjLeNAw+96INOnsEFYKlsFLEK+qBdqCFMYli/SNapMo9JRWAgHzyze9mA2vmlRX2qD Fdf1KV7DJHbi15NCdmz1lHSqy/1nUP6068c2YOhzk4/SXh2aTBzz8lNRKqAPoKJ17ot+ XLjLX71TsDz/kru1G7gloy368ap/vP9wcp7ZFb3KoABKkawPahX0Dn31J8AqPiEAhMmm v3dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666455; x=1779271255; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MBeYMlBhdJ+7xZ8sLm4ZCMoMGzuj241L1VkPwNeE6AA=; b=ZPPPcOcue+HGA9CssjB0jZmL4l+kmgw3cl7A22QzHJtXX59tjQPtwBpMoRWnY91zwi K2gvP7E/Qy5l7icE8VfTnG4iBpTI41QcDdyVDKFafU5UsaOJSJQeV8xqK6eI0sqbQvIS 3w7fMG04880Xu2pRH+AU6E4GLnekWc6HGLe4ch+8tOhnwchsGvGzsUEytnvwa+Os4lHA VOR2urbCCcexSb1SnbBCA4hOMQiWkiOy4M7LUrR2SOrolYAk/H3of3u8PriOV7AKIoK2 X7QWbiNLp1jH8u4aWiwLjrLCi5y1wqphGG7jdvF0IwKd6c7oEBO68yRfxTGqeXN9DgaM tkTw== X-Gm-Message-State: AOJu0Yw2uaMYyOWLzwUDxwQmopw2oX01GYlv2n11gBTJbfRlHmXE3uZF /AvDbgxOfdFFo8hLKDC7HhjcyVxaKettc65CUZMH8NZao58/SkbKmvdU0Ao3ZlXBXKiz/svxNba AWSuzQKnO14gPa9KSnNzLFcZeedVz/pFBU4/MO9FEMEaBe3/T4IbK42bwY9Go4G3V6lHrdir4 X-Gm-Gg: Acq92OHDomGIDgbpAPfUW4Bv3Dwj912PvrtE3ZzoWuU1nr19+g5eoVVy8qc1K+I5t54 zMM5R5yE9j/EGsjq17fe/8UlFSUS6Bz45NwLJy98n0Kb+S8BgXqLXDNNxsjt858G9L3qq3lEjDG u9aVQWd8T4FTL8PGl3+L+SJOLTalgG81qBxN2d/0e/Lf+Zxid1DIjp2+pYWi1wkjcrn3Bh2g6wS ZknwwCGf3AjbE0g4f44cqdYAuD8t1f1uY7oAgE1aOi/wkzqzX+2mnFM2zrNE0nSyYVPr88gOn80 2ZxMcDwPEw1/1RqHTUIWXpc+mB2n+ncqss+wrVFlPtbt9hFv7KQy28Q8izJOQCW3QpzcIcIOtJM 9Him+uc1rLjdv1S1btnxvRv4gpRe+oRENqACCNdTq3futtJc2BSf3eg== X-Received: by 2002:a17:903:4b50:b0:2bd:35a3:cd4b with SMTP id d9443c01a7336-2bd35a3d7b8mr16680285ad.3.1778666453960; Wed, 13 May 2026 03:00:53 -0700 (PDT) X-Received: by 2002:a17:903:4b50:b0:2bd:35a3:cd4b with SMTP id d9443c01a7336-2bd35a3d7b8mr16679815ad.3.1778666453478; Wed, 13 May 2026 03:00:53 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:53 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 07/46] NAN: Make NAN and P2P network IDs globally accessible Date: Wed, 13 May 2026 15:29:31 +0530 Message-Id: <20260513100010.1947710-8-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: YPDEWNSL0iL4csJ52OFkeQv4Pyq5tf9e X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX41LV3VIznRvf bugKIUfCxYHOsMSz8VEoQIKY1k2EIDWhLrWFcwBffb0JflGEKxSH3Sh4Z2P4NVxL9MJpn5sRFa/ WKx8uMZdPFSw5cYPUCIW0Yl4uv2X4rfVdg/5KngpKTuH2O1G8YUDHCcfcfvXd0Ns16jWDrivoSR L+ZLDRZ4uykID+KrI+ILtwwTa4hzqtKY0cqmpmz+fXa+I5GXJM2qd0saUKNvHwnVhOCsqy9V9WQ iMD+4F7MN9FGiYoI1fD9Uh8pvTnmxOqnZVg/i8sFBmhyPJRex3oKWJf/SzLxNvYN13mSS1u08R0 8Uq/x4/ThWkNaKNYwDNjCawVEW0KRNt52j59xrwP/aEsV5Tu5ix/HUvhQu9KxWFRviqlM8IIzHV w6ClA7eKtO+QPG6GXqdV5UhWUy8F3gfZhFUgy84R0KrC9GtnZ5nS5tNCCrwiBxqp0GT80VR38Jp 88pVJjCo9yCOJrUeWRQ== X-Proofpoint-GUID: YPDEWNSL0iL4csJ52OFkeQv4Pyq5tf9e X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044bd8 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=tUoIYPNEdIX5z8XIlQUA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030057_517067_A2023A32 X-CRM114-Status: GOOD ( 13.42 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Remove the static qualifier from nan_network_id and p2p_network_id and add extern declarations in nan_de.h and nan_defs.h so other modules can reference these network IDs directly. Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Remove the static qualifier from nan_network_id and p2p_network_id and add extern declarations in nan_de.h and nan_defs.h so other modules can reference these network IDs directly. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/nan_de.c | 4 ++-- src/common/nan_de.h | 3 +++ src/common/nan_defs.h | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/common/nan_de.c b/src/common/nan_de.c index c5b102277..72ee6fe47 100644 --- a/src/common/nan_de.c +++ b/src/common/nan_de.c @@ -19,7 +19,7 @@ #include "nan_defs.h" #include "nan_de.h" -static const u8 nan_network_id[ETH_ALEN] = +const u8 nan_network_id[ETH_ALEN] = { 0x51, 0x6f, 0x9a, 0x01, 0x00, 0x00 }; enum nan_de_service_type { @@ -27,7 +27,7 @@ enum nan_de_service_type { NAN_DE_SUBSCRIBE, }; -static const u8 p2p_network_id[ETH_ALEN] = +const u8 p2p_network_id[ETH_ALEN] = { 0x51, 0x6f, 0x9a, 0x02, 0x00, 0x00 }; static const u8 wildcard_bssid[ETH_ALEN] = diff --git a/src/common/nan_de.h b/src/common/nan_de.h index e3d872f38..95ca161f2 100644 --- a/src/common/nan_de.h +++ b/src/common/nan_de.h @@ -84,6 +84,9 @@ struct nan_callbacks { bool (*is_peer_paired)(void *ctx, const u8 *addr); }; +extern const u8 nan_network_id[ETH_ALEN]; +extern const u8 p2p_network_id[ETH_ALEN]; + bool nan_de_is_nan_network_id(const u8 *addr); bool nan_de_is_p2p_network_id(const u8 *addr); struct nan_de * nan_de_init(const u8 *nmi, bool offload, bool ap, diff --git a/src/common/nan_defs.h b/src/common/nan_defs.h index 88b46eaf3..f0c804553 100644 --- a/src/common/nan_defs.h +++ b/src/common/nan_defs.h @@ -173,6 +173,10 @@ enum nan_pairing_bootstrapping_method { #define NAN_USD_DEFAULT_FREQ 2437 +extern const u8 p2p_network_id[ETH_ALEN]; + +extern const u8 nan_network_id[ETH_ALEN]; + /* Map ID * Wi-Fi Aware spec v4.0, Table 79 (Device Capability attribute format) */ #define NAN_DEV_CAPA_MAP_ID_DONT_APPLY_ALL BIT(0) From patchwork Wed May 13 09:59:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237633 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=bCkQ0TU3; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=adGPAjQO; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=UBzKq0+N; 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 4gFptD3xzTz1yLT for ; Wed, 13 May 2026 20:02:44 +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=Xm9vBCYZ5Y6gevfx0fLoBeetZHqF1D//+E7Wy0O+sKw=; b=bCkQ0TU3j7hFyk /C9ubSNs2lDbavQcxSk49QCkb7L7Iek0SwKVULR8KEVtPBUDKsJTw7dT/Eau9DHo4jdcfubiLR2nD mfId5SPjw90KTmQAnTk/5yPZ6gocf6VgAwuv1+559XYbMSqanyQArpWVgfn+nXg/fr1zgMhctaShc UF0wL8D/cXyBodmFQenEOBHg/FC+xgpiKDE/rMKrWf/xTYbOoIxoV8CPhCURkyrcp8yHdALxOb2Yq cDnk2zlckRUE2Kb6MJNzS/LCWDiYW4kdAJG3AFeFu/b8GvjaMO3BBRQFH1sx+7Wh8xCxZZtuX9FVj /N/G1DKpXKO0Ilq0ETqQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ok-000000020nr-0Aey; Wed, 13 May 2026 10:01:02 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Og-000000020kE-2Z3Z for hostap@lists.infradead.org; Wed, 13 May 2026 10:00:59 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pFhP2338896 for ; Wed, 13 May 2026 10:00:57 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=ThzcL7bn7ZT E+nsg5Kw9IVxpHZXUxaeD9FRET8E5Dn0=; b=adGPAjQOdD6CD4tCTK6RuPu+E7T bGo5qACFfqhQiYWHNbjFNKFh7k/fzRqKSGuaRl4AX7kgiKSsSxNI+agjBQA+DTVo Newmckal1FD2+pNpY8gyEQR1vswmDV7KYnMlQCcpkyXbqtLTefI7IOzj1RoLTNEF +7riaVdkiPq48zlxQr1TfKhzmQphJjUbG0QXSRAp6G68CQtTla53vuywQhpJKNJy Li9f2eaL1xgdkm+jXGIW2tqurf7Ly6U7lCI/er6fxLqLl4G8AcKEiS0iudR3tJmm T/YhbKtbUkx/eoCjAWjv1em3yigsH189TAq3gRzh1nRvX3R2JGqtfc3yI1w== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavvb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:57 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-365fd467cf6so5812191a91.0 for ; Wed, 13 May 2026 03:00:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666456; x=1779271256; darn=lists.infradead.org; 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=ThzcL7bn7ZTE+nsg5Kw9IVxpHZXUxaeD9FRET8E5Dn0=; b=UBzKq0+NgcicxWG4sMazdLBf+wWMITOoQjY3Zuph3z8hpuWgicrJUb2X6qCda8vTSi A2J+GAiY+60KIA5kUkrVUbg05OaBCF2c6f4fiRmzjr3K9lSl0nY6TJWqNRgyLFtjuw2O BZ1hZ3iEOS0fO2kHQdvr5Q157/5krjGIMB4TANs8r3mSz4GqSpIJwXwLXoa3J8fTAKNV HUBrfVZMvD/shCnAc/+zxqEqEnHlxvTIhaJoAiOLQeHhskwL9AsPErO/EM2nD2QJ65aC IBTNpf7egxuY4jJ38lIdVyG4dJg1Vd+30KuVib4VfFc0O3Bv7KDhhUhphjkijLLW3COS xgzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666456; x=1779271256; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ThzcL7bn7ZTE+nsg5Kw9IVxpHZXUxaeD9FRET8E5Dn0=; b=hBRLROWQQ3IMGN4jcgq9A7TvBo2D9GTWB1clx3wFmi/OzeeODTwgqtmiPdvZuoexCD ILN2WmTwS035lmiNry9Dr4vTEgcckCQoX5ExKmYZDdq6YqSqfOjiRQdZk3bU5jzsDgpr m95HBW4tk5dc9KTdRuL/wARWnOyguIuepatYm0jrVCuYYqnHtXJU69TV8jLTUk6qjJSK wgn6H/Z8Pkb3We9tPGAJJJWk6yX707IfrFbFqQ0ZiAFD7R5VoQ88R/IXlYpgoMCp2R5v VV2FiseKy9kvLYPCtxP0q5VGaFDFKTqNpd64lfPhA6LXGV+kH6GoDBnmje0AXS7ULBHy 5oxg== X-Gm-Message-State: AOJu0YwLjqe032DYaruYXzGRKgO4zXkqxGPeumjD0z0UwumeyF1OA/eZ 9qmZXp90fdIFlczkZkQsuHlR6Oo7DgVXO6rJxLkVvnBod8TTWCn3FkzZWpeO3MtAixVZC8Zhrjf +PJwH4TeX+i+G2/6C9FdZbw1xv9AEOOYeqh7xR6y8mLfQoqaOPdoiHM3YI2DUsmyp4f26u+cr X-Gm-Gg: Acq92OFq6ZcxXPMHhTIZWtjWYvxbKcuFgn5ybdIfAOxrUpgoyLEtlmoHswKGY86g6uR MahQVJKkRnasWPioIqG4ROGR03giSADGL3XW3c4R9JssQU0KnWd2+ySCsRd6n5FiPsXik+EhzXP nGcoH7/U2tZkvFU0W7Jnh/TR2dFP1cH1xDyJ+U8Bk+VzZdCkNHtDtAhBYYyoTMYFUVFR2H3zhIP 746v7vrIT4vRkuju0EByclqWPEoEE6WX5VkqDjLGpfsJJkn8uBE6G7BF2FUA9VeHqkMR7XssmEP DOhIHdSbtOOOTXe77acRiBAZapZDb6rUzpOtDOPdq5DSefSytG8LuYeSa+3gjVLfs5ZmndkrACg 1C3sHmIzQVIUBFMxqq+daR/+uWypWtkAX5AJD+JyNN0nb/pacuuO68Q== X-Received: by 2002:a17:90b:3bce:b0:35f:b572:ece3 with SMTP id 98e67ed59e1d1-368f38897eemr3009557a91.6.1778666456133; Wed, 13 May 2026 03:00:56 -0700 (PDT) X-Received: by 2002:a17:90b:3bce:b0:35f:b572:ece3 with SMTP id 98e67ed59e1d1-368f38897eemr3009501a91.6.1778666455610; Wed, 13 May 2026 03:00:55 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:55 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 08/46] NAN: Use protocol-specific network ID in USD offload to driver Date: Wed, 13 May 2026 15:29:32 +0530 Message-Id: <20260513100010.1947710-9-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: X5TaMEge7fIfsZ8vLZW6Bp_w9jymKLl_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXwJn+RY2dSE9q wS2l9uma0x4g/5Xarejdz9RSpDFwQ3zEFlElPSUdlt9ifXX6WCCCM6cktbvfm8maFpK/1bZy+gv 73JgUIQwns419YJ72ONSyDin2pNjmVFcGS1G1zm/y9JVZQHyXlPHOk7g2QVVFH41px3I4mzwPfk 1qN73WogFgCH9tZAOBwQUcWWfJJ3WUhql6gEt7IxhqcrBGA1cxTtCB6YkkZsyXsD+vtoAXQh0Qb ddJWxm9b/iOZc6gIhZpQyS9tgn7jWQDsHwTbV5O0ZmjwL4GflVT45e9N5ZW54e0FVTf4Ft8HVWs EUO+19kE2PZoWHK826pgjQLQcm5/m2s0xm7epuiwFPszDLn23fAN7DUXH6XIm8qQgpx7upb31M8 FT4OVE9VubvuXw3Qakydj+H4T3EdlZaedx7I6076BQ/I+2b0jwN3z+IJsj75wFbWlicxHl1QCVW JDDID2t1y3DlH+zR/oQ== X-Proofpoint-GUID: X5TaMEge7fIfsZ8vLZW6Bp_w9jymKLl_ X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044bd9 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=fMzaNINpTaH1Rku4WgYA:9 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030058_783754_685BDD80 X-CRM114-Status: GOOD ( 16.66 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Add network_id parameter to nan_publish() and nan_subscribe() driver operations and pass the appropriate network ID (nan_network_id or p2p_network_id) based on the protocol being used, so the driver c [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add network_id parameter to nan_publish() and nan_subscribe() driver operations and pass the appropriate network ID (nan_network_id or p2p_network_id) based on the protocol being used, so the driver can include the correct network ID in publish/subscribe frames during USD offload. Signed-off-by: Peddolla Harshavardhan Reddy --- src/drivers/driver.h | 6 ++++-- src/drivers/driver_nl80211.c | 14 ++++++++++---- wpa_supplicant/driver_i.h | 11 +++++++---- wpa_supplicant/nan_supplicant.c | 18 ++++++++++++++++-- 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 69231d468..bbab06e7b 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -5683,7 +5683,8 @@ struct wpa_driver_ops { const char *service_name, const u8 *service_id, enum nan_service_protocol_type srv_proto_type, const struct wpabuf *ssi, const struct wpabuf *elems, - struct nan_publish_params *params); + struct nan_publish_params *params, + const u8 *network_id); /** * nan_cancel_publish - NAN offload for CancelPublish() @@ -5720,7 +5721,8 @@ struct wpa_driver_ops { enum nan_service_protocol_type srv_proto_type, const struct wpabuf *ssi, const struct wpabuf *elems, - struct nan_subscribe_params *params); + struct nan_subscribe_params *params, + const u8 *network_id); /** * nan_cancel_subscribe - NAN offload for CancelSubscribe() diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 6adc7c853..3b50ffca3 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -14395,7 +14395,8 @@ static int nl80211_nan_publish(void *priv, const u8 *src, int publish_id, enum nan_service_protocol_type srv_proto_type, const struct wpabuf *ssi, const struct wpabuf *elems, - struct nan_publish_params *params) + struct nan_publish_params *params, + const u8 *network_id) { struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; @@ -14431,7 +14432,9 @@ static int nl80211_nan_publish(void *priv, const u8 *src, int publish_id, (elems && nla_put(msg, QCA_WLAN_VENDOR_ATTR_USD_ELEMENT_CONTAINER, wpabuf_len(elems), wpabuf_head(elems))) || (ssi && nla_put(msg, QCA_WLAN_VENDOR_ATTR_USD_SSI, - wpabuf_len(ssi), wpabuf_head(ssi)))) + wpabuf_len(ssi), wpabuf_head(ssi))) || + (network_id && nla_put(msg, QCA_WLAN_VENDOR_ATTR_USD_NETWORK_ID, + ETH_ALEN, network_id))) goto fail; attr = nla_nest_start(msg, QCA_WLAN_VENDOR_ATTR_USD_CHAN_CONFIG); @@ -14547,7 +14550,8 @@ static int nl80211_nan_subscribe(void *priv, const u8 *src, int subscribe_id, enum nan_service_protocol_type srv_proto_type, const struct wpabuf *ssi, const struct wpabuf *elems, - struct nan_subscribe_params *params) + struct nan_subscribe_params *params, + const u8 *network_id) { struct i802_bss *bss = priv; struct wpa_driver_nl80211_data *drv = bss->drv; @@ -14584,7 +14588,9 @@ static int nl80211_nan_subscribe(void *priv, const u8 *src, int subscribe_id, (elems && nla_put(msg, QCA_WLAN_VENDOR_ATTR_USD_ELEMENT_CONTAINER, wpabuf_len(elems), wpabuf_head(elems))) || (ssi && nla_put(msg, QCA_WLAN_VENDOR_ATTR_USD_SSI, - wpabuf_len(ssi), wpabuf_head(ssi)))) + wpabuf_len(ssi), wpabuf_head(ssi))) || + (network_id && nla_put(msg, QCA_WLAN_VENDOR_ATTR_USD_NETWORK_ID, + ETH_ALEN, network_id))) goto fail; attr = nla_nest_start(msg, QCA_WLAN_VENDOR_ATTR_USD_CHAN_CONFIG); diff --git a/wpa_supplicant/driver_i.h b/wpa_supplicant/driver_i.h index f92a96e02..034827488 100644 --- a/wpa_supplicant/driver_i.h +++ b/wpa_supplicant/driver_i.h @@ -1222,14 +1222,15 @@ wpas_drv_nan_publish(struct wpa_supplicant *wpa_s, const u8 *addr, const u8 *service_id, enum nan_service_protocol_type srv_proto_type, const struct wpabuf *ssi, const struct wpabuf *elems, - struct nan_publish_params *params) + struct nan_publish_params *params, const u8 *network_id) { if (!wpa_s->driver->nan_publish) return 0; return wpa_s->driver->nan_publish(wpa_s->drv_priv, addr, publish_id, service_name, service_id, - srv_proto_type, ssi, elems, params); + srv_proto_type, ssi, elems, params, + network_id); } static inline int @@ -1258,14 +1259,16 @@ wpas_drv_nan_subscribe(struct wpa_supplicant *wpa_s, const u8 *addr, const u8 *service_id, enum nan_service_protocol_type srv_proto_type, const struct wpabuf *ssi, const struct wpabuf *elems, - struct nan_subscribe_params *params) + struct nan_subscribe_params *params, + const u8 *network_id) { if (!wpa_s->driver->nan_subscribe) return 0; return wpa_s->driver->nan_subscribe(wpa_s->drv_priv, addr, subscribe_id, service_name, service_id, - srv_proto_type, ssi, elems, params); + srv_proto_type, ssi, elems, params, + network_id); } static inline int diff --git a/wpa_supplicant/nan_supplicant.c b/wpa_supplicant/nan_supplicant.c index 3a578334c..5c162ad8b 100644 --- a/wpa_supplicant/nan_supplicant.c +++ b/wpa_supplicant/nan_supplicant.c @@ -4460,6 +4460,7 @@ int wpas_nan_publish(struct wpa_supplicant *wpa_s, const char *service_name, int publish_id; struct wpabuf *elems = NULL; const u8 *addr; + const u8 *network_id = NULL; if (!wpa_s->nan_de) return -1; @@ -4501,6 +4502,11 @@ int wpas_nan_publish(struct wpa_supplicant *wpa_s, const char *service_name, } #endif /* CONFIG_NAN */ + if (p2p) + network_id = p2p_network_id; + else + network_id = nan_network_id; + if (p2p) { elems = wpas_p2p_usd_elems(wpa_s, service_name); addr = wpa_s->global->p2p_dev_addr; @@ -4523,7 +4529,8 @@ int wpas_nan_publish(struct wpa_supplicant *wpa_s, const char *service_name, wpas_drv_nan_publish(wpa_s, addr, publish_id, service_name, nan_de_get_service_id(wpa_s->nan_de, publish_id), - srv_proto_type, ssi, elems, params) < 0) { + srv_proto_type, ssi, elems, params, + network_id) < 0) { nan_de_cancel_publish(wpa_s->nan_de, publish_id); publish_id = -1; } @@ -4620,6 +4627,7 @@ int wpas_nan_subscribe(struct wpa_supplicant *wpa_s, int subscribe_id; struct wpabuf *elems = NULL; const u8 *addr; + const u8 *network_id = NULL; if (!wpa_s->nan_de) return -1; @@ -4660,6 +4668,11 @@ int wpas_nan_subscribe(struct wpa_supplicant *wpa_s, } #endif /* CONFIG_NAN */ + if (p2p) + network_id = p2p_network_id; + else + network_id = nan_network_id; + if (p2p) { elems = wpas_p2p_usd_elems(wpa_s, service_name); addr = wpa_s->global->p2p_dev_addr; @@ -4683,7 +4696,8 @@ int wpas_nan_subscribe(struct wpa_supplicant *wpa_s, wpas_drv_nan_subscribe(wpa_s, addr, subscribe_id, service_name, nan_de_get_service_id(wpa_s->nan_de, subscribe_id), - srv_proto_type, ssi, elems, params) < 0) { + srv_proto_type, ssi, elems, params, + network_id) < 0) { nan_de_cancel_subscribe(wpa_s->nan_de, subscribe_id); subscribe_id = -1; } From patchwork Wed May 13 09:59:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237634 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=ujMy9VIU; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=BH4d8vPj; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=P+hfm+hK; 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 4gFptQ1rfjz1yJ5 for ; Wed, 13 May 2026 20:02:54 +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=j43tA3K9036REzttwEBhMk+74h1rt8O6E1dHNIDlgko=; b=ujMy9VIUtfaE2f io0KQg2Ax41+ZsMzK/fSCaVUkX5+QfRupmoT3rOWIhBVQngXuUBczJyT1VEgxAHw1R1eyL0DUL5TM CFUGApsnBKmxsn3mKEFdKmyXgS6OSW9+Ps6uRyiQ8w+H4Dx32EjGRUtKDaTtF23BuyqvFYAluXbEs bCdnEu5ybtpfh+/dB9Rd48SiomSvrtQ5sdG6k9yxm/Oi3jGIE3XUsP+4ppuRSFyBW5Gpa/Xxb9Ire cK8sJz2d739+oeurk7ax6Hfb6Jx4U0WvEPMHxvCQqKxIrc78bbui0h1wk2wRNMtr8vFKfJ4x5d2x2 IUPpcP2qY06MofWXS0Sg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Om-000000020pT-0qWH; Wed, 13 May 2026 10:01:04 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Oi-000000020lq-3zIi for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:02 +0000 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D9jkqb3007701 for ; Wed, 13 May 2026 10:01:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Of6e1PdBG5X x+ggDD4KlhXUo30Hck3IBtFuu0RLd1e0=; b=BH4d8vPjkx97VsffBW33vInd9yh NM2rpX6fxnXbUUKviQhYbhOU/0ngU3IfhqQALUgygNJljiq5xz4C8f7k1NR5+Jkz vsBRhzLz4KN8xSLLdDLsu+1NqU9BhzmJIBe7B5SFOtR0ySXmVWQBwT9/dkBI5Nto I0iirflQOymI94RmaG5JgajR4EdbiHdXLq20tuaKwXhCsQ532avh7zB1vdmHSFYE CPk8DLoTQWSbcKsiywyrFplB4HXO+0xCRhwFt95hGyEo0RkbRTZq22Ooa/jS+s4Z UmH0d67JOR2QAmnnmzM8QxceAMbNUdci4vosbkUXk0InR5NYtyZyp2HxaaQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4py0g22h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:00:59 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba86e35aa1so102713735ad.1 for ; Wed, 13 May 2026 03:00:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666459; x=1779271259; darn=lists.infradead.org; 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=Of6e1PdBG5Xx+ggDD4KlhXUo30Hck3IBtFuu0RLd1e0=; b=P+hfm+hKaAWJa/ayLdLs6O7kF2DVX83t1j4c4wC70WO8B1QLqD/CAVb3bczX4yLssF lJcAC+Dk+F/pd0LGznEWztt2mtmm/ut4tlMFeb3WTUEGSxwWxA0PFbUNNaMj7o57MNGK WSopWRqrovYzDXq7xQ5ouz7kR4TxoeZxosffMiIZ50zhRk8dbJ79MQ2Ke+5YRP+q07pz aLmKqJwJRSq4rdbB5A46rvoiWI9sSNLuEe5l3rvdl9ykSS8GxUPhOh0NQZB2+AG02ufo IASUqd4dbqJmHUHl3ueIlFZvnrqAfCmIyTlzIjxzRL3LYzAfjexEqfelFhWLw4HZOxux 2/DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666459; x=1779271259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Of6e1PdBG5Xx+ggDD4KlhXUo30Hck3IBtFuu0RLd1e0=; b=JqzFmfwMSNYzdrp6XT3Qtk0Vpj8OPhkWYICtg/Ak2gSc+gwjWnSfVRJMwKzPqyOxHD vOFiFlEVS6ZCykAp7dF4FQjbmb9nEMTQN11XzXs3LI0znRR75qnXjsHw3288viALYG+y Gb6cjQyOIyRIAIdxMZl9MRYwEiO5uXLtSJkL2jeBq3dJo7YQ7sx3kWU6XN0Z/o50uXo7 4LUxw5GA96cmEtFQg1eTshoVpheoZ6RgS4fG8zJtGSKfiTvdV6HlFN36g7KDmVyyBEJm uhv5igtJWu6NleQgRCazrGGNdoTU+1YvuO/wFg2IW/qpLZ7yNPehgmwkMF6fuG2jazZF u9DQ== X-Gm-Message-State: AOJu0Yxl4x29e1n10+bsqZNn4YMsA2g/nc5dAnmJgDZQtrRjmnsJnVB+ ba9GJw4vvgsCUxywHzhvBEENDsA7Eg7vJzUxaNvECa0u9bPnUXOKThK4byiuEqFXUDU0zLoh7bR L3tmu5GF/1OaKD+vyC9bW7oZVyVuygadl6jn5gSNx5TDr3Xf+8OFKB0VBZXVAKZoDR/x4g6jD X-Gm-Gg: Acq92OFqY/n7/jXhimlDiK9LfnqPnt8zxuZs8YtFpmpitcr2y0+oGho/Uc2ntLVZvF7 tTw1YrG7l10uwy4A4W0ZoFhrr8W2ob2zjYQBHee1g+dxH8e2pZC95C2IqN/TVSZzfCIT5aADF2p 0K2mwRps21ewAxfn4aSKkZDkZHYZiCdHRDz2F7S6ahkt9zOxzTTszyihIfMuW4xuKHTrckQatBP Ytw0RuS+n73j2I+Wi5De6QCgXp5so/jS8YjOEK4O/dbXbdEr17iasS+dJatVypMqMD9+E0Bcjov GzfOWrv21LA7XoCizxastwAs9cDGu+aB0DD9FbWgPu6+ckG3ojMS3KyM8s6TVEYpPGgHS7th1t6 DItFQVKAGh66Jj4ffvikPrUzYloyF47d5UeO7cl+0GzIF6MuU9CMpFg== X-Received: by 2002:a17:902:8306:b0:2bc:90b6:3e6f with SMTP id d9443c01a7336-2bd271475ecmr21491165ad.4.1778666458425; Wed, 13 May 2026 03:00:58 -0700 (PDT) X-Received: by 2002:a17:902:8306:b0:2bc:90b6:3e6f with SMTP id d9443c01a7336-2bd271475ecmr21490735ad.4.1778666457763; Wed, 13 May 2026 03:00:57 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:57 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 09/46] NAN: Pass forced_addr to remain-on-channel listen callback Date: Wed, 13 May 2026 15:29:33 +0530 Message-Id: <20260513100010.1947710-10-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX57Zh6udIY8i1 KXapfqNn/TJAmikKn+OdFm+DdhcJ6Cb18B0bZGLYyvh1eAgIqVElm0d5wnma3s2iuF2/Hhf6/SB Cf3I0NLb8muv2YQm8gxSopmSYUXIPywCIaeoOoSOmWZv6Zoa3lBSeppOuzL7LPbtFzsPP0gb9Z7 UsNnGvleBSPorVbbcsI5d5bGAFzjXRYzWi6IUlXKDMLIB00QHXWZUPH4m/OXMSLv37WT+9ch5hZ nrNgLsTA1JSWYUisCKr35M34HUvSq+s4J9fF4mMVf9EOwYSQaPPudB99hgC6RYWG58shQgRHe5S WJlvUA96VYVRO/U5MNcm0wvZrxaJljDQ3ReinP+vzsjNRTPKSfRV8PId8Ffd7tnv0kwcKJiFwua QJh1ijJx60iS25532DEocU43f9nQNw1aFNYs6/taDkpDVyKdfEBkamiDayh25kfFyx1M4KtB7j8 Zh8CrjyASLlmV6l7gYw== X-Authority-Analysis: v=2.4 cv=XqXK/1F9 c=1 sm=1 tr=0 ts=6a044bdb cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=4boRSznXRoIdqkcONBEA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-ORIG-GUID: c74ixladpnkmIXjImkavJSug_zstIIQv X-Proofpoint-GUID: c74ixladpnkmIXjImkavJSug_zstIIQv X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 phishscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030101_117709_F271D00E X-CRM114-Status: GOOD ( 20.03 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Extend the nan_callbacks.listen() signature to accept an optional forced_addr parameter, allowing a per-service source MAC address to be propagated to the driver's remain-on-channel request. Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Extend the nan_callbacks.listen() signature to accept an optional forced_addr parameter, allowing a per-service source MAC address to be propagated to the driver's remain-on-channel request. In nan_de_timer(), pass srv->forced_addr (or NULL if not set) to de->cb.listen() at both call sites. In the supplicant, store the address in wpas_nan_usd_listen_work and pass it as filter_addr to wpa_drv_remain_on_channel() when the driver advertises WPA_DRIVER_FLAGS2_ROC_ADDR_FILTER support. Update hostapd_nan_de_listen() stub signature to match. Signed-off-by: Peddolla Harshavardhan Reddy --- src/ap/nan_usd_ap.c | 2 +- src/common/nan_de.c | 9 ++++++--- src/common/nan_de.h | 3 ++- wpa_supplicant/nan_supplicant.c | 14 ++++++++++++-- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/ap/nan_usd_ap.c b/src/ap/nan_usd_ap.c index 8620644cb..86183deb3 100644 --- a/src/ap/nan_usd_ap.c +++ b/src/ap/nan_usd_ap.c @@ -37,7 +37,7 @@ static int hostapd_nan_de_tx(void *ctx, unsigned int freq, static int hostapd_nan_de_listen(void *ctx, unsigned int freq, - unsigned int duration) + unsigned int duration, const u8 *forced_addr) { return 0; } diff --git a/src/common/nan_de.c b/src/common/nan_de.c index 72ee6fe47..f620da808 100644 --- a/src/common/nan_de.c +++ b/src/common/nan_de.c @@ -958,8 +958,9 @@ static void nan_de_timer(void *eloop_ctx, void *timeout_ctx) } if ((unsigned int) duration > de->max_listen) duration = de->max_listen; - if (de->cb.listen(de->cb.ctx, srv->freq, duration) == - 0) { + if (de->cb.listen(de->cb.ctx, srv->freq, duration, + srv->forced_addr_set ? + srv->forced_addr : NULL) == 0) { wpa_printf(MSG_DEBUG, "NAN: Publisher in pauseState - started listen on %u MHz", srv->freq); @@ -994,7 +995,9 @@ static void nan_de_timer(void *eloop_ctx, void *timeout_ctx) duration = nan_de_listen_duration(de, srv); started = true; - if (de->cb.listen(de->cb.ctx, srv->freq, duration) == 0) + if (de->cb.listen(de->cb.ctx, srv->freq, duration, + srv->forced_addr_set ? + srv->forced_addr : NULL) == 0) de->listen_freq = srv->freq; } diff --git a/src/common/nan_de.h b/src/common/nan_de.h index 95ca161f2..6e06f61ea 100644 --- a/src/common/nan_de.h +++ b/src/common/nan_de.h @@ -49,7 +49,8 @@ struct nan_callbacks { int (*tx)(void *ctx, unsigned int freq, unsigned int wait_time, const u8 *dst, const u8 *src, const u8 *bssid, const struct wpabuf *buf); - int (*listen)(void *ctx, unsigned int freq, unsigned int duration); + int (*listen)(void *ctx, unsigned int freq, unsigned int duration, + const u8 *forced_addr); /* NAN DE Events */ void (*discovery_result)(void *ctx, struct nan_discovery_result *res); diff --git a/wpa_supplicant/nan_supplicant.c b/wpa_supplicant/nan_supplicant.c index 5c162ad8b..705643ca7 100644 --- a/wpa_supplicant/nan_supplicant.c +++ b/wpa_supplicant/nan_supplicant.c @@ -4174,6 +4174,8 @@ static int wpas_nan_de_tx(void *ctx, unsigned int freq, unsigned int wait_time, struct wpas_nan_usd_listen_work { unsigned int freq; unsigned int duration; + u8 forced_addr[ETH_ALEN]; + bool forced_addr_set; }; @@ -4224,7 +4226,11 @@ static void wpas_nan_usd_start_listen_cb(struct wpa_radio_work *work, duration = wpa_s->max_remain_on_chan; wpa_printf(MSG_DEBUG, "NAN: Start listen on %u MHz for %u ms", lwork->freq, duration); - if (wpa_drv_remain_on_channel(wpa_s, lwork->freq, duration, NULL) < 0) { + if (wpa_drv_remain_on_channel(wpa_s, lwork->freq, duration, + (lwork->forced_addr_set && + (wpa_s->drv_flags2 & + WPA_DRIVER_FLAGS2_ROC_ADDR_FILTER)) ? + lwork->forced_addr : NULL) < 0) { wpa_printf(MSG_DEBUG, "NAN: Failed to request the driver to remain on channel (%u MHz) for listen", lwork->freq); @@ -4241,7 +4247,7 @@ static void wpas_nan_usd_start_listen_cb(struct wpa_radio_work *work, static int wpas_nan_de_listen(void *ctx, unsigned int freq, - unsigned int duration) + unsigned int duration, const u8 *forced_addr) { struct wpa_supplicant *wpa_s = ctx; struct wpas_nan_usd_listen_work *lwork; @@ -4251,6 +4257,10 @@ static int wpas_nan_de_listen(void *ctx, unsigned int freq, return -1; lwork->freq = freq; lwork->duration = duration; + if (forced_addr) { + os_memcpy(lwork->forced_addr, forced_addr, ETH_ALEN); + lwork->forced_addr_set = true; + } if (!radio_add_work(wpa_s, freq, "nan-usd-listen", 0, wpas_nan_usd_start_listen_cb, lwork)) { From patchwork Wed May 13 09:59:34 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237643 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=CcHeW/3X; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=YP60aJyG; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=TrQ4A3U1; 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 4gFptq0pz3z1yLT for ; Wed, 13 May 2026 20:03:15 +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=o/HbBrZ89zYN244F1bjoApU/oAv4TmhZfBhKtOlUGMM=; b=CcHeW/3XVtfLL7 /ztyVpxSthZxkgT1YXg/B5llJ2UcQQVzuXwZeuUP2FtPZb4ZdGQpRtZkxjtInrHZT6dpPnh6uuGmY EB/QBdIxYDzqfbW6Z+AOLWqFKu3UXPtCLKiGLR3q2MVF3+tgcjU1YGwVoEIbNtnq0ptmEwjDWu2SK jINl7TGFrQOyzSrdZexGG2eg1Ss0qTdtCCQoR/uiwQQTGgq18UHMFoihBHeIzlU6Lz7mOW7XgbIRr WiFsJLj2KFboU3A7t/hj3qLglAX2oi2GGvkugkLLp1HPK5S+mTo1HJch4qHDCZROqlFAX4Hkbl7qd 7rfcSqV+dYZgRoPRRslg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Op-000000020tW-1Y0L; Wed, 13 May 2026 10:01:07 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Om-000000020oi-0jYA for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:05 +0000 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p8tB978130 for ; Wed, 13 May 2026 10:01:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=aY/SdJs5h9w POVVzjGfU9wZxoj+ZTCBV/9HbdWhfjNA=; b=YP60aJyGHdS+c/FTgV6mqaLrTfw bqhWoztOKo2qL7Km6ZImhkH9pnkwkBmWUjQlh91yETEQXsAe58VcIvJcWdwF3bfF eLoAdpNxMa2R1H2+RMnL4bjA+491Pl93t1hckTeiHNxLNBpzL0q5un32TGoPekUf jl1hk1cl7BRoBvPpXISxBSpymFRcHNizb2SLwufr3h0j0DE9kwWU/CdU38yZCWf/ dlXcvtei+QQ9cFnH+U5bzVrbKl3yH72r4gAodmJYb2N5pa6mZyizGkvi43N48fDT pajQn+QqhP0j9rTTPJkO4NgcPzO/FQ+6PI+cSp4au93BcP9fy7P3eODdukg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e46s9uqhx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:02 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba718173d1so113682895ad.0 for ; Wed, 13 May 2026 03:01:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666461; x=1779271261; darn=lists.infradead.org; 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=aY/SdJs5h9wPOVVzjGfU9wZxoj+ZTCBV/9HbdWhfjNA=; b=TrQ4A3U1F6LZCNb+kCjA/bTwTWMKEhNKQheMXcyEideVwG7RHIzPafseUT+idiydIt sZWZSmP8HgVdWLulwBsBSExjrY6dQ9cxQgtt4nlCwmVri6eVWPOeTeRFAjLXXkNAKB7M czOJ8PUtBjphG6nDHdhnDzRIJkuyOel1dvrvbnSKeh0j16P6vKxUrTQCx1Lv/GbxFi59 y8vjrtsntYVWMBJ/Zeadg+Tdx3lliTH+2sxG0mNiRk8eYy5d4jeBJ7I9CCSKR0yEq0t/ dSWOtNoUsP1h55kM7NyxjAnmnhpXup+Mb0crxmyPejX+5YAhewoFLBF4Vsqw0SnjLWye Mkig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666461; x=1779271261; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=aY/SdJs5h9wPOVVzjGfU9wZxoj+ZTCBV/9HbdWhfjNA=; b=WdUipfZK+JytmGS6a+jr2yBuIzE0lF7LFtNS5T9T25zKscOnOblFpik2ccTIqA4MRc IIqPxyWUJSDJGKK8WsRh6wVutlG8h796UxeMlHly/4uMNLVoq4s72yUEvMdP63LEENvK SNT7tmHE+r/srKwlOQ9719l29AHECnXHx3BJu/JfAkWXCiIiV2Yy6TLtKi3CbkmkSB9c /JpN+ynU6HgIpKpxJH+1aYp8NVzQZLSwEkaHnSAe7l0sPcCXXgxXlXqXOEnHL0pR+pkJ 96Xyt3m6mx9noW843iyGqQXktgaepFHbc9ixIroClln9H1V+kMx+gfxcJFoPrU2AKpC4 4hTw== X-Gm-Message-State: AOJu0YxQo0WqqTLwqJwpf4E3C8I0QqTtIHuolcBNoS0tUf+bnG64HgAR I3Gcm+XpLM2fZrcY670eShuuwRbnYXvAfhfmVCgBcIaH7MyFOYXrbwVvO2NyJumFmsamFNslZld YHy9Yn5W4kWv3QEIpAZDHZTdRnAW2BijVbUfr1VAmngrU5QTT6wVDH+t4yuXXVaZXdea2OTPm X-Gm-Gg: Acq92OG7i+iebdbrf7QcAVwARTgMeLJPZL+NWl1nNli4SqornxDX4leMBaDUCa9uFiE 7+y0yziv77fBhh+H9MbXP8p8ZBf7s3JYZrMpmOztSrXuf3yIlQlZSzQ865Z0ImXJQAo/zpnZgzR aqkd9R6cUO1FAsPvAokaRNt9M9K7Ke/bOcKNsfr5g4Vj8xoG0inhUuRfjawOkvBNcNccCrgl86H 9aL3bX5QW1XeTAcEmLZV/lZP5A3taBnT5Cg9lDBP4AJRQBzbqSc3sbTtyhjzQ7vJtMD73nkRwMi cf24RVrFKSDadRZQUc/ARZ+2liKgnw3tREuGw160EGWtHgEBVleTVntsNXvlBFvPnIEoTH6w9we plMLJvqx8LxhV9iW3e0CTxwd6BUnNWNbMzKYrdN9S1FFuaegDjQxRHg== X-Received: by 2002:a17:902:8a91:b0:2b2:42da:25c4 with SMTP id d9443c01a7336-2bd2f7116b2mr15850855ad.14.1778666461310; Wed, 13 May 2026 03:01:01 -0700 (PDT) X-Received: by 2002:a17:902:8a91:b0:2b2:42da:25c4 with SMTP id d9443c01a7336-2bd2f7116b2mr15849805ad.14.1778666459922; Wed, 13 May 2026 03:00:59 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.00.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:00:59 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 10/46] nl80211: Parse Peer Measurement (PMSR) capabilities Date: Wed, 13 May 2026 15:29:34 +0530 Message-Id: <20260513100010.1947710-11-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXwppuTtgHlcFW J9xp9YFAQLQC5EaKByHe5GESTrE4xFr708Kgmmf0AjDNX0jHjRVMB6W+Dcn9M160F515CG6mllu 1Cdm10idF1AJN90+J9uROi7j4+tg8oHZC/9Dm+CJuxQvA1IWS0ikBwycy96fptSh860BfRJ7t4N k8QCX8WXoAH+eslFRUeu/1z/Hefg97OYmTjot0rxPVFslErEPzuaJp8jKKljTudMnLBm7jw18Bg VHuSUq2bgrRscEkZBAEYXe42vZU5e0RlTdmCmb/lsWnLgqTyVGrC3pp69YHUYJXd8KyBaNNXTdJ Xriaim4eEAKUrll2miCnmw3EmSq4FplWOsWg2tVyIBqMJjC+u6n82QZLw1xmwQxA1dVQZPGxkeZ MAd+Z5YBVKF301WsO5HabfFvly0iP+0WvVx8Pb1pxjsTrdAhvHJ11gF5BQzo50mtygSy0xdmQoF 4ZTAzQr1Wt1ypCL6OPg== X-Proofpoint-GUID: IE9IfLoAd5D8lztDEeHaLWDPUjv2-3W8 X-Authority-Analysis: v=2.4 cv=L68theT8 c=1 sm=1 tr=0 ts=6a044bde cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=QvpY9k-M3WimbH_AJbwA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-ORIG-GUID: IE9IfLoAd5D8lztDEeHaLWDPUjv2-3W8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030104_351320_CBA76377 X-CRM114-Status: GOOD ( 21.24 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Add support for parsing FTM capabilities for Proximity Ranging (PR). Parse PMSR attributes and store them in nested structs (ista, rsta, ranging_type). This includes support for: - ISTA and RSTA role [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add support for parsing FTM capabilities for Proximity Ranging (PR). Parse PMSR attributes and store them in nested structs (ista, rsta, ranging_type). This includes support for: - ISTA and RSTA role capabilities (NTB, TB, EDCA support) - Per-role peer limits - Ranging type support (infrastructure and proximity detection) - Concurrent ISTA/RSTA support - 6GHz support - Proximity Detection preambles and bandwidths - Minimum ranging intervals for EDCA and NTB The parsed values are stored in wpa_driver_capa. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.h | 14 +++ src/drivers/driver.h | 29 +++++ src/drivers/driver_nl80211_capa.c | 170 ++++++++++++++++++++++++++++++ wpa_supplicant/pr_supplicant.c | 8 ++ wpa_supplicant/wpa_supplicant.c | 6 +- 5 files changed, 226 insertions(+), 1 deletion(-) diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 14106d2fb..85fc40770 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -358,6 +358,8 @@ struct pr_config { u8 edca_format_and_bw; + u32 edca_min_ranging_interval; + u8 max_tx_antenna; u8 max_rx_antenna; @@ -368,6 +370,16 @@ struct pr_config { bool ntb_rsta_support; + bool concurrent_ista_rsta; + + u32 pmsr_max_peers; + + u32 pr_max_peer_ista_role; + + u32 pr_max_peer_rsta_role; + + u8 max_ftms_per_burst; + bool secure_he_ltf; u8 max_tx_ltf_repetations; @@ -388,6 +400,8 @@ struct pr_config { u8 ntb_format_and_bw; + u32 ntb_min_ranging_interval; + struct pr_channels ntb_channels; bool support_6ghz; diff --git a/src/drivers/driver.h b/src/drivers/driver.h index bbab06e7b..32cdbe800 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2660,6 +2660,7 @@ struct wpa_driver_capa { u8 edca_format_and_bw; u8 max_tx_antenna; u8 max_rx_antenna; + u32 edca_min_ranging_interval; /* NTB based ranging capabilities */ u8 ntb_format_and_bw; @@ -2671,6 +2672,34 @@ struct wpa_driver_capa { u8 max_rx_sts_gt_80; u8 max_tx_sts_le_80; u8 max_tx_sts_gt_80; + u32 ntb_min_ranging_interval; + + /* Peer measurement capabilities */ + u32 pmsr_max_peers; + u8 max_ftms_per_burst; + bool concurrent_ista_rsta; + bool support_6ghz; + u32 pd_preambles; + u32 pd_bandwidths; + + struct { + bool support_ntb; + bool support_tb; + bool support_edca; + u32 max_peers; + } ista; + + struct { + bool support_ntb; + bool support_tb; + bool support_edca; + u32 max_peers; + } rsta; + + struct { + bool infra_support; + bool pd_support; + } ranging_type; #ifdef CONFIG_NAN struct nan_capa nan_capa; diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c index 1799c5395..281f06d22 100644 --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c @@ -18,6 +18,7 @@ #include "common/qca-vendor-attr.h" #include "common/brcm_vendor.h" #include "driver_nl80211.h" +#include "common/proximity_ranging.h" static int protocol_feature_handler(struct nl_msg *msg, void *arg) @@ -1136,6 +1137,170 @@ out: #endif /* CONFIG_NAN */ +#ifdef CONFIG_PR + +static void pmsr_type_ftm_handler(struct wpa_driver_nl80211_data *drv, + struct nlattr *capa) +{ + u32 max_rx_sts, max_tx_sts; + struct nlattr *tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX + 1]; + + if (nla_parse_nested(tb, NL80211_PMSR_FTM_CAPA_ATTR_MAX, capa, NULL)) + return; + + /* Parse ISTA capabilities */ + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_ISTA_CAPS]) { + struct nlattr *ista_caps[NL80211_PMSR_FTM_CAPA_ATTR_MAX + 1]; + + if (!nla_parse_nested(ista_caps, NL80211_PMSR_FTM_CAPA_ATTR_MAX, + tb[NL80211_PMSR_FTM_CAPA_ATTR_ISTA_CAPS], + NULL)) { + drv->capa.ista.support_ntb = + !!ista_caps[NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_NTB]; + drv->capa.ista.support_tb = + !!ista_caps[NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_TB]; + drv->capa.ista.support_edca = + !!ista_caps[NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_EDCA]; + if (ista_caps[NL80211_PMSR_ATTR_MAX_PEER_ISTA_ROLE]) + drv->capa.ista.max_peers = + nla_get_u32(ista_caps[NL80211_PMSR_ATTR_MAX_PEER_ISTA_ROLE]); + } + } + + /* Parse ranging type capabilities */ + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_TYPE_CAPS]) { + struct nlattr *type_caps[NL80211_PMSR_FTM_TYPE_CAPA_ATTR_MAX + 1]; + + if (!nla_parse_nested(type_caps, + NL80211_PMSR_FTM_TYPE_CAPA_ATTR_MAX, + tb[NL80211_PMSR_FTM_CAPA_ATTR_TYPE_CAPS], + NULL)) { + drv->capa.ranging_type.infra_support = + !!type_caps[NL80211_PMSR_FTM_TYPE_CAPA_ATTR_INFRA_SUPPORT]; + drv->capa.ranging_type.pd_support = + !!type_caps[NL80211_PMSR_FTM_TYPE_CAPA_ATTR_PD_SUPPORT]; + } + } + + drv->capa.concurrent_ista_rsta = + !!tb[NL80211_PMSR_FTM_CAPA_ATTR_CONCURRENT_ISTA_RSTA_SUPPORT]; + + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_LTF_REP]) + drv->capa.max_tx_ltf_repetations = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_LTF_REP]); + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_LTF_REP]) + drv->capa.max_rx_ltf_repetations = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_LTF_REP]); + + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_STS]) { + max_rx_sts = nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_STS]); + drv->capa.max_rx_sts_le_80 = max_rx_sts; + drv->capa.max_rx_sts_gt_80 = max_rx_sts; + } + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_STS]) { + max_tx_sts = nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_STS]); + drv->capa.max_tx_sts_le_80 = max_tx_sts; + drv->capa.max_tx_sts_gt_80 = max_tx_sts; + } + + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_TX]) + drv->capa.max_tx_ltf_total = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_TX]); + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_RX]) + drv->capa.max_rx_ltf_total = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_RX]); + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST]) + drv->capa.max_ftms_per_burst = + nla_get_u8(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST]); + + /* Parse RSTA capabilities */ + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_RSTA_SUPPORT] && + tb[NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS]) { + struct nlattr *rsta_caps[NL80211_PMSR_FTM_CAPA_ATTR_MAX + 1]; + + if (!nla_parse_nested(rsta_caps, NL80211_PMSR_FTM_CAPA_ATTR_MAX, + tb[NL80211_PMSR_FTM_CAPA_ATTR_RSTA_CAPS], + NULL)) { + drv->capa.rsta.support_ntb = + !!rsta_caps[NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_NTB]; + drv->capa.rsta.support_tb = + !!rsta_caps[NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_TB]; + drv->capa.rsta.support_edca = + !!rsta_caps[NL80211_PMSR_FTM_CAPA_ATTR_SUPPORT_EDCA]; + if (rsta_caps[NL80211_PMSR_ATTR_MAX_PEER_RSTA_ROLE]) + drv->capa.rsta.max_peers = + nla_get_u32(rsta_caps[NL80211_PMSR_ATTR_MAX_PEER_RSTA_ROLE]); + } + } + + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_TX_ANTENNAS]) + drv->capa.max_tx_antenna = + nla_get_u8(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_TX_ANTENNAS]); + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_RX_ANTENNAS]) + drv->capa.max_rx_antenna = + nla_get_u8(tb[NL80211_PMSR_FTM_CAPA_ATTR_MAX_NUM_RX_ANTENNAS]); + + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_EDCA]) + drv->capa.edca_min_ranging_interval = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_EDCA]); + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_NTB]) + drv->capa.ntb_min_ranging_interval = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_MIN_INTERVAL_NTB]); + + /* Parse additional ranging capabilities */ + drv->capa.support_6ghz = + !!tb[NL80211_PMSR_FTM_CAPA_ATTR_6GHZ_SUPPORT]; + + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_PD_PREAMBLES]) + drv->capa.pd_preambles = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_PD_PREAMBLES]); + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_PD_BANDWIDTHS]) + drv->capa.pd_bandwidths = + nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_PD_BANDWIDTHS]); +} + + +static void wiphy_info_pmsr_type_capa(struct wpa_driver_nl80211_data *drv, + struct nlattr *attr) +{ + struct nlattr *pos; + int rem; + + nla_for_each_nested(pos, attr, rem) { + if (nla_type(pos) == NL80211_PMSR_TYPE_FTM) + pmsr_type_ftm_handler(drv, pos); + } +} + + +static void wiphy_info_pmsr_capa(struct wpa_driver_nl80211_data *drv, + struct nlattr *tb[]) +{ + struct nlattr *pmsr_capa[NL80211_PMSR_ATTR_MAX + 1]; + static struct nla_policy + pmsr_policy[NL80211_PMSR_ATTR_MAX + 1] = { + [NL80211_PMSR_ATTR_MAX_PEERS] = { .type = NLA_U32 }, + [NL80211_PMSR_ATTR_TYPE_CAPA] = { .type = NLA_NESTED }, + }; + + if (nla_parse_nested(pmsr_capa, NL80211_PMSR_ATTR_MAX, + tb[NL80211_ATTR_PEER_MEASUREMENTS], + pmsr_policy)) { + wpa_printf(MSG_DEBUG, "nl80211: Failed to parse PMSR capabilities"); + return; + } + + if (pmsr_capa[NL80211_PMSR_ATTR_MAX_PEERS]) + drv->capa.pmsr_max_peers = + nla_get_u32(pmsr_capa[NL80211_PMSR_ATTR_MAX_PEERS]); + if (pmsr_capa[NL80211_PMSR_ATTR_TYPE_CAPA]) + wiphy_info_pmsr_type_capa(drv, + pmsr_capa[NL80211_PMSR_ATTR_TYPE_CAPA]); +} + +#endif /* CONFIG_PR */ + + static int wiphy_info_handler(struct nl_msg *msg, void *arg) { struct nlattr *tb[NL80211_ATTR_MAX + 1]; @@ -1262,6 +1427,11 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg) wiphy_info_extended_capab(drv, tb[NL80211_ATTR_IFTYPE_EXT_CAPA]); +#ifdef CONFIG_PR + if (tb[NL80211_ATTR_PEER_MEASUREMENTS]) + wiphy_info_pmsr_capa(drv, tb); +#endif /* CONFIG_PR */ + if (tb[NL80211_ATTR_VENDOR_DATA]) { struct nlattr *nl; int rem; diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index f47407e5c..0af25f5d4 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -375,6 +375,14 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, pr.max_tx_sts_le_80 = capa->max_tx_sts_le_80; pr.max_tx_sts_gt_80 = capa->max_tx_sts_gt_80; + pr.edca_min_ranging_interval = capa->edca_min_ranging_interval; + pr.ntb_min_ranging_interval = capa->ntb_min_ranging_interval; + pr.concurrent_ista_rsta = capa->concurrent_ista_rsta; + pr.pmsr_max_peers = capa->pmsr_max_peers; + pr.pr_max_peer_ista_role = capa->ista.max_peers; + pr.pr_max_peer_rsta_role = capa->rsta.max_peers; + pr.max_ftms_per_burst = capa->max_ftms_per_burst; + pr.support_6ghz = wpas_is_6ghz_supported(wpa_s, true); pr.pasn_send_mgmt = wpas_pr_pasn_send_mgmt; diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 5414eab0f..f54cb02ed 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -8071,8 +8071,12 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, return -1; } - if (wpas_pr_init(wpa_s->global, wpa_s, &capa) < 0) + if (!capa.ranging_type.pd_support) { + wpa_printf(MSG_DEBUG, + "PR: Driver does not support Proximity Ranging - PR disabled"); + } else if (wpas_pr_init(wpa_s->global, wpa_s, &capa) < 0) { return -1; + } if (wpa_bss_init(wpa_s) < 0) return -1; From patchwork Wed May 13 09:59:35 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237635 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=Iq3VugBr; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=K286r6r1; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=QWNX2y0/; 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 4gFptQ6R8zz1yLT for ; Wed, 13 May 2026 20:02:54 +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=pzROlrFajQxMfFv6oxORnFDwI6gs+i2aSE+xmrpUfDk=; b=Iq3VugBrd/TyQr aS5tl9GNubqkr8F8AgpkfAK/pMPFCnVJzbf1s1a2auv+OP0Mh959NeSJ+yDkUqH8YKgre3E/zA4CC pFwM9IslbTpM+JSBl5vMHS9CTljVvfClqnTaTL/90fH9u7kL7yu2/95oF/KKEfAiA1LhgT4Egf4W2 4Oulo3s+167zhkxQMetlCrPiG1FGphR1/2q4UtOJBpTFxknaBhThOo6VQgJjyOBAejSDmg5k+lbLa NUcBx+PqlXA6JeXeoZK77qlGJ26JUbu6xU6dGlPcTc8FfatoM1iNdIcWU0MbyPdUCdxI2vZRiULfo CaMwktj4/2UrPzbLiVFA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Op-000000020uJ-2xQ0; Wed, 13 May 2026 10:01:07 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Om-000000020pX-3JhI for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:07 +0000 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8mEGO3474770 for ; Wed, 13 May 2026 10:01:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=j9VyH+BzRyM EaPvy46fVkM00U7Wr7JRuP2GFbwlZSlk=; b=K286r6r1AR/sQt6y/tPyBVVvC1u 53L8iUYdTWr4x0VthText/YT4lu9IY9m6+k+TxhSZJj8WMJjAkkP0A+aadeCYSjH ZEk2X5hEf9MemYi55GQ6QkmUa7MQeCbKm8JEoVpfIWEhJtZo+vKKUYS2qnozL8xp bbGJ32TYyctr4d/jAtlH1tlGsCTY38TUXiIc7Q8JktX9sHAlxECvwnmFZ2+IIBfq 3L6v2KJjdiQIrY5VLx44HpKyqxtsbvDTcnspXplNdLzVBCcI5iBLUidWmfCGfWgY aEqDahP/xn/K7LtIcYXg62dSXFQ7r4QGRnPW+SZ9x8IRGnXSCMAqnW+qSfw== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p41897d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:03 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba838d3fa4so73541855ad.3 for ; Wed, 13 May 2026 03:01:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666463; x=1779271263; darn=lists.infradead.org; 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=j9VyH+BzRyMEaPvy46fVkM00U7Wr7JRuP2GFbwlZSlk=; b=QWNX2y0/7lPN2fB4VsB4Pbix1FJbK7uJu/f7NvewD2JuJBbT4YJ+HOYphNfadTIZCe jnX0dudZTNQ9Q6JAN1dF1bYi72HtRywSQB1tGbDi/Pt9TbfFtsEF18qnMUq0oz50xVvo CP0TMq2f0I3lWofu9AlnAyP3SPjBBphmD+xXyaNkJJIuR1U+9lx0R9yRaJrU1D2toCxn Ihh+v3Li+O8Mi9Fc7ZGUM9WaLbgcN9cxlnhGSXym56tb6cbFbetsYSsQGQoxNMbZp55M QGcGIQnV+wpBYa0HC58TnbYvLsuNEJ/BKxHbvuF/Ul//mqz4fvCuegkqHfeMKPSGl45H dO+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666463; x=1779271263; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=j9VyH+BzRyMEaPvy46fVkM00U7Wr7JRuP2GFbwlZSlk=; b=c0Ac1NJRXLfTXDKAT/p+S1Y2BVcG6CvbhTvL894J+eKUNwsi6qMcag7mh+R3bdklyB vfrJRPl17rjFWKPmlhq3akvJc2Bxi8MHBZWLv/d3Qi+Q9fgUBV0sUdFno+oTVOUX+zjH ctjEhgT8rb6kL1X1aYe98jaKWqM3kzZG3q3MkHSIsJCHYnI0txkB6K0QIy28B1l+B1t+ wM+BqOc83kKpqq+Gh6zCby/WQIW2wUzezqADx3+35LIkp5h4TEkjv+8IuY8nv8d4dgU1 vlJo4nECRMQAxdw+pzDM/TTSODAZAvpVD3E8+IKl/cYF4ddYpvKFIpLVOpqGLW7uQmyC 85KQ== X-Gm-Message-State: AOJu0Yy8FI7w/8RTE3Xlsm1HRx9nkb78yVFym/mW8rgKjgLU0/5gsR9H 5ZqIbF8mapDYff+0T1cjTy+gDAQ/meAWv2GrNUwhddLuVGEyHkrjTwQVumBGC2EBadIVWetIS3M VxAMj6M0QIPp2zMt5vC954JMRp/RK47QrEVa9hNvE3K4kCuFxVD/1m3C+j9mCAxyviaAl9/ia X-Gm-Gg: Acq92OHtAqmClZPyktlXnYuhEfxtRNYwKQXDJujxgopJOomU9439HgYbbDBfAXm4mpf rvQBGIX7WWWZHKk383oTzFuNKcZ619wErEvVqO6qzGGXTn7T1c/D4aq60/yxL+23xOiR07gRRbE S1l9C89Y0F2L6H0ijEzGhHOc6L3yLGIlKn7Vx/nAmQcRJAjGKoW55S8zjIPILZKZIBB79K/gA8G V5rbb7RISKGqp+a21OSJgrXJh+FXOTAcByxSaOey4nDTFD2r9GlaUYG2Kv9O2Z/s+okVtBkovDt VIc63hNId5+cfcDa6zkN8NkXt24uYOxZ2xzztj0gwNbU51EafgTDY5aB5WR2eW+zHG9rWw2K2ct F4kcZvO87BR5yN3qeCKy/7GC/F8H4qQB0gvB1RxSMsqHVL6qS+xZQnA== X-Received: by 2002:a17:903:252:b0:2b0:b016:773f with SMTP id d9443c01a7336-2bd2f4e4c54mr23145515ad.11.1778666462657; Wed, 13 May 2026 03:01:02 -0700 (PDT) X-Received: by 2002:a17:903:252:b0:2b0:b016:773f with SMTP id d9443c01a7336-2bd2f4e4c54mr23144955ad.11.1778666462150; Wed, 13 May 2026 03:01:02 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:01 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 11/46] PR: Use stored capabilities instead of driver flags Date: Wed, 13 May 2026 15:29:35 +0530 Message-Id: <20260513100010.1947710-12-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=df+wG3Xe c=1 sm=1 tr=0 ts=6a044bdf cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=cjsgMw76cZe1ifA_o0oA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX0rm8JnHxzV3G Sus9/8siLesIP4YP+SIztByUEni9efizjpJg9twAhiMAYO8neyMOHBLnw4Q8JkuG0R8fuGgaKkM 0IxwDAOZlTAOTt3yRwpkzLbxHtanJdNb4fXgrGt1W7TUoNwXuJtK5ulpUciHT5A7Htye3VqcjKZ qOmerAPvs6G6/Ed92cQ3JNhGVdDM1eTEowoLp4wN1eZbTKApTeq/DS/3gA0qrXugcHwT3x+Cnei 7DjE8bkyPVOjYqY2pUY4VHYARgD1F7AMw3TcH6a2RqIskUwj/2ICirnFAJkXVR7MYDZmbxQ7pPM 3K4ZKTq3rznXhrh2dj4wO1KCTehIO+A+Mj1km5gEcU4mKt1c5Uc8FeKu1TfNaZ3Wh7DDEE+mKk0 iZSPplNyOPKvp6frJpemMf4qYomBCd86ZHMsvWu59pMoszZInTr0F97PKWeWMnbM5VQpjyGaHJu xvhx4/cGt91cOOT+o4A== X-Proofpoint-GUID: 6wYnKP_FjtHfGy9XR3NhCz3cmWMm4aoi X-Proofpoint-ORIG-GUID: 6wYnKP_FjtHfGy9XR3NhCz3cmWMm4aoi X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030104_955563_DFC206D4 X-CRM114-Status: GOOD ( 13.17 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy When driver flags were initially added to determine EDCA and NTB support for ISTA and RSTA roles, they were not being set anywhere in the code. Now that we parse and store PMSR capabilities from the d [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy When driver flags were initially added to determine EDCA and NTB support for ISTA and RSTA roles, they were not being set anywhere in the code. Now that we parse and store PMSR capabilities from the driver in nested structs (ista, rsta), use those stored capabilities directly instead of relying on driver flags. Replace driver flag checks: - WPA_DRIVER_FLAGS2_FTM_INITIATOR -> capa->ista.support_edca - WPA_DRIVER_FLAGS_FTM_RESPONDER -> capa->rsta.support_edca - WPA_DRIVER_FLAGS2_NON_TRIGGER_BASED_INITIATOR -> capa->ista.support_ntb - WPA_DRIVER_FLAGS2_NON_TRIGGER_BASED_RESPONDER -> capa->rsta.support_ntb Fixes: f45cc220e4bb ("PR: Update PR device configs and capabilities from driver") Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/pr_supplicant.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 0af25f5d4..544656bb3 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -350,10 +350,8 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, pr.pasn_type = wpa_s->conf->pr_pasn_type; pr.preferred_ranging_role = wpa_s->conf->pr_preferred_role; - pr.edca_ista_support = wpa_s->drv_flags2 & - WPA_DRIVER_FLAGS2_FTM_INITIATOR; - pr.edca_rsta_support = wpa_s->drv_flags & - WPA_DRIVER_FLAGS_FTM_RESPONDER; + pr.edca_ista_support = capa->ista.support_edca; + pr.edca_rsta_support = capa->rsta.support_edca; pr.edca_format_and_bw = capa->edca_format_and_bw; pr.max_rx_antenna = capa->max_rx_antenna; pr.max_tx_antenna = capa->max_tx_antenna; @@ -361,10 +359,8 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, wpas_pr_setup_edca_channels(wpa_s, &pr.edca_channels, pr.edca_format_and_bw); - pr.ntb_ista_support = wpa_s->drv_flags2 & - WPA_DRIVER_FLAGS2_NON_TRIGGER_BASED_INITIATOR; - pr.ntb_rsta_support = wpa_s->drv_flags2 & - WPA_DRIVER_FLAGS2_NON_TRIGGER_BASED_RESPONDER; + pr.ntb_ista_support = capa->ista.support_ntb; + pr.ntb_rsta_support = capa->rsta.support_ntb; pr.ntb_format_and_bw = capa->ntb_format_and_bw; pr.max_tx_ltf_repetations = capa->max_tx_ltf_repetations; pr.max_rx_ltf_repetations = capa->max_rx_ltf_repetations; From patchwork Wed May 13 09:59:36 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237637 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=XFnocqQh; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=eqRO0RzS; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=eGUtfv8W; 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 4gFptb1gzBz1yJ5 for ; Wed, 13 May 2026 20:03:03 +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=De4pvekmd4FsOMOVriWMpZH5mBjwm2dH0Y7zK709SZo=; b=XFnocqQh3VMFFM iQZaaA7eE2X5jEqgeNmXPZqEJ14H+l4nKZaNRGxKcE9VBLFB1Uelue36JCEPZV7Ieu+g+6pNzBHO8 ct3rHg08XadFKVWZFXBvjN/W5tkSYkzXKE5K/HrBOd1BFbV3swjHg8PAYUxr4tdIokuersqvS9/eN D6HbmRSkB+4ejHDsAti7tZYmsIoUHizw8wqTDmcLY9pX7sYVV1vLFLF7ZFA0uEvD5sACk+58qR+4E WSHzE+GDEwglEhRbvtUNF0Bt74ue9jfYLBk+IlUPF+4LpyVw0/aMMBVNS9MjX8ZfKfRA6faw4ltnQ uYqsCSDh7iPJWItNp28w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ot-000000020zI-232F; Wed, 13 May 2026 10:01:11 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Oq-000000020uO-1IGw for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:09 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p6aK2338787 for ; Wed, 13 May 2026 10:01:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=th+hwPO4FDO KFfx8Yboh4+KU1qdDogv3SijTVgd/FRY=; b=eqRO0RzSMIkIiuvDOmeVmPAeAys cmAUtZFVqCZyMHcbPnCSjc7lPIpqIFZpRz4EYLLuZ4ai6McInShvUyfjVXnCTWXB 6Ro7Rnd5KbIqlcuBsxnsYhyMgTgoJg1uhEaEJBx2NU8fCH2ENjuLIFbSndNuaL07 IZBovMQBuEjylCVYsS8puVwbnhRzNIBEo3Qo+GwJ5vehWHaep7083InmVuhIsyf4 srHzK8RpSNbnCrSRS09lXdKvxQc5PePjPmfjsYWRRASZIXtVT1uVKrQmT2hB1l2a 7RtHeqXVn5Vaa5az7YtMS2eU397sW1RGtbiX5uVQsr9idqO7Lumg5UMsCLQ== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavw6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:07 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b9b8137828so70259305ad.0 for ; Wed, 13 May 2026 03:01:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666466; x=1779271266; darn=lists.infradead.org; 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=th+hwPO4FDOKFfx8Yboh4+KU1qdDogv3SijTVgd/FRY=; b=eGUtfv8Wf6Yb5wG8q6OcLBjos+UfCELEEUn4zpdKN+S5ZXRIFsQskhc3OGc2gCZM+7 aTsFs8K35KFSyGfKu5w7VNzS9lGqgRcYY3Y/MzhLOOEz/+0DvZBLBKM8gPZIzCShuokL AdbvQDhDy1es7F0zIxHPLvfjHSQpq1l9wyJGtzsnXtWNtce4ev2Rj/Fhb0VRWsJjJVd6 4Lk/0JsrC5OYCMe3CSq0sjKg7foqnF+7nExNedtU4Saal1OwBeut6C+W+Ua7B5WT1GmB 6C8hKlv0De/fwc+4H+kwGZl4uupO6NylBu4MsLK28MENYpeUAEC669/nBa1rzkglPsuX AeIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666466; x=1779271266; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=th+hwPO4FDOKFfx8Yboh4+KU1qdDogv3SijTVgd/FRY=; b=iPb3TkTEvqFL9x++8hRlKDsPi6467UaCT86M8puupcDXUYE//ok3heZ0wID3+qSIWe 3DUEs490p5ozQW5c1KPw8G3XtqqMPLxomLshzVmL7xyinw9an4BTtGTAd5K6lk7zsdXg 6zGIwkdYaejaw/hKefW6Yq68hE+HHSsT8/cDuKo6AH0wvSlSm8WSyUPwzUBUzsjzNJDA 0Dd76wVBeGURVg5Q9MJq3CbupAMezK+C8nbRQDMcV0VgPu7htv3fQGMv1rfTeRT58dKW PBJ0IQ8wwk33PviUuoNJpBatqM5thIz2DnCM9LS13n7zX0MmbLTYicbC1FPbEvKvHt5L K9/g== X-Gm-Message-State: AOJu0Yz5XYGvcyIFW3W/GPy3h7ptw/0+tzVGcR67kYIwZbLFPimWHgsP YiVHfjOeN1b7zggKqyD90QRVE2rMdeDKlIA3umUhuV+AqX3iGpy3r3IrXxZcW0TLgFaDJ1IyY+2 tJhJMgByrAT52TNJKEFB574XBX3TPX5LPV36caniF7Cit9Qxjg/AZkch9PKITomwdrsPpe0Do X-Gm-Gg: Acq92OHrgkkOHLB0SAmlUKjgi8fWOhz7XmrpBjGVJCcXQJexb95h3twhdzH5GSPc2CO k8U00WJU767bQUtRdKnx4ob2UelXNqu+BPFGSMLBd0HyzeOsCTZsZk15McTd5E38JH4BgfLzF+C GZeR79bGr6D+os5+KYQn3Ms7fjMVYpZu239qv1lBNlWvt5qAAzknKtmg2v5huf3c4WExk1mgwOH N8f3M7ATib5XmANu9xclbkqFWEObyPQBAhfMDQTT876EAgxbq8+JGDOKG0KCZ9MIdtnQ1pPtDLW wUxSoFTwgHm0bJsdBPJ+Gh2uj4JqYb+b46GqpBecAa8elCnRpvP837ixA4MHnkF9Tb2H5asgOMQ EQoD70bUnUr2e6bDsO101xwAaiPxFCGGiwKgtAHLoQEMCyia96ZVMew== X-Received: by 2002:a17:902:d585:b0:2bc:ffe1:c380 with SMTP id d9443c01a7336-2bd2f4dbbbcmr23064615ad.8.1778666465754; Wed, 13 May 2026 03:01:05 -0700 (PDT) X-Received: by 2002:a17:902:d585:b0:2bc:ffe1:c380 with SMTP id d9443c01a7336-2bd2f4dbbbcmr23063095ad.8.1778666464457; Wed, 13 May 2026 03:01:04 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:04 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 12/46] PR: Add support to use stored 6GHz capability for PR Date: Wed, 13 May 2026 15:29:36 +0530 Message-Id: <20260513100010.1947710-13-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: gAhPxQqmgea11CPnUxcHuvc4khXJCicp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX3ILkVU/qekQt iOPd8SFLnS2Pj23Iv16Rwhrd1IrEwQy0aK/T54wx1R73ApiaPLyGSQLd2gQOfbovox2qEoOY3Ui X279yyaeHM0J0YnshTsxRYI2Six34lq7p10lTApCU8p9AUn2KpD6nUUTJZis5ZIL2VypPiuTEVN BsDupbxpqTh+XGBzqFZ0FVvfUNFNRO0h8VnJecCkt8sdZgXjmZs9+R9BXmTh9Cs4VftwrWuK0vY lvyCk9AlIS1pnnfzw4KyTqfM2ZyHZK/ejiSGX4C2Ib6xnUYmuc7KbvLBiKWO1TJTQdzVGIK7yUe aBLZ/YXMyvjutGsGNrEnzk4WNl2sdf6sUw446aRmYAVRp9DgRH2gCXeICAbDF5pOc2rjn2/Oxkq m7KQvdZJXzXtLAtGZ8zn8tMdPHUCKerpbPAp6PKW+BOo0GxJob/SS9Rqoxt07ydBU52IFhzGk3m Y71f7DILK+fraGPuqdQ== X-Proofpoint-GUID: gAhPxQqmgea11CPnUxcHuvc4khXJCicp X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044be3 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Oieh5qAkbd2xM_LIJ5wA:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030108_574493_1A8AF316 X-CRM114-Status: GOOD ( 13.55 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Currently, wpas_pr_init uses a generic function wpas_is_6ghz_supported() to determine Proximity Ranging (PR) 6 GHz support. This can be inaccurate as the generic check may be true for reasons unrelate [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Currently, wpas_pr_init uses a generic function wpas_is_6ghz_supported() to determine Proximity Ranging (PR) 6 GHz support. This can be inaccurate as the generic check may be true for reasons unrelated to PR. Use the stored PMSR capability (capa->support_6ghz) which is parsed from NL80211_PMSR_FTM_CAPA_ATTR_6GHZ_SUPPORT attribute. This ensures that PR 6GHz capability is determined by its specific PMSR attribute rather than a generic system setting. Fixes: f45cc220e4bb ("PR: Update PR device configs and capabilities from driver") Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/pr_supplicant.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 544656bb3..be5477b44 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -379,7 +379,7 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, pr.pr_max_peer_rsta_role = capa->rsta.max_peers; pr.max_ftms_per_burst = capa->max_ftms_per_burst; - pr.support_6ghz = wpas_is_6ghz_supported(wpa_s, true); + pr.support_6ghz = capa->support_6ghz; pr.pasn_send_mgmt = wpas_pr_pasn_send_mgmt; pr.pasn_result = wpas_pr_pasn_result; From patchwork Wed May 13 09:59:37 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237638 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=c/osCmbW; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=Tzgjl3Kf; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=OvvJoEx3; 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 4gFptb24vmz1yLT for ; Wed, 13 May 2026 20:03:03 +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=nDbB1jd4MgBjCRyOOyNaySTeQsfKuV5qLRndl3ZVzzg=; b=c/osCmbWSSldQl c4Cs+OU2CruzBIyIsox5RMTQd97Jqk4AyUq43KKXQ/CcEL45HYyEcd1BZLTW253KKAojYrad6/JS0 JQ7HryKwCWxajFhLQVjsMInor9UR1gbwRU+ru7M2H0hJ6Q7xyDsBqfoXnVVbiju4EMedru4O7+KC3 bq5RCOcSwiNAiNcClylug768kaJkzJgxBiW0jvSiUPhG0pHOwjaMqUYh+/0xia3Q7qXrEGf+FmJZm ZdWg4vB9bVXZhBQgUkqwJcTZmWVcP8vA55DNRNKmrUPI8f5qqyhixv9AmtLYZlVrC8HodKftLk1Lg Ipfcs8bdGLP8WWaZqMFw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ou-00000002124-2nz8; Wed, 13 May 2026 10:01:12 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Or-000000020wJ-1wep for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:10 +0000 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p9i12652384 for ; Wed, 13 May 2026 10:01:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=hKHmGyjQR7R al/5fnxPt7xMaaLrqS8bKWfmtmDg2Gjc=; b=Tzgjl3KfcqVHyhlYauTSWAGhtne VMrGcYec4ZbfoIyPsvsr7aMbPoVRUUTYPyUDDNWjI/yZfEUq2CX5yU8/01LCAmKC zBzRNzbhVdyFZMWcmPd8Hry4aCCxRGejcJ+GwBskayjmJrp33dnrjx48i9imj/vn AXbnsNarHy9Lqfa6nuj3Q9dvsLves++AAWDIOYSJRTFEGydWGgOZxotyBXQS6Z0I l2ROrb2WCLT9k9GHPtMZON1IzBwZWuQrnwZknuQTn094vQPcej2GRcmcbcDJyw56 /WRzMK+07fZzSjRSGIfuUHzYhA0xmOIxXQ94R7SEJvXFnUb5xGF4pDRi2vQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e45avm55h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:08 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2ba718173d1so113685235ad.0 for ; Wed, 13 May 2026 03:01:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666467; x=1779271267; darn=lists.infradead.org; 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=hKHmGyjQR7Ral/5fnxPt7xMaaLrqS8bKWfmtmDg2Gjc=; b=OvvJoEx3PeoaAV+NA2LHq+DZrHIfJs9ew0CKSZ1Le/jejTu+KdbF1n3Tfa09NiiJ43 opA1WYw0xJGgGen8bf+sZBJgIH9YDr5cHmajtBYMwDjEnP8B+NjVQtVzvz0HhJwM9po6 +fYj95XpFlwcjMdxXTjOnEs1InZIvookd1upS4INBvgk3wpErFtJPOvXNMINIfchtkQk 9GXZibf9D38yJJWnWgDTrBIvNk4cI+wJ29dZatRfrYsZXV5zQsSysS+aHcLHw9SY357F JOss3cnDnyC3EDB0sCuDlRR5JNNOaqefz9mpJ99J9IU2R1vrI3u5pFkxgz1q8ryyWUJb 7ACw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666467; x=1779271267; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hKHmGyjQR7Ral/5fnxPt7xMaaLrqS8bKWfmtmDg2Gjc=; b=s9uHxsSTZMB7beCAHUlgghEOO4Kx6hS8sFY6arxtyyj/cq1SDVifgcCXtITyM/9Ev+ rkAgktDXPzhERHWPyvqOW7cqO0NyL2fsunSecm0CF7hTycAZyROdZ466SmpnZO5kKEhQ cA7QdmJvLEw6Fs6M5bS5dpsl3xy5ye3wYCu43PClf7PQUuO27TSQJr7MLIq3Je0YuuZr me88toOFPyFBAZxgZfou8qoymwxBacUZLp/ilMmOksOFvo/932F7zwTxeBAWqTVb6bYB SKNuOoHHqsLaPBWZL2NeyZWPHJUk7QdgOXI4yOaocae3w9gurva2WsjVX6RKadqG7TqX xBZg== X-Gm-Message-State: AOJu0Yw0l9nCbkgF7NlPIgcgYjNmbm70BuMtOfoI61h6/PAaF3gLSbm7 z6LBVne6dS1jUS2PKxUvnr5V9Pb1nCcIBxmTDlCdXYRTMCe6JOqR42kNzR6np18fxVY9EiUBJQw ZeQaU5XVN70ORKeEvyC+pD1FNWxWXa+2p9zVFuoi/L2OVcdjVtwRl9sejt+IbXPKEcU8fAyCr X-Gm-Gg: Acq92OEHAu7VamWu6G42RLyE5F3ZIOjXrmQP52ij798EIiRdXvjk71Tu6p25L/tNGK0 c+1lfXq95YmRwRzxivcDWtI6y+VkkFNiyKJd5pXoRwSyf1lSy9jqKxGJ5AoiUaQQNKc8hZ7OajN oZJ/r7xnzcmIFZrsQxf3VWHLI42kdJX/kVzZhp+q7pl3dAAhRhTrOBlxIsYpJHpyO/H8UcjqMLI l8a+Ume3jERYuRtpIK6nreROmEkzQH8f2I28tDrYXAOVSR0yepKHieSYSzDWycJvBWlWcAA+0HG wrjwSDE45Amqs18shUeKmv7KrdPOkSzQP/Ws9+P0+VTDH4HBTvsFYqZgcgnBZ14YTUnC7y2lhbI gWW7rr6EYXTgS2ZB2wTARixHaC+FAXYUyHVljJ5ttwhmQNgQUwv7nLg== X-Received: by 2002:a17:903:d6:b0:2ba:78a6:7dec with SMTP id d9443c01a7336-2bd2f71523cmr16583215ad.13.1778666467175; Wed, 13 May 2026 03:01:07 -0700 (PDT) X-Received: by 2002:a17:903:d6:b0:2ba:78a6:7dec with SMTP id d9443c01a7336-2bd2f71523cmr16582725ad.13.1778666466694; Wed, 13 May 2026 03:01:06 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:06 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 13/46] PR: Fix wrong channel set used in NTB capabilities Date: Wed, 13 May 2026 15:29:37 +0530 Message-Id: <20260513100010.1947710-14-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: yR65WG1c6Yg8kH90RokjsvbtCnuY1UMo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX+FJg4/vQfEjW 8N5ldvI0Jujzt3SfDShqwJ3MDVe0Uk9uZgjgqj1ptfb7l44Po+RdEcAxSU4SRTTjlDP0lCUmDVx YdvOUYDsB7ukzzfMMVCp2iulUuZaUmAKEgi+OQmogCvMrZlQ36hpIuy5bTC6F5a7Ik6Nm6d518b AuxUTk8Z3FHz9XFU2gAWhT3E+b2Y4tKECjxUWJhhe+VY0qQKaT8SmutHUSmG+xgQAK7gPaeA/nz RYj8WaFqoYY8rnptpQBJJ5etgZ7iuOcbVJRhWEypAMqxIHXwsd/j4n4mmI107tECClCVCi0+lHp HyFlT+iDn18umBFQU6ZyjA9FcdYo18QCvij2P8KgSLdpnAQ//7ykduDQR7tfoxOGrKLze0yat2f mJ/QZzUkfnQvnVYV8izuyhiFM7K2U7V8e4SIvb/eGQATfACuVbOo4cENovXa7Icd1obXL/PPBL8 /CU7OmVG6j3Sh5zwM/Q== X-Authority-Analysis: v=2.4 cv=bOwm5v+Z c=1 sm=1 tr=0 ts=6a044be4 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=CiSYWNZKugFb6KnrOlwA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: yR65WG1c6Yg8kH90RokjsvbtCnuY1UMo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030109_624066_5496D903 X-CRM114-Status: GOOD ( 13.55 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Currently when filling NTB capabilities, pr_get_ntb_capabilities() copies edca_channels into the capabilities structure. This is incorrect as NTB ranging uses a separate channel set from EDCA ranging. Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Currently when filling NTB capabilities, pr_get_ntb_capabilities() copies edca_channels into the capabilities structure. This is incorrect as NTB ranging uses a separate channel set from EDCA ranging. To address this issue, replace the edca_channels reference with ntb_channels so that the NTB capability advertisement reflects the correct supported channels. Fixes: fa6cd439890d ("PR: Add NTB capabilities in USD PR element") Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 96cb8194d..ea229eaef 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -345,7 +345,7 @@ static void pr_get_ntb_capabilities(struct pr_data *pr, MAX_TX_STS_GT_80; capab->ntb_hw_caps = ntb_hw_caps; - os_memcpy(&capab->channels, &pr->cfg->edca_channels, + os_memcpy(&capab->channels, &pr->cfg->ntb_channels, sizeof(struct pr_channels)); } From patchwork Wed May 13 09:59:38 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237641 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=SpyamiNc; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=h79hNO7R; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=hlJTpKUz; 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 4gFptl0mlnz1yLT for ; Wed, 13 May 2026 20:03:11 +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=srOznuKeosJ+1qyKSvk0Poiko5WFjDyWw4NVFc7FADQ=; b=SpyamiNcX61otn 3ykYJKsNxsiPD194YjIF5K+E2LYFtkTY9czODNG28eqAPN3KyJTwZuDBemJsOQJP3ofQrqpl+yjIo twO7s4adgJarXLLbVrmjbv6egv9H+aOPlQkELFlmR2v40NChyJnviCBwtUFLFgQ6pQYSd/klyTw/R Nlobw8amUIFV06sJkRFCNlNVPMOroFh2Fx98sy3sIDZzwzMztfNMKsc7S5NYrWe6qwDLhiqvKE7cA Gh7YEvlVSgB2614pCU6WmxvSvwZBxPtryaq+5JO76CXxiuSQFwEoQ/usSUm6zEcvk6+sXK84GzArt W+HVtFITakuz9hIK0Yqg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ox-0000000216q-0ac5; Wed, 13 May 2026 10:01:15 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ou-0000000210K-1IYs for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:13 +0000 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p9402652380 for ; Wed, 13 May 2026 10:01:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Yynaccimft6 f14k0ulcjY5TLAAANq5pt2wjS3h8FjX0=; b=h79hNO7RpfYOjomNKlQklZIJrzP rdCmqkB6Xqiz/ZPWhSPAi6nO3dMAEktTxWY3JNPMRdRzwk5Pm911VGNZrvRJlYNQ 3EGGDOMHNGsu/OcBNgHT+5X4HgNOft4iDTApvKw+mbN5SPWqO+FtNvYaE1kiYICK 7/aitvdaZoWiWtq2uwZYNfBKE4ulRw1estxvNMO1Jyz1Rk/f3/Vc213Y1h+dAnPR 4HApcUU0t3xZ2ABNCTDTaQTEw26OysHTmWMYAoG1KwVNRayUayHvdgIesLB+WWmj 60zHIG2lTsaM9GLHuOTPWnH/pxqNXDULq5xgKZGvmwJ6nslAg18wGHBcaaQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e45avm55p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:10 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2b99eb06178so141032785ad.2 for ; Wed, 13 May 2026 03:01:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666470; x=1779271270; darn=lists.infradead.org; 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=Yynaccimft6f14k0ulcjY5TLAAANq5pt2wjS3h8FjX0=; b=hlJTpKUzgB9YIfVYwKElQQU5MlCkmwsByqWwnmtA7Brg5I0wh2NK0xZmBXBcksHo8c yV4D8iKCm71AZ/weaYj0Y5HRnKQn3NkNfG/QacRQ072PQKuEphs5RId2pSGN7wf4HHmd iXr0/vVdRR4VFlRRUq7G3GLFLDS4mI15/iQn0nA9h+L88bXrLTKswWjLIeYXVfsjoNB2 +QbwdwUpp5FL42H8ZHie1eBDMYwgaLywbsmrOg/VuTTIPL6UmzcCzh3qIMQOle/7wqC1 yKdBuADaqo20RfWHvyHybC03eo4cSaNfwiIhFcGlahrFixCwz5vdYyKI6zTd+pHoZlXL eZmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666470; x=1779271270; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Yynaccimft6f14k0ulcjY5TLAAANq5pt2wjS3h8FjX0=; b=CGeTQv8H1hWL62RirYrY8nNR1m5rFQxxC0SWtI1OLyuhIcRu9ne06nrKXzvtFxDVYw wJ/rWwScfHYI6On+tYj70z3XbyIqkSatjRgQYLM90Jvsl2uNMpUtl10JQQ/Uyg+jeNHf jvGn6j5QYSkqOmGbMmuxlYax/MRnujo8XiTvy5ZH1H6U1sQjMlqgrryslg4f6YExg3DL 9pEYoJ7QFiBDoA7L97diUSx5IxYxp34jHHX911EEGQlj2zpq6x4EDZxdCgmpqnn6wEp4 imrs5NEHVLNPsRPB6U//OQZe+RpR36y/7ZpQQ0zn65T9Qij5HiLgNy7ohMcUss5v8wkL V2kQ== X-Gm-Message-State: AOJu0Yw6oFT/nStVQT91qzYPJNmMZ+lJpqGINam5nCEXJXmIy7NzIbOT EI9+Li86IInHn0kZWHTRc1vDC+toxEs/rnil5QZTuc+ng+MDke7po65MyYH7kEdGAekm9eCsHF3 8gUvI3lSa+fyrbZj4xTQOmnezTHUe6oLTnEExy9J+l+al3N9dP4nj0C2pnti+xGSKfdQbXzc8 X-Gm-Gg: Acq92OHsfauIt5iuaXoak7vz+8CSSJRqrPzcJHESg8z+gy7JF8L+7NI9mUnxipJq4Ae AMZSzolhzs0QPQOwMLwcIw723vH3rIxm4g/x9GO/VmfXreb3DhsGvxGqf4pPI1kjTMCrs3LbHcw cYj7Vi7uXWykba6TpQqRpfBrMX5JPhzrEGWtFCxVW3IFLXxEH05exvROSBCZ2sikcHy+ZlEUGYp pEZ+ShBL9KcPL8CqLSUu7RMZhOoWtfl15P0lXUrQgTYZmfMN643SBF+EgkgO6SiOh2bKXGE8ZRo FfkKQRo0CPn0Ksxh7nhsabZ/8l7DWbGsfN2AGc6ABxvh5MNQ5PHsHK1CfDHOGa1NC0tFiceAMb+ tksNdmwhRg9ofhzukTooOyyV8ihtdGicj1/QEKvr697rM5lsiH04lyA== X-Received: by 2002:a17:902:ea09:b0:2b4:62bd:ee3 with SMTP id d9443c01a7336-2bd276f88acmr30172055ad.33.1778666469433; Wed, 13 May 2026 03:01:09 -0700 (PDT) X-Received: by 2002:a17:902:ea09:b0:2b4:62bd:ee3 with SMTP id d9443c01a7336-2bd276f88acmr30171435ad.33.1778666468858; Wed, 13 May 2026 03:01:08 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:08 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 14/46] PR: Replace format_and_bw attribute with preamble/BW bitmaps Date: Wed, 13 May 2026 15:29:38 +0530 Message-Id: <20260513100010.1947710-15-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: JIqzclLFrlW5W2OmK0RvWz3CDf5z9jbK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXzLOTQzBpE51P tkfltyu5IEcMuRqcv7QqmkEGC9KUcjIPyjxL3PVPBNyaxQKeHButsOjfd/su1xwhBqX8TMHCSId lsO4YmYTxwU3SZ6h4iYv118bseARjxpd5gTgZySOc53ivks68uZ+2AI2s+n7TI8iRn8uTyVaQ/5 zI8v0xMLFbZTJKTclTZH1//DbJYMX2XcM3A2EhAHnbT2JxhC9VBycepTi03IyeA5T55ZZxceNma XKHALGHHhg6gLhh1IUFxctDHXxv3Iy11D6+FFIUti6hcphxizj+R30pWjXxUW/zHCHfDQ6N04dO 22XAtI48xI2nwqSNGfdDF9J5FZDue7O85ISRn+B6WQryygcR4jA/rFosZij+rpooJIWndcpfTUk +4hAnL5deO6/3easxBdU0TFXX+R8BSIFuCdDbBUL8HS29gs+zJCZ6+LH5sfMDbfBNYtxbehkK0+ vIecJ3Ltxm3kCUzYFYA== X-Authority-Analysis: v=2.4 cv=bOwm5v+Z c=1 sm=1 tr=0 ts=6a044be6 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=dhTjhyBo8qojc9VvMywA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: JIqzclLFrlW5W2OmK0RvWz3CDf5z9jbK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030112_478941_F04786AD X-CRM114-Status: GOOD ( 21.25 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy The PD ranging capability used a single format-and-bandwidth attribute in wpa_driver_capa to represent the best supported combination. This only considered the highest supported bandwidth and assumed [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy The PD ranging capability used a single format-and-bandwidth attribute in wpa_driver_capa to represent the best supported combination. This only considered the highest supported bandwidth and assumed all lower bandwidths were also supported, which is not always the case. The channel population logic inherited the same assumption. Replace the attribute with separate preamble and bandwidth bitmaps so each supported combination is explicitly represented. Parse the corresponding nl80211 attributes to populate these bitmaps and remove the now redundant attribute from driver.h. Update the channel population logic to check each operating class bandwidth directly against the bitmap rather than inferring support from the highest supported value. Fixes: f45cc220e4bb ("PR: Update PR device configs and capabilities from driver") Fixes: cfe7a215db0b ("PR: Determine channels that are supported to perform ranging") Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.h | 8 ++ src/drivers/driver.h | 24 ++++- wpa_supplicant/pr_supplicant.c | 181 ++++++++++++++++++--------------- 3 files changed, 127 insertions(+), 86 deletions(-) diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 85fc40770..2643f8534 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -98,6 +98,7 @@ enum edca_format_and_bw_value { EDCA_FORMAT_AND_BW_VHT80P80 = 14, EDCA_FORMAT_AND_BW_VHT160_DUAL_LO = 15, EDCA_FORMAT_AND_BW_VHT160_SINGLE_LO = 16, + EDCA_FORMAT_AND_BW_MAX, }; /** @@ -114,6 +115,7 @@ enum ntb_format_and_bw_value { NTB_FORMAT_AND_BW_HE80P80 = 3, NTB_FORMAT_AND_BW_HE160_DUAL_LO = 4, NTB_FORMAT_AND_BW_HE160_SINGLE_LO = 5, + NTB_FORMAT_AND_BW_MAX, }; struct pr_capabilities { @@ -356,6 +358,7 @@ struct pr_config { bool edca_rsta_support; + /* Best single format_bw value derived from pd_format_bw_bitmap */ u8 edca_format_and_bw; u32 edca_min_ranging_interval; @@ -398,6 +401,11 @@ struct pr_config { u8 max_tx_sts_gt_80; + /* PD ranging preamble and bandwidth bitmaps (shared by EDCA and NTB) */ + u32 pd_preamble_bitmap; + u32 pd_format_bw_bitmap; + + /* Best single format_bw value derived from pd_format_bw_bitmap */ u8 ntb_format_and_bw; u32 ntb_min_ranging_interval; diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 32cdbe800..a1f922f9a 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2246,6 +2246,28 @@ struct nan_capa { bool he_valid; }; +/** + * Channel width index values used in PD ranging capability bitmaps + * (pd_bandwidths). The bit position in the bitmap corresponds to the + * channel width; these values match the nl80211_chan_width enum so + * that drivers can use them directly. + */ +#define WPA_PR_CHAN_WIDTH_20 1 +#define WPA_PR_CHAN_WIDTH_40 2 +#define WPA_PR_CHAN_WIDTH_80 3 +#define WPA_PR_CHAN_WIDTH_80P80 4 +#define WPA_PR_CHAN_WIDTH_160 5 + +/** + * Preamble index values used in PD ranging capability bitmaps + * (pd_preambles). The bit position in the bitmap corresponds to the + * preamble type; these values match the nl80211_preamble enum so + * that drivers can use them directly. + */ +#define WPA_PR_PREAMBLE_HT 1 +#define WPA_PR_PREAMBLE_VHT 2 +#define WPA_PR_PREAMBLE_HE 4 + /** * struct wpa_driver_capa - Driver capability information */ @@ -2657,13 +2679,11 @@ struct wpa_driver_capa { size_t max_probe_req_ie_len; /* EDCA based ranging capabilities */ - u8 edca_format_and_bw; u8 max_tx_antenna; u8 max_rx_antenna; u32 edca_min_ranging_interval; /* NTB based ranging capabilities */ - u8 ntb_format_and_bw; u8 max_tx_ltf_repetations; u8 max_rx_ltf_repetations; u8 max_tx_ltf_total; diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index be5477b44..f50712a96 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -24,115 +24,118 @@ static void wpas_pr_pasn_timeout(void *eloop_ctx, void *timeout_ctx); #endif /* CONFIG_PASN */ -static int wpas_pr_edca_get_bw(enum edca_format_and_bw_value format_and_bw) +static enum edca_format_and_bw_value +wpas_pr_best_edca_format_bw(u32 bw_bitmap, u32 preamble_bitmap) { - switch (format_and_bw) { - case EDCA_FORMAT_AND_BW_VHT20: - return 20; - case EDCA_FORMAT_AND_BW_HT40: - case EDCA_FORMAT_AND_BW_VHT40: - return 40; - case EDCA_FORMAT_AND_BW_VHT80: - return 80; - case EDCA_FORMAT_AND_BW_VHT80P80: - case EDCA_FORMAT_AND_BW_VHT160_DUAL_LO: - case EDCA_FORMAT_AND_BW_VHT160_SINGLE_LO: - return 160; - default: - return 0; - } + /* Prefer highest bandwidth first */ + if ((bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_160)) && + (preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT))) + return EDCA_FORMAT_AND_BW_VHT160_DUAL_LO; + if ((bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80P80)) && + (preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT))) + return EDCA_FORMAT_AND_BW_VHT80P80; + if ((bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80)) && + (preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT))) + return EDCA_FORMAT_AND_BW_VHT80; + if ((bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_40)) && + (preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT))) + return EDCA_FORMAT_AND_BW_VHT40; + if ((bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_40)) && + (preamble_bitmap & BIT(WPA_PR_PREAMBLE_HT))) + return EDCA_FORMAT_AND_BW_HT40; + if ((bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_20)) && + (preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT))) + return EDCA_FORMAT_AND_BW_VHT20; + return EDCA_FORMAT_AND_BW_MAX; } -static int wpas_pr_ntb_get_bw(enum ntb_format_and_bw_value format_and_bw) +static enum ntb_format_and_bw_value +wpas_pr_best_ntb_format_bw(u32 bw_bitmap, u32 preamble_bitmap) { - switch (format_and_bw) { - case NTB_FORMAT_AND_BW_HE20: - return 20; - case NTB_FORMAT_AND_BW_HE40: - return 40; - case NTB_FORMAT_AND_BW_HE80: - return 80; - case NTB_FORMAT_AND_BW_HE80P80: - case NTB_FORMAT_AND_BW_HE160_DUAL_LO: - case NTB_FORMAT_AND_BW_HE160_SINGLE_LO: - return 160; - default: - return 0; - } + if (!(preamble_bitmap & BIT(WPA_PR_PREAMBLE_HE))) + return NTB_FORMAT_AND_BW_MAX; + + if (bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_160)) + return NTB_FORMAT_AND_BW_HE160_SINGLE_LO; + if (bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80P80)) + return NTB_FORMAT_AND_BW_HE80P80; + if (bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80)) + return NTB_FORMAT_AND_BW_HE80; + if (bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_40)) + return NTB_FORMAT_AND_BW_HE40; + if (bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_20)) + return NTB_FORMAT_AND_BW_HE20; + return NTB_FORMAT_AND_BW_MAX; } static bool -wpas_pr_edca_is_valid_op_class(enum edca_format_and_bw_value format_and_bw, +wpas_pr_edca_is_valid_op_class(u32 bw_bitmap, u32 preamble_bitmap, const struct oper_class_map *op_class_map) { - int bw = 0, op_class_bw = 0; - if (!op_class_map) return false; - op_class_bw = oper_class_bw_to_int(op_class_map); - bw = wpas_pr_edca_get_bw(format_and_bw); - - if (!op_class_bw || !bw) + switch (op_class_map->bw) { + case BW20: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_20)) && + !!(preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT)); + case BW40PLUS: + case BW40MINUS: + case BW40: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_40)) && + !!(preamble_bitmap & (BIT(WPA_PR_PREAMBLE_VHT) | + BIT(WPA_PR_PREAMBLE_HT))); + case BW80: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80)) && + !!(preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT)); + case BW80P80: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80P80)) && + !!(preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT)); + case BW160: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_160)) && + !!(preamble_bitmap & BIT(WPA_PR_PREAMBLE_VHT)); + default: return false; - - if (format_and_bw <= EDCA_FORMAT_AND_BW_VHT80 && - format_and_bw >= EDCA_FORMAT_AND_BW_VHT20 && - op_class_bw <= bw) - return true; - - if (format_and_bw == EDCA_FORMAT_AND_BW_VHT80P80 && - (op_class_bw < bw || op_class_map->bw == BW80P80)) - return true; - - if ((format_and_bw == EDCA_FORMAT_AND_BW_VHT160_DUAL_LO || - format_and_bw == EDCA_FORMAT_AND_BW_VHT160_SINGLE_LO) && - (op_class_bw < bw || op_class_map->bw == BW160)) - return true; - - return false; + } } static bool -wpas_pr_ntb_is_valid_op_class(enum ntb_format_and_bw_value format_and_bw, +wpas_pr_ntb_is_valid_op_class(u32 bw_bitmap, u32 preamble_bitmap, const struct oper_class_map *op_class_map) { - int bw = 0, op_class_bw = 0; - if (!op_class_map) return false; - op_class_bw = oper_class_bw_to_int(op_class_map); - bw = wpas_pr_ntb_get_bw(format_and_bw); - - if (!op_class_bw || !bw) + /* NTB ranging requires HE preamble */ + if (!(preamble_bitmap & BIT(WPA_PR_PREAMBLE_HE))) return false; - if (format_and_bw <= NTB_FORMAT_AND_BW_HE80 && - format_and_bw >= NTB_FORMAT_AND_BW_HE20 && - op_class_bw <= bw) - return true; - - if (format_and_bw == NTB_FORMAT_AND_BW_HE80P80 && - (op_class_bw < bw || op_class_map->bw == BW80P80)) - return true; - - if ((format_and_bw == NTB_FORMAT_AND_BW_HE160_DUAL_LO || - format_and_bw == NTB_FORMAT_AND_BW_HE160_SINGLE_LO) && - (op_class_bw < bw || op_class_map->bw == BW160)) - return true; - - return false; + switch (op_class_map->bw) { + case BW20: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_20)); + case BW40PLUS: + case BW40MINUS: + case BW40: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_40)); + case BW80: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80)); + case BW80P80: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_80P80)); + case BW160: + return !!(bw_bitmap & BIT(WPA_PR_CHAN_WIDTH_160)); + default: + return false; + } } static void wpas_pr_setup_edca_channels(struct wpa_supplicant *wpa_s, struct pr_channels *chan, - enum edca_format_and_bw_value format_and_bw) + u32 bw_bitmap, u32 preamble_bitmap) { struct hostapd_hw_modes *mode; int cla = 0, i; @@ -145,7 +148,8 @@ wpas_pr_setup_edca_channels(struct wpa_supplicant *wpa_s, mode = get_mode(wpa_s->hw.modes, wpa_s->hw.num_modes, o->mode, is_6ghz_op_class(o->op_class)); if (!mode || is_6ghz_op_class(o->op_class) || - !wpas_pr_edca_is_valid_op_class(format_and_bw, o)) + !wpas_pr_edca_is_valid_op_class(bw_bitmap, preamble_bitmap, + o)) continue; for (ch = o->min_chan; ch <= o->max_chan; ch += o->inc) { @@ -191,7 +195,7 @@ wpas_pr_setup_edca_channels(struct wpa_supplicant *wpa_s, static void wpas_pr_setup_ntb_channels(struct wpa_supplicant *wpa_s, struct pr_channels *chan, - enum ntb_format_and_bw_value format_and_bw, + u32 bw_bitmap, u32 preamble_bitmap, bool allow_6ghz) { int cla = 0, i; @@ -205,7 +209,8 @@ wpas_pr_setup_ntb_channels(struct wpa_supplicant *wpa_s, mode = get_mode(wpa_s->hw.modes, wpa_s->hw.num_modes, o->mode, is_6ghz_op_class(o->op_class)); if (!mode || (!allow_6ghz && is_6ghz_op_class(o->op_class)) || - !wpas_pr_ntb_is_valid_op_class(format_and_bw, o)) + !wpas_pr_ntb_is_valid_op_class(bw_bitmap, preamble_bitmap, + o)) continue; for (ch = o->min_chan; ch <= o->max_chan; ch += o->inc) { @@ -352,16 +357,23 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, pr.edca_ista_support = capa->ista.support_edca; pr.edca_rsta_support = capa->rsta.support_edca; - pr.edca_format_and_bw = capa->edca_format_and_bw; + pr.pd_format_bw_bitmap = capa->pd_bandwidths; + pr.pd_preamble_bitmap = capa->pd_preambles; + pr.edca_format_and_bw = + wpas_pr_best_edca_format_bw(capa->pd_bandwidths, + capa->pd_preambles); pr.max_rx_antenna = capa->max_rx_antenna; pr.max_tx_antenna = capa->max_tx_antenna; wpas_pr_setup_edca_channels(wpa_s, &pr.edca_channels, - pr.edca_format_and_bw); + capa->pd_bandwidths, + capa->pd_preambles); pr.ntb_ista_support = capa->ista.support_ntb; pr.ntb_rsta_support = capa->rsta.support_ntb; - pr.ntb_format_and_bw = capa->ntb_format_and_bw; + pr.ntb_format_and_bw = + wpas_pr_best_ntb_format_bw(capa->pd_bandwidths, + capa->pd_preambles); pr.max_tx_ltf_repetations = capa->max_tx_ltf_repetations; pr.max_rx_ltf_repetations = capa->max_rx_ltf_repetations; pr.max_tx_ltf_total = capa->max_tx_ltf_total; @@ -390,7 +402,8 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, pr.secure_he_ltf = wpa_s->drv_flags2 & WPA_DRIVER_FLAGS2_SEC_LTF_STA; wpas_pr_setup_ntb_channels(wpa_s, &pr.ntb_channels, - pr.ntb_format_and_bw, + capa->pd_bandwidths, + capa->pd_preambles, pr.support_6ghz); if (wpa_s->conf->country[0] && wpa_s->conf->country[1]) { From patchwork Wed May 13 09:59:39 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237640 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=rVowA2vd; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=is3KPKif; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=Xn4BMxFz; 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 4gFptl1mrPz1yLV for ; Wed, 13 May 2026 20:03:11 +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=37LWyQI1DKytVaYp93IxUp3dCebXXPGYTXuS9X7m0pQ=; b=rVowA2vdDPuShY Sg/6hgmPYXXlXu1YLN5aTvV5y5SAJo+vqb3VwKomYLqcqrWloKqm344MCmLgiFHb+mw4YH7jBiGCZ J81CYHvSiIe1yJcL3wC5X5/C/KTJ5oM2cRfTBOrTmOkAKo63UV3QEYYICodRgBXzB0Y6zJ3vbjDtQ qidqi1jH19YAWYlBlRdVt6s+wyGU4PleiqMx38az76pJMP79vGU1peTCwcH4uiLA7WlUu7tkdIMPq Wt4DJ5gf2XFszsF23n8uy54Da8WM7LvvB2BEV3HQ7oILNQMVYBL5ukM18g35BH4xgD5bnSDeCgHO8 Y4k1069rtjRvAkPhwWdQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6P0-000000021Cw-35Tp; Wed, 13 May 2026 10:01:18 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ow-0000000214a-30rQ for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:16 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p6WT2338782 for ; Wed, 13 May 2026 10:01:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=ZN2nGcHkjT0 mfWatbWDfH7ifvRVTE4dZ4NyhL/SJWXk=; b=is3KPKifEBMm2mLEa/i6JnlBY58 86P4vPkSRJVC7fXienjr1+MF8alBl8p01mnsyeehJzDUGP30PU6tNEzkz2ZrQuJt CPvywsqO/W4WdM2V9ihtRt1zGasu9mlAHYm8HjMGFzgNuNlWG4E9lp7euP/3MG7h iphLhnHqPSLSJtzTbtk3cPrrNVnpDjb8PGON5KCs1SZkavjZ5a1cw5SO8ba+9+EK 8MXaDCyls6zJZxZFznsptuQ2MJnMzIpOd50bOTcJTufzc+iHTYauxRuD6N35Zp+2 7WNkk9xAs8NnXrV2kR5qeD+0xUaCUoAnaclm6Sf/oSo7jd+Zo4lA4A0ulpQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavwj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:13 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2ba224c3ffdso98519625ad.0 for ; Wed, 13 May 2026 03:01:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666472; x=1779271272; darn=lists.infradead.org; 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=ZN2nGcHkjT0mfWatbWDfH7ifvRVTE4dZ4NyhL/SJWXk=; b=Xn4BMxFzHakJMN0NN39kXugi9tmA6D05BnqpuG7VwYaRvzEV/uuXYKj3C4P9WCGXMh /+lB0fkyrTgK5tyeiDKOtQdr0xmpuYGwWEVZnfZ/buzsyKzJBRFjZGg9lone21V0jIyF iq4N7/81wGg3BExvP6jmrESHWXZrxQYsef2MYl9iwXa5mLYVcS87XZeVB34FleAHqhOK /K94ZrHFYPAKp8jlc4zjr6YLcO7Yuq9vBxSQUYM6GtilKoESnLndWto2BSXcAEo7ldAB HZKr/9aB2e3kB3E8tiJHRuTD5qN4qIfyllLl4z/WRxblrGNZh4z5ONwmcoZGhRaR1IYh 1y7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666472; x=1779271272; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZN2nGcHkjT0mfWatbWDfH7ifvRVTE4dZ4NyhL/SJWXk=; b=q2UmhgMqEqIXSf9+IUGHiyvFmQXmA8t+gzrpl7d3CQXy2pwx8lh83rvu2tqN0mnEbK Y/3Sbk9U+m6TWxej8oSFsw8QxigFapk6kRbe55qF2ilU9oOI0o73fOYuZURxjKyx62yW cJN9Vkh2CtAa+p/zhUNqKOwNme6BvGr9pr2wRqctTjAgmKGuypu5/goU413hefai+v4u H+s0HH8U/2/D3TkFHaBfIv+N6jlvfU2L0aRMl3tYTAr7AvKvvYII5jQq7R7RBGr9+77I nCljx8vK1RQ5zUPE0Ap+vuO8vAuEESObzMRuLPCYlfzk3OEqOpsS+75cBMVqEk+LK1g7 bXCw== X-Gm-Message-State: AOJu0YwijdOsmOtnhjKxc4m7PlTuzLVNJdv4bYus1yC5dWxEA/S4UDWS tGpT8PPptSjHD8wv7jvD5QUpMTdHvdXyUGbCC/q79B8tDGUSqsNwLQMVv9iObEDX2zCRMN0U1dH LNBg8dxxSL2UKSrJfP3wlGqoD3tmxQmIUUGsckX0wy6dBlmwDNRG4RiZDrXz0XlGMHosYqVjN X-Gm-Gg: Acq92OHcVcDFxOkQnyRfnKWhbTTW4xAapKsgGoIBILu7amchWgJfP5T4Q/1xj89s8g+ 26LtlS+ZvPh1XFe8Kq9KIGUrM55EFOgkLKDvwsz3lmVHQ4I+3vMUK2R3Ow51+sOaInjklkmEXqK V0yACWkVr8162YGtR3g1dzD/RJXkbX3r1d53f7IDSwL5E6Wy9LqPgQoCy2ns9JmRjvU5ZlEAoFa upA5068Sj8VroOz4zE7fwFAZdI9aKbBXD50IBdrbBKf0/5neN67qFz/uRQ+1S59zrYxsPmSeVFW fJmiuLGxQ/tcMU45RWFMLBgyWwGvO5e8X0rWNSr5SPbHQMuS1q2/cylp45FzRJZ5b6481MRcxkL m7VCL/3fc5Abbp1gkg4IEkd0lWVpqXe90BxrEZi02AnX2JwYrKLDwdg== X-Received: by 2002:a17:903:37ce:b0:2bc:db02:d1ed with SMTP id d9443c01a7336-2bd2771282bmr29089945ad.38.1778666472229; Wed, 13 May 2026 03:01:12 -0700 (PDT) X-Received: by 2002:a17:903:37ce:b0:2bc:db02:d1ed with SMTP id d9443c01a7336-2bd2771282bmr29088785ad.38.1778666471030; Wed, 13 May 2026 03:01:11 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:10 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 15/46] PR: Gate EDCA ranging support on ASAP capability Date: Wed, 13 May 2026 15:29:39 +0530 Message-Id: <20260513100010.1947710-16-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: E1X0oHfAITW5GvJQlm7ff9i0A69p6T3l X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX6lNBsWUmzStv z0N7v8hHSt+MQmwPRy4qxEmslZUox4H1iHNyDEtHKb/Toi/hIa6KmwrCaL3wPlOWNkNVdDh2T5/ 7QSi4XnHZxTVe807sMDA0eI1zdWcGy4x9Aff8s31D86lWngg4WQ6a3Zm1bPogvzi5IJtFXlbeIJ O1zDND0V47BbQNnd55EMYkpjwZjQPu6CCrBqdkwimWSQZyR1xdsKD9KxEUiF6fFV/5VDze7CA4x UQaSqwyrOb5NqJpvmjSgfr7+GcnyAz+mviW7WsPqoSvBNLf4lmLaKc1jNaliPFYxuQvWbLuFbM2 uW/tV44B8jBF4SVQE1mVzkKsnZSDOOEyDzgccG40RQ0qbjDSdg2WNRWm4tkAMyKGfnB0/zW4uOv 5IKShd+Lvuth0HWgJ6exvzJMiLBA8lvMzls2jRvsjCA+s7A0HwyQ2Ey2vS9yi8Np2/KPH7hiJLv uIb0G58+weQtk0wwYiA== X-Proofpoint-GUID: E1X0oHfAITW5GvJQlm7ff9i0A69p6T3l X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044be9 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=O9BcEC6yCEQ8aOg0kzsA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030114_954038_924DC4C9 X-CRM114-Status: GOOD ( 15.94 ) X-Spam-Score: -2.8 (--) 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: Parse NL80211_PMSR_FTM_CAPA_ATTR_ASAP from the driver and store it in capa->asap_support. Gate both pr.edca_ista_support and pr.edca_rsta_support on ASAP support since ASAP is mandatory for EDCA-based [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 Parse NL80211_PMSR_FTM_CAPA_ATTR_ASAP from the driver and store it in capa->asap_support. Gate both pr.edca_ista_support and pr.edca_rsta_support on ASAP support since ASAP is mandatory for EDCA-based ranging. This ensures EDCA ranging requests are only sent when the driver advertises ASAP support, preventing invalid ranging attempts. Signed-off-by: Kavita Kavita --- src/drivers/driver.h | 1 + src/drivers/driver_nl80211_capa.c | 3 +++ wpa_supplicant/pr_supplicant.c | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index a1f922f9a..18c51b75c 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2699,6 +2699,7 @@ struct wpa_driver_capa { u8 max_ftms_per_burst; bool concurrent_ista_rsta; bool support_6ghz; + bool asap_support; u32 pd_preambles; u32 pd_bandwidths; diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c index 281f06d22..6051a0801 100644 --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c @@ -1251,6 +1251,9 @@ static void pmsr_type_ftm_handler(struct wpa_driver_nl80211_data *drv, drv->capa.support_6ghz = !!tb[NL80211_PMSR_FTM_CAPA_ATTR_6GHZ_SUPPORT]; + drv->capa.asap_support = + !!tb[NL80211_PMSR_FTM_CAPA_ATTR_ASAP]; + if (tb[NL80211_PMSR_FTM_CAPA_ATTR_PD_PREAMBLES]) drv->capa.pd_preambles = nla_get_u32(tb[NL80211_PMSR_FTM_CAPA_ATTR_PD_PREAMBLES]); diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index f50712a96..9b3e09d82 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -355,8 +355,8 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, pr.pasn_type = wpa_s->conf->pr_pasn_type; pr.preferred_ranging_role = wpa_s->conf->pr_preferred_role; - pr.edca_ista_support = capa->ista.support_edca; - pr.edca_rsta_support = capa->rsta.support_edca; + pr.edca_ista_support = capa->ista.support_edca && capa->asap_support; + pr.edca_rsta_support = capa->rsta.support_edca && capa->asap_support; pr.pd_format_bw_bitmap = capa->pd_bandwidths; pr.pd_preamble_bitmap = capa->pd_preambles; pr.edca_format_and_bw = From patchwork Wed May 13 09:59:40 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237645 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=Yk63MfAw; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=eGQDIOAg; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=Pw2ROtMC; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=CSq9oft0; 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 4gFptv22Rvz1yJ5 for ; Wed, 13 May 2026 20:03:19 +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=xekr+8kr3w0W9SUueO/LvbyMdcK8WN2PR4X4rQ2stOk=; b=Yk63MfAwQzThHe UmdkDrPT9l9Q/hHV7+IIRN//KIs7dB2wAtSb3PndzmLYxb2e/jlOt2ZoQ7l4Y/qf5Czj1ISS29/ib Abl8eLIUQch0Dd+qdM2wLUPtOI0gMxo0qUcY1Fcrmx6d6eywzSNq5e3uBEiSu2GOSyFajCPEI08hb IR8wrcUDXSHzFE9BTQPpRAQtx8Jo8S7EXxfo7sN4iBtcA86ze5xEXwM4I5hOhaGTvEgX4TZ6P7GQg lbQJIsQ3exV6KJqxzWrBgNkyFN7ri9OGB6DiurYdiy6g86PTd80GICRABA5hFJxicCiVhdbcY32Iu UBRPpg6W46LSug9VOPLw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PB-000000021Z1-30pq; Wed, 13 May 2026 10:01:29 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6P9-000000021Sj-0AVt for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:01:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=BHhyqfXwWjJDiiDn5yZH6ts1MdP9d7XdQNvh53/F02E=; b=eGQDIOAgBHPK1vivm+xHGE+kRw 3zxdZ8OiKQ7v1ynB2mr6OSx5kbliEBN5xtbv6bm2aO7iJzkeiV5ZjRvIVEwlOCz6gEAfF8NPe6X0L OkNymPhV9YRX7WCAu9BQMIXCaiEjA35MOlVXex/1QXqzsDoNPJKtLVpoMpYYGpXRKcpLlllgUA+fd HOys3KErd3Le2AdkwCGDdgNPJo3ojjf9riGovNVjNXHmtPwFnsMAHJu7zw7mGrGxRoNa2K7T0nhr5 cN6ZkIeBmOh/YKz7gxrQP3oxr9dATrffe7tAx2rbIyvIoQJPcSIz6DcXYfOzeGzJlw+W73/lgCKb+ CGWklq3g==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6P1-0000000H4UT-2Ac0 for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:25 +0000 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pBmC2652515 for ; Wed, 13 May 2026 10:01:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=BHhyqfXwWjJ DiiDn5yZH6ts1MdP9d7XdQNvh53/F02E=; b=Pw2ROtMC9WmlsAtFwXC0by7eHGX AxytMWLRBiJxU71doBgQIXBdsTWH5uveTEDeJAtZpCbJExIq6yaKjwRK5GdrbPHb FKPORXL761CM494dJ3EYmqJWYa1kikQGVblxyq9slmiJXOPdgWXLgiJB/uY3vjRw cEFTTyy3Dsj4PTuxCeqebeqQ+OgC6QBYY0hg781IhYY1sigqCBS7lHPQ858Pq9F5 Q5FooZMTqj8pKrTrBXDFEiJuyZbDeS/cJHWQ4vaCyA37Dx6mEJ+EljNoZx3QdfVr rog/WPNj/UC9nSYAmX7pJlH/O/XgTXocXy4L2ymnREwoGXDq4BNJdjRF6fw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e45avm560-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:15 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b2e8bba2e6so86145885ad.1 for ; Wed, 13 May 2026 03:01:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666474; x=1779271274; darn=lists.infradead.org; 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=BHhyqfXwWjJDiiDn5yZH6ts1MdP9d7XdQNvh53/F02E=; b=CSq9oft0GMW2nT0qwWAN0/dJgsJfMOCJ1r73vBinzQ34biFe1Jm1LQqQxIxO++mNGB zU4fNWr7O0E012T3g9BhXQtD60gvp1UGknqNUCvy57qBAGWlVbEeSvtKQHB7T2LvmZ8j 8jPodbImJYheEw4og69EZT0aeEJD73DofJvERDhUybyVGpL61Td6wTiF8arbkz5JD395 /bK/wg4HNfyulTqgzoaNrjIQ+5jPO8VBTsqRBxOsDDNTm5UR/4xE5jJRM+batYwE1p7n QYKptiBy/XjeaBtIiM8QQs47kjW22H/2a1lU8T5VMvLKaHSJKQeRzs2NlcKe0klmzJZJ sjxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666474; x=1779271274; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BHhyqfXwWjJDiiDn5yZH6ts1MdP9d7XdQNvh53/F02E=; b=LTp9MNhZPSKUqu9w1YXjMINCm/W/gC/jsMb1vUcd94ZfllPjczXWlCuAspvbRyf1C+ 28JxAmEd0/L8yCbx9m0JbGL6kJwImyPVHWNq3DD6+1yDItNv6FzDGLv5It+8//Zi+uFH JI/dQ0gtpgMXLwv8wEAoqoqZJsTPd8sh8jWJDqPM3IjjQx3fMmotVTJWXj4QX4lQXPvQ VTOB1gjicoCc4pkfknTVU2L7/v1nE1C1VqKhsOMI+IOsc9oVFCosLS1FOGl3U9WyO9o/ ZF7DiIICJhqtfF0lSj6FRcQuLxz5lcOSc9hZSkcCqp3innTsNQjRzlgdy3EVw9H3RgJi yEAA== X-Gm-Message-State: AOJu0Yy5JuA2cTK0OJeNtW2uWBswg8rp6VAao8tp8T2jRBLgQFfwdzsL pP8niDACYZsWPde7APtTzWWEPSr/ftWzGBtX7Z4Qq8pp7Hm8qWWZ/VJIw7qFXnhOAIl7frsAxsc 8oBf8kVNyPHGPvspgLwmCP6iJg4y64dhNq790cCHnU16GZyG+wiwN/08JhckbR4aoReblfJV6 X-Gm-Gg: Acq92OGTnsSM8Mh6Zd9Z5eUI/W/tjbNg7BvbcHDF0mgJ/bI7i2znzxaW2BqPN49bqqz RsWRv1cHMANl9AHkk9wXtvIfqHkua75P1I+aD8CEKBBErgoY6XXlHmumPz2YN55fb8X1QGFqi9A 3mDg+w7VTrrVDKtEWGry4e8+wF2xQqpCCikxdrrFRg6BiaBgPZt5X7Qe77aEEO0P93JKyJ8/nzJ +iN2uJtePYhVD3OPrup5C4mg81nqIniuQtLdl5yxa+nYs4W4E/noAX6FxYvW96BP3u3U68Iml47 nRU+Bfo8wXQCuNrGVTfbJqUYHYIzjxAQOupnqF2futVlIJFKC3FhjNycKcgktXpGwFQ+cdMn6of QXJk4qxmhv0zytIg51iaGZ6H2b2riTCFphoN4Xhs8ZjOeTEQWB5koGQ== X-Received: by 2002:a17:902:f34d:b0:2bc:dca9:f0ef with SMTP id d9443c01a7336-2bd2772e362mr22555525ad.36.1778666473854; Wed, 13 May 2026 03:01:13 -0700 (PDT) X-Received: by 2002:a17:902:f34d:b0:2bc:dca9:f0ef with SMTP id d9443c01a7336-2bd2772e362mr22555075ad.36.1778666473276; Wed, 13 May 2026 03:01:13 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:13 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 16/46] PR: Add nl80211 driver support for PD interface Date: Wed, 13 May 2026 15:29:40 +0530 Message-Id: <20260513100010.1947710-17-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: OIORHYFxhm7GRN0p7kO_T7ki9qSORjLV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX8tzjCYj2EfMR uhk+2ikbRG7LdAIu1QleYGnEE+dCZYXQIqGExK+W9UtdmTypS/K9syRBnnPPHvqKRi8nw5f+TXK 6oZXR3hxeizesNqHsR/U7dTmX+06REctsYeGDZrYsWF+DpHzsybBKkDkZ+A+UNKhGuDdYaMKu4w 1agqj+nSAz187wbe6JqJwbhHuiy5bACucQZJRJOCewZGefwZ5C+ZGxetHDF1yRRkWe2TxjrE1Pn T6TPCfkWQqBxFL9IC0vmcsniYi1JUzB1sYWXvvI0Qf1WLpovVIE51YX0mxS41djBVUSLz+lJfJr ASsXduvWHE+2oRAm2K9+FxOy8H2u0J+diPBoIFro8IdEi/ny6vEjg3Z9YQLNMOgdBkNRX5CHlhP xvvULuF0TyGpi35eNFbY0RLuZNnzw4LZCCZyB2dLBX1ZBZ/36THG4y5Q/x81u/FGi0eQrDrjEFe VJwHYtE01XyoygXqgjQ== X-Authority-Analysis: v=2.4 cv=bOwm5v+Z c=1 sm=1 tr=0 ts=6a044beb cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=nUz7SQWBvLQO1cwTY-0A:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: OIORHYFxhm7GRN0p7kO_T7ki9qSORjLV X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110120_886910_18913BCB X-CRM114-Status: GOOD ( 20.14 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: Peddolla Harshavardhan Reddy Proximity Detection (PD) ranging requires a dedicated virtual interface with its own MAC address, separate from the station interface. Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Proximity Detection (PD) ranging requires a dedicated virtual interface with its own MAC address, separate from the station interface. Add WPA_IF_PD to the driver interface type enum and wire it through the nl80211 driver. A dedicated netlink socket (nl_pr) is created when the PD interface is brought up, mirroring the existing nl_nan socket used for NAN. The new nl80211_set_pr_dev() function sends NL80211_CMD_START_PD and NL80211_CMD_STOP_PD to the kernel. Interface creation routes the PD type through the nl_pr socket and registers it for eloop event reception. Signed-off-by: Peddolla Harshavardhan Reddy --- src/drivers/driver.h | 5 +++++ src/drivers/driver_nl80211.c | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 18c51b75c..ba53dc60d 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2169,6 +2169,11 @@ enum wpa_driver_if_type { */ WPA_IF_NAN_DATA, + /* + * WPA_IF_PD - PD Device + */ + WPA_IF_PD, + /* keep last */ WPA_IF_MAX }; diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 3b50ffca3..a5b44d9d6 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -248,7 +248,8 @@ static int is_p2p_net_interface(enum nl80211_iftype nlmode) static bool nl80211_is_netdev_iftype(enum nl80211_iftype t) { - return t != NL80211_IFTYPE_P2P_DEVICE && t != NL80211_IFTYPE_NAN; + return t != NL80211_IFTYPE_P2P_DEVICE && t != NL80211_IFTYPE_NAN && + t != NL80211_IFTYPE_PD; } @@ -3239,6 +3240,22 @@ static int nl80211_set_p2pdev(struct i802_bss *bss, int start) return ret; } +static int nl80211_set_pr_dev(struct i802_bss *bss, int start) +{ + struct nl_msg *msg; + int ret; + + msg = nl80211_cmd_msg(bss, 0, start ? NL80211_CMD_START_PD : + NL80211_CMD_STOP_PD); + ret = send_and_recv_cmd(bss->drv, msg); + + wpa_printf(MSG_DEBUG, "nl80211: %s PD Device %s (0x%llx): %s", + start ? "Start" : "Stop", + bss->ifname, (unsigned long long)bss->wdev_id, + strerror(-ret)); + return ret; +} + #ifdef CONFIG_NAN static void nl80211_nan_stop(struct i802_bss *bss) @@ -3297,6 +3314,11 @@ static int i802_set_iface_flags(struct i802_bss *bss, int up) if (nlmode == NL80211_IFTYPE_NAN) return nl80211_set_nandev(bss, up); + if (nlmode == NL80211_IFTYPE_PD) { + /* PR Device has start/stop which is equivalent */ + return nl80211_set_pr_dev(bss, up); + } + return linux_set_iface_flags(bss->drv->global->ioctl_sock, bss->ifname, up); } @@ -3492,7 +3514,8 @@ wpa_driver_nl80211_finish_drv_init(struct i802_bss *bss, const u8 *set_addr, nl80211_disable_11b_rates(bss->drv, bss->drv->ifindex, 1); - if (nlmode == NL80211_IFTYPE_P2P_DEVICE) + if (nlmode == NL80211_IFTYPE_P2P_DEVICE || + nlmode == NL80211_IFTYPE_PD) return ret; } else { wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable " @@ -4856,7 +4879,8 @@ static int wpa_driver_nl80211_send_mlme(struct i802_bss *bss, const u8 *data, } if ((is_sta_interface(drv->nlmode) || - drv->nlmode == NL80211_IFTYPE_P2P_DEVICE) && + drv->nlmode == NL80211_IFTYPE_P2P_DEVICE || + drv->nlmode == NL80211_IFTYPE_PD) && WLAN_FC_GET_TYPE(fc) == WLAN_FC_TYPE_MGMT && WLAN_FC_GET_STYPE(fc) == WLAN_FC_STYPE_AUTH) { if (freq == 0 && @@ -6662,6 +6686,8 @@ const char * nl80211_iftype_str(enum nl80211_iftype mode) return "NAN DEVICE"; case NL80211_IFTYPE_NAN_DATA: return "NAN_DATA"; + case NL80211_IFTYPE_PD: + return "PD DEVICE"; default: return "unknown"; } @@ -6699,6 +6725,7 @@ static int nl80211_create_iface_once(struct wpa_driver_nl80211_data *drv, goto fail; if ((addr && (iftype == NL80211_IFTYPE_P2P_DEVICE || + iftype == NL80211_IFTYPE_PD || iftype == NL80211_IFTYPE_NAN)) && nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr)) goto fail; @@ -9454,6 +9481,8 @@ static enum nl80211_iftype wpa_driver_nl80211_if_type( return NL80211_IFTYPE_NAN; case WPA_IF_NAN_DATA: return NL80211_IFTYPE_NAN_DATA; + case WPA_IF_PD: + return NL80211_IFTYPE_PD; default: return -1; } From patchwork Wed May 13 09:59:41 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237618 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=1mcnRrSj; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=EoFDrrmP; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=RGMbXE7W; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=jiLS7NU/; 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 4gFpsc0M8vz1yJ5 for ; Wed, 13 May 2026 20:02:12 +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=qamJlOlsZjF2OBdtooIQ5FkGc+260OzVlyYKEDI9r1k=; b=1mcnRrSjQvQXPX 06k3b7QA2KiZ3b8F8SLPldrVUHVhG+osWFbvv/GAkwVwm4hkSM3aZMn+7VzJ+Zyk5BCdxWdO5OSpj B1yMq0sDiV/PDOVfA6XzANFacUMfzk+t/P3iZOrnSYjMUpB9aZDxjzrI4EfPb9ul/CQYtOwuougtw 5q6V4jkU5gnd+X9vduGTpD8AfgHrTloGlW9vmMNw8pxAw8vJRX4WI2jWn1k5bL92o2hG1Z7FE0gQN vrOkXRwaq2XK7HUU4Kmgc6vF3m/xfMAy1bwJcdws8p2FxvlJ+7V5cHDzLHJNeimTaawUjrGbbTaS5 f6uNT/Cd0vQpZYYhHrmA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PE-000000021bI-1Om5; Wed, 13 May 2026 10:01:32 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PA-000000021WJ-2usj for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:01:28 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=uaUgWZGOLE/5eBFzV9PIgt4YOdWIBK/z+Uu3ZC5vAaw=; b=EoFDrrmP/IRT4u53BU7RcYmJTs D3Kd0DJdY6KZgt6vebFKFmg53cITPgNmBWW9hXQHsAp7hYveoRYRDiQ6M+88d96FtMhLmtM0uUbJ6 8pPPn6shyzLdp4Pqnj96qPE3NItW10R3ISeWrwvdy2lYX9EsUZmmOhZWuaj0JmY4fBFU1nHMAYz5o sAELiD7GvGwdl+L7D9mEU9OHEr+gW127YW0MuVQrZldsLTCdnOC8+n6vhPf48Mgqa6BOVx3uYxXW7 fAuZVvHXuPQJtrZF/5gk7uR/3Z0P9DWPiKgC2Nmf6Iz9ZiFcUhQRlmt1ox12LeQy9DLvQpV/Xu6Tv SVgqjV9Q==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6P2-0000000H4V3-2Ey9 for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:26 +0000 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p8rU978127 for ; Wed, 13 May 2026 10:01:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=uaUgWZGOLE/ 5eBFzV9PIgt4YOdWIBK/z+Uu3ZC5vAaw=; b=RGMbXE7Wm7UHdxaobqx8QSAXc00 9yTOV5rROHAZznuTbtPCI4kHR7Kv87A3dzrSQV2CHfnL80yIw2iir2zXLxXfxc3V YC9G/NaXs9pLmfSOjP0LujiAxS+3o4Nyzi1Xpql1vwkwdCZB0UWXirDMwhfCycgu 5ow6HmqZm8spy59ZlZrOyt1NF4YpHMm4rUpURz9axazSnnKlqUcasbwtj8G7k+GJ A2Vn4mtnqi/LHJ+Gq61k6lxrX+d1QgnBV458fF6Ngjac0jI0wENUHl/GP9Y7J7O4 Q+vrtAogoaa/qp6eG0sLoSCKoq2CnzMAb2rDAddT49xY9IaTZbtpr9jov8w== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e46s9uqjs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:17 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ba5f794825so55933935ad.0 for ; Wed, 13 May 2026 03:01:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666476; x=1779271276; darn=lists.infradead.org; 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=uaUgWZGOLE/5eBFzV9PIgt4YOdWIBK/z+Uu3ZC5vAaw=; b=jiLS7NU/Ap/dUtF+mqnEUiSPIiAYLA012xb3C/ROq0sDD3VurCaFICeiTl+TP9/2DR 8SrQ9xB0ueL1cctinceEoO6282wLBlsbKYz42PvvUXmFOKThUHBSfPlWnZwZky1Xf8KF ToFHLh8z08p+h+fYN09x/G7lmbLSezxQaXx87iRgYqqg9ceCLZhzxPwQehGNW+FFHCUm 7BVR4H2varDXpnU0TliAE5gHjwZWN1EpKMY13XAcikWKdqoIrLAyB6OqK2LX5KALQL+v 5NPtFVkN+juu5uYmjZofLgkZd1dR3OJYp8v+VyGiuj5b0u6ovXR+oLvEn5zfhp3gS439 yFow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666476; x=1779271276; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uaUgWZGOLE/5eBFzV9PIgt4YOdWIBK/z+Uu3ZC5vAaw=; b=U9qNrIvbD+MC3M7YciteHyCZZ5gYeUaB0vofWBARLL5hqmlO1BRL8t/myOHOnJIQpO w35cX47Gnj2alhDw0UDh0rA28BMyURKT53kMlGxrl0kR4cXHE0yz0yb2QMKt4dT/04T+ m/fgtTWZadFRSPebCUkVBLIUkAOpNrMPkoqhpHwKR8gl0xoo1rVOTP20embaxye/R4gd 5pQa5WTi+WGDsXdUe9ZwkKNr7dE1LXN0D+jX+AuKCppKQQU3Qv2tznKCGJw2tkIQWJxy pJIy6xg2JadwgYnQXkFycMqysI7KJhGJmOqE/byCwzUJ9y5T9Gz5dxk8fBX8slZ2Amhq V2gQ== X-Gm-Message-State: AOJu0Yz+oFoIHpyWd+EpwUi1tIOD6IdfiXC4KYzOBQd5SiLIBiya3H4w DPMu+EDABPYWC6amhmFwcJ01qZczLsjlDUMYsy8rRM+9bgKfF+XIn7WLUzb8sqKIkF5Xzr6/MHR Iyh0Tn8zD3SLrZrrpVBfxVM6M2ylNpWfWrFErUGzRQgOZSQwuVFEPAJgmeFUU4trbSUiW2Xdg X-Gm-Gg: Acq92OE5S0VGXwidJeIZRlwJpEHrcYWNc+k5TSXDaJgpv2ADTEKAQqEhQyFp0S1rH8+ Szf1Qz9MhzVfdRt4B8yne1cT1xTFhr+Mg7mYqDjGhP+B9s/enFdtDimrAn6IUWeXV/2yUkwMYli dauF1ymMToUhHkAfGvtI5geiEAw+92WetrMM2fTdSaivxw8+MwFUmFsSGbg9nfZ9rK0XdGj7QOr wocfCLEoCnhI4kMG5Ap9xy7wbmq+3tsC5L0ZD7jakij8W+OK7DY2clBJGb9VbpWDmoTo7iWmQsi R8xU+2A/+A6/+tgEYCzMNx0Ys/4hT0G6egRkxySQBfv6VNvhTtPzXQtfc6PMvM/7UckLFZsyAMN rRXqjeVwYRBk7jxiGv0VC74AEXmD0h6k9ub+4xtlJKD5jpklcvI8S/w== X-Received: by 2002:a17:903:228f:b0:2b2:4b4e:e4d2 with SMTP id d9443c01a7336-2bd27184609mr30958275ad.15.1778666475952; Wed, 13 May 2026 03:01:15 -0700 (PDT) X-Received: by 2002:a17:903:228f:b0:2b2:4b4e:e4d2 with SMTP id d9443c01a7336-2bd27184609mr30957755ad.15.1778666475424; Wed, 13 May 2026 03:01:15 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:15 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 17/46] nl80211: Use wdev-based message for SET_KEY on wdev-only interfaces Date: Wed, 13 May 2026 15:29:41 +0530 Message-Id: <20260513100010.1947710-18-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXy9c0hpwu3v6h SE+dZfVHjDgaF8y+ePqp2QyUr3UhBCIijGR+t2hUHe0DF1v0+WV4petDyZWPOUAiycAC7ftpibW oogcw4Zvnw7A/EianKophRmIpuagnidtPFl/LG8RWU+I/dcFCw+ZTwqB9TpIbqliXKUdGnDq5qJ LhXYaywXqZH1+e9krL9iZGm52T6mi8jJlh30yRYsocxHj67ZCjcRxx7YYGwIJfgcX8XvVHFbII2 7mBVe/+WdZIdkun3D7NAypgCNeJt1+nNvjkFKYny7AWf/qxsGcevt1ciFeqbmuxxdRL5bPUPUt+ mI3cxQ6XvDxTYdg+vxR467DOl9ArMx7ykHj108zD3VR9HCVYQa2AlVXuVNYkR/1uxk10eniPCjr dl2039pKoV/H/ySEnAEsMo/PB1zC/ceN68Pzl0oQ+eP2VS6e9nNvXQ2EpaeYCdy094oXSrU7c/1 mWUrStD8v6jLj2o6Gdw== X-Proofpoint-GUID: Wc4NBV4JR8btMLfZMXpWi6rRWCZXpz87 X-Authority-Analysis: v=2.4 cv=L68theT8 c=1 sm=1 tr=0 ts=6a044bed cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=wTAjTGd2OOkbEho-2KcA:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: Wc4NBV4JR8btMLfZMXpWi6rRWCZXpz87 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110121_265945_97A882DB X-CRM114-Status: GOOD ( 14.73 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: Peddolla Harshavardhan Reddy The pairwise RX/TX modify path in wpa_driver_nl80211_set_key() always used nl80211_ifindex_msg() which includes NL80211_ATTR_IFINDEX. Non-netdev interfaces such as PD (Proximity Detection) have no val [...] Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy The pairwise RX/TX modify path in wpa_driver_nl80211_set_key() always used nl80211_ifindex_msg() which includes NL80211_ATTR_IFINDEX. Non-netdev interfaces such as PD (Proximity Detection) have no valid ifindex, causing SET_KEY to fail. Use nl80211_cmd_msg() instead when the interface is not a netdev type so that NL80211_ATTR_WDEV is included in the SET_KEY command. Signed-off-by: Peddolla Harshavardhan Reddy --- src/drivers/driver_nl80211.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index a5b44d9d6..ea214b74b 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -4012,7 +4012,11 @@ static int wpa_driver_nl80211_set_key(struct i802_bss *bss, KEY_FLAG_PAIRWISE_RX_TX_MODIFY) { wpa_printf(MSG_DEBUG, "nl80211: SET_KEY (pairwise RX/TX modify)"); - msg = nl80211_ifindex_msg(drv, ifindex, 0, NL80211_CMD_SET_KEY); + if (!nl80211_is_netdev_iftype(drv->nlmode)) + msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_SET_KEY); + else + msg = nl80211_ifindex_msg(drv, ifindex, 0, + NL80211_CMD_SET_KEY); if (!msg) goto fail2; } else if (alg == WPA_ALG_NONE && (key_flag & KEY_FLAG_RX_TX)) { From patchwork Wed May 13 09:59:42 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237619 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=MXCZ6SvT; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=fKqVVXiM; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=V1eTPJbr; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=MBVSAE5+; 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 4gFpsj11d3z1yJ5 for ; Wed, 13 May 2026 20:02:17 +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=wBl9sILPYkHtZ9qK66cfvYdYuBoqzaMD6me29LDr1+I=; b=MXCZ6SvTG9tNDg mHz1PVr2/3P7+NHOr0Q9fGdi2fA2koYDwTlpkmdQrHjQZorDmFhdSRDPHzMGIn4ppLxQeucFdER1L b3s+LL/ZIaVpTDtwgh5Rdkuqp3LolkOfoXn/45m3eWsmFAbW6Hg7ThQIBk4CrwFbI0Wht7qwBNnfS MZwRBYlfhjDjnUpq2/kblJfzKaxSP2rzv7NZk/qp+Shh2tKCdH7yt6lk6iSEwvHaChpS+ZuB1gpgU OMq7Hw06BoOuI0BiUYbVr7W1eY4R5jncR8bRPhr7jEXs6DIgsUq4sIG3B04nBiOD+dlht2Tpy4zT5 aTyEsBpnuGdXKW3v1boQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PJ-000000021m6-3FQA; Wed, 13 May 2026 10:01:37 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PD-000000021bM-2nIu for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:01:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=1E2wcB4O47nQKxwEYMCY2imlHQoZ2JVfBVOLQenIJBc=; b=fKqVVXiMjoNl8+3qXtdpkkopaq I7jZ9LDuM16L4a1wipfJknI7RZ0mESSY0eelmqObc8DQ4woEui1YGz16tkTAoyQRq6fiAFWdMT0tC KuuGGlv9bUVNWXk2n0pWaAqdTW7pv4xEUYAXUxi4cZ35rSKi0TDEIqthUKMwAra1Phs+sj4WY4D5q lPYUK6C5qN/ZNANhG1ljIrMTTsXrWveHao/KhXa6KYQQC+8DWWsbihEUeGz6qBB2QBdLqvJ0HQCCb 4+fiH/xQRrZXGFYJvdYFu+n29v0TO4ObYQnOPUy6hQwFAGBnZR10PKOwX+rPg+Kl0tY3L4YRfvdRq /zNQAiYQ==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6P7-0000000BR5c-09tb for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:30 +0000 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pXQC2653257 for ; Wed, 13 May 2026 10:01:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=1E2wcB4O47n QKxwEYMCY2imlHQoZ2JVfBVOLQenIJBc=; b=V1eTPJbrNB9ZIBm4rHPVmcGIve+ DbSjtKxbyr7fTl6P5Pe0giDdCyI1avTA1LGDDFQDiXpxVnYx05/Dl5TP6bITcwJ/ lhK/sg/TVYPpDtUhA4Ntf4fPZRqkD4hT3UUovcdAZXRiqVZ3TyX5I2TeajzZIroI zX2jbH5MnwC0gDeP7dvhtaQFhMbGH5LAiGWo9W6ELMxd2HIFzhTGhCXqf8kVQtzb 2tgv5/gqbw1uuAXAH3RVQMLQH3iEAFpZVqKu2EVwuwuKvad1Vs8rpurM7TEv90YL siOsuSm889SFrtZXCFSlJTxGqOmE1knEjyk9SSqYyMDP+3P/EtVr0BBIUNw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e45avm568-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:19 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ba718173d1so113689385ad.0 for ; Wed, 13 May 2026 03:01:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666479; x=1779271279; darn=lists.infradead.org; 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=1E2wcB4O47nQKxwEYMCY2imlHQoZ2JVfBVOLQenIJBc=; b=MBVSAE5+m5usVp0oqguIfEshzSKa2WigNBHwnyhQxb8cB26cJ2L5eiN1nS+oBZkfB2 qGVszQaaalUe3VUHxt8Fd5SFC0WQMQ9CO6TsHF6pQJUFXrM35rWsUy/GnnygRVE2AWw4 kV1dg5TFyjSIto7xGC/2qcoiZ3+Seibz3KWa9mlWpC1jekrB7P1iw7EoqSBnDURePAFc 48MQeZgLAfMFxYrNDaVMbOYef3eE+ahwxouVdh7+ytJTo6B6JS7V2MCsaJ7NPD+UL8ub 5uqzJ8odjzvuoozyDsAIWOsoo40Iwv0jDyJ48j7LPTyMixyLQF0t6DyP0U4qJIO2O+vl EhDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666479; x=1779271279; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=1E2wcB4O47nQKxwEYMCY2imlHQoZ2JVfBVOLQenIJBc=; b=a5n3DfFoRJy/mV2zyDG8wl9WjrPX/9L3gNE0DysF5eTuNws1xahd/Ft0/w8bb4aigu 8V1OvLzjdDqnBO5BTs+AXtsyD+bbsqdOJobDm7m5kJJRdAyBHe9bC6FBnYkXU1D5W80Q w6RO4QN4ttpZY5RJm3MCKfy6NocKvkgFZhY96bOe8twWBWWrDvXlC7mLn4Yfwl9XFWEy tLmpZAoo2JeiP6yxu4M/vw0KNCZ80/B/LOdwpz7THwEnHU5I3zWjIrE6PKKYH2bSvxaI lLr83TcyN5HrfOXs9iBZj8NgjIziX/be4zYHtFhgmMtlT6R2GA03WWJkCaFRtA9ekO7C RcLQ== X-Gm-Message-State: AOJu0YygULQuXG3bR7/Vpw8fGPWh0lR0AbU/UY1UM9cS8sGZdvAnxYWB HPjHCHb43bqJS5+OgYupA2O/NCQMQP1JINvo6kbwrGkM7fCm8XkSkl7wbP7vdjKO3XQeZVL2rry tqcEAlkhoLo/VQRXhnfE53mFOj5KjTDvjcT0qwVAs1K6Wf9SYj/kkr4ZjAUg2HsG6oRQGocSg X-Gm-Gg: Acq92OE2qhTx6UZQEWTQxlfz30pqUMNMGOFY9IU9ig9pNxjiATvm5glnHoIkuk5FMMn 4zHnMjz3Ndxwq0O1emh45hKlhisq5a0iuiBQ/x31HJmhhkp4ZdcZKypz9PoDEnNXGSU66yhpmtJ Xmx0BsRYwN895g5Kb0rWghHbatsod8Qt2cY3wpRi8OPW7AGSm9rEwE3k1QSTfYBXxtfr5JCqHed Mp/YaZ93Xqay9ZTE26LnTWAFious8p2LQUe5wr9u7eyA1Kdx0Op8u/BbTgUZVdE686r6Tk55AeS va/vRGtAM6x7n5bELD2aPIfNQqRSHKs8U7BaYkMGoIHhp2iysXpBtfX64AedVigGuV47DqPT5JD biYj2dQ0GjBfYDh5Dra3g9xgIxdV9S9UwCPRTvOMzGmM47uZX80Ko1Q== X-Received: by 2002:a17:902:d584:b0:2b0:ac1e:9720 with SMTP id d9443c01a7336-2bd30210d95mr23677385ad.23.1778666478207; Wed, 13 May 2026 03:01:18 -0700 (PDT) X-Received: by 2002:a17:902:d584:b0:2b0:ac1e:9720 with SMTP id d9443c01a7336-2bd30210d95mr23676655ad.23.1778666477619; Wed, 13 May 2026 03:01:17 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:17 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 18/46] nl80211: Add Proximity Detection (PD) wdev support Date: Wed, 13 May 2026 15:29:42 +0530 Message-Id: <20260513100010.1947710-19-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: BMESe4bKi0D5pfaMNqtlL99i-mmxysdi X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX9mOO+HWpLUOu fK1/tjlrVU6U3PssdboYeVckBesGAfVMyKVxyoHtobbVrFlqtL/mkxLQmjU47AxQ4609q6L//sd AMpA6/OD4eOcxJOWtBWXh7qVOGp2gCB1ie1wxBJfdaKUBLaAMghua0w2RKgnAz6V893NMy9ZxEl j42CYgT/Tj47znb0cLWz07cotle8F4hY8t/yViq6EpLAv5Zkrjozim4k2URybDQBdhnFRWtC1KU 4lLqBISMv/PLuGPjv5sK6/ympdDbP5+PhJuM6iYA2GyOZ90w2Dag551W2LXcXbqDycvvNfH/Em9 j46UnZ3xCoCmH5QGmeVpFnhkExm7Tt2NDARJcBerUenvINsIMzA4OCL3DZ00f1JSK1QFnTsQ6GA WuGoHgTN52fb0/9GK3h3b1vEwRfmAHe1Sv1Z6SZcLch63ARZdjQqM40OSDna1A8mbKQr8QEcjOP zW6oLtLYeKQySdqsCkg== X-Authority-Analysis: v=2.4 cv=bOwm5v+Z c=1 sm=1 tr=0 ts=6a044bef cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=aRO_aaiTp8C0kxIKkecA:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: BMESe4bKi0D5pfaMNqtlL99i-mmxysdi X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110125_381017_CFFF2E54 X-CRM114-Status: GOOD ( 27.39 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Veerendranath Jakkam Introduce driver and nl80211 support for a Proximity Detection (PD) virtual interface, enabled under CONFIG_PR. Two new driver ops are added: - pd_start(): create a non-netdev PD wdev (NL80211_IFTYPE_PD), activate it via NL80211_CMD_START_PD, and return the effective PD MAC address - pd_stop(): deactivate the PD wdev via NL80211_CMD_STOP_PD, then destroy and delete it On the nl80211 side, nl80211_pd_start() allocates a dedicated i802_bss (drv->pd_bss) outside the regular BSS list, creates the PD wdev via nl80211_create_iface(), and activates it. nl80211_pd_stop() tears it down in the correct order: deactivate first, then destroy BSS resources, then delete the wdev. The driver deinit path calls nl80211_pd_stop() if a PD wdev is still active. The wdev_info struct and its netlink callback are generalized and renamed to nl80211_wdev_handler_info to capture both wdev_id and MAC address, replacing the previous nl80211_wdev_handler. This handler is shared between PD wdev creation and the existing non-netdev interface path in wpa_driver_nl80211_if_add(). wpa_supplicant is updated with wpa_drv_pd_start() and wpa_drv_pd_stop() wrappers that call into the driver if CONFIG_PR is enabled. Signed-off-by: Veerendranath Jakkam --- src/drivers/driver.h | 28 ++++++ src/drivers/driver_nl80211.c | 178 +++++++++++++++++++++++++++++------ src/drivers/driver_nl80211.h | 3 + wpa_supplicant/driver_i.h | 20 ++++ 4 files changed, 202 insertions(+), 27 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index ba53dc60d..ff8d2fd27 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -5897,6 +5897,34 @@ struct wpa_driver_ops { const struct wpabuf *ulw, struct nan_peer_schedule_config *sched); #endif /* CONFIG_NAN */ + +#ifdef CONFIG_PR + /** + * pd_start - Create and activate a PD (Proximity Detection) wdev + * @priv: Private driver interface data + * @addr: Requested MAC address for the PD wdev + * @pd_addr: Buffer (ETH_ALEN) to receive the actual assigned MAC + * Returns: 0 on success, -1 on failure + * + * Creates a PD virtual interface in the driver and activates it via + * NL80211_CMD_START_PD. The PD wdev is associated with the parent + * BSS; all PD operations (key install, TX, peer measurement) are + * routed through it by matching the PD MAC address. + */ + int (*pd_start)(void *priv, const u8 *addr, u8 *pd_addr); + + /** + * pd_stop - Stop and destroy the PD wdev + * @priv: Private driver interface data + * + * Sends NL80211_CMD_STOP_PD, deletes the PD wdev via + * NL80211_CMD_DEL_INTERFACE, and frees all associated driver + * resources. Safe to call when no PD wdev is active (no-op). + */ + void (*pd_stop)(void *priv); + +#endif /* CONFIG_PR */ + }; /** diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index ea214b74b..c392a4b64 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -199,6 +199,9 @@ static int nl80211_put_mesh_config(struct nl_msg *msg, #endif /* CONFIG_MESH */ static int i802_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, u16 reason, int link_id); +#ifdef CONFIG_PR +static void nl80211_pd_stop(void *priv); +#endif /* CONFIG_PR */ /* Converts nl80211_chan_width to a common format */ @@ -3240,6 +3243,31 @@ static int nl80211_set_p2pdev(struct i802_bss *bss, int start) return ret; } +struct wdev_info { + u64 wdev_id; + int wdev_id_set; + u8 macaddr[ETH_ALEN]; +}; + +static int nl80211_wdev_handler_info(struct nl_msg *msg, void *arg) +{ + struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg)); + struct nlattr *tb[NL80211_ATTR_MAX + 1]; + struct wdev_info *wi = arg; + + nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0), + genlmsg_attrlen(gnlh, 0), NULL); + if (tb[NL80211_ATTR_WDEV]) { + wi->wdev_id = nla_get_u64(tb[NL80211_ATTR_WDEV]); + wi->wdev_id_set = 1; + } + if (tb[NL80211_ATTR_MAC]) + os_memcpy(wi->macaddr, nla_data(tb[NL80211_ATTR_MAC]), + ETH_ALEN); + return NL_SKIP; +} + + static int nl80211_set_pr_dev(struct i802_bss *bss, int start) { struct nl_msg *msg; @@ -3257,6 +3285,120 @@ static int nl80211_set_pr_dev(struct i802_bss *bss, int start) } +#ifdef CONFIG_PR +/** + * nl80211_pd_start - Create and activate a PD wdev + * + * Creates a PD virtual interface (NL80211_IFTYPE_PD) in the kernel and + * activates it via NL80211_CMD_START_PD. The resulting i802_bss is stored + * in drv->pd_bss with ctx pointing to the parent wpa_s so that events + * arriving on the PD wdev_id are routed back to the parent. + */ +static int nl80211_pd_start(void *priv, const u8 *addr, u8 *pd_addr) +{ + struct i802_bss *bss = priv; + struct wpa_driver_nl80211_data *drv = bss->drv; + struct i802_bss *pd_bss; + struct wdev_info info; + int ret; + + if (drv->pd_bss) { + wpa_printf(MSG_DEBUG, "nl80211: PD wdev already active"); + if (pd_addr) + os_memcpy(pd_addr, drv->pd_bss->addr, ETH_ALEN); + return 0; + } + + pd_bss = os_zalloc(sizeof(*pd_bss)); + if (!pd_bss) + return -1; + + pd_bss->drv = drv; + pd_bss->ctx = bss->ctx; /* parent wpa_s */ + pd_bss->flink = &pd_bss->links[0]; + os_strlcpy(pd_bss->ifname, "pd-wdev", sizeof(pd_bss->ifname)); + + os_memset(&info, 0, sizeof(info)); + ret = nl80211_create_iface(drv, "pd-wdev", NL80211_IFTYPE_PD, addr, + 0, nl80211_wdev_handler_info, &info, 0); + if (ret || !info.wdev_id_set) { + wpa_printf(MSG_ERROR, + "nl80211: Failed to create PD wdev (ret=%d)", ret); + os_free(pd_bss); + return -1; + } + + pd_bss->wdev_id = info.wdev_id; + pd_bss->wdev_id_set = 1; + if (!is_zero_ether_addr(info.macaddr)) + os_memcpy(pd_bss->addr, info.macaddr, ETH_ALEN); + else if (addr) + os_memcpy(pd_bss->addr, addr, ETH_ALEN); + os_memcpy(pd_bss->flink->addr, pd_bss->addr, ETH_ALEN); + + /* Activate the PD device */ + ret = nl80211_set_pr_dev(pd_bss, 1); + if (ret) { + wpa_printf(MSG_ERROR, + "nl80211: Failed to start PD device (ret=%d)", ret); + goto failed; + } + + if (nl80211_init_bss(pd_bss)) { + wpa_printf(MSG_ERROR, + "nl80211: Failed to init PD BSS"); + goto failed_stop; + } + + if (nl80211_mgmt_subscribe_non_ap(pd_bss)) + wpa_printf(MSG_DEBUG, + "nl80211: Failed to register frame processing for PD interface - ignore for now"); + + drv->pd_bss = pd_bss; + + if (pd_addr) + os_memcpy(pd_addr, pd_bss->addr, ETH_ALEN); + + wpa_printf(MSG_DEBUG, + "nl80211: PD wdev created wdev_id=0x%llx addr=" MACSTR, + (unsigned long long) pd_bss->wdev_id, + MAC2STR(pd_bss->addr)); + return 0; + +failed_stop: + nl80211_set_pr_dev(pd_bss, 0); +failed: + nl80211_del_non_netdev(pd_bss); + os_free(pd_bss); + return -1; +} + + +/** + * nl80211_pd_stop - Stop and destroy the PD wdev + */ +static void nl80211_pd_stop(void *priv) +{ + struct i802_bss *bss = priv; + struct wpa_driver_nl80211_data *drv = bss->drv; + + if (!drv->pd_bss) + return; + + wpa_printf(MSG_DEBUG, + "nl80211: Stopping PD wdev wdev_id=0x%llx addr=" MACSTR, + (unsigned long long) drv->pd_bss->wdev_id, + MAC2STR(drv->pd_bss->addr)); + + nl80211_set_pr_dev(drv->pd_bss, 0); + nl80211_destroy_bss(drv->pd_bss); + nl80211_del_non_netdev(drv->pd_bss); + os_free(drv->pd_bss); + drv->pd_bss = NULL; +} +#endif /* CONFIG_PR */ + + #ifdef CONFIG_NAN static void nl80211_nan_stop(struct i802_bss *bss) { @@ -3621,6 +3763,10 @@ static void wpa_driver_nl80211_deinit(struct i802_bss *bss) eloop_unregister_read_sock(drv->eapol_tx_sock); if (drv->eapol_tx_sock >= 0) close(drv->eapol_tx_sock); +#ifdef CONFIG_PR + if (drv->pd_bss) + nl80211_pd_stop(bss); +#endif /* CONFIG_PR */ if (bss->nl_preq) wpa_driver_nl80211_probe_req_report(bss, 0); @@ -9529,32 +9675,6 @@ static int nl80211_vif_addr(struct wpa_driver_nl80211_data *drv, u8 *new_addr) } -struct wdev_info { - u64 wdev_id; - int wdev_id_set; - u8 macaddr[ETH_ALEN]; -}; - -static int nl80211_wdev_handler(struct nl_msg *msg, void *arg) -{ - struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg)); - struct nlattr *tb[NL80211_ATTR_MAX + 1]; - struct wdev_info *wi = arg; - - nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0), - genlmsg_attrlen(gnlh, 0), NULL); - if (tb[NL80211_ATTR_WDEV]) { - wi->wdev_id = nla_get_u64(tb[NL80211_ATTR_WDEV]); - wi->wdev_id_set = 1; - } - - if (tb[NL80211_ATTR_MAC]) - os_memcpy(wi->macaddr, nla_data(tb[NL80211_ATTR_MAC]), - ETH_ALEN); - - return NL_SKIP; -} - static int wpa_driver_nl80211_if_add(void *priv, enum wpa_driver_if_type type, const char *ifname, const u8 *addr, @@ -9577,7 +9697,7 @@ static int wpa_driver_nl80211_if_add(void *priv, enum wpa_driver_if_type type, os_memset(&nonnetdev_info, 0, sizeof(nonnetdev_info)); ifidx = nl80211_create_iface(drv, ifname, nlmode, addr, - 0, nl80211_wdev_handler, + 0, nl80211_wdev_handler_info, &nonnetdev_info, use_existing); if (!nonnetdev_info.wdev_id_set || ifidx != 0) { wpa_printf(MSG_ERROR, @@ -16230,4 +16350,8 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = { .nan_config_schedule = wpa_driver_nl80211_nan_config_schedule, .nan_config_peer_schedule = wpa_driver_nl80211_nan_config_peer_schedule, #endif /* CONFIG_NAN */ +#ifdef CONFIG_PR + .pd_start = nl80211_pd_start, + .pd_stop = nl80211_pd_stop, +#endif /* CONFIG_PR */ }; diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h index 0f03da642..d1133a1fe 100644 --- a/src/drivers/driver_nl80211.h +++ b/src/drivers/driver_nl80211.h @@ -287,6 +287,9 @@ struct wpa_driver_nl80211_data { #ifdef CONFIG_NAN unsigned int nan_started:1; #endif /* CONFIG_NAN */ +#ifdef CONFIG_PR + struct i802_bss *pd_bss; /* PD wdev; not in the BSS list */ +#endif /* CONFIG_PR */ }; struct nl80211_err_info { diff --git a/wpa_supplicant/driver_i.h b/wpa_supplicant/driver_i.h index 034827488..c19c834b5 100644 --- a/wpa_supplicant/driver_i.h +++ b/wpa_supplicant/driver_i.h @@ -738,6 +738,26 @@ static inline int wpa_drv_wowlan(struct wpa_supplicant *wpa_s, return wpa_s->driver->set_wowlan(wpa_s->drv_priv, triggers); } +#ifdef CONFIG_PR + +static inline int +wpa_drv_pd_start(struct wpa_supplicant *wpa_s, const u8 *addr, u8 *pd_addr) +{ + if (!wpa_s->driver->pd_start) + return -1; + return wpa_s->driver->pd_start(wpa_s->drv_priv, addr, pd_addr); +} + +static inline void +wpa_drv_pd_stop(struct wpa_supplicant *wpa_s) +{ + if (!wpa_s->driver->pd_stop) + return; + wpa_s->driver->pd_stop(wpa_s->drv_priv); +} + +#endif /* CONFIG_PR */ + static inline int wpa_drv_vendor_cmd(struct wpa_supplicant *wpa_s, int vendor_id, int subcmd, const u8 *data, size_t data_len, From patchwork Wed May 13 09:59:43 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237671 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=bhHNoy6I; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=csH+40um; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=PSam1TUs; 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 4gFqHt6my8z1y5L for ; Wed, 13 May 2026 20:21:30 +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=wOn5zSpV7cshm1U5SDeAbew7MN/KVJPpV8+XDA9ASIw=; b=bhHNoy6IKdaYVK kSP21SmPmaZO4dAzXam1chfBCyQyVajtm6n2547jW9hu0QVfRvlmB9SjDuFhqLXC1FFGgdZhx8DZ1 FzCoa9ivyurM/PZ9MgCUe9wLw8zVgkOx2267cnQYcQyCcjaZePKiKbLB+JA/ZqTRSD73RAjNp+1EW wZMStTwrWGzgIsbmL9USZQEN4T6OYYmKwn4Zm2nqjm4sRoVGPvpmef3xL9lEDrkGjNCa7BhPsbw5B OfMDz1jy+DprcG2RmRcGsqzmONdwY1ugMbcKGDaoZpw8klx2pJNjjTx3z/D7LVhRyea9y9W0j5Jh7 NwqtgaEbqGf0iQtyK7Ig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6hG-000000029Bq-0gii; Wed, 13 May 2026 10:20:10 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6hD-000000029AP-15TW for hostap@lists.infradead.org; Wed, 13 May 2026 10:20:08 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pMer2339070 for ; Wed, 13 May 2026 10:01:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=VNAdJjjxPnj 2aT3kX4uvt0qOmEuGT6LktZoJkNhA2Gs=; b=csH+40umovlqMpUhNvCPpCP3p8x sjxO9haeNjI/0cOmLjrZ92MKjD0mQgu8Qk9QnMqxwHjH1kIuZ9Vr5zstTjp/iZx+ G9Fw0qmhglibVbv2E0g2/U4EQseQWD9mg/WFDYrCLoOj1EdUL1EbYefE/Pj8cWnN 7uzzED/8KRgt63IX1Zr0gBReNFzs7EApAj4mfPhcp6RhnJqc0VmoHAWu0Oxvb2kb cfGTjXa8Hic74joYru9yx/w4QusT+kFYtOy1+jqecUlMmyK6UfYScW5zVtCgsrt5 ViwRP6uBF8AGuPoAMOHp/fSYOgRBGvvAr/ndjVVsZKBEUs5d4vvcUu+6BMQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavxa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:21 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2baf7748d0aso58700085ad.1 for ; Wed, 13 May 2026 03:01:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666481; x=1779271281; darn=lists.infradead.org; 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=VNAdJjjxPnj2aT3kX4uvt0qOmEuGT6LktZoJkNhA2Gs=; b=PSam1TUsnlgHJWzWxgmJxe3QMV6huzZkBoM7/QDLsjlQ0wG+KuBPUfxIcZhFtiK2uG Y2Nkr+8rx76ybZgKNkgwcuFvb2pPcWEEP0H08yHSNmtEfwOEoy8LC99kEWPDoS1xYtH2 Bo4u4I+EdL8ta+YpJTSMIdYVFG3Qg+ouHN3jsfkdVrBI0F3R4ZoKwnRjFSjyZstdP5Ry wfgwuxzN0ljPgZofLwpLtiBuDFcBncxThUX3N7KKcIVGUT09BZX43owSkBcPqYJJdT73 yvOdlgoTFa/HSUu3qrFb3LtgmLVak3bzZ5AkBHEnR3FiBvU8514tSsnqK8c6O55yLvRH ac7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666481; x=1779271281; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VNAdJjjxPnj2aT3kX4uvt0qOmEuGT6LktZoJkNhA2Gs=; b=TbC6sZUVZGC7GMvOHhF1b4Xb0Q+zJcSA+IMx9SLc/nnDMa/Y0xARYxEIPDDtX96Rwq nI1ccl/jjHMpu6CZ9QK902Ti1VpmQ1NM3kMxxndzu4sxa66oWg2qw0clNSuMF0UikGFH Er7hHg0zNK3pcEpzx5QkoGct7dDiF7PAB9i1npsq0oAPMhRljbu/S72NVhDiXbBOsrpQ AzlO56RyE2iVXUo1WG/IGGNKk3v05tFtb7Fbu9jV3Nf8WOEwVZurBW3lOOi7W0RbdmMa 4h9gIgqy3llB9HnOBVu5BCR/PggczkhsmopWPPFar2yBPMi95aynpEqIpcBxtkJOpDOB M9tw== X-Gm-Message-State: AOJu0Yz0KEKsaSFEUykZlY1zii/UZVu7w8wguoZWo8kg2FzpwwvkV0+p h+laW1YiwqhXatgxPsNo47vzB2zpp4FUwnU+gH9Pc18Efu0VSWH32/anRBW1meyTyxdoF35Acg4 w3UCm3mAsxnmS7Pe0zHsdZjtFf8mwM1y7NiEGWQXxVrfVf8wK4GW5imN2K3e6UM8RUL4uNp7k X-Gm-Gg: Acq92OEII8d1N6K81n6JE9ZnXjvxYzfFEcTIWLD/Q8GpLFsgVCX1wQsXe58pkzxPUPB HKEZfZm2InI0w1G9l8EZxAuIrINRw9AaMW05ohiAVSZjCFuQJ3R4wq3SJNBFPUAZ/4K5WewWQj4 q82leshr9ZyM27ypl2p+DkZH1AkhzlfHbUTZvWwYeJSQ7vjgc7aV+RgLpko3pb/p5XyfGOQn8+E 9ZDP6eSw8i1WSwDD8zXASLeG/Lf8TuE56DtDEudqhDIwmZh3uMXBqNq3RE9rMOzlvO45Qs54IEr 2t91Xq7NLDaT2aEpl/t4LCJNoE92OqROqL46AgApIRypkA1dgG3qy0zXe3S+eyRUMUW5KpXRUfc MJQpvIh0dfBoDlXPuqkFtpmb5lChTbMDPZLw8xUw7Wk7kUhC/o1rwDA== X-Received: by 2002:a17:903:4514:b0:2b9:ec37:2977 with SMTP id d9443c01a7336-2bd275c6df7mr20629835ad.38.1778666480371; Wed, 13 May 2026 03:01:20 -0700 (PDT) X-Received: by 2002:a17:903:4514:b0:2b9:ec37:2977 with SMTP id d9443c01a7336-2bd275c6df7mr20629375ad.38.1778666479740; Wed, 13 May 2026 03:01:19 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:19 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 19/46] nl80211: Route MLME TX via PD wdev based on source address Date: Wed, 13 May 2026 15:29:43 +0530 Message-Id: <20260513100010.1947710-20-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: _dYtMuARMiPpQrYhpqMMD4OoZbNVTyjL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX+NZOzWCury8q zNTZumi6kKYcDIr6PmHZyByDWrKPs76qxnKr6SF1aE+2s+saFx3UiWkoQan0VoMxbvBIgYgMz9C iGuo0vzqao2VTU9HEjwIIO3qvJXp4CFnGm9+Zb1tOoK3gyrMC3SgCl/GTJ0KOA0vIll8mwCVtzb kFxFzgzxo7MPFKDJAZGw4GCQy+6NPyVfyaS44U766Bn4on7IUka/gTl5Xb0cGNhuvO+r0VIS+db Izr3FC5Oju6wCGlpy3M+wprM278xbuK/wxfi+YLkFCFfVG1DjQIMWccEUrur05kt9cQBKiGszRC okcOyAEoyXzsDrw9T4W5awCozrslaKJCNIpM/1hOLfyLJajMAwjjzK2Bfryw6IAeSQAAdDKML0j rnYSBmTFfsrq/3qdTSNCoDWltnxkq/NicFGa3TsHLqEWzjlT6jiBMjk423KIdPXzAJBsbX6OKI6 gQehbdlWwYut+JKLcbA== X-Proofpoint-GUID: _dYtMuARMiPpQrYhpqMMD4OoZbNVTyjL X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044bf1 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=qdmJSObNesnNg3OJMMIA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_032007_416767_635DF0BD X-CRM114-Status: GOOD ( 13.63 ) X-Spam-Score: -2.8 (--) 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: Veerendranath Jakkam When sending MLME frames, check if the source address matches the active PD wdev MAC address and if so, route the transmission via the PD BSS with its associated link reference. This ensures managemen [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Veerendranath Jakkam When sending MLME frames, check if the source address matches the active PD wdev MAC address and if so, route the transmission via the PD BSS with its associated link reference. This ensures management frames are sent on the correct wdev when a PD interface is active. Signed-off-by: Veerendranath Jakkam --- src/drivers/driver_nl80211.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index c392a4b64..75178fd03 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -4994,6 +4994,17 @@ static int wpa_driver_nl80211_send_mlme(struct i802_bss *bss, const u8 *data, noack, freq, no_cck, offchanok, wait_time, no_encrypt, fc, fc2str(fc), drv->nlmode); +#ifdef CONFIG_PR + /* Route MLME TX via PD wdev if source address matches */ + if (drv->pd_bss && ether_addr_equal(mgmt->sa, drv->pd_bss->addr)) { + bss = drv->pd_bss; + wpa_printf(MSG_DEBUG, + "nl80211: send_mlme - route via PD wdev sa=" MACSTR, + MAC2STR(mgmt->sa)); + link = bss->flink; + } +#endif /* CONFIG_PR */ + if ((is_sta_interface(drv->nlmode) || drv->nlmode == NL80211_IFTYPE_P2P_DEVICE) && WLAN_FC_GET_TYPE(fc) == WLAN_FC_TYPE_MGMT && From patchwork Wed May 13 09:59:44 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237672 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=gjTmxprv; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=H96KR57+; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=dKOLcWbe; 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 4gFqKK2c5Xz1y5L for ; Wed, 13 May 2026 20:22: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=TufqtNY/QuVCcsEI2vZY3Cb+jgBbU0/06fNJF4q1onM=; b=gjTmxprv9a1PJg U2FiEgRptBSqsEraWKnuvlW4BXFZhyQnZrJDxfZefcyNEeAuyXs8SB1vP20GXYRm/66AfHBRt9nOs LlP/jvSxg5bGVyTnHZjn4gWdv+yXd04trPGBDV78KGRmImNsxIhCAFfIDWcBRjPz/hILeKYrILPb9 +4zTv8s0IcEBIDowrIqKgVBfFm2OrFhisSvKOL+xKbM7C8hy1o6PCZJY7wAXysKQymiQRdYv/0Wxu 5UTmByFAqyAQ+RJ3dqX2+n8xB+YxBusrB2byiL0uxDTK1z9jSwjbkg92/WTE64mcIx41TwVI7JJ4L xB/5OYCe8TallEldQRhA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6iP-000000029Y1-44Fn; Wed, 13 May 2026 10:21:21 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6iL-000000029Wl-1BVy for hostap@lists.infradead.org; Wed, 13 May 2026 10:21:20 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pMes2339070 for ; Wed, 13 May 2026 10:01:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=BGU8MuSqkS7 5wbToZ7Ng681+tQc4utgAOBsI1Ny8UZA=; b=H96KR57+pvCij8lkX8sSpYSnJIV +ZRfNGbkKK/BCtonnlzGRfLaCCWb7lZE3Q6UmLtJPpcVidcs15WLMjv4sA2iwsYn Id+GE4Hhi9JjPu+vpr5QfYH6Kq6kRXLtbusKekpA31kpCp+xQqn2I79nqwEyVhnk cgkjvL1Rue7qDpRl571z3oG76FW6UhrEpORvt7sSZOEueJvJMYQEfkKAOh+tIqUL 61pH0mDzU2PAu2EVkNeMD4POk/DHiWVoWuFCXA79gbX8m1dEdJuFyNr2bBy4KqrY zdE24mo46Q8MewSt4wJNrHx/JrAHQpCwXYcraBy5lmw6o2P97NEgpSDPPHQ== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavy3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:28 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-368f2d76b04so945976a91.3 for ; Wed, 13 May 2026 03:01:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666488; x=1779271288; darn=lists.infradead.org; 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=BGU8MuSqkS75wbToZ7Ng681+tQc4utgAOBsI1Ny8UZA=; b=dKOLcWbeJopzl46GihdBRWTPlSrsSf7bl7WKoPEP0UsvlAnAyPCzXKow8Ei6v813M2 EY3/clLTZ/X95zYjDYp7B/R1vu37T6sKo0CUi4h2ObIVD8HEWMFHwtbMSuMUNUnE0qow m6NTzWOeh1vyLEy/UUdlDh0M21yLs+x+b0rgjFA3oyy0LOylL+bSekOvCXb42TXm/oRl EMY6E/IiDEKIft2dM9t9N3Md2s3CtlO2SXaTyQGlqFKJRQUJ7eU46sXNiwo6loB/t7Ts UUqOqlOuAQ9fwO/ReCY0lRPXOqXzOBHqDGvvPEkLQ8ciXZ9oURDwNSyu96RK1G0l4RqH 8PJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666488; x=1779271288; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BGU8MuSqkS75wbToZ7Ng681+tQc4utgAOBsI1Ny8UZA=; b=VBq3ZoSbB23oPjLg+HINZM0UskAZOjS4Uxcq5zMO3yy+ORqveDvyBnsLXoPU9P9wnl hn2Vt8U9QN77F+BFUCksoOIr9RPvmnViPjjqPTtK6lPP6cYbiqX0kri67BeEstGQmyls EM3/UtlrMVxbDbTyUJCHid8ENW3wbWtpWKbG3BNLWWV88f6KVOSfeRrbxQVq/hBxsr/r IctjrBM6m7IOm5SqKaMeUpt3+0/beGXhtVmNbGhzORD2hmuh8Xu4oMzXlvv0iBEyXonF FPd+4woUEnFtkwwRHixRaXonU+/2YbIOjKDnZZ93fzPw02RRO0drMUnG38iqU7ijXRdF Bt4Q== X-Gm-Message-State: AOJu0YzMecejPQXQ7RafZ5L72XbZhZA5CDEWFtLqEaC1MI+coUgxmhJG 4xDcE64CoHgkoe7NgkEAVUwVo9aWyr+VgyujPjxrMYTVT02H9mpzIYq1vXf6xYwg/aLJYOcZRWI 97W7UXdgb/DMAam/VfAtjwQO+z9CiaQfXCfr0ZLnpnqEB6i0dMMgS6DLHPcRXkf4GfzQLeDpd X-Gm-Gg: Acq92OEim9lwoLNEJPvd/VBJ0Y1fklEj12xOrqxlDRhLShOnbdAQ2SNfDIbpAI2o4J+ v3LJXdVCon/rG5zEcaR0nQas+NR5TocCauTS4pkRXvq/B0ZX2LArQm03ZYU34gnv1IU9zjrqcmK nMYW+eywQXAq9fBhCAhx9b7fvsyKiQU5+hyyaHL1tgeknP9Ue8nlDuL/dFtz4qtZzlE/3wAlyUM 7ftHoluAv8Ud4ornxQozdtpemBzyTo2F6HUZWvgHmZ409JuBpfOW4Uv/BgFk3U+E0x89NiIBbpO LwwazaeUW+fDK/2UbMZv3+w5hisrTpS5mEcNLNumLO2Fi+9aajU1QuL/rnoOXjBloFlk0cYUqSk pa1zk/49oxX6d/9jMH7KURlH6XQSYGEDQX754lu/CZYofJJ3Wo5Ytyw== X-Received: by 2002:a17:90b:380e:b0:368:b01c:85a0 with SMTP id 98e67ed59e1d1-368f3e680d1mr2955682a91.14.1778666487327; Wed, 13 May 2026 03:01:27 -0700 (PDT) X-Received: by 2002:a17:90b:380e:b0:368:b01c:85a0 with SMTP id 98e67ed59e1d1-368f3e680d1mr2955105a91.14.1778666482003; Wed, 13 May 2026 03:01:22 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:21 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 20/46] nl80211: Factor out global event BSS lookup and add PD wdev event routing Date: Wed, 13 May 2026 15:29:44 +0530 Message-Id: <20260513100010.1947710-21-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: l7Ggi_7Y9pgw1s6QSWXTs94l65z-oc1U X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX6LZibTPzHQdW kVQW5mUJEYnmb7WuB5VgAsd5jjkDTaJis/AieXLIzl6lJm3x6f41RK0/XJPStqBWs7Mp3REYU6r O/9bQ9H2k/OyK24aVL+QxAAkXSjBE/nRMVvy7aA0nfN73Pq7F1NpJStTgwSmJCJZQamX9Wx56nW D1Lzo3gFxizrSSzTC95WvYUZVcMBvIUVqrwze1okAX4HZwKTMmbjHWrumgov6E7+ys1Y09QAnMe +nPtJvfVf8ytDC/QQ0RtAROfmdZFlNb9cVNN4rknOiaWoHuAV7gqxyf1uu12s3hXIPBJikUIVBs 5pJJXRC3nVoLe9IVYaRNPbdO7Q4E9CAHU8sgYH2XlrMaX1y8WfIZaLY17Psr+EuV8INu0W4z8UT XoKgY50wKytQwXzCBNaUlJJCWnRFTBqeg9RAlZwt/gCk4xjsCnEw240IndP9MPmO72J5H96OOHK GNUThBYHE4Jj/i1YcbQ== X-Proofpoint-GUID: l7Ggi_7Y9pgw1s6QSWXTs94l65z-oc1U X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044bf8 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=dRix_cBQW8Ctjhxrli0A:9 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_032119_752676_4C028A6C X-CRM114-Status: GOOD ( 25.44 ) X-Spam-Score: -2.8 (--) 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: Veerendranath Jakkam Introduce nl80211_get_event_bss() to centralize BSS selection for process_global_event(). The helper performs an exact ifindex match first, then checks if the wdev_id matches the active PD wdev so tha [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Veerendranath Jakkam Introduce nl80211_get_event_bss() to centralize BSS selection for process_global_event(). The helper performs an exact ifindex match first, then checks if the wdev_id matches the active PD wdev so that events arriving on the PD wdev are delivered to pd_bss which is not part of the regular BSS list, and finally falls back to the existing bridge/wiphy/wdev matching rules. The wiphy_idx fallback applies only when wdev_id is not set so that wdev-specific events match exclusively by exact wdev_id. wdev_id is set during creation for wdev-only interfaces (P2P Device, NAN, PD). For netdev interfaces it is not set via if_add_wdevid, so fetch it from the kernel via GET_INTERFACE and store it in the BSS. This ensures events that carry NL80211_ATTR_WDEV without NL80211_ATTR_IFINDEX are routed by exact wdev_id match. Signed-off-by: Veerendranath Jakkam --- src/drivers/driver_nl80211.c | 31 ++++++++++ src/drivers/driver_nl80211_event.c | 94 ++++++++++++++++-------------- 2 files changed, 81 insertions(+), 44 deletions(-) diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 75178fd03..4b3b8d1c4 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -891,6 +891,8 @@ struct wiphy_idx_data { enum nl80211_iftype nlmode; u8 *macaddr; u8 use_4addr; + u64 wdev_id; + int wdev_id_set; }; @@ -916,6 +918,11 @@ static int netdev_info_handler(struct nl_msg *msg, void *arg) if (tb[NL80211_ATTR_4ADDR]) info->use_4addr = nla_get_u8(tb[NL80211_ATTR_4ADDR]); + if (tb[NL80211_ATTR_WDEV]) { + info->wdev_id = nla_get_u64(tb[NL80211_ATTR_WDEV]); + info->wdev_id_set = 1; + } + return NL_SKIP; } @@ -3591,6 +3598,30 @@ wpa_driver_nl80211_finish_drv_init(struct i802_bss *bss, const u8 *set_addr, bss->wdev_id = drv->global->if_add_wdevid; bss->wdev_id_set = drv->global->if_add_wdevid_set; + /* + * wdev_id is set for wdev-only interfaces during creation. For netdev + * interfaces it is not set, so fetch it via GET_INTERFACE to allow + * event routing by exact wdev_id match. + */ + if (!bss->wdev_id_set) { + struct nl_msg *msg; + struct wiphy_idx_data info; + + os_memset(&info, 0, sizeof(info)); + msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_GET_INTERFACE); + if (msg && + send_and_recv_resp(drv, msg, netdev_info_handler, + &info) == 0 && + info.wdev_id_set) { + bss->wdev_id = info.wdev_id; + bss->wdev_id_set = 1; + wpa_printf(MSG_DEBUG, + "nl80211: %s wdev_id=0x%llx", + bss->ifname, + (unsigned long long) bss->wdev_id); + } + } + bss->if_dynamic = drv->ifindex == drv->global->if_add_ifindex; bss->if_dynamic = bss->if_dynamic || drv->global->if_add_wdevid_set; if (first) diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c index b60de54c1..2f5d352e2 100644 --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c @@ -4831,13 +4831,51 @@ static bool nl80211_drv_in_list(struct nl80211_global *global, } +static struct i802_bss * +nl80211_get_event_bss(struct wpa_driver_nl80211_data *drv, int ifidx, + int wiphy_idx_rx, int wiphy_idx_set, + u64 wdev_id, int wdev_id_set) +{ + struct i802_bss *bss; + int wiphy_idx = -1; + + if (ifidx != -1) { + for (bss = drv->first_bss; bss; bss = bss->next) { + if (ifidx == bss->ifindex) + return bss; + } + } + +#ifdef CONFIG_PR + if (wdev_id_set && drv->pd_bss && drv->pd_bss->wdev_id_set && + wdev_id == drv->pd_bss->wdev_id) + return drv->pd_bss; +#endif /* CONFIG_PR */ + + for (bss = drv->first_bss; bss; bss = bss->next) { + if (wiphy_idx_set) + wiphy_idx = nl80211_get_wiphy_index(bss); + if ((ifidx == -1 && !wiphy_idx_set && !wdev_id_set) || + (bss->br_ifindex > 0 && + nl80211_has_ifidx(drv, bss->br_ifindex, ifidx)) || + (!wdev_id_set && wiphy_idx_set && + wiphy_idx == wiphy_idx_rx) || + (wdev_id_set && bss->wdev_id_set && + wdev_id == bss->wdev_id)) + return bss; + } + + return NULL; +} + + int process_global_event(struct nl_msg *msg, void *arg) { struct nl80211_global *global = arg; struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg)); struct nlattr *tb[NL80211_ATTR_MAX + 1]; struct wpa_driver_nl80211_data *drv, *tmp; - int ifidx = -1, wiphy_idx = -1, wiphy_idx_rx = -1; + int ifidx = -1, wiphy_idx_rx = -1; struct i802_bss *bss; u64 wdev_id = 0; int wdev_id_set = 0; @@ -4890,50 +4928,18 @@ int process_global_event(struct nl_msg *msg, void *arg) struct wpa_driver_nl80211_data, list) { unsigned int unique_drv_id = drv->unique_drv_id; - /* First pass: Check for exact ifindex match for events directed - * to a specific interface to avoid incorrect selection based on - * matching rules for bridged interfaces. */ - if (ifidx != -1) { - for (bss = drv->first_bss; bss; bss = bss->next) { - if (ifidx == bss->ifindex) { - do_process_drv_event(bss, gnlh->cmd, - tb); - return NL_SKIP; - } - } - } + bss = nl80211_get_event_bss(drv, ifidx, wiphy_idx_rx, + wiphy_idx_set, wdev_id, + wdev_id_set); + if (!bss) + continue; - /* Second pass: Check all other conditions including bridge */ - for (bss = drv->first_bss; bss; bss = bss->next) { - if (wiphy_idx_set) - wiphy_idx = nl80211_get_wiphy_index(bss); - if ((ifidx == -1 && !wiphy_idx_set && !wdev_id_set) || - (bss->br_ifindex > 0 && - nl80211_has_ifidx(drv, bss->br_ifindex, ifidx)) || - (wiphy_idx_set && wiphy_idx == wiphy_idx_rx) || - (wdev_id_set && bss->wdev_id_set && - wdev_id == bss->wdev_id)) { - processed = true; - do_process_drv_event(bss, gnlh->cmd, tb); - /* There are two types of events that may need - * to be delivered to multiple interfaces: - * 1. Events for a wiphy, as it can have - * multiple interfaces. - * 2. "Global" events, like - * NL80211_CMD_REG_CHANGE. - * - * Terminate early only if the event is directed - * to a specific interface or wdev. */ - if (ifidx != -1 || wdev_id_set) - return NL_SKIP; - /* The driver instance could have been removed, - * e.g., due to NL80211_CMD_RADAR_DETECT event, - * so need to stop the loop if that has - * happened. */ - if (!nl80211_drv_in_list(global, unique_drv_id)) - break; - } - } + processed = true; + do_process_drv_event(bss, gnlh->cmd, tb); + if (ifidx != -1 || wdev_id_set) + return NL_SKIP; + if (!nl80211_drv_in_list(global, unique_drv_id)) + break; } if (processed) From patchwork Wed May 13 09:59:45 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237620 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=d5MOoLw4; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=MorHwg6p; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=ISA/be49; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=HY1nwoBB; 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 4gFpsj1MH8z1yLT for ; Wed, 13 May 2026 20:02:17 +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=CeOJDmlf/zdQN+ejihyT/Yg8ean20qEc0BnLOUejyYc=; b=d5MOoLw49wwXmJ keg90ztRMj0eKjN6XtqXIWxaEzsj66jwKVd8Qp7l/rfZntF93RoVOmSEfuY4wOASjqItQHxqIdJmT AHbL/wRsjFZNvIXllPEb2kZZXWMA/JZnYThx6+uDR8AyDOSc2VuvDcd+nlAulh9MAcQLTVIKmMnmE 5w6Tm2F9Jg9zghKnhEMWetZDhPdjamyxbmQne9mQmunwqM7gdDO8GOFSt/TjhQW5y9LNew/brk+1a wlqLrOwsZXtJvecRez5qzjG5XQ5CHO+Q3/+0gOaaS8PZ0Tuiq+DJr+sIAkgIwTPwG39e4p8EiiGU2 Dk8ejvoNf45BKGifQvQA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PM-000000021pZ-1Zm5; Wed, 13 May 2026 10:01:40 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PH-000000021fu-0ZO1 for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:01:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=bGxuc9riPSg9wYyE8Jiw+OMTxBnrzLISmJdzvvWe/AU=; b=MorHwg6pvTIibFBU1+1FehaaU6 eMej/5x0q7xcqS67lpZ9voP7rWG1U5+LaVjKtlKrWpVUjNARPfK0w2gB7x+Up8VVRuPMD2GpeEwN3 INTSlus1xG9jx0OrwlqW8kmS5iuiv3/f8M18dArlaKEGtOX9rxIE8HPwh233FM9whC7GHu4aLbZb6 S9VdoyhiuDYxiDjS0XgaZRRGq6jbme/6FeUvcDO3G9LtWuIYOKry0waK/CEJ3ouqxI8dyNsLM12pz c6J5df6shyAsucAExfiZh3yfm8O8OUrKhgV8iKQXDCnA5Jwi6KPGUjnezshVdrId83Xov4GmG/M4V 3yPsKL0w==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6P9-0000000BR9l-3Aqc for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:34 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p65W2338776 for ; Wed, 13 May 2026 10:01:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=bGxuc9riPSg 9wYyE8Jiw+OMTxBnrzLISmJdzvvWe/AU=; b=ISA/be49GM8huxopp74In0gS5px KLUqGY3QOZER7DuF6t/TSvHdmhbEuRk/dzUIO33k0h46RiAyIj67Lssf+UrCFG+F rorkbePIgAoxpUoeYDtg9GFDJw12VpHz6Kxhi7myEYaUDN51NUs0oP4XsCYaIYj4 jCK7+ORDPZ3Y2UgXkoHg4qcmzBbOt6i8eHlsv3XPYfL3D40IwIIMK2mO6RD8hph0 MQvJjhHUKw2PI23YanlJx5ABrclh39kNdf1K0PyW4j37d0T9QasLDV8KDe5eqc9l jfIowp9gopUnoJIKunVikivnbNwJoUMdfvjIYbr7gCBn2X49iFCMXMlrG2w== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxavxr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:25 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2ba86e35aa1so102718825ad.1 for ; Wed, 13 May 2026 03:01:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666485; x=1779271285; darn=lists.infradead.org; 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=bGxuc9riPSg9wYyE8Jiw+OMTxBnrzLISmJdzvvWe/AU=; b=HY1nwoBBGiIMadF0YKYPQ2A+gIoCRj+RSAHwFoTKELL5WeaWfxZp7pgBzAW/d1z0cd qETf2bvP5jHYlKdFr2xqx2g1LRUO+cz2dIMDX4TfLkFkgZbtHxmo5q071+S6OWFu5qH/ 5E6x7LNhosKh4a6auSfIduaCEFM5nolrD/3KrAhtaiU2ux/rcZChKMyEMqqPSlixIJep 7Vt/5pUQBr7ImAb7Kt+xYVZHu74D3tdSky5ZtnnHlCuzY1C5GABj6oHxE4xhJwYdlUAJ aIS/q2IYe0a0RQ/3vQCJJl7c/9UoNvu/daO8ByrgWGMxJCo72WFf/HxT46b8zUHzK+9T asYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666485; x=1779271285; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bGxuc9riPSg9wYyE8Jiw+OMTxBnrzLISmJdzvvWe/AU=; b=nAMxa+0R45+JXBnX7n7xrYxdCLltrjeHbCdGwE03KHUJ6sPUzjk4mo3g5fdmf76piL td1ES1sa9QvdbDu06yY/okwcoRnakkBtdHjs88P3E/elmktfpGp5qfBFwnsXpyyuI59K JVIOvjs1CCxWKjTcOto8QxBPBYQXcb5Dc8RjbPB8jeACgIQq8ZZjZmiw7KgTct+qjUE7 x/CBQCWaIVAhHSCylY01zx+yJtwSZC56pBA0z8G+JIDHSCpUVtOoojWH5Vhgh6RFZXtw tKRGXEWR8nMZc90CaF8u9gQyQuY4B0EEMQDkWKd1mdrtl0DYVA7sD6SqX+aSPSkJXtvx 7zUg== X-Gm-Message-State: AOJu0YzmtH+tXP13Tl+i2TmA/ge6cWpbV+ucWnwwR17YnzhB4CR9B2Vy U5ArUo7Iy9C26gJR/L/Uer8YUGCb2DSY3rNeNuiEa64lj2d7XyaGUT3a+n/HHF2T58v0+B5ALN3 my4wmW0StjukuebhlzDMX/Aa8b5R5J97F8OtO/PNo04ztm4OwO7xWLUx3BJPH7siX22S4tZnu X-Gm-Gg: Acq92OHuFq3HuI6V+ZQBhiuK6+abPqFwWxzr66Q4HxGC965sZk95BD8rpq7ThHKEoG5 B+VUsCLEnvOlmu2JW1msmjfOxkont0F3C+BfZS+OheSa731VJOa0qFqFznJY99MJDiQqN7EzwxT lH29kkRCJYtgmXkoSB7J+UQRMGpBu/e2KPzmAvEz41+9rtfygYGpcQBElDX7hZZLY2f3QrAj2BJ mwEkLaabHg3jg1Er2CExX1ORJflc7Oioym4eZtZoCfgPW9MAcXqzsZbYpNDlEKm/fNydTjAw4Rz 9sbbcJSov/ZdyLUL4XFqqscaUjK913r1DtAsCZmQp+vD6lDfdr4GKJkEtsefu4DbppRm2gupz0o KPcUZm2X8vRUQ4CkaViNij7uvGbokonjyoWxsftLX4Cx4NiJvNw9QVg== X-Received: by 2002:a17:903:458:b0:2bd:412:21fb with SMTP id d9443c01a7336-2bd2714691fmr20743515ad.8.1778666484761; Wed, 13 May 2026 03:01:24 -0700 (PDT) X-Received: by 2002:a17:903:458:b0:2bd:412:21fb with SMTP id d9443c01a7336-2bd2714691fmr20743155ad.8.1778666484171; Wed, 13 May 2026 03:01:24 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:23 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 21/46] PR: Use set_key to configure secure ranging context for PASN Date: Wed, 13 May 2026 15:29:45 +0530 Message-Id: <20260513100010.1947710-22-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: xBj1wr6q-zSxPgxYKwm9W09nq119PGgV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX120yg3mOLM4V 3U46qA9A2Uwiaf0ty4K3IDlnHYUI59lN67wTCMt1R6zkuubehCmNAauNd26ZhrLLI/a/k5Uuf7z Vpj19G9Dsox8lR55gZdYJGIfa59E/OxDA0K6EHnMcroqi5dpEQErORLqQcgzEsjNgP+rtGOj/Ow GnkK5EcZBqtQ6IUJoRTBhasMqdOjtEQn0doQIq/nsckCTjfhBW81PpmXdBZhJXm6o9gpZxrqd24 uHWGyOQHVW8KllOwLDBO+WATdLcb4UBMGvstCJBv+YvIe/LZNLS+muqFEETse/QDW9AQSt182w7 T4xBjyqta3sJO0F6K88pDaQJGKKir3dgzjsMLiGnUPnJnpNqQ72swhKGbobhm2QeGKwb13UNLSx MQ7mnt0Ot+QlpDSIqwErSPT3V3BtbdSxEOKvziebkAQt01YK1KUHIzi0n5LW9HVzlwj+xqbGTpZ 20uGlWdkKeyAikjiJ/w== X-Proofpoint-GUID: xBj1wr6q-zSxPgxYKwm9W09nq119PGgV X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044bf5 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=g7FLfmINn09JJxtsDPoA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110128_053344_EF4BC6C9 X-CRM114-Status: GOOD ( 17.61 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy The PR PASN implementation uses wpa_drv_set_secure_ranging_ctx() to install and clear the pairwise key and LTF keyseed after PASN authentication. Replace this with the standard set_key driver operation by extending wpa_driver_set_key_params with ltf_keyseed and ltf_keyseed_len fields and adding NL80211_KEY_LTF_SEED support to the nl80211 set_key implementation. Signed-off-by: Peddolla Harshavardhan Reddy --- src/drivers/driver.h | 15 +++++++++++++ src/drivers/driver_nl80211.c | 10 +++++++++ wpa_supplicant/pr_supplicant.c | 40 +++++++++++++++++++++++++++++----- 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index ff8d2fd27..4a13953b4 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -2099,6 +2099,21 @@ struct wpa_driver_set_key_params { * * Set to a valid Link ID (0-14) when applicable, otherwise -1. */ int link_id; + + /** + * ltf_keyseed_len - Length of the LTF keyseed in octets. + * + * Set to 0 if no LTF keyseed is provided. + */ + u8 ltf_keyseed_len; + + /** + * ltf_keyseed - LTF keyseed for secure ranging (802.11az). + * + * Used to configure the secure LTF key seed for a peer measurement + * session. Set to NULL if not applicable. + */ + const u8 *ltf_keyseed; }; enum wpa_driver_if_type { diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 4b3b8d1c4..4d5484422 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -4238,6 +4238,16 @@ static int wpa_driver_nl80211_set_key(struct i802_bss *bss, wpa_hexdump(MSG_DEBUG, "nl80211: KEY_SEQ", seq, seq_len); } + + if (params->ltf_keyseed_len && params->ltf_keyseed) { + if (nla_put(key_msg, NL80211_KEY_LTF_SEED, + params->ltf_keyseed_len, + params->ltf_keyseed)) + goto fail; + wpa_hexdump_key(MSG_DEBUG, "nl80211: KEY_LTF_SEED", + params->ltf_keyseed, + params->ltf_keyseed_len); + } } if (addr && !is_broadcast_ether_addr(addr)) { diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 9b3e09d82..e38d7243e 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -296,13 +296,29 @@ static void wpas_pr_pasn_set_keys(void *ctx, const u8 *own_addr, struct wpa_ptk *ptk) { struct wpa_supplicant *wpa_s = ctx; + struct wpa_driver_set_key_params params; wpa_printf(MSG_DEBUG, "PR PASN: Set secure ranging context for " MACSTR, MAC2STR(peer_addr)); - wpa_drv_set_secure_ranging_ctx(wpa_s, own_addr, peer_addr, cipher, - ptk->tk_len, ptk->tk, - ptk->ltf_keyseed_len, - ptk->ltf_keyseed, 0); + + if (!wpa_s->driver->set_key) + return; + + os_memset(¶ms, 0, sizeof(params)); + params.ifname = wpa_s->ifname; + params.alg = wpa_cipher_to_alg(cipher); + params.addr = peer_addr; + params.key_idx = 0; + params.set_tx = 1; + params.key = ptk->tk; + params.key_len = ptk->tk_len; + params.key_flag = KEY_FLAG_PAIRWISE_RX_TX; + params.link_id = -1; + params.ltf_keyseed = ptk->ltf_keyseed; + params.ltf_keyseed_len = ptk->ltf_keyseed_len; + + if (wpa_s->driver->set_key(wpa_s->drv_priv, ¶ms) < 0) + wpa_printf(MSG_ERROR, "PR PASN: Failed to set PTK"); } @@ -310,11 +326,23 @@ static void wpas_pr_pasn_clear_keys(void *ctx, const u8 *own_addr, const u8 *peer_addr) { struct wpa_supplicant *wpa_s = ctx; + struct wpa_driver_set_key_params params; wpa_printf(MSG_DEBUG, "PR PASN: Clear secure ranging context for " MACSTR, MAC2STR(peer_addr)); - wpa_drv_set_secure_ranging_ctx(wpa_s, own_addr, peer_addr, 0, 0, NULL, - 0, NULL, 1); + + if (!wpa_s->driver->set_key) + return; + + os_memset(¶ms, 0, sizeof(params)); + params.ifname = wpa_s->ifname; + params.alg = WPA_ALG_NONE; + params.addr = peer_addr; + params.key_idx = 0; + params.link_id = -1; + + if (wpa_s->driver->set_key(wpa_s->drv_priv, ¶ms) < 0) + wpa_printf(MSG_ERROR, "PR PASN: Failed to clear PTK"); } From patchwork Wed May 13 09:59:46 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237621 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=0U0tgvta; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=QE8tQ1Zs; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=CZEnvhOh; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=KSYaNz7g; 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 4gFpsk6Kzqz1yJ5 for ; Wed, 13 May 2026 20:02:18 +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=eKE9AL4CjHkxG62+sJG4izoIJxgdpqg7zXqGQGt+vlE=; b=0U0tgvta1Mr7Kj u2J+Q3i7BigbDNKlICGd3Myu7Ofj0wnwSxpNYYGPR3dGsTH0i/tuvOXUwaMPN0bJAAOO5s+Ij8L5J o6xW+z3PbQIwYXu5c4sjIqASRn7pJ+q190114WiU62BwCREJFw39k1j1XXDDV+1LZwmbIp7CEnNdY nQe3VosSfWjg2H/uqd00Kx+4G8DXEofl8Rr7pri+L+4I6Xv0xNEtnNac/KtrSzP04QJRpDzgm32uw XQmM18DmjZRYBfSxu20hBkgGM6NBsc145tCfyP4ZIg/eVTVv2nZjaFkt1Bxhzds3TKuTQOwrBbAEe NAIS6tZHZHvGiZOw5sDA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PM-000000021si-3jtM; Wed, 13 May 2026 10:01:40 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PJ-000000021kB-2NH3 for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:01:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=msIMJvR+vX30qc/zuFGXYDITzbkcO5vLxdLl8oc81f8=; b=QE8tQ1ZsCKqNWPEYzelg/LqTrA JusN/FaXer3mWVRcLKV7dWK/qKQFgIiEDOLDymw3NDSatzCkh34Kh2nbgEJI+s4IdTZj38s9CS9qs mRth3YInU+Lo6LEHHnYFZV8glUUnA/eDpFcknYwypvMYFHKsAoSyOxhoS00aOfikUOJ38BKOy8bhC 6ohThKe1uhydube2HIfkmjdkjMYKnHxD0FYmpO5znNcKw6wdSq0toGdeE1ifig8G2TmIU/w9XAVtv TFyjp8M8NBEFmpaJiV5OVIanmtc6+Cu0G2RGIEbI4OFx2DOl7JDgV11G+Rpag4x2Ishn5FlxgWaC1 EP05GFNA==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PC-0000000BRBA-0EVK for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:36 +0000 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8mGCP3474786 for ; Wed, 13 May 2026 10:01:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=msIMJvR+vX3 0qc/zuFGXYDITzbkcO5vLxdLl8oc81f8=; b=CZEnvhOhsaA3i7I/SnoR7K6vcjJ s8FSo4eDoqggW4tDEJDEYPmDNS4Km0ZvxoygwaU0YRCm6KgPlO4pfbliPUz3kd08 pR3qiEoXu38ciiqf+8D7nUyZ/L8zsnqZ7NWajb8jRvMF+1rjceGey8YeIqCYJ4jn wy4Lir6nowcEalRh+/grpaA5QGlhJOAAU/rIohRXZkxoPuvHxixidfrLsldWh5FD gpFjVR0Wij/zps2ZX7QVsdElsjZ8oCvWrazU0DWzAigC457fOli0MiuEcOdMktVn ePrEnQid91XfQ8R/vVOSqXgfOCGnpVFo5kPemUKUeuGnHk0izM1ngCl15FQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p418991-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:28 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b9fe2d6793so119461995ad.0 for ; Wed, 13 May 2026 03:01:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666487; x=1779271287; darn=lists.infradead.org; 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=msIMJvR+vX30qc/zuFGXYDITzbkcO5vLxdLl8oc81f8=; b=KSYaNz7gYEtNxJOqBfi2gLH0zM1rrXfLPMESsm7cztjq4/aRhGnqEZCB7CgEUgm8fk 6zjKL8ikO1dNAnYUf3MZbi4OUC5vyww6lNm1fnlyHZyMhygl1jZ5wacBilrOdCjtzQLV +ku5UqnmxWbTQ8dd+nDt+KZsWiuAcKwMK6XGpaY2CYiFO0ciE2NteuWZ9k3K3Utxfqpn HZ8DUOMtoFaHxVGTgFBMJoutHnA8HkxZrqD56wOtRG02wiS0BzLzy1hPSnr4ZYSjnH3C AVOYFvthpbZdi/NPDjvxd9jUr1gUytTq1IP3sLg11tJEc4UiI0WSAnKHa0g1Nke8D4Ce Fx5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666487; x=1779271287; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=msIMJvR+vX30qc/zuFGXYDITzbkcO5vLxdLl8oc81f8=; b=jWP+mx8M6RyQhcZwh4QfXgd9LjYs85zA6fctKCnKnVIHZI4Bq+7syoZsqpHpzkAiXR quOPpwPiRoSe0o7t9uNzN2xFFvrgthKeYpFSTTcfdEW2iI3jcqJcgGGUohiaz4xZt0fj FyuZDOHxbL11+AU3SlkSSSssikxPGL2d2TMqoDd5Jmhur2M9hUy1WVORDmCTJxFUYcw6 VLaIEKOzgwdn26JmmXxkWZLVHN7s+tSUzsBNB8j/S32hBQLpOR7B6RT5iy6WGCCC+m/U iImXZOZLjR/l2kvHEheKBL3oUVI5M7ESLorWuX6gVJ+gAygdd6uNyzD/y4qR0W9rZjeo +5bQ== X-Gm-Message-State: AOJu0YwFOheOT8AhuuOtyru1r40dSkGvLscQD0Tjq7NSY+AUfT6qphNh 7LPDiR+tyLx42Mn7yC9r16sk/GyhFBTcVKUYMskqfODKgAndlNh7nj0FFYYaFvBvpCeaW+T1N+9 1inYL0BbclXMkJ3h9KGtRn14Rd5RRODG9aQQdVQF2mhBDlbxMxrqGUJ2g5urwkbiOHZW4v4il X-Gm-Gg: Acq92OF3ZfFrE1KT7gxs7qlZnr3ds5eP08b4Y79pd08C/C3wDtOq7SvVZvf+Qqe2S7o qZYSwn0dxJIoEi8Gozo0+zfmJlaFALsiuebUdOZhvxaj9f3v32Jb+3JV/K+eBt2hIMx+YxJy+Jb ROZWMB3eIN8S9QANHTg4VxRTQql3iFSPApY0wfGw/Y8/4DwLFRWqSHtfstToVOJT47FEn4kG2hq Eh+u8NrRnHq7otHYdJRoXaS/Zm9GEMfzFq8RiowLWkQtke739UbhPKJZYXwUEYMwRYOboB8S9YJ pnL6o902pq8UuSGQ729yxdlxSliR8VFzdlFmWOpuJ2vtGqkwY6qnQTwIxORhMvCCYe5FKgD00Hf GB6uTGYotZC5988AAvPfz+u2MOmnQ5k72cffJtBOYIjAbUwZmEi/GUw== X-Received: by 2002:a17:903:3c4e:b0:2b2:9d60:5eaf with SMTP id d9443c01a7336-2bd2718bc50mr29946015ad.6.1778666486887; Wed, 13 May 2026 03:01:26 -0700 (PDT) X-Received: by 2002:a17:903:3c4e:b0:2b2:9d60:5eaf with SMTP id d9443c01a7336-2bd2718bc50mr29945475ad.6.1778666486305; Wed, 13 May 2026 03:01:26 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:26 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 22/46] nl80211: Route key operations to PD wdev based on own_addr Date: Wed, 13 May 2026 15:29:46 +0530 Message-Id: <20260513100010.1947710-23-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=df+wG3Xe c=1 sm=1 tr=0 ts=6a044bf8 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=zlPx1Y6hPNI2toln2PMA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX1j3D0uuaiMzj aJJUbPydgxsPgHCP167MYwROaF+no0L/opgwAl+o4Ef8QzVDmua38gGxFtPd1KHXtsBoKy8xbqW XOzhz5cXxoABf5y2xz0R76oToInnvEnpPMOV1YMtOcXGS6xKwnF0ED9qodOcQDSyZ+/OSM1isG5 WPZESIMZDCWPN4KhNYuzFsW2zcXSuT+jCDlUqdXd6WYBsvnjzDL0ubXRjKY2i6EyWpGEGI0rItV 2J66q7ijm8BJ4Glzc+GOMkoMtYTCt7y9DlV9P60y+AcYmyQJXW1o6ovPhpWVA8wVRgajv129Vm3 ksCxPC/eV54A9aZlXxpC1amZdWYLvu8//AmS0l1SyDor8NVlbZm4ul4abW2pga8GtL0mbfq8SdI 70vW9eyjkt/bpWZmZ0tOE+KJqYPStw3hHkbs6ry6RlKCbbwUqj7Dwc380nTCJCVeg/XGVdoOpPk uQrBKIGztQ8KXB/b5+g== X-Proofpoint-GUID: 6Z7QQmtmbsuWIbbv7rUD_FOufDlLhMFH X-Proofpoint-ORIG-GUID: 6Z7QQmtmbsuWIbbv7rUD_FOufDlLhMFH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110130_340378_4B89A76E X-CRM114-Status: GOOD ( 20.90 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Veerendranath Jakkam When installing or removing keys for PD-only wdevs, the key operation must be sent using the PD wdev_id instead of the main interface ifindex. Add own_addr field to struct wpa_driver_set_key_params to identify the virtual interface for the key operation. In the nl80211 driver, if own_addr matches the active PD wdev MAC address, route the operation to the PD BSS with ifindex = 0. Update NEW_KEY, DEL_KEY, and SET_KEY message construction to use nl80211_cmd_msg() (wdev-based) instead of nl80211_ifindex_msg() when operating on the PD wdev. Populate own_addr in wpas_pr_pasn_set_keys() and wpas_pr_pasn_clear_keys() so key install and removal are correctly directed to the PD wdev. Signed-off-by: Veerendranath Jakkam --- src/drivers/driver.h | 6 ++++++ src/drivers/driver_nl80211.c | 21 ++++++++++++++++++--- wpa_supplicant/pr_supplicant.c | 2 ++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 4a13953b4..375ac7da2 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -1978,6 +1978,12 @@ struct wpa_driver_set_key_params { * ifname - Interface name (for multi-SSID/VLAN support) */ const char *ifname; + /** + * own_addr - Own MAC address identifying the virtual interface for + * the key operation, or %NULL to use the default interface (ifname) + */ + const u8 *own_addr; + /** * alg - Encryption algorithm * diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 4d5484422..8397dc5ce 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -4125,6 +4125,7 @@ static int wpa_driver_nl80211_set_key(struct i802_bss *bss, struct nl_msg *key_msg; int ret; int skip_set_key = 1; + int is_pd_bss = 0; const char *ifname = params->ifname; enum wpa_alg alg = params->alg; const u8 *addr = params->addr; @@ -4143,6 +4144,20 @@ static int wpa_driver_nl80211_set_key(struct i802_bss *bss, return 0; ifindex = if_nametoindex(ifname); + +#ifdef CONFIG_PR + /* Route key operation to PD wdev if own_addr matches */ + if (drv->pd_bss && params->own_addr && + ether_addr_equal(params->own_addr, drv->pd_bss->addr)) { + bss = drv->pd_bss; + is_pd_bss = 1; + wpa_printf(MSG_DEBUG, + "nl80211: set_key: routing to PD wdev " MACSTR, + MAC2STR(bss->addr)); + ifindex = 0; /* PD wdev has no ifindex */ + } +#endif /* CONFIG_PR */ + wpa_printf(MSG_DEBUG, "%s: ifindex=%d (%s) alg=%d addr=%p key_idx=%d " "set_tx=%d seq_len=%lu key_len=%lu key_flag=0x%x link_id=%d", __func__, ifindex, ifname, alg, addr, key_idx, set_tx, @@ -4189,7 +4204,7 @@ static int wpa_driver_nl80211_set_key(struct i802_bss *bss, KEY_FLAG_PAIRWISE_RX_TX_MODIFY) { wpa_printf(MSG_DEBUG, "nl80211: SET_KEY (pairwise RX/TX modify)"); - if (!nl80211_is_netdev_iftype(drv->nlmode)) + if (!nl80211_is_netdev_iftype(drv->nlmode) || is_pd_bss) msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_SET_KEY); else msg = nl80211_ifindex_msg(drv, ifindex, 0, @@ -4203,7 +4218,7 @@ static int wpa_driver_nl80211_set_key(struct i802_bss *bss, goto fail2; } else if (alg == WPA_ALG_NONE) { wpa_printf(MSG_DEBUG, "nl80211: DEL_KEY"); - if (!nl80211_is_netdev_iftype(drv->nlmode)) + if (!nl80211_is_netdev_iftype(drv->nlmode) || is_pd_bss) msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_DEL_KEY); else msg = nl80211_ifindex_msg(drv, ifindex, 0, @@ -4219,7 +4234,7 @@ static int wpa_driver_nl80211_set_key(struct i802_bss *bss, goto fail2; } wpa_printf(MSG_DEBUG, "nl80211: NEW_KEY"); - if (!nl80211_is_netdev_iftype(drv->nlmode)) + if (!nl80211_is_netdev_iftype(drv->nlmode) || is_pd_bss) msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_NEW_KEY); else msg = nl80211_ifindex_msg(drv, ifindex, 0, diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index e38d7243e..6b1cffa4c 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -306,6 +306,7 @@ static void wpas_pr_pasn_set_keys(void *ctx, const u8 *own_addr, os_memset(¶ms, 0, sizeof(params)); params.ifname = wpa_s->ifname; + params.own_addr = own_addr; params.alg = wpa_cipher_to_alg(cipher); params.addr = peer_addr; params.key_idx = 0; @@ -336,6 +337,7 @@ static void wpas_pr_pasn_clear_keys(void *ctx, const u8 *own_addr, os_memset(¶ms, 0, sizeof(params)); params.ifname = wpa_s->ifname; + params.own_addr = own_addr; params.alg = WPA_ALG_NONE; params.addr = peer_addr; params.key_idx = 0; From patchwork Wed May 13 09:59:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237623 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=keVvfz6X; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=PIniBDBz; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=LExgq+Mq; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=cdgkVcg7; 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 4gFpsm5jG2z1yJ5 for ; Wed, 13 May 2026 20:02:20 +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=nX9HJZExHA9C3+NypuOzOyqr6v65Mdc2W7PvBLd9UKA=; b=keVvfz6X3KNMfH 0RQftYqyGMgofydzTw8Q3eRW40Tn1KoTWA0L9mQVYevpj9wlVjl6qjK3cTL9UmsYTLSp4sJyrNzvD ftxFgfQOMRaaeElU/TEsDM8ieL/xTOyq95nwnJWLCueSPMTjI1qYwod1WJNLBDFgMYHqx3pYMr64V 7NmhgutumhwSIVWRbloeOhi44TU6WJN22MPfmfzgKpWdy3iSlZF+dNE2IxWK5fHQ+kNiNeHEEBtYm PKkqqI7TyldhZn/TatZ1tXQs+d+fgOUAbwSQ0X8Kzheg5rZ8uqbMkEcZ8i7+NeTsnljupZW8QeTC/ SQAigRIKZZ4MxJ2N1dCg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PQ-000000021y5-17ca; Wed, 13 May 2026 10:01:44 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PK-000000021ma-2zKo for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:01:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=dNJNw0vaDSXvC9dWwahLnIt7j559Xvvgtn0CamIYezQ=; b=PIniBDBzZUJF3+UzGdnr6Y8bFb PwmAvIvqoQ317/wfuKVK3SvwslQZ2dXe4UgkSVIeZ7/LH3wCtyG81lsPuek4F+yV94hskz3jSwExL Vurci8bddMgWpqHmSiPmDC4Agv5Y4CeV+YL+D9aR//dhUn2MN8AOH2ufIEtN+puAd687lQpbfIQMl J3r/TDJ2HlrsPFB5AX+wSPMvi3AeEZhFfBo5RotoCiMJrXGopafS+kaAGUpTbyORZSTJwMHp/PuV+ 2Y5zF7C4dsSCO9EEsU6hDFLcYAvAbqC1CXeo3CNGrodkDBh0K1/K7yWj2AKt1bycUqaZoCs4CVxEe FmKJv2MQ==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PD-0000000H4cr-2ad5 for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:37 +0000 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D9jg8h3007378 for ; Wed, 13 May 2026 10:01:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=dNJNw0vaDSX vC9dWwahLnIt7j559Xvvgtn0CamIYezQ=; b=LExgq+MqSCXSMkbgX29DI/fKKoe hZ1SCS4gGiJgbA3eQm4jwoG0v8A5/GOV4nJBPnTTpL7ZW7Bj+MdkgQ2r03h8fwDV XolN0UWRoOQtvKGM4mG8/CElevYWOmItI5XxMubbz6D2xhlm2WGgyXO5RqqyRrpg OHIKGVqL3/V51buJp3zBUlxOg50fkCQkvGcbsPPDP95pYFZibtRGTX6K1HVf397o zpt9AXpYSAt3weRn8LO4PkGugixTyEv+4DUdiCn1+24JAKKtdrIa2GLn81OmklrJ sks9GtV/AQmIcwli3B6lygZK1MJmH8NokOa1vpdN/LeTrQNBzLEebLlLh+g== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4py0g25b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:30 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b9a6d84522so124185255ad.2 for ; Wed, 13 May 2026 03:01:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666489; x=1779271289; darn=lists.infradead.org; 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=dNJNw0vaDSXvC9dWwahLnIt7j559Xvvgtn0CamIYezQ=; b=cdgkVcg7Mtj0c1vmGVAd9vPKekp7o3+SLItn0wDoUXV9lC36hpGMLUczYC/q0/JIrS Lq4WquRChg925BIc3Um+T3nX9xpgXhcnVk5ef1v8CRMf4bUHgoL9rAdNuqNwGrTBQGer Q6rSz6GSP17rIsTTrW4ed83RvIxsJTyP56hXs9cVVO5CqYIEoBeM+i6Nb5g5CZgxYzBJ HOJOgtExWswGEWLoIrDjva5Aptj11dk/7bFLwbfZN0Lc0/6vezQaAPeuu0m7HpovDi8Z gNM9hyVjOBKYbChaVrcN6Qll6EYUlaLDfiNeyhclgisQhHsvak5Ueg3W8y71FtO0OJ9B h74w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666489; x=1779271289; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dNJNw0vaDSXvC9dWwahLnIt7j559Xvvgtn0CamIYezQ=; b=h9O8tpk6blS0qm12/CDEqTC/LKSmPgS7ceE9x32gpU/9DX+uCh+/666Ae2r6ZqZ9JQ CVmMfh6/oU/VkAyMW930026+kMC949TsZYwdkQw5brq91l9xirjv8aaVIBTiTTkRNAxJ ER6XUWI+WMFFeqyKDG2mXODWwhCxbDf8emX2OXHp8XbJvL3pU/6ndVCC+XVCUJ3ypRtz wU4UA8iVhN6h3tfjiQcsjqenN1OhCusmFWYt/YCUEh8eD170+d/2mB8OllZ+k9g3o6Ze Na34EnAfdREB9kAtZCLZJsNDmblwTVRTEe3dA9s+0uHLTCYbYjG+pH7GUN+epCI7pXmX +KtA== X-Gm-Message-State: AOJu0YwmOdrMvEUE92YRljjyFvChzjE5Ev3w4+nXWcc+JVA97jdVgmWT 0EU7dYZUaYp0Yemt9E94XCdib8T+JnS6KfcNkQvfq4te0sQIxrUDPUr/VKdQFXCq3B5nqE/fCjB F68GASDfuq0gaE7pcZPN+opjykonWq9dYgTxQ3zuXonGIe+VUz2FbH+nQ9slqkh0R7hz38ySo X-Gm-Gg: Acq92OFQ4lZ9jRFG36dIN4WPW+AVg44xS/HNtXyTcDiqJwZC5rt2y+aR/OQI0GZBYIj yfruDX7sbDhQQf4h9pDXA9H8d4xbO09DVWLlApBFxe2Fs6yXN+YLTsvkvF7RPqd8rjxiPN0G0Fb RzviXwjM8gKv2USRRwuxJr+jus468rmfTyY0mTBUuCw6bwyIcKEDvXcVKdZNVo4k4ERko80fZgx cllzdSvDMkFEt1kg5C+WC0Pw5bqfeypCXe5bLTP1t1gzz65JfdT1Pni/24y3XE6IF425pPjA9qG SDIxLwn2vpmzsLDy/UJEqN4AGds1bBG0gMs+HTpWWXwXK5Cq0r9LZYNqVNqn+3D0d5zCb3ifXi2 YP6QORDkT2S4Wm6p/xDHLjQZ2+e5TVbDy/0IsLhFMSS87urfrsxwrPw== X-Received: by 2002:a17:902:cf4a:b0:2bc:b141:8551 with SMTP id d9443c01a7336-2bd276f3092mr31520245ad.19.1778666489197; Wed, 13 May 2026 03:01:29 -0700 (PDT) X-Received: by 2002:a17:902:cf4a:b0:2bc:b141:8551 with SMTP id d9443c01a7336-2bd276f3092mr31519515ad.19.1778666488565; Wed, 13 May 2026 03:01:28 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:28 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 23/46] PR: Extend PR_PASN_START ctrl iface with src_addr and role Date: Wed, 13 May 2026 15:29:47 +0530 Message-Id: <20260513100010.1947710-24-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX/jzdT3tHnr5p 72FQ7hKLCr+IoAeFAeZGMMh6hgdrc25VLYHc2pj5o6fXk8bSyYSRNDOoN/I0C5wrCZFUZwSh/v4 lCLnCWJ5XettF9ZshrvzGe61oaWlSESro4bfMhp0CQ6IyStFzUiylNuz67WJqkgm8jVUs/iiAjH PqktKoFXUwAYbMbzivhT992eYwBsjpEbfR/FETHTCm/0rqiHOYUg3V7dTadl1UumEPybF0xAYpA dXgsU/V+6apH/8qYtgq8116xVwX/tYKKfKrowI4CT/aAS0NzpTRm+Nr2Ke2FkJnPx8pRZ0N7QF4 LXamPCKqY490t/qfeqHrkdbkK8RahwH5N0wqlkJu3Gq+eTqcDnDJrRsZEtYqAio5Lsrz8k+ojkA 4hDCnGU0AM9q59xB+q9IzfeO55yPRD3Kyo/QSZGdwJ0xDvF+MG48YSaknNuNW6MoaqOQ4ktLs0e r6DldkYbQjnPweN4FLg== X-Authority-Analysis: v=2.4 cv=XqXK/1F9 c=1 sm=1 tr=0 ts=6a044bfa cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=tydCV-iud_zKFXWaoLsA:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: IS99kYCQMr49EaSt9QAHolgWkRFCNFXt X-Proofpoint-GUID: IS99kYCQMr49EaSt9QAHolgWkRFCNFXt X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 phishscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110132_352537_90ECFC39 X-CRM114-Status: GOOD ( 18.22 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: Peddolla Harshavardhan Reddy The PR_PASN_START control interface command had no way to specify a source MAC address for the dedicated PR interface or to select the PASN role. Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy The PR_PASN_START control interface command had no way to specify a source MAC address for the dedicated PR interface or to select the PASN role. Extend wpas_ctrl_iface_pr_pasn_start() to parse two new optional parameters. The src_addr parameter accepts a MAC address that is passed to wpas_pr_initiate_pasn_auth() for use when creating the dedicated PR interface. The pasn_role parameter accepts INITIATOR or RESPONDER and selects the corresponding pr_pasn_role value, defaulting to INITIATOR when omitted. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/ctrl_iface.c | 22 ++++++++++++++++++---- wpa_supplicant/pr_supplicant.c | 3 ++- wpa_supplicant/pr_supplicant.h | 9 +++++++-- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index d31acbef4..6dd444349 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -11564,6 +11564,8 @@ static int wpas_ctrl_iface_pr_pasn_start(struct wpa_supplicant *wpa_s, int freq = 0, forced_pr_freq = 0; u8 ranging_type = 0, role = 0, auth_mode = 0; bool got_addr = false; + u8 src_addr[ETH_ALEN], *p_src_addr = NULL; + enum pr_pasn_role pasn_role = PR_ROLE_PASN_INITIATOR; while ((token = str_token(cmd, " ", &context))) { if (os_strncmp(token, "addr=", 5) == 0) { @@ -11586,6 +11588,14 @@ static int wpas_ctrl_iface_pr_pasn_start(struct wpa_supplicant *wpa_s, auth_mode = atoi(token + 5); } else if (os_strncmp(token, "forced_pr_freq=", 15) == 0) { forced_pr_freq = atoi(token + 15); + } else if (os_strncmp(token, "src_addr=", 9) == 0) { + if (hwaddr_aton(token + 9, src_addr)) + return -1; + p_src_addr = src_addr; + } else if (os_strcmp(token, "pasn_role=INITIATOR") == 0) { + pasn_role = PR_ROLE_PASN_INITIATOR; + } else if (os_strcmp(token, "pasn_role=RESPONDER") == 0) { + pasn_role = PR_ROLE_PASN_RESPONDER; } else { wpa_printf(MSG_DEBUG, "CTRL: PASN invalid parameter: '%s'", @@ -11599,12 +11609,16 @@ static int wpas_ctrl_iface_pr_pasn_start(struct wpa_supplicant *wpa_s, "CTRL: Proximity Ranging PASN missing parameter"); return -1; } + wpa_printf(MSG_DEBUG, - "CTRL: PR PASN params: ranging type=0x%x, role=0x%x, auth_mode=%d, forced pr freq=%d, addr=" MACSTR, - ranging_type, role, auth_mode, forced_pr_freq, - MAC2STR(addr)); + "CTRL: PR PASN params: ranging type=0x%x, role=0x%x, " + "pasn_role=%d, auth_mode=%d, forced pr freq=%d, addr=" + MACSTR " src_addr=" MACSTR, + ranging_type, role, pasn_role, auth_mode, forced_pr_freq, + MAC2STR(addr), MAC2STR(p_src_addr ? p_src_addr : addr)); return wpas_pr_initiate_pasn_auth(wpa_s, addr, freq, auth_mode, role, - ranging_type, forced_pr_freq); + ranging_type, forced_pr_freq, + p_src_addr, pasn_role); } diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 6b1cffa4c..217b8dddc 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -624,7 +624,8 @@ fail: int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, const u8 *peer_addr, int freq, u8 auth_mode, u8 ranging_role, u8 ranging_type, - int forced_pr_freq) + int forced_pr_freq, const u8 *src_addr, + enum pr_pasn_role pasn_role) { struct wpa_pr_pasn_auth_work *awork; diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index 24c369e30..ee40a9251 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -9,6 +9,8 @@ #ifndef PR_SUPPLICANT_H #define PR_SUPPLICANT_H +#include "common/proximity_ranging.h" + #ifdef CONFIG_PR int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, @@ -27,7 +29,8 @@ void wpas_pr_process_usd_elems(struct wpa_supplicant *wpa_s, const u8 *buf, int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, const u8 *peer_addr, int freq, u8 auth_mode, u8 ranging_role, u8 ranging_type, - int forced_pr_freq); + int forced_pr_freq, const u8 *src_addr, + enum pr_pasn_role pasn_role); int wpas_pr_pasn_auth_tx_status(struct wpa_supplicant *wpa_s, const u8 *data, size_t data_len, bool acked); int wpas_pr_pasn_auth_rx(struct wpa_supplicant *wpa_s, @@ -74,7 +77,9 @@ static inline int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, const u8 *peer_addr, int freq, u8 auth_mode, u8 ranging_role, u8 ranging_type, - int forced_pr_freq) + int forced_pr_freq, + const u8 *src_addr, + enum pr_pasn_role pasn_role) { return 0; } From patchwork Wed May 13 09:59:48 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237655 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=KNVi0GaL; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=brKcf8rJ; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=n50CzsaY; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=Z4E6lvHy; 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 4gFpvg3qqmz1yJ5 for ; Wed, 13 May 2026 20:03:59 +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=UYx3sGwsc2R3iu1Uc/7W4l3zZAd1cCLpT6BlVMNEVGA=; b=KNVi0GaLU1ZKLL aU8wL9R0nT5YkaNaMx83Sw1QGC1Lfn8KWkkymp/tFtkr2+wFFZCvzHVRygoYINPquXukxMmHX/6Ug I9m2h2wSivYpP20ccij4pUb688gnTNkmh+YlS8FBK6Xuq3uwEeZ8aohaTt5vu8M73oI/4Iy03ywdr 9PzKsaXm/OO09us7OWyZfP9nd733c+76/WzHCpFBqCGISyKyfhFC9jmGE2WtfC+OuJwVNjdvSNT2U 87gRVUVDljYZ5KrqPAzAbeBXLNmyvBsiytB7wLIOlgnDT1b8hP/ZEXpToeFSX0HFuyURjqZeJ8CX4 Y7gjI9VoA77RZtgS7xtQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Py-000000022l9-1iqe; Wed, 13 May 2026 10:02:18 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pm-000000022U8-1csd for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=CMmJs9udTMNHFqWTsDwh6tz3qYy9KmHVX3LrzjdgrqI=; b=brKcf8rJx0MKSbadqV/39fKTvy CiqRbHdAb8ThZdn6QOtF8u6f2Oudss11CB+ZlXT3X5MT1ItxkT+PlpC616hFEpUUFpWV+GdcjLnrD V0fCtXnFIKtHBY7KiZ/y7HOW72ikDYpAPMvDZEipQdj1zao2HYrL5ohGt/7RDqrbROfXf78Dd9rz6 a/D5ILuBIB+NcVSsj/4dfzCS0+VDavuUirV5uspjVrHOBt2DQnojQ7KPevZDNZkMwhvPBNWfXSJga B/grvVwBy6r91sbF09FJ9wZQf7qTzEatVRw9+ezkD+J5tIhufS2X7CKh5G2OyXvUHr1Wl5/Vi9ptA tI5uJnfQ==; Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pf-0000000BRPA-1m6O for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:05 +0000 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8wo6d4159625 for ; Wed, 13 May 2026 10:01:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= CMmJs9udTMNHFqWTsDwh6tz3qYy9KmHVX3LrzjdgrqI=; b=n50CzsaYcuDnQOhn UqAq8fWESTnLNRlWXP3rrqqEy2/5PuSZGy9SVAKU6d4Ap+/7xP63e3MIzW2T1g1T XC7b+yKggdiEJ3a4DvEVRFpSXO9ExwegWWFSxhu6DFPSG09RSlOnTS/HBEcmhhj/ DeKClz926hpBQ4PWwHOIl6rHygNhD4HmLuJ7L+KvoYgtBEt1Lv/QTV0VrDglK+n1 XqDpcTOYwu31opsAE7WTqH0c98QRvVi6SYrBAZPA+546ZNPB1xpQY/AjsHcsBjN5 weDkQIT1OmOM8eX25lLNoQ9oFNHXvueRH2dkB3m9gZPuOc6Lo3EdSNlnI6EfwnU2 5hRdCQ== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p91r7xr-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:32 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2b7aba0af02so71206435ad.2 for ; Wed, 13 May 2026 03:01:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666492; x=1779271292; darn=lists.infradead.org; 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=CMmJs9udTMNHFqWTsDwh6tz3qYy9KmHVX3LrzjdgrqI=; b=Z4E6lvHyZypfmPDeM9ESJ/dCntHoQh8rXEezKmsdMr1P+Y0Gy8iG1USc+/xYTfk2KJ +kIXpcODHYvgU3LlNQeMxWHRdDfgkvnspjx8KmnFAVqWHiEX4mUbG5Yx1JGPKM6CeZhc LXuWVP8UXBGjEbG+X9N+EvtE0YF5tYFnMq6/CGmQMZBgUPDltMCtbyl07+L/EXOPSOWJ zb0bb/Y/XH6HVF4ZPOBP5YvnAUWJb4b4Q2eCSf+GpPoO41RRT5FXtkculAvaOCivxDCL ozfOrHGIN1mMqoPgqexffehy8AtZxrneLyXwPpgs68Gt06S/J02Ll+lQqyfih5J0ScwJ QV/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666492; x=1779271292; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=CMmJs9udTMNHFqWTsDwh6tz3qYy9KmHVX3LrzjdgrqI=; b=BITSaE8NYta/ybC/uc+kitvem0YKMXoCGD7Jt4XWUbJ0WgW8aAEwA6tGSB/0Car7Tx 18HB6fBqdRAE0mUILsGEDyeF9+Pcvh6gw7+wqX6pdJjdofJIen4yrTfQPEsp+QG7d++L +K1sUubQcbVdj+reie9shGRZerSo5dmXbJSlX0AYjKQ6gwaOdesbyNV/t6D0w3CPr+w+ NtOL7a7yCpOvmA7PEsvgiXejk+q2sFUISMtPEgMXT9S8U5QEqtcz2/CGxz7AmyXn/c2I JDj3qAr+isPRgU6/IYW7XaCAfZ3Lm3S1OHSByFjDiIh8O2ekLnAuJ5HpSwIszxEqE149 aqYw== X-Gm-Message-State: AOJu0YwFpXRw8x8yIVuxCddC3IPqFOQHcame8eD/Jdwbl8dmXeAlqMiv BYlXGC+ZfsRXdAltR0dK0i1C0l51CKHHfcdghScu4aFHFJzKX1sJMVf01dsdnfYmH5HyyPcEqgq /OSa7iK1cAGBzUMwPxa+XCxeVlkHnFrNBu+c8etbii4z5eDOtgBvtAIvVKpA3DkpjBOEv3nN6 X-Gm-Gg: Acq92OHgJHCtXtH2xh7Eczrbv1bRMbjfJF0D+XzeDxmVxctELEWlNpDkDeeYFqQBVof kmfNsfadvj9vsOyzrzYAgaAoowqRbDVIvgxtrgsnLhyMy0Uz0FF8hFOkszvBXQ/daX2ir3rlRUR lk4fBSNDErTsFLyJ8sbJiIKk8jrajgZi3Nk93ZEOQARvFH1+/u6RXTuj+83IOqU+grmrP2/sxcU RbOYM0PDv7uspR0cuzWE6nuWcEd6GobWIH5ay/w/zcDfvk+4fhpPzJbOdHIMoqFbWM5QJvyWVDh 7zRww/2cOyLiqlUy+q4mA2SU2KMLAgnovBYBcYMBiEwMup7dmWVsLQQS9wo/Qo5A5nwT/BiRxOZ TyjiVbAlaUpTlBgum8cWuWoKLNiNbRiPLoodnvn2otHP765yoh2debw== X-Received: by 2002:a17:902:c946:b0:2b2:4697:4370 with SMTP id d9443c01a7336-2bd2f4cb650mr20587865ad.3.1778666491699; Wed, 13 May 2026 03:01:31 -0700 (PDT) X-Received: by 2002:a17:902:c946:b0:2b2:4697:4370 with SMTP id d9443c01a7336-2bd2f4cb650mr20587205ad.3.1778666490881; Wed, 13 May 2026 03:01:30 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:30 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 24/46] PR: Add remain-on-channel support for PASN responder role Date: Wed, 13 May 2026 15:29:48 +0530 Message-Id: <20260513100010.1947710-25-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: -PatO_rkmW37lmkrVuirJf7WJEzd85VQ X-Proofpoint-GUID: -PatO_rkmW37lmkrVuirJf7WJEzd85VQ X-Authority-Analysis: v=2.4 cv=G9Ys1dk5 c=1 sm=1 tr=0 ts=6a044bfc cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=sS6nwOzE6J3bkjTtSJkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX130zdWONcZqc J9Hc31dzn2K6ewchHrBGx2pvbBJz8/PDfk5iLq9XzYGTkix4qucDJQjDSm9ZHYCwnv+4/VN4uAW TtADZDFJt3GvFshdp6ecahjbdX83z3B38xqeCvuWKRZRjP8rORgw3cFFv5Ke0zKTbSx8h+nA68J p0joljB2JGk2pA6xUoT/+shzTVyij4UwQ99FWEEgFpYeerr7hDvho+CwuVzlbEWH6sujUwyji3J PQ/n1pJFWsgA2ifj31pA/8Z0saC7Ct5wbCu/mo1x/esCzpJclLwAlJEbhiohUzRJTCyVAGB94ZT wTug2/ZsOHZ0JU/2lKR9c/qJySnBGqxCy1mJEVlfAVuYOc6RZLISk+IF0u1gZ0NsOj3hYcbUymi F7UwmzJLfHmDAtsgrIR5sNo0ULD79aL3ea+1OgDoFHPVWrb+bcQzs/kCcVAUousiKzWCgB4ix9T m6j9vVRLq8UBHdU4DKQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110159_790760_9711078A X-CRM114-Status: GOOD ( 28.23 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy When PR PASN is triggered in the responder role the existing code queues a radio work item to send M1, but there is no mechanism to keep the radio on the target frequency long enough to receive the incoming Auth1 frame from the initiator. Add a dedicated radio work item ("pr-pasn-roc") that starts a remain-on-channel operation on the requested frequency before the PASN exchange begins. A new pr_responder_mode flag is set while the ROC is active so that wpas_pr_pasn_auth_rx() can recognise the first Auth1 frame, cancel the ROC, and hand control to the common PASN layer. The ROC cancel/expiry event is routed through a new wpas_pr_cancel_remain_on_channel_cb() hook, which clears the responder state and releases the radio work slot if M1 has not yet arrived. This change makes the responder path functional on the existing interface without requiring a dedicated virtual interface, and serves as the foundation on which the PD wdev support is built. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/events.c | 4 + wpa_supplicant/pr_supplicant.c | 256 ++++++++++++++++++++++++++++++ wpa_supplicant/pr_supplicant.h | 8 + wpa_supplicant/wpa_supplicant_i.h | 9 ++ 4 files changed, 277 insertions(+) diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 0684ada71..22d6ce196 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -7293,6 +7293,10 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event, #endif /* CONFIG_DPP */ wpas_nan_usd_cancel_remain_on_channel_cb( wpa_s, data->remain_on_channel.freq); +#ifdef CONFIG_PR + wpas_pr_cancel_remain_on_channel_cb( + wpa_s, data->remain_on_channel.freq); +#endif /* CONFIG_PR */ break; case EVENT_EAPOL_RX: wpa_supplicant_rx_eapol(wpa_s, data->eapol_rx.src, diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 217b8dddc..0c20be22f 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -21,6 +21,15 @@ #ifdef CONFIG_PASN static void wpas_pr_pasn_timeout(void *eloop_ctx, void *timeout_ctx); + +/* Total listen window (ms) for the PASN responder ROC */ +#define PR_PASN_RESPONDER_ROC_DURATION 5000 +static void wpas_pr_pasn_roc_total_timeout(void *eloop_ctx, + void *timeout_ctx); +static void wpas_pr_schedule_responder_roc(struct wpa_supplicant *wpa_s, + unsigned int freq); +static void wpas_pr_pasn_roc_start_cb(struct wpa_radio_work *work, + int deinit); #endif /* CONFIG_PASN */ @@ -551,6 +560,12 @@ struct wpa_pr_pasn_auth_work { }; +struct wpa_pr_pasn_roc_work { + unsigned int freq; + u8 src_addr[ETH_ALEN]; +}; + + static void wpas_pr_pasn_free_auth_work(struct wpa_pr_pasn_auth_work *awork) { if (!awork) @@ -569,6 +584,169 @@ static void wpas_pr_pasn_cancel_auth_work(struct wpa_supplicant *wpa_s) } +/** + * wpas_pr_pasn_roc_work_done - Idempotent helper to complete ROC radio work + */ +static void wpas_pr_pasn_roc_work_done(struct wpa_supplicant *wpa_s) +{ + struct wpa_pr_pasn_roc_work *rwork; + + if (!wpa_s->pr_roc_work) + return; + + rwork = wpa_s->pr_roc_work->ctx; + os_free(rwork); + wpa_s->pr_roc_work->ctx = NULL; + radio_work_done(wpa_s->pr_roc_work); + wpa_s->pr_roc_work = NULL; +} + + +/** + * wpas_pr_schedule_responder_roc - Queue next ROC chunk for the responder + */ +static void wpas_pr_schedule_responder_roc(struct wpa_supplicant *wpa_s, + unsigned int freq) +{ + struct wpa_pr_pasn_roc_work *rwork; + + rwork = os_zalloc(sizeof(*rwork)); + if (!rwork) { + wpa_printf(MSG_ERROR, "PR PASN: OOM restarting ROC"); + goto fail; + } + rwork->freq = freq; + + if (radio_add_work(wpa_s, freq, "pr-pasn-roc", 0, + wpas_pr_pasn_roc_start_cb, rwork) < 0) { + wpa_printf(MSG_ERROR, + "PR PASN: Failed to reschedule ROC"); + os_free(rwork); + goto fail; + } + return; + +fail: + wpa_s->pr_responder_mode = false; + eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, wpa_s, NULL); +} + + +/** + * wpas_pr_pasn_roc_total_timeout - Total ROC budget expiry; stop responder + */ +static void wpas_pr_pasn_roc_total_timeout(void *eloop_ctx, + void *timeout_ctx) +{ + struct wpa_supplicant *wpa_s = eloop_ctx; + + wpa_printf(MSG_DEBUG, + "PR PASN: Total ROC budget expired, " + "stopping responder listen"); + wpa_s->pr_responder_mode = false; + + if (wpa_s->pr_roc_work) { + wpa_drv_cancel_remain_on_channel(wpa_s); + wpa_s->off_channel_freq = 0; + wpa_s->roc_waiting_drv_freq = 0; + wpas_pr_pasn_roc_work_done(wpa_s); + } +} + + +/** + * wpas_pr_pasn_roc_start_cb - Radio work callback to start the responder ROC + */ +static void wpas_pr_pasn_roc_start_cb(struct wpa_radio_work *work, int deinit) +{ + struct wpa_supplicant *wpa_s = work->wpa_s; + struct wpa_pr_pasn_roc_work *rwork = work->ctx; + unsigned int chunk_ms; + + if (deinit) { + if (work->started) { + /* + * ROC was already started but the work is being + * cancelled (e.g., interface removal). Cancel the + * driver ROC and clear the channel state. + */ + wpa_s->pr_roc_work = NULL; + wpa_drv_cancel_remain_on_channel(wpa_s); + wpa_s->off_channel_freq = 0; + wpa_s->roc_waiting_drv_freq = 0; + } + /* + * Clear responder state and cancel the total-budget timer + * regardless of whether the work was started or not — the + * ROC will never fire now. + */ + eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, + wpa_s, NULL); + wpa_s->pr_responder_mode = false; + os_free(rwork); + work->ctx = NULL; + return; + } + + wpa_s->pr_roc_work = work; + + /* Use max_remain_on_chan as per-chunk duration, matching DPP/P2P */ + chunk_ms = wpa_s->max_remain_on_chan; + + wpa_printf(MSG_DEBUG, + "PR PASN: Starting ROC chunk at freq %u MHz duration %u ms%s", + rwork->freq, chunk_ms, + is_zero_ether_addr(rwork->src_addr) ? "" : + " with MAC filter"); + + if (wpa_drv_remain_on_channel(wpa_s, rwork->freq, chunk_ms, + is_zero_ether_addr(rwork->src_addr) ? + NULL : rwork->src_addr) < 0) { + wpa_printf(MSG_ERROR, + "PR PASN: Failed to start ROC for responder"); + eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, + wpa_s, NULL); + wpa_s->pr_responder_mode = false; + os_free(rwork); + work->ctx = NULL; + radio_work_done(work); + wpa_s->pr_roc_work = NULL; + return; + } + + wpa_s->off_channel_freq = 0; + wpa_s->roc_waiting_drv_freq = rwork->freq; +} + + +/** + * wpas_pr_cancel_remain_on_channel_cb - ROC cancel/expiry callback for PR + */ +void wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, + unsigned int freq) +{ + wpa_printf(MSG_DEBUG, + "PR PASN: Remain on channel cancel for %u MHz", freq); + + if (!wpa_s->pr_roc_work) + return; + + wpas_pr_pasn_roc_work_done(wpa_s); + + if (wpa_s->pr_responder_mode) { + /* Total-budget timer still live — restart another chunk */ + wpa_printf(MSG_DEBUG, + "PR PASN: ROC chunk expired, " + "restarting for next chunk"); + wpas_pr_schedule_responder_roc(wpa_s, freq); + return; + } + + wpa_printf(MSG_DEBUG, + "PR PASN: ROC total timeout reached, responder done"); +} + + static void wpas_pr_pasn_timeout(void *eloop_ctx, void *timeout_ctx) { struct wpa_supplicant *wpa_s = eloop_ctx; @@ -594,6 +772,7 @@ static void wpas_pr_pasn_auth_start_cb(struct wpa_radio_work *work, int deinit) eloop_cancel_timeout(wpas_pr_pasn_timeout, wpa_s, NULL); wpas_pr_pasn_free_auth_work(awork); + work->ctx = NULL; return; } @@ -629,6 +808,37 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, { struct wpa_pr_pasn_auth_work *awork; + if (pasn_role == PR_ROLE_PASN_RESPONDER) { + struct wpa_pr_pasn_roc_work *rwork; + + rwork = os_zalloc(sizeof(*rwork)); + if (!rwork) + return -1; + + rwork->freq = freq; + + wpa_s->pr_responder_mode = true; + + if (radio_add_work(wpa_s, freq, "pr-pasn-roc", 0, + wpas_pr_pasn_roc_start_cb, rwork) < 0) { + wpa_printf(MSG_ERROR, + "PR PASN: Failed to schedule ROC for responder"); + os_free(rwork); + wpa_s->pr_responder_mode = false; + return -1; + } + + /* + * Register the total-budget timer. When it fires it clears + * pr_responder_mode so the cancel callback stops restarting + * chunks. + */ + eloop_register_timeout(0, PR_PASN_RESPONDER_ROC_DURATION * 1000, + wpas_pr_pasn_roc_total_timeout, + wpa_s, NULL); + return 0; + } + wpas_pr_pasn_cancel_auth_work(wpa_s); wpa_s->pr_pasn_auth_work = NULL; @@ -672,9 +882,55 @@ int wpas_pr_pasn_auth_rx(struct wpa_supplicant *wpa_s, int freq) { struct pr_data *pr = wpa_s->global->pr; + u16 auth_transaction; if (!pr) return -2; + + /* + * Responder path: when we are waiting for PASN M1 on the parent + * interface ROC, create the PD wdev on first receipt of Auth1 before + * handing the frame to the common layer. + */ + if (wpa_s->pr_responder_mode && + len >= offsetof(struct ieee80211_mgmt, u.auth.variable)) { + auth_transaction = + le_to_host16(mgmt->u.auth.auth_transaction); + + if (auth_transaction == WLAN_AUTH_TR_SEQ_PASN_AUTH1) { + /* + * Cancel the total-budget timer first so it does not + * fire after we have already handed off to the PASN + * layer. + */ + eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, + wpa_s, NULL); + + /* + * Cancel ROC on the listening interface; the dedicated + * PR interface (if created) will handle all subsequent + * frames. Then complete the radio work item so the + * radio is released for other operations. + * + * wpas_pr_cancel_remain_on_channel_cb() may also fire + * asynchronously when the driver processes the cancel + * request, but wpas_pr_pasn_roc_work_done() is + * idempotent (no-op if pr_roc_work is already NULL). + */ + wpa_drv_cancel_remain_on_channel(wpa_s); + wpa_s->off_channel_freq = 0; + wpa_s->roc_waiting_drv_freq = 0; + wpas_pr_pasn_roc_work_done(wpa_s); + + /* Clear responder mode */ + wpa_s->pr_responder_mode = false; + + wpa_printf(MSG_DEBUG, + "PR PASN: M1 processed, proceeding with " + "PASN"); + } + } + return pr_pasn_auth_rx(pr, mgmt, len, freq); } diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index ee40a9251..7cf29705e 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -36,6 +36,8 @@ int wpas_pr_pasn_auth_tx_status(struct wpa_supplicant *wpa_s, const u8 *data, int wpas_pr_pasn_auth_rx(struct wpa_supplicant *wpa_s, const struct ieee80211_mgmt *mgmt, size_t len, int freq); +void wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, + unsigned int freq); #else /* CONFIG_PR */ @@ -98,6 +100,12 @@ static inline int wpas_pr_pasn_auth_rx(struct wpa_supplicant *wpa_s, return 0; } +static inline void +wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, + unsigned int freq) +{ +} + #endif /* CONFIG_PR */ #endif /* PR_SUPPLICANT_H */ diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index 828795b19..85994de80 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -1681,6 +1681,7 @@ struct wpa_supplicant { struct wpa_radio_work *p2p_pasn_auth_work; #endif /* CONFIG_P2P */ struct wpa_radio_work *pr_pasn_auth_work; + struct wpa_radio_work *pr_roc_work; #endif /* CONFIG_PASN */ bool is_6ghz_enabled; @@ -1757,6 +1758,14 @@ struct wpa_supplicant { u8 pmkid_anonce[NONCE_LEN]; bool pmkid_anonce_set; #endif /* CONFIG_PMKSA_PRIVACY */ + /** + * pr_responder_mode - Waiting for PASN M1 as responder + * + * Set when ROC has been started on this interface to listen for an + * incoming PASN Auth1 frame. Cleared once the dedicated PR interface + * is created on M1 reception. + */ + bool pr_responder_mode; }; From patchwork Wed May 13 09:59:49 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237653 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=JgdxthXT; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=ZFRX9Ioj; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=dcxdUZB5; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=GO3i5SAI; 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 4gFpvV0cy4z1yJ5 for ; Wed, 13 May 2026 20:03:50 +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=htz0AtLVjWXsfUX9TmzurBjrgqqwbPSQrUn1jPfY+sU=; b=JgdxthXTYCnUV6 RIZWAmfyZ6ymvn+nVWVthZ4+Jv6rCoEUNCbLxnrr4BaH1RZu3cvfuBc4SdpFEO6NWR3P/4380GEjC Tbu6gV0kmMIkA9Ihsg4fDpgMsYI9bBSu+oumOt5DzIShO9j/JR5lTpt4x3oDhdw/5YOpoNt+IbDf8 0kLwVL2AfVbfQfLBptzYA5Ga7XiuDzaiJ60cM992prgz5zpHG3yYcFX5+U9aetEVNWgy2ieJxw6Z6 sOsxf8JbQGhNzjvGUtDaTX1mxwYpYIDGztnULFQYB2b/4ydbJZyLJ8DhWVyIuo08oYjEDYukBgoay 6aXMsKsYpD/EOa/GPftQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pc-000000022LS-0sxP; Wed, 13 May 2026 10:01:56 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PY-0000000228Z-0GTq for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:01:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=rhFM2kq5sGhNnKrOwM6biudQdn3/glIDU3W37Gewjp0=; b=ZFRX9IojrXJu0ThqqYcstN7mtT 5bL0JQjR9i+eou5ocsvLh9vi9iOs3i0augGrTGmFgOgS7tkfdEDtyfzPyEG7M3IrvLuQKIHqcgH2k erX7eeJNjyz/QRXOU0hEMVdYDu5GVHNHVmvWlqT5kjZcVh91gyLZ8nLl33jmXpXPatUPaBDqVwM+L lkPKkpD5hKe0h30F2y4cYoCj7yY2LXTm9BSR3pzWBO+F6hJPi8VddG3qBxrGOYnMInGHs98QIL9ZS W1BoM4IysqyCb87ZxsKGtbfNU4843bWystT5vvGlNbjEZ5MfWVhtVXCwZOVBbI1VVVwZKHw4WQlZx aAdg6w9g==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PS-0000000BRI8-0Rh5 for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:50 +0000 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p9d8978152 for ; Wed, 13 May 2026 10:01:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rhFM2kq5sGhNnKrOwM6biudQdn3/glIDU3W37Gewjp0=; b=dcxdUZB5yiZPl9uL GBBUle6wxmX5ewaGMcmKp6qkOFpxCxZ6v5ImpdN5QEAKJj3bD6Bp8spMwJwdLlQV uP/Z6qvM87g6GJuKliPkZNFdC028q/Nc/so1rKBgNpen1xwEYM7Js5u+LwEfuvgf 4KuEOyCuGCFyQkFbdiO8qX9md3SUwluJXwtpIPAqwz1M2nH1jRqKL3L1Llx5lPei TqxMTIQOeri+dRhCkTUhMgUptDGgUlBLCJirjDd2gdkJPl6qxuCs2CNlD8NpyaIe 6pK41cdFsur+teoq3ezBjR09Syt72Gu8VQ6FgvV6nCtbT1lLzyZTVCzsAkWVMOxq 1XrNDQ== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e46s9uqm8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:35 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c827c880e39so2209426a12.0 for ; Wed, 13 May 2026 03:01:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666494; x=1779271294; darn=lists.infradead.org; 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=rhFM2kq5sGhNnKrOwM6biudQdn3/glIDU3W37Gewjp0=; b=GO3i5SAI4UGERZMDws6NX5h7n5tnr5PJOBbRK6SCOIsmKonjYZoBUp6/thty7/9Gdl UtUgCvXeQx3MR0psYo8fBW3dFyK9fQt8hHRhiUjg09Vupc+f9W61FJPnI1LxyHa2JmxG RJJxgDh6VnOjutlY16QquQ4qG3zAK7Z9rUnJreOQaZ6Ba5f+28I5EnNGxUpSK1/lKkjv PWfe70B6d2ESkKJlPyvQu+3Nn173QjvUYNw1TCNX8/8GoS7iDTB8TpeQ5KTatNgi2i7n mns/YByFGw5fgzmJHpJ0q2hqFJ8nWDHumX/fGKQkHq/6YG6hnz8OtALK9j6QHSyXVni1 nFJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666494; x=1779271294; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rhFM2kq5sGhNnKrOwM6biudQdn3/glIDU3W37Gewjp0=; b=l61jjGDiUuBgz7PdYwTa1I4B+feU490nllHVmHZeShCk1EsYdwh7Sc52J4nFzII6CO fREZ2G7wNpNJO1TL3zbAchjMYCgV/jMoQZVyrSCkxNwf46ka++L7SGT07bunWzsBhN2+ NZSm1O2Eih94kL+suxPEll+rVAe1wn755SYqLjZaIA7gDeE3EcHfC6r66YSVOvW0HtIG ZxjPfL4IKmB77NR6zPufmWRP6X06Ahm6bROcMTUESHEI+nREkFAfb+FRbiNS00kYOBqb HAuKsORfVg5TF+aZ85YhDOjc5sUPIeS1b7N32HFcUJqvyvWJ97qI/rvE1vXAdcRdyPfk xk1g== X-Gm-Message-State: AOJu0Yzy61T1QqCe77E7nBmU5DoDx75+jNGPzdqa1LMhHFI1h5MMvYSG 61nHC5XE5gftAb0HM+8LvkaidGzJvfna+fq/rOz4gBUtKszRPecTKRmHwaPjYy/8IxRelbmkLeZ ZgxCy46wKwTKlNkybwVGZERpMM6WWHVOm4Yf1cKMTjsIuRhaGMtwpnyNMbH+/em1BthrGyltf X-Gm-Gg: Acq92OGAxme5DdOc8eoZO/v8ZertiMSJUxITvv0yFI5QZka8y/8ITkF8HRXgoIfutEU x1qjXnRJpo/+5qQ9I6G2rWHtvhn5z16plccpWKz0wULfIbRHOMKB6D9qnA7cW7cjFeVWUakvBw/ z9zeBjU+68HyjCE2wEarfk3Kl0MUDSTNw9drCnRtlkNhDOCULxZcxlrxusQmAIno3Ku1G7k4c9c m5ucUrgC7X89u1awc1A6cunoe9ZHTVBDKuszKcDNiQFrDDTXgTTys4IOfq3FhLnyRcwsENOShyT i8YAn05jaIU9srOoWR7Svh+YshEYtfFUUIaZ38gi+0ZXmcwjfDp+9ia2Bk+icLZlIij5jvfRu1H BI6k7KB4SHdpYS13oO8jlIKmAUS2fVZk5z3I6oPWPA0ZLi3lz/1lo2Q== X-Received: by 2002:a17:903:1b67:b0:2b2:5042:dd18 with SMTP id d9443c01a7336-2bd271455ecmr29352645ad.3.1778666493965; Wed, 13 May 2026 03:01:33 -0700 (PDT) X-Received: by 2002:a17:903:1b67:b0:2b2:5042:dd18 with SMTP id d9443c01a7336-2bd271455ecmr29351875ad.3.1778666493085; Wed, 13 May 2026 03:01:33 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:32 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 25/46] PR: Add dedicated PD wdev for PASN with custom MAC address Date: Wed, 13 May 2026 15:29:49 +0530 Message-Id: <20260513100010.1947710-26-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX9C51j8q8JIm2 iMnJYUoD6pbrNAcjzMoCfqupsTXS8gZ+EdyPVAUPHg3Tv0gIizx8uyiuR8ry/LdAC+moeTzl53I 4pK7GYvzFWnI0AEinWYJtHcypHk5N1nkL5X9jk6er4b5UUZJgwo21rrjQzyLFtfTDt9cI6IZ+0o 9mO4c3fZ8TcqmoRbVXAXJPFtZipK2Df0q6RL06ItToSfbu0z507lHz03R6B39IbmjROuYoJb3LX 7k3KD8v5zdS3sxCngXR+onRUxB3brOSWILf0mjXIalUJ3U9ZdHYxA7x9Y2SyiNIW04zjniSuZ8H +Y8R7M1lmbpbJujJbtoJum7ywy81Vu9PpHThil+7TYt9PNGZayy1RodhwK4vGCxCtz2pA60nzz5 /ydwOqDUmT+SG9BJAgH4DLkAlWoM2TSf7pZZynN94mw8dMzqad6mwxvR1TnguKFD4mgCgcrsVBN 3o2CZh37ewf5IsnqMxg== X-Proofpoint-GUID: fAskGG51aLKZJvCmyvViC8cRgb3iu79P X-Authority-Analysis: v=2.4 cv=L68theT8 c=1 sm=1 tr=0 ts=6a044bff cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=lgSPnHNcLRrVIgtkKNsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-ORIG-GUID: fAskGG51aLKZJvCmyvViC8cRgb3iu79P X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110146_593814_187AD162 X-CRM114-Status: GOOD ( 25.58 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy When PR PASN is triggered with a custom source address, create a dedicated PD virtual interface (WPA_IF_PD) carrying that MAC before the PASN exchange begins. For the initiator role, the PD wdev is created via wpas_pr_start_pd() before queuing the radio work. For the responder role, the ROC started on the existing interface receives the incoming Auth1 frame, and the PD wdev is created lazily on first M1 reception when a custom MAC was requested. When no custom MAC is provided both roles fall back to the existing interface. wpas_pr_pd_stop() tears down the PD wdev on completion or failure. A pd_addr field tracks the active PD wdev address and is used to route set_key and TX status operations to the correct interface. pr_responder_src_addr stores the requested MAC so it is available when M1 arrives. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/pr_supplicant.c | 125 +++++++++++++++++++++++++++++- wpa_supplicant/pr_supplicant.h | 5 ++ wpa_supplicant/wpa_supplicant_i.h | 10 +++ 3 files changed, 138 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 0c20be22f..6272c0b7c 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -514,6 +514,22 @@ void wpas_pr_deinit(struct wpa_supplicant *wpa_s) } +void wpas_pr_pd_stop(struct wpa_supplicant *wpa_s) +{ + if (is_zero_ether_addr(wpa_s->pd_addr)) { + wpa_printf(MSG_DEBUG, "PR: pd_stop: no active PD wdev"); + return; + } + + wpa_printf(MSG_DEBUG, "PR: Stopping PD wdev addr=" MACSTR, + MAC2STR(wpa_s->pd_addr)); + + wpa_drv_pd_stop(wpa_s); + os_memset(wpa_s->pd_addr, 0, ETH_ALEN); + wpa_printf(MSG_DEBUG, "PR: PD wdev stopped"); +} + + void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s) { pr_set_dev_addr(wpa_s->global->pr, wpa_s->own_addr); @@ -546,6 +562,41 @@ void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik, #ifdef CONFIG_PASN +static int wpas_pr_start_pd(struct wpa_supplicant *wpa_s, const u8 *src_addr) +{ + u8 pd_addr[ETH_ALEN]; + + if (!src_addr || is_zero_ether_addr(src_addr)) { + wpa_printf(MSG_ERROR, "PR: Invalid MAC address for PD wdev"); + return -1; + } + + if (!is_zero_ether_addr(wpa_s->pd_addr)) { + wpa_printf(MSG_ERROR, + "PR: PD wdev already active addr=" MACSTR, + MAC2STR(wpa_s->pd_addr)); + return -1; + } + + wpa_printf(MSG_DEBUG, + "PR: Creating PD wdev with MAC " MACSTR, + MAC2STR(src_addr)); + + os_memset(pd_addr, 0, ETH_ALEN); + if (wpa_drv_pd_start(wpa_s, src_addr, pd_addr) < 0) { + wpa_printf(MSG_ERROR, "PR: Failed to create PD wdev"); + return -1; + } + + os_memcpy(wpa_s->pd_addr, pd_addr, ETH_ALEN); + pr_set_dev_addr(wpa_s->global->pr, pd_addr); + + wpa_printf(MSG_DEBUG, + "PR: PD wdev created addr=" MACSTR, MAC2STR(pd_addr)); + return 0; +} + + struct wpa_pr_pasn_auth_work { u8 peer_addr[ETH_ALEN]; u8 auth_mode; @@ -628,6 +679,7 @@ static void wpas_pr_schedule_responder_roc(struct wpa_supplicant *wpa_s, fail: wpa_s->pr_responder_mode = false; + os_memset(wpa_s->pr_responder_src_addr, 0, ETH_ALEN); eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, wpa_s, NULL); } @@ -644,6 +696,7 @@ static void wpas_pr_pasn_roc_total_timeout(void *eloop_ctx, "PR PASN: Total ROC budget expired, " "stopping responder listen"); wpa_s->pr_responder_mode = false; + os_memset(wpa_s->pr_responder_src_addr, 0, ETH_ALEN); if (wpa_s->pr_roc_work) { wpa_drv_cancel_remain_on_channel(wpa_s); @@ -683,6 +736,7 @@ static void wpas_pr_pasn_roc_start_cb(struct wpa_radio_work *work, int deinit) eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, wpa_s, NULL); wpa_s->pr_responder_mode = false; + os_memset(wpa_s->pr_responder_src_addr, 0, ETH_ALEN); os_free(rwork); work->ctx = NULL; return; @@ -707,6 +761,7 @@ static void wpas_pr_pasn_roc_start_cb(struct wpa_radio_work *work, int deinit) eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, wpa_s, NULL); wpa_s->pr_responder_mode = false; + os_memset(wpa_s->pr_responder_src_addr, 0, ETH_ALEN); os_free(rwork); work->ctx = NULL; radio_work_done(work); @@ -755,6 +810,16 @@ static void wpas_pr_pasn_timeout(void *eloop_ctx, void *timeout_ctx) wpas_pr_pasn_cancel_auth_work(wpa_s); wpa_s->pr_pasn_auth_work = NULL; } + + /* + * Stop the PD wdev only after radio_work_done() has + * fully returned. Calling wpas_pr_pd_stop() from inside + * the radio-work deinit callback would trigger a re-entrant + * radio_remove_works() → radio_work_free() on the same work item, + * causing a use-after-free / SIGSEGV. + */ + wpas_pr_pd_stop(wpa_s); + wpa_printf(MSG_DEBUG, "PR: PASN timed out"); } @@ -797,6 +862,8 @@ fail: wpas_pr_pasn_free_auth_work(awork); work->ctx = NULL; radio_work_done(work); + /* Stop PD wdev after radio_work_done() to avoid use-after-free */ + wpas_pr_pd_stop(wpa_s); } @@ -810,14 +877,31 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, if (pasn_role == PR_ROLE_PASN_RESPONDER) { struct wpa_pr_pasn_roc_work *rwork; + bool has_src_addr = src_addr && !is_zero_ether_addr(src_addr); + + wpa_printf(MSG_DEBUG, + "PR PASN: Scheduling ROC at freq %d for responder role%s", + freq, has_src_addr ? " with custom MAC" : ""); rwork = os_zalloc(sizeof(*rwork)); if (!rwork) return -1; rwork->freq = freq; + if (has_src_addr) + os_memcpy(rwork->src_addr, src_addr, ETH_ALEN); + /* else rwork->src_addr stays all-zeros (no MAC filter on ROC) */ + /* + * Store state so wpas_pr_pasn_auth_rx can create the PD + * interface when M1 arrives. When no custom MAC is given the + * PD wdev is skipped and the existing interface is used. + */ wpa_s->pr_responder_mode = true; + if (has_src_addr) + os_memcpy(wpa_s->pr_responder_src_addr, src_addr, + ETH_ALEN); + /* else pr_responder_src_addr stays all-zeros */ if (radio_add_work(wpa_s, freq, "pr-pasn-roc", 0, wpas_pr_pasn_roc_start_cb, rwork) < 0) { @@ -825,6 +909,7 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, "PR PASN: Failed to schedule ROC for responder"); os_free(rwork); wpa_s->pr_responder_mode = false; + os_memset(wpa_s->pr_responder_src_addr, 0, ETH_ALEN); return -1; } @@ -839,12 +924,26 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, return 0; } + /* + * PASN initiator role: create the PD wdev if src_addr is provided, + * then queue the radio work to send M1. + */ + if (src_addr && !is_zero_ether_addr(src_addr)) { + if (wpas_pr_start_pd(wpa_s, src_addr) < 0) { + wpa_printf(MSG_ERROR, + "PR PASN: Failed to create PD wdev"); + return -1; + } + } + wpas_pr_pasn_cancel_auth_work(wpa_s); wpa_s->pr_pasn_auth_work = NULL; awork = os_zalloc(sizeof(*awork)); - if (!awork) + if (!awork) { + wpas_pr_pd_stop(wpa_s); return -1; + } awork->freq = freq; os_memcpy(awork->peer_addr, peer_addr, ETH_ALEN); @@ -856,6 +955,7 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, if (!radio_add_work(wpa_s, freq, "pr-pasn-start-auth", 1, wpas_pr_pasn_auth_start_cb, awork)) { wpas_pr_pasn_free_auth_work(awork); + wpas_pr_pd_stop(wpa_s); return -1; } @@ -870,7 +970,8 @@ int wpas_pr_pasn_auth_tx_status(struct wpa_supplicant *wpa_s, const u8 *data, { struct pr_data *pr = wpa_s->global->pr; - if (!wpa_s->pr_pasn_auth_work) + if (!wpa_s->pr_pasn_auth_work && + is_zero_ether_addr(wpa_s->pd_addr)) return -1; return pr_pasn_auth_tx_status(pr, data, data_len, acked); @@ -898,6 +999,25 @@ int wpas_pr_pasn_auth_rx(struct wpa_supplicant *wpa_s, le_to_host16(mgmt->u.auth.auth_transaction); if (auth_transaction == WLAN_AUTH_TR_SEQ_PASN_AUTH1) { + if (!is_zero_ether_addr(wpa_s->pr_responder_src_addr)) { + wpa_printf(MSG_DEBUG, + "PR PASN: M1 received in responder " + "mode, creating PD wdev"); + + if (wpas_pr_start_pd(wpa_s, + wpa_s->pr_responder_src_addr) < 0) { + wpa_printf(MSG_ERROR, + "PR PASN: Failed to create " + "PD wdev for responder"); + return -1; + } + } else { + wpa_printf(MSG_DEBUG, + "PR PASN: M1 received in responder " + "mode, no custom MAC - using " + "existing interface"); + } + /* * Cancel the total-budget timer first so it does not * fire after we have already handed off to the PASN @@ -924,6 +1044,7 @@ int wpas_pr_pasn_auth_rx(struct wpa_supplicant *wpa_s, /* Clear responder mode */ wpa_s->pr_responder_mode = false; + os_memset(wpa_s->pr_responder_src_addr, 0, ETH_ALEN); wpa_printf(MSG_DEBUG, "PR PASN: M1 processed, proceeding with " diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index 7cf29705e..747bb900a 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -17,6 +17,7 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, const struct wpa_driver_capa *capa); void wpas_pr_flush(struct wpa_supplicant *wpa_s); void wpas_pr_deinit(struct wpa_supplicant *wpa_s); +void wpas_pr_pd_stop(struct wpa_supplicant *wpa_s); void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s); void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s); void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik, @@ -56,6 +57,10 @@ static inline void wpas_pr_deinit(struct wpa_supplicant *wpa_s) { } +static inline void wpas_pr_pd_stop(struct wpa_supplicant *wpa_s) +{ +} + static inline void wpas_pr_update_dev_addr(struct wpa_supplicant *wpa_s) { } diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index 85994de80..3394ab4cc 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -1758,6 +1758,8 @@ struct wpa_supplicant { u8 pmkid_anonce[NONCE_LEN]; bool pmkid_anonce_set; #endif /* CONFIG_PMKSA_PRIVACY */ + u8 pd_addr[ETH_ALEN]; + /** * pr_responder_mode - Waiting for PASN M1 as responder * @@ -1766,6 +1768,14 @@ struct wpa_supplicant { * is created on M1 reception. */ bool pr_responder_mode; + + /** + * pr_responder_src_addr - Source MAC address used for responder ROC + * + * Stored when responder mode is activated so that the dedicated PR + * interface can be created with the same address when M1 arrives. + */ + u8 pr_responder_src_addr[ETH_ALEN]; }; From patchwork Wed May 13 09:59:50 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237676 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=WlS/tfug; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=IE2rKm/o; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=OWjk8p6o; 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 4gFqNv2kBcz1yKH for ; Wed, 13 May 2026 20:25:51 +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=rC9pjDQ3PaWuBN1sG9fSr/KHkXQGOQ6ni24fA+084Sk=; b=WlS/tfugWlm93z P3dJYpC933z2P3A+Qy6mEY9tKdNnyi9kxj8kKfH20Eo9Gs8zRpZ08CoX8FUM8PJ4wOtbkjjuLwbv7 rjWlafMXwWcOmuGWbL5sBJCy76Iirj72uSL9rXC08lsXYtJIsoMk3+fKWqCYKNfZnOFnclJq/BA1T yURsxZ/+BBM3WCFgts7uQZOpsD7/Yw5gbjHzgfZ3EYmvs/NwL9ABO1dOVdYe8CgN8cF43TsBohxTo 0QjX200jHF+eylOV70PtFaZkvokaVGntngiQodVVrQv8pOlCvwBotuwMbsjx3KfNEfiYMWTf+dF/V 0HKu2h2YeWjXvOhMCg2A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6la-00000002AYB-0qGf; Wed, 13 May 2026 10:24:38 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6lV-00000002AWL-40K2 for hostap@lists.infradead.org; Wed, 13 May 2026 10:24:37 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D6FMRv3324795 for ; Wed, 13 May 2026 10:01:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Uw+ihw788Mt GmYE9251PEMbUTifAM+dj+1nOQJa1Tac=; b=IE2rKm/oibMDy5UJk0WYmY5ykpH /0oGlSeVM6pnMmDbrJhd0QLO8Hgntxb4Y4Yd6vSai4tZtxI62K0fR/V/wn/BwpJT FigblzTBG4VH4cImUQvDIXfuTI/jZImHDIpxe1Kh7K8/arF1LMtUcbQWV3h3qwiJ 5mY90o77zxJ12GAMBP9giJXuxzCJNlDoFLsGqHDYzkr1wpjzYnOm15c3b7K4iLMu Z00pxKCVOHatbtt/wwoDQOh8FgYAaPoJ0iOOlhG/BmMPlYv1l1cqsIb9j7hojoBR JkQRD37gfzHbzJYxeSajTjtw5LYYkKwofOn93urabiMMXFQUyGo7ki5Shbg== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4kvd8wnj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:37 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2baf7748d0aso58701965ad.1 for ; Wed, 13 May 2026 03:01:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666497; x=1779271297; darn=lists.infradead.org; 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=Uw+ihw788MtGmYE9251PEMbUTifAM+dj+1nOQJa1Tac=; b=OWjk8p6oT283AqKi2gNFjBRDkp5CJIN6X5FkdimEIiZJLeAuOY8IVvHMKRyhy9Snyc vRW4CmwG0gV1tJcm3j1F6awW8EJvqUX2I8z76vxJ7qnJ5TlcbVSA+rUy4Owi/L/ICmJZ yExR0asiWWkA+4KFReu9Zd2JVfNgFKZcX1hnMXAoyK0mTGs3dhY2N3cLuhQZX7gaeDbV VkB31jcDFO+qBKgcrR1GOUGO/olEwFdq6xOK1VaGLbpkYBFe37b1oXFB+Fx4EWpfoq3n elByBe8ScLb/C5Xxokgihl/LElhN0fYPqbllwbgfEXSyovJiT0nVURje0pVmpbUmBm4I vKOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666497; x=1779271297; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Uw+ihw788MtGmYE9251PEMbUTifAM+dj+1nOQJa1Tac=; b=sI5n2+Huu2zERoeNhdN9Aecq5Zy/RG5OVFXvg/3FbN6JFnB5C7Rsu2BSurtYHLYC5j jyTRhaFD7/h5PrvDNgoctYHFXuzwEXDlU4+o3YK24z8yUltr0g0TDDo7j3IIJ5WUoYDJ TmEEsae7jxoSVgc50fGHtZHWFVunG8sNMCVmulfDZ+pR27SUQCSG5fwNWMcCfM3pEDnE GaZw6GZ7jmiE0y0GAs9+brB/jqGXPKl+C2OSHc2mPfaKGCt+vUYhX7quxeG+Wm/0vZWG d0eFTICiioJ3bphhfqcnfq9YGm+TF7PvPCxDEHgMw22UeEH2vAe3NCzXeQHXTkCbWfjK 9wew== X-Gm-Message-State: AOJu0Yz5hLNyA+xrVx2cnmkTx7glD4oMW6hSn+gWPUVHKeS/yyH/E0LR 1Xtk2T9g9xONEN/YqR1jY/DBd30Czcc7kHoPXEJYcVtnA0HvcSemCEcefIOh6wixasLf9iCMWOy zQ21Jcbjdlc8XO8apGdqqt3UTw5YgZ3Se8gtg4LSw981FVlKIOysQWC6+E5Na0M4heLnAZAlc X-Gm-Gg: Acq92OHcc58VB9D8owk1FnVy40Y1LUYcD7vQvmeMDyRwwmgFpLII55FGrf962imMlY5 0rSb6R6CWVNJKV3UicumnDAlnt33K1IS0LYeI51gEAhhlOEKkT4HH2pdxvYXhyef9ijV5fg8jBk I5I31bFf9/YQoozm7m0OIIcinN9guR9ApwOUDjOS6vwJ3/jbAp/EEtlSUIBvi0qZbPZobils/Ie HYc4wDcBG6NZxUVTr+CLrx7kdZjU6iqqFEp370MtIIVXmnb706GSKl4w71WzBJcbLfhJ7zzqY1o 8TvxnaeBlBsCXwuTAItARyvNfHBfFA/4+9EeR6A02vJvgwtjEhqxdzaIYfaR2b423gyelzrEJSv VVN9KKUnbid87hT28PJ+/3j6Mrn2vE7K6BV5sUvW63j69xBgN5+qwMA== X-Received: by 2002:a17:902:ef09:b0:2ba:5a20:1d94 with SMTP id d9443c01a7336-2bd2712211dmr31079125ad.13.1778666495953; Wed, 13 May 2026 03:01:35 -0700 (PDT) X-Received: by 2002:a17:902:ef09:b0:2ba:5a20:1d94 with SMTP id d9443c01a7336-2bd2712211dmr31078665ad.13.1778666495422; Wed, 13 May 2026 03:01:35 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:35 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 26/46] PR: Add interface to trigger PASN authentication for ranging Date: Wed, 13 May 2026 15:29:50 +0530 Message-Id: <20260513100010.1947710-27-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: Q9CSCKQUSS4jTC_n2q5LcnGLqoCGL2OO X-Proofpoint-ORIG-GUID: Q9CSCKQUSS4jTC_n2q5LcnGLqoCGL2OO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX/G7nhAMnNt/l lemsWzdRaECFuo3y2o42/MOvyWjP24x0++7n5pQrxpxY9Xpj+KK9lgjCUArohNRxfJ3HpHrG4Ql EXVuOOVTsU/WaVlcFxKGLWrgAfcTM3nRSkY3geau+ojAFFhGbjs2njmlSniLPgsmkQdIqReEXhC 2txVv4V8TuwQeem+P1wi4hcH4qd0IuDbcfdxav6SQbqP+NegPDJrDp+d3ZMBwKcwcLhtpjxDvwS wyVDpd6KbAOx2l7L0rGYrz0FTbnI67LziCQB+om/H+7DeSmqJmBLNgE7BFc/0HLbjvJu0BldjHL xaABlE6Fm/WXMLJWEnmf2P/kzeKLD2qOSR4pkTxUtR+Sj1YA71rYoVnd4cNUmgMhBzLLNRoUukV DLoKj7vJnu+yD1+xWoBG5CTrZ0wCX/lC2AiiDEhoKn4/1PAvTp7+3/Qi3J3wBsA7p9VuZ5R6Ft0 RdvGcxz0W2sEbrPZBkA== X-Authority-Analysis: v=2.4 cv=Iu0utr/g c=1 sm=1 tr=0 ts=6a044c01 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=EnMteExOYeYOfNigmcwA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_032435_988818_E781814B X-CRM114-Status: GOOD ( 21.24 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Add wpas_pr_pasn_trigger() as the entry point for initiating PASN authentication for a single peer in the PR ranging workflow. The function stores the request parameters in pr_data to track the in-pro [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add wpas_pr_pasn_trigger() as the entry point for initiating PASN authentication for a single peer in the PR ranging workflow. The function stores the request parameters in pr_data to track the in-progress session and calls wpas_pr_initiate_pasn_auth() to start the exchange. Add pr_pasn_ranging_params struct to carry per-peer PASN and ranging parameters including peer address, frequency, auth mode, ranging role and type, source address, and PASN role. pr_pasn_params is freed in pr_deinit() under CONFIG_PASN and on failure in wpas_pr_pasn_trigger(). Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.c | 3 ++ src/common/proximity_ranging.h | 22 +++++++++++ wpa_supplicant/pr_supplicant.c | 72 ++++++++++++++++++++++++++++++++++ wpa_supplicant/pr_supplicant.h | 7 ++++ 4 files changed, 104 insertions(+) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index ea229eaef..4aa8ebee0 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -149,6 +149,9 @@ void pr_deinit(struct pr_data *pr) pr_deinit_dev_iks(pr); #ifdef CONFIG_PASN + os_free(pr->pr_pasn_params); + pr->pr_pasn_params = NULL; + pasn_initiator_pmksa_cache_deinit(pr->initiator_pmksa); pasn_responder_pmksa_cache_deinit(pr->responder_pmksa); #endif /* CONFIG_PASN */ diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 2643f8534..91fa3f652 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -258,6 +258,25 @@ enum pr_attr_id { #define PR_PASN_AUTH_MODE_SAE 1 #define PR_PASN_AUTH_MODE_PMK 2 +/** + * struct pr_pasn_ranging_params - peer parameters to be used in PASN + * then to trigger ranging in case where PR PASN is successful. + */ +struct pr_pasn_ranging_params { + enum { + PR_PASN_AND_RANGING, + PR_STOP_RANGING, + } action; + u8 peer_addr[ETH_ALEN]; + u8 ranging_type; + u8 ranging_role; + u8 pr_pasn_status; + u8 auth_mode; + int freq; + u8 src_addr[ETH_ALEN]; + enum pr_pasn_role pasn_role; +}; + struct pr_dev_ik { struct dl_list list; u8 dik[DEVICE_IDENTITY_KEY_LEN]; @@ -479,6 +498,9 @@ struct pr_data { /* PMKSA cache for PASN-PMK authentication */ struct rsn_pmksa_cache *initiator_pmksa; struct rsn_pmksa_cache *responder_pmksa; + + /* PR PASN request tracking - similar to pasn_params in wpa_supplicant */ + struct pr_pasn_ranging_params *pr_pasn_params; }; /* PR Device Identity Resolution Attribute parameters */ diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 6272c0b7c..b47434eae 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -965,6 +965,78 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, } +/** + * wpas_pr_pasn_trigger - Entry point to trigger PASN authentication for PR + */ +void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, + struct pr_pasn_ranging_params *pr_pasn_params) +{ + struct pr_data *pr = wpa_s->global->pr; + + if (!pr_pasn_params) { + wpa_printf(MSG_DEBUG, "PR PASN: trigger: NULL params"); + return; + } + + if (!pr) { + wpa_printf(MSG_DEBUG, "PR PASN: trigger: PR not initialized"); + return; + } + + if (pr->pr_pasn_params) { + wpa_printf(MSG_DEBUG, + "PR PASN: auth_trigger: Already in progress"); + pr_pasn_params->pr_pasn_status = PASN_STATUS_FAILURE; + return; + } + + if (pr_pasn_params->action == PR_PASN_AND_RANGING) { + wpa_printf(MSG_DEBUG, + "PR PASN: Triggering PASN authentication for " MACSTR + " type=%u role=%u mode=%u freq=%d", + MAC2STR(pr_pasn_params->peer_addr), + pr_pasn_params->ranging_type, + pr_pasn_params->ranging_role, + pr_pasn_params->auth_mode, + pr_pasn_params->freq); + + /* Allocate and store the params to track the request */ + pr->pr_pasn_params = os_zalloc(sizeof(*pr->pr_pasn_params)); + if (!pr->pr_pasn_params) { + wpa_printf(MSG_DEBUG, + "PR PASN: Failed to allocate params"); + pr_pasn_params->pr_pasn_status = PASN_STATUS_FAILURE; + return; + } + + os_memcpy(pr->pr_pasn_params, pr_pasn_params, + sizeof(*pr->pr_pasn_params)); + + /* Initiate PASN authentication for the peer */ + if (wpas_pr_initiate_pasn_auth(wpa_s, pr_pasn_params->peer_addr, + pr_pasn_params->freq, + pr_pasn_params->auth_mode, + pr_pasn_params->ranging_role, + pr_pasn_params->ranging_type, 0, + pr_pasn_params->src_addr, + pr_pasn_params->pasn_role)) { + wpa_printf(MSG_DEBUG, + "PR PASN: Failed to initiate PASN for " MACSTR, + MAC2STR(pr_pasn_params->peer_addr)); + pr_pasn_params->pr_pasn_status = PASN_STATUS_FAILURE; + os_free(pr->pr_pasn_params); + pr->pr_pasn_params = NULL; + return; + } + } else { + wpa_printf(MSG_WARNING, + "PR PASN: Unsupported action %u, ignoring request", + pr_pasn_params->action); + pr_pasn_params->pr_pasn_status = PASN_STATUS_FAILURE; + } +} + + int wpas_pr_pasn_auth_tx_status(struct wpa_supplicant *wpa_s, const u8 *data, size_t data_len, bool acked) { diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index 747bb900a..f8b114985 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -39,6 +39,8 @@ int wpas_pr_pasn_auth_rx(struct wpa_supplicant *wpa_s, int freq); void wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, unsigned int freq); +void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, + struct pr_pasn_ranging_params *pr_pasn_params); #else /* CONFIG_PR */ @@ -111,6 +113,11 @@ wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, { } +static inline void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, + struct pr_pasn_ranging_params *pr_pasn_params) +{ +} + #endif /* CONFIG_PR */ #endif /* PR_SUPPLICANT_H */ From patchwork Wed May 13 09:59:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237636 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=4RweFkn2; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=pWXgVwJ+; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=TKE8vLOk; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=M9qqXujt; 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 4gFptW4Lyjz1yJ5 for ; Wed, 13 May 2026 20:02:59 +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=GkNga+IaYjyYEB6bmtVkOaal5B5sOiNTZNscsq6tBDA=; b=4RweFkn2mAMw1O PnMLwbr/3/cFq6h7UaXJcZkdl4poIDwovf8ehjXjv8zxbHhFHaMyNxnbOcHRjTtNz5PR8gzt9S6pQ L8hKXgEn7jreX/2UYdpg9SitQ0mhY/1aYbb0VBxCUuuTzchtDoxfRNzCpbm9bt9Zf7dZ7Sf+fh4+U 0UEdOWKvRpTA4HMuQO8MWXnuH04mmg00skrP+M3JC3NAf8Wy+PQEVk0V/UOqTAGnBCRHWl69bcNyY m/zygGRa+Hk43DRBmZV3on8jLvQHpb+sk1CKaxlLJgbsiQo0MAoaNC8kn1YV26JWGE19s+heT4myp C48vMn5Wv3Fd6LVY+K3Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q0-000000022se-3jMl; Wed, 13 May 2026 10:02:20 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pl-000000022U0-32OZ for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=R8TR+SEduhNKbpxwJIZK50E/6fbgyqtBFrPt3viCO/M=; b=pWXgVwJ+pqWF8SCQmBbviknwEN C42BU0jNmtkXFAFoAUIlBFiTDJ94rADHr9/RPudcUcwlh0H6BlESObekjl+bwZLf7wcaqXV06PErt 5k5+J1zsL8EeXW/s9MeK5Smo1RA5PR7ZJn+LuFzRHzO11ucvu13K02UaASEXXe1SugzT96NeU2z3S gTf93t0wDpYIR+y3ZqfEIpImW7JcbZJYKhvBt6N7qe8PHoPG0F2hHpvo0/PYhpIMWVTc8d/2xNulp vQDJodPswC3kVUu8XAimfyVJaTwr+ZRpoH7ZWiGLpsM5/za9yahTxzChjXT+/9HjF9XAFTkscCYUA IzCCd4LQ==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pe-0000000H4oo-45PE for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:04 +0000 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8mDQw3474757 for ; Wed, 13 May 2026 10:01:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= R8TR+SEduhNKbpxwJIZK50E/6fbgyqtBFrPt3viCO/M=; b=TKE8vLOkELsWMXjQ YHnF9xpjD+pImfxHgSdYoj8OHrkuEAhCkWWTuyrklEWsQEVRg9BQOBTMw5JliH08 n62rVwuvn6SkOQrY3r8OMHT+uoHdrf80Ed0eDBDTEPG4pATQkJPy6f7MgJS05ktE 4cajGqpYmWxSdt87xcpw2kxD2f+D8StpTYgEXT6DAQ1ZBVQeymjW70ikF3mWz9c0 6uQte5JqRzfQzV1HWbIk2dsc05gHd3ilNUWi/GDF7DI6muMBxVooGuOLjCPyhWaE JTLfG0/TA8l6ypKwU127jQrvOcYF9SpFoxSCoHfV1FPPfGKL/SkLsz4mtCtiOlBL AxEoJA== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p41899r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:39 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-365d4d2fa04so6322805a91.3 for ; Wed, 13 May 2026 03:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666498; x=1779271298; darn=lists.infradead.org; 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=R8TR+SEduhNKbpxwJIZK50E/6fbgyqtBFrPt3viCO/M=; b=M9qqXujt/Byn+ak/Z7Fz5+zRUOpDgFBcwx9r3KWPNw3r9hpEgsQYB5wViUigxUWs3/ Lh/jxlQc6G3hnq4BWX67RoOdf7unbA3ZbHObGPNZxzSxHJvm4DRKEaH8+B/YV2GfoK/2 fvMzx3Bf2pHF+8+wj41qdHBVKOpXi1nyfysiUyLk75obuW1s4ERx399dKAPq6c6AEoUe nZaWHgPOrmTsR45b5agIZjV2MvromR7Cv0RVkr0oB2SDDAc98uWe9U9uM7oayDXphv5Q 8GHg9GKQeEl6TTsIvPbkC1jvzdbjysI1C7sKopa0xxZcrKFebkjoND7FY33RrKBVg/rR 9AIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666498; x=1779271298; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=R8TR+SEduhNKbpxwJIZK50E/6fbgyqtBFrPt3viCO/M=; b=m9yAt9cokSESNuFbNL2ANqOiIzolt+j9cPiSrpx8EXMoHVAHTNOnNC4YOCdyvnv3Kg CsCu7FnTGUBHd8YIQdhyrFpwhikpgmK73mWbYeV583SW0jrdZ/XgnfVRandq2K9ZwIvO w/exlQIaZ9oY+H2vcOT60GUaiSVkOQf5yd8oTR3eWvhDNaI9wK/Rr3xaxGotUiCrJdws gA5fKB6dAmyiQOg7rkbbtRW6f+Dr9/DyNlksxa3zAqyAoTBNK+Nit79kOm+tmfcXsCNx 6u3654wdXqebC9RidrRbq+wI/fLkXknMuvc9mdcI6llmImjWbvX5RbztkxiuJnsN5950 To4w== X-Gm-Message-State: AOJu0YyXLDh1UuRotgJ3A7kF4lopsCLdcVecHoU/tLQQXJ1kt38xFInB iVv2XszjBnLrWAcPJW897t6BnkxrK2bq7hzJSZ2II/wvCDZeJwGvJ0DCW56ib6+5aUOfA6ASS7Z CbwweSy9VvhYYeHWM02dNlP5zND0biknrkizBnQUDg5anD4L5CoVtXCuw9lUHU8IsTq8cZdtD X-Gm-Gg: Acq92OHE+bkIZMf/4NkvBdy4tlJ5zvy2Y8LudiKmb4y0AB2Q/FPTAArDmHVtTnXhg7v q3KEzlubtL/TLfvWA0GJZP9I6dbY6Sz5gVmquQUgkTK7FJfmUMK4h80ACSIvXLSFLBDMza/DsRb 63SW1RFzZULHRVZynOL2J2Xc5i17LL22qjiiMo5QZOvI7UwuSEB7ll4Vr6GWmkNh8zC8Je4ocXG l1hN1qdg2eP0n7o/5J43ml6d7zuYIA74TKq6ZQnsfbTQWIUG4mRMgtRM8V1bS9MloXQWFuBsgX/ aVJBjFlDsqRUNvb0R00cwkuUuIvXfmxDkz+XXIvgn5AD3u8atYtHSM7hqNEdovDwz2nVZZ+oiQc 9SLPZ58bYBsIt9Ts3hH/P42ALSZxpiQb3VBEWjnYAXFxM02TyHuF9MA== X-Received: by 2002:a17:903:40c5:b0:2bc:a52c:c8fa with SMTP id d9443c01a7336-2bd275d5fafmr29400755ad.26.1778666498289; Wed, 13 May 2026 03:01:38 -0700 (PDT) X-Received: by 2002:a17:903:40c5:b0:2bc:a52c:c8fa with SMTP id d9443c01a7336-2bd275d5fafmr29400275ad.26.1778666497658; Wed, 13 May 2026 03:01:37 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:37 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 27/46] PR: Add PR_PASN_NEGOTIATION_STARTED event Date: Wed, 13 May 2026 15:29:51 +0530 Message-Id: <20260513100010.1947710-28-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=df+wG3Xe c=1 sm=1 tr=0 ts=6a044c03 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=ggjM2Ien4Z8pf3PZlmgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX79bwPYwgdfVp J708rzQXVYE9xWFnwwhalobF3OQ29sOndRRKsZ87T1HbtWQckfDoHBiRed8A5SKmGWPkBjDoCUq 8RrxkIbC1uTp5madXgR2AMXpD2Jxa2Aod3Cn9jrzQSWTglEWTVqUfOG6oScZsAGUy5Yn+03h52L YxEh/b4OG648HR7rM0XsmDpL86KgQXJeaGyZ56O9hNfO/lbUUPZUkgOegWd49KMykANEsaur1yf j5eL2Llq1gpy0yO48yhaXZO2VBOU4/k+vawjz8EutAR3ldoiFNyMrvKVG5zQiK0tGqEDemzPZMK oX4yuzZ7KCojJ3sctcPTqRvRRVPyxVtjJVw7/gYDkbDAv5mteIT6FYiVwohb2p1QHk+mCPcazGz bIMVeO9J6JNI+bEESTnvtHKk1QUylEf68PU8eMCkfY7YB/p4phS8c7C2oONENCPF05xpTZJUMSo Te2SwefJxz2txsPBYvw== X-Proofpoint-GUID: VZZLjznGs576-EXefIf1uJBXOeO1caey X-Proofpoint-ORIG-GUID: VZZLjznGs576-EXefIf1uJBXOeO1caey X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110159_864550_647238E0 X-CRM114-Status: GOOD ( 21.52 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: Peddolla Harshavardhan Reddy Add a new supplicant event to signal the start of PASN negotiation for proximity ranging. Fire the event at the earliest point where both peers have committed to the exchange: - Initiator: after Auth frame 1 (M1) is successfully sent - Responder: after M1 is received and Auth frame 2 (M2) [...] Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add a new supplicant event to signal the start of PASN negotiation for proximity ranging. Fire the event at the earliest point where both peers have committed to the exchange: - Initiator: after Auth frame 1 (M1) is successfully sent - Responder: after M1 is received and Auth frame 2 (M2) is sent back This allows the upper layer to know when a peer has initiated PASN on the responder side, since the ROC runs silently in the background without any prior indication. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.c | 15 ++++++++++++++- src/common/proximity_ranging.h | 13 +++++++++++++ src/common/wpa_ctrl.h | 5 +++++ wpa_supplicant/notify.c | 10 ++++++++++ wpa_supplicant/notify.h | 3 +++ wpa_supplicant/pr_supplicant.c | 11 +++++++++++ 6 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 4aa8ebee0..0ca9c95fe 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -1975,8 +1975,15 @@ int pr_initiate_pasn_auth(struct pr_data *pr, const u8 *addr, int freq, pasn->group, pasn->freq, NULL, 0, NULL, 0, NULL); } - if (ret) + if (ret) { wpa_printf(MSG_INFO, "PR PASN: Failed to start PASN"); + } else { + /* M1 sent successfully — notify that negotiation has started */ + if (pr->cfg->negotiation_started) + pr->cfg->negotiation_started(pr->cfg->cb_ctx, addr, + ranging_role, + ranging_type); + } out: wpabuf_free(extra_ies); @@ -2394,6 +2401,12 @@ static int pr_pasn_handle_auth_1(struct pr_data *pr, struct pr_device *dev, pr->cfg->set_keys(pr->cfg->cb_ctx, pr->cfg->dev_addr, dev->pr_device_addr, dev->pasn->cipher, dev->pasn->akmp, &dev->pasn->ptk); + + /* M1 received and M2 sent — notify that negotiation has started */ + if (pr->cfg->negotiation_started) + pr->cfg->negotiation_started(pr->cfg->cb_ctx, mgmt->sa, + dev->ranging_role, + dev->protocol_type); ret = 0; fail: diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 91fa3f652..a9d7ed16a 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -468,6 +468,19 @@ struct pr_config { int (*pasn_send_mgmt)(void *ctx, const u8 *data, size_t data_len, int noack, unsigned int freq, unsigned int wait); + /** + * negotiation_started - Called when PASN negotiation begins + * @ctx: Callback context from cb_ctx + * @peer_addr: MAC address of the peer + * @role: Ranging role (initiator or responder) + * @protocol_type: Ranging protocol type + * + * Fired on the initiator after Auth frame 1 (M1) is sent, and on the + * responder after Auth frame 1 (M1) is received and M2 is sent back. + */ + void (*negotiation_started)(void *ctx, const u8 *peer_addr, u8 role, + u8 protocol_type); + void (*pasn_result)(void *ctx, u8 role, u8 protocol_type, u8 op_class, u8 op_channel, const char *country); diff --git a/src/common/wpa_ctrl.h b/src/common/wpa_ctrl.h index b16790fe6..922d5f82a 100644 --- a/src/common/wpa_ctrl.h +++ b/src/common/wpa_ctrl.h @@ -494,6 +494,11 @@ extern "C" { /* PASN authentication status */ #define PASN_AUTH_STATUS "PASN-AUTH-STATUS " +/* Proximity Ranging PASN negotiation started + * peer_addr= role= protocol= + */ +#define PR_PASN_NEGOTIATION_STARTED "PR-PASN-NEGOTIATION-STARTED " + /* Result of PASN performed for Proximity Ranging * role= protocol= opclass= channel= cc= */ diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c index d0b317ee1..59fce8e9b 100644 --- a/wpa_supplicant/notify.c +++ b/wpa_supplicant/notify.c @@ -1539,6 +1539,16 @@ void wpas_notify_pr_pasn_result(struct wpa_supplicant *wpa_s, u8 role, } +void wpas_notify_pr_negotiation_started(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, u8 role, + u8 protocol_type) +{ + wpa_msg_global(wpa_s, MSG_INFO, PR_PASN_NEGOTIATION_STARTED + "peer_addr=" MACSTR " role=%u protocol=%u", + MAC2STR(peer_addr), role, protocol_type); +} + + void wpas_notify_pr_ranging_params(struct wpa_supplicant *wpa_s, const u8 *dev_addr, const u8 *peer_addr, u8 ranging_role, u8 protocol_type, int freq, diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h index f779a613a..eb4ce89a7 100644 --- a/wpa_supplicant/notify.h +++ b/wpa_supplicant/notify.h @@ -209,6 +209,9 @@ void wpas_notify_nan_nik_received(struct wpa_supplicant *wpa_s, void wpas_notify_pr_pasn_result(struct wpa_supplicant *wpa_s, u8 role, u8 protocol_type, u8 op_class, u8 op_channel, const char *country); +void wpas_notify_pr_negotiation_started(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, u8 role, + u8 protocol_type); void wpas_notify_pr_ranging_params(struct wpa_supplicant *wpa_s, const u8 *dev_addr, const u8 *peer_addr, u8 role, u8 protocol, int freq, int channel, diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index b47434eae..77e35aa1a 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -271,6 +271,16 @@ static int wpas_pr_pasn_send_mgmt(void *ctx, const u8 *data, size_t data_len, } +static void wpas_pr_pasn_negotiation_started(void *ctx, const u8 *peer_addr, + u8 role, u8 protocol_type) +{ + struct wpa_supplicant *wpa_s = ctx; + + wpas_notify_pr_negotiation_started(wpa_s, peer_addr, role, + protocol_type); +} + + static void wpas_pr_pasn_result(void *ctx, u8 role, u8 protocol_type, u8 op_class, u8 op_channel, const char *country) { @@ -433,6 +443,7 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, pr.support_6ghz = capa->support_6ghz; pr.pasn_send_mgmt = wpas_pr_pasn_send_mgmt; + pr.negotiation_started = wpas_pr_pasn_negotiation_started; pr.pasn_result = wpas_pr_pasn_result; pr.get_ranging_params = wpas_pr_ranging_params; pr.set_keys = wpas_pr_pasn_set_keys; From patchwork Wed May 13 09:59:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237656 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=S9c7q6Xg; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=qKzn3Uc1; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=nVveY1uv; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=EV72hW8x; 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 4gFpvl0wb0z1yJ5 for ; Wed, 13 May 2026 20:04:03 +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=ONDovEMHG/zTei9ZFtcr5Xe1T90vxLJuZnv/F4ls5bM=; b=S9c7q6Xg23OKQ2 gSAB3aR8fMGxcI5d7gsX4bC/y2jF/pYd/GvAmZr6rmIOI9PZ43Yd2XQkxiLREVwNVRwyp6sJ9V+D3 qpWUNfjSPsgCPdqvFdGEDMTsePTPXi0p/gt2uuC9/2MnQI5LbGRFOP7OT/zM+c4o90BJ4gN7JlZ7t 6VPTmgCztcLf2iIBTR9zwjQhzdWhrExcba4VTfwi1nrs7VP5yy7j0WzWawub2ffdVy/xo3AcgMd55 B/BjB+zva+PPVT1Xo+ezrX/2+zmWYai1m7Cz9OFoqkCG3NDplaCDJu3IKKGjCaw7RGJVoF8A3W3ws h7F36p+ISXemnFyQXZPQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pz-000000022p3-2WNV; Wed, 13 May 2026 10:02:19 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pg-000000022Rw-1LFK for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=/AeIKlXXhXV2ilJ+dRvlYSZ4QsM8YyLnt7g9EFJUdAI=; b=qKzn3Uc1IMYGEh/gEuVPOXcHgX mhTGDi3oLOWVE2umouVpHcbJXFaM7/JsIoLWKFAzCd9V2yrYgCKhKzdAWgDySu8ApwhsWr8ck09PD KsrW19y48GWLtFImBn34TJZJUfWukZZVknqMiaBov20WTaY5cPofZ+BD7urBvGX6wCmLqIXa7kiMo GQ5CZdZeKd+wxl2qFb6GySGwi4uM+fL++wcC4uol2yFVtPgzfBFa+aA0+Ebp2lttdCUitD9EH/F9d 57sGY9muG4gDweHw8r6OLzSDq0uE8obaZlGUxSusOWfvDeUZoS7EoS8nzoi61dWlEBqPjI7tx0kev FpbKSoAQ==; Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PZ-0000000BRLr-2qQb for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:59 +0000 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8rIsX4082597 for ; Wed, 13 May 2026 10:01:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= /AeIKlXXhXV2ilJ+dRvlYSZ4QsM8YyLnt7g9EFJUdAI=; b=nVveY1uvymk32dM5 ++2aQkNIHxeNmlAa3zvdDg3koF3TJAbHR+g7Nx+mtEdVljSSAsrlez0wmw4yceaV tROqYXObhkka1LsOuBSQd92XCBDRMQ0EUycXoou7NGrcCSU0xCvMq5D93pylvzca 1EkxykvLT7AwvDmV6tOQpTs8HAnSfVexaLjFW+RslK8QbNWUKIodnNFOyRd7YbOC 2KRNvvsCJ3mXIFo2XAmjQFiq4DFNbIoV91z7dJmFIEzdnh1PDnHGInmzBuATXz3E eMUlgLWeX23xF/dXcn5Brd+P87hcWxID7PbOjbuiZdVq2zIlWZeNg5loob3quV6M pGCeig== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p6e08kg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:41 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba838d3fa4so73548375ad.3 for ; Wed, 13 May 2026 03:01:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666501; x=1779271301; darn=lists.infradead.org; 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=/AeIKlXXhXV2ilJ+dRvlYSZ4QsM8YyLnt7g9EFJUdAI=; b=EV72hW8x2613x94qPkibT9LtqsCEcw1rQjawEmAHJnFTHKdIepStW3R4HMlg5ntxEi /CpeMsT39h/SA0fuEmJTv80Fc7MvCEYYQ+zHeQqZouTb2ctsXjWBFfUD8qobQyW6bIH4 s1sZj+Jf2iJnYi2/m5qsZGu/K0JXiuhXVDqPD8RI0OdtCWTKkXUYf7R9AgJvzimUM7Bw CMxn+LCNcpC16klE2fUPdAFpLcmppHyOp/ytHC8A9wFwiOPkDua/OrVYN/pDrmblMXQO DTnHtyehNIy9DsA8qFs8KsFhBBNZfcGOPFJiR0S9hQ1oZcHucHdVQGDux9na8aK0AppN 75pw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666501; x=1779271301; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=/AeIKlXXhXV2ilJ+dRvlYSZ4QsM8YyLnt7g9EFJUdAI=; b=PAMSg34u/8WFZzlpwGp1e62r/GkzDme3wohcIypcDtLFTGhVTA0zU3oOGkdT1l9o0t aduhVTT8J84cJURbhgj+zeK5fedltkNIUlXHcO4uoOj6gamSVvXWKtKezT34OpxfAtUl L4kNPRLs10d7iaaSkoUa8ODkzYrJCC4xQLnM2w4LRrIELhDxp9Lqzw0vnMlE+aQXvewN aa48JMpCeGZeTeDO58mtcycQcPXobocTc8fuS9QmeLOFh9WoSfxVTG2vLnY94EO0CLl/ NY792rTwdtpI3t19N4i2YmXfohmAbrukaRmDNnNCfhkwLHuZZ7b+nG8GyibDb+amXO/D OwYA== X-Gm-Message-State: AOJu0YzG/rmDPL+2u36jMbEa+mUOAbpyvRSJLSI1wg19LvI1y54k3gLR UJFYf5vUoa1zKwR6hO43v97m6HGHpY4GZhhdRepKmpo1DGFuLlggtMSA11qdsJPdwlk8Fuy+QR/ SRGJE0SjxDwKqXcb4W8KXU3sFETPSmEHwAHB4DJGBL1AJoQcMQFD48ZO/ose4G6Kl1Wipgnie X-Gm-Gg: Acq92OF3yskd5mUObledujohaNVmRTTL1Kd6BYrK36RJ9xj0WfqQjIJMuFYkrR7drwF Xvmg8D2dFI+wdp7e9mpTsdQbfwb1Yp09Uq/37lGI/uvYK/x951bwcLBrVPU0jyg27I6FFxmTFg/ BJNWgnnLHjmEa4HJ+N8QUXGXEMGuUXLCEfvYkYuH4kuK2+Gds7o+hjQVB0Kg0MxBZYOP41bIlXs h1WFE247lFBKkzPwABV8dSC+zpwomTbnlbomP2i8QbEluSOeKzbg0APZAScRWYCmfoonw+kP4f6 lZwurG3TaCjxyCVkKI8Hr9rsDyM0iNp7wGTiZskT8pGysfr+/sg7AJzFCYV3md/AxHSFYg3F6Rb P1L+5EBwsrpVuecwzMvTtwdFP1FOuIc6A0SA83sY5s12yQpDWdHfRsg== X-Received: by 2002:a17:903:1a8d:b0:2b7:86be:7673 with SMTP id d9443c01a7336-2bd2f4cc12dmr22143245ad.6.1778666500465; Wed, 13 May 2026 03:01:40 -0700 (PDT) X-Received: by 2002:a17:903:1a8d:b0:2b7:86be:7673 with SMTP id d9443c01a7336-2bd2f4cc12dmr22142805ad.6.1778666499872; Wed, 13 May 2026 03:01:39 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:39 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 28/46] PR: Add extended ranging parameters to PASN peer structure Date: Wed, 13 May 2026 15:29:52 +0530 Message-Id: <20260513100010.1947710-29-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: kIi0VdhCIKWXtUngPUJPzu8DSpfjpIvr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX6wqyWNHyDdq4 NMLvS2WjOwkalsd43y9Luz/zgXKzUPy0G0VXNFnc9ukRTE/LReK3YlxfTWXRcJhDz/Ot67IJ8EC YBrfKFpa53i0WJAnD0cfj5pfCMZbwBPLi/XBe9Yf8m9oAjYbxCadcJaYSYGa9si17YGJI6DbAe8 2k/R3FHZ/BmvjWBydNlKPpx6wJ6SgyHBBCihgrG647I4K7unzsbKAbjB0a/qHpXd4Ly3AMOZXop j66H8OyhDoKtWyXJQ+2N62ZrhLi+5PjNe9DCYpIIyC3c16xySqGn4D+sb230jf6YeOuWNxrUsww e+sof9xihtFMLK1BMkyV8c0VlG2BxZWxU5ffkeWvpfzmzQCT1fU+IBlzvUkmRDQRcJTF3WlgQb1 GP7vATdnWytpT0cMUkeASpRJfYLLVnxQsO981kjAXzqyrOpka20wGBqFyl6/lRStaf4126AGshy hsTFUBsjbqX0VEBMZpw== X-Proofpoint-GUID: kIi0VdhCIKWXtUngPUJPzu8DSpfjpIvr X-Authority-Analysis: v=2.4 cv=Wukb99fv c=1 sm=1 tr=0 ts=6a044c05 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=HabQEL20qxvG-eQ4iwUA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 phishscore=0 suspectscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110154_058998_3F682C4C X-CRM114-Status: GOOD ( 22.25 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Extend pr_pasn_ranging_params with EDCA, NTB, continuous ranging, and PD-specific parameters: - EDCA: burst_period, num_bursts_exp, ftms_per_burst, ftmr_retries, burst_duration - NTB: min_time_between_measurements, max_time_between_measurements, availability_window, nominal_time - PD-specific: lmr_feedback, ingress_threshold, egress_threshold, pr_suppress_results, continuous_ranging_session_time, forced_pr_freq Location: request_lci, request_civicloc Add wpas_pr_validate_ranging_request() to validate the request against device capabilities and parameter constraints before triggering PASN. Pass forced_pr_freq from params to wpas_pr_initiate_pasn_auth(). Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.h | 75 ++++++++++++++++ wpa_supplicant/pr_supplicant.c | 159 ++++++++++++++++++++++++++++++++- 2 files changed, 233 insertions(+), 1 deletion(-) diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index a9d7ed16a..3cee96133 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -275,6 +275,81 @@ struct pr_pasn_ranging_params { int freq; u8 src_addr[ETH_ALEN]; enum pr_pasn_role pasn_role; + + /** + * EDCA based ranging specific parameters + * + * @burst_period: Burst period in units of 100 ms + * @num_bursts_exp: Number of bursts exponent + * @ftms_per_burst: Number of FTM frames per burst + * @ftmr_retries: Number of retries for FTM Request frame + * @burst_duration: Burst duration as defined in IEEE 2024 std + * Table 9-322—Burst Duration subfield encoding. + */ + u16 burst_period; + u8 num_bursts_exp; + u8 ftms_per_burst; + u8 ftmr_retries; + u8 burst_duration; + + /** + * NTB ranging specific parameters + * + * @min_time_between_measurements: Minimum time between two consecutive + * range measurements in units of 100 micro seconds. + * @max_time_between_measurements: Maximum time between two consecutive + * range measurements in units of 10 milli seconds, to avoid FTM + * negotiation. + * @availability_window: Duration of the Availability Window (AW) in + * units of 1 millisecond (0-255 ms). + * @nominal_time: Nominal duration between adjacent Availability Windows + * in units of milliseconds. + */ + u32 min_time_between_measurements; + u32 max_time_between_measurements; + u8 availability_window; + u32 nominal_time; + + /** + * @request_lci: Whether to request LCI + * @request_civicloc: Whether to request civic location + */ + bool request_lci; + bool request_civicloc; + + /** + * @lmr_feedback: Negotiate LMR feedback for NTB ranging. + * Only valid when NTB ranging type is set. Required for RSTA + * to report measurement results back to the initiator. + */ + bool lmr_feedback; + + /** + * @ingress_threshold: Ingress range threshold in millimeters. + * Only valid when NL80211_PMSR_PEER_ATTR_PD_REQUEST is set. + * The kernel reports a measurement result when the device + * moves INTO this range. + */ + u64 ingress_threshold; + + /** + * @egress_threshold: Egress range threshold in millimeters. + * Only valid when NL80211_PMSR_PEER_ATTR_PD_REQUEST is set. + * The kernel reports a measurement result when the device + * moves OUT OF this range. + */ + u64 egress_threshold; + + /** + * @pr_suppress_results: Suppress ranging results for PD requests. + * Only valid when NL80211_PMSR_PEER_ATTR_PD_REQUEST is set. + * Cannot be used with range_report or lmr_feedback. + */ + bool pr_suppress_results; + + u32 continuous_ranging_session_time; + + int forced_pr_freq; }; struct pr_dev_ik { diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 77e35aa1a..f3f3ad11d 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -976,6 +976,122 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, } +/** + * wpas_pr_validate_ranging_request - Validate PR ranging request parameters + */ +static int wpas_pr_validate_ranging_request(struct wpa_supplicant *wpa_s, + struct pr_pasn_ranging_params *pr_pasn_params) +{ + struct pr_data *pr = wpa_s->global->pr; + struct pr_config *cfg; + bool is_edca, is_ntb, is_ista; + + if (!pr || !pr->cfg) { + wpa_printf(MSG_DEBUG, "PR: PR not initialized"); + return -1; + } + + cfg = pr->cfg; + + /* Peer address must not be all-zeros */ + if (is_zero_ether_addr(pr_pasn_params->peer_addr)) { + wpa_printf(MSG_DEBUG, "PR: Invalid peer address (all zeros)"); + return -1; + } + + /* Frequency must be set */ + if (!pr_pasn_params->freq) { + wpa_printf(MSG_DEBUG, "PR: Invalid frequency (zero)"); + return -1; + } + + /* ranging_type must have at least one valid bit and no unknown bits */ + if (!pr_pasn_params->ranging_type || + (pr_pasn_params->ranging_type & + ~(PR_EDCA_BASED_RANGING | PR_NTB_SECURE_LTF_BASED_RANGING | + PR_NTB_OPEN_BASED_RANGING))) { + wpa_printf(MSG_DEBUG, + "PR: Invalid ranging_type=0x%x", + pr_pasn_params->ranging_type); + return -1; + } + + /* ranging_role must have at least one valid bit and no unknown bits */ + if (!pr_pasn_params->ranging_role || + (pr_pasn_params->ranging_role & + ~(PR_ISTA_SUPPORT | PR_RSTA_SUPPORT))) { + wpa_printf(MSG_DEBUG, + "PR: Invalid ranging_role=0x%x", + pr_pasn_params->ranging_role); + return -1; + } + + is_edca = !!(pr_pasn_params->ranging_type & PR_EDCA_BASED_RANGING); + is_ntb = !!(pr_pasn_params->ranging_type & + (PR_NTB_SECURE_LTF_BASED_RANGING | + PR_NTB_OPEN_BASED_RANGING)); + is_ista = !!(pr_pasn_params->ranging_role & PR_ISTA_SUPPORT); + + /* Validate ranging type against device capabilities */ + if (is_edca) { + if (is_ista && !cfg->edca_ista_support) { + wpa_printf(MSG_DEBUG, + "PR: EDCA ISTA ranging not supported by device"); + return -1; + } + if (!is_ista && !cfg->edca_rsta_support) { + wpa_printf(MSG_DEBUG, + "PR: EDCA RSTA ranging not supported by device"); + return -1; + } + } + + if (is_ntb) { + if (is_ista && !cfg->ntb_ista_support) { + wpa_printf(MSG_DEBUG, + "PR: NTB ISTA ranging not supported by device"); + return -1; + } + if (!is_ista && !cfg->ntb_rsta_support) { + wpa_printf(MSG_DEBUG, + "PR: NTB RSTA ranging not supported by device"); + return -1; + } + + /* Secure LTF requires explicit device support */ + if ((pr_pasn_params->ranging_type & + PR_NTB_SECURE_LTF_BASED_RANGING) && + !cfg->secure_he_ltf) { + wpa_printf(MSG_DEBUG, + "PR: Secure HE-LTF NTB ranging not supported by device"); + return -1; + } + + /* min must not exceed max time between measurements */ + if (pr_pasn_params->min_time_between_measurements && + pr_pasn_params->max_time_between_measurements && + pr_pasn_params->min_time_between_measurements > + pr_pasn_params->max_time_between_measurements * 100) { + wpa_printf(MSG_DEBUG, + "PR: min_time_between_measurements=%u > max=%u (units: 100us vs 10ms)", + pr_pasn_params->min_time_between_measurements, + pr_pasn_params->max_time_between_measurements); + return -1; + } + } + + /* lmr_feedback is only valid for NTB ranging */ + if (pr_pasn_params->lmr_feedback && !is_ntb) { + wpa_printf(MSG_DEBUG, + "PR: lmr_feedback is only valid for NTB ranging"); + return -1; + } + + wpa_printf(MSG_DEBUG, "PR: Ranging request validation successful"); + return 0; +} + + /** * wpas_pr_pasn_trigger - Entry point to trigger PASN authentication for PR */ @@ -1001,6 +1117,13 @@ void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, return; } + /* Validate request before proceeding */ + if (wpas_pr_validate_ranging_request(wpa_s, pr_pasn_params) < 0) { + wpa_printf(MSG_DEBUG, "PR PASN: Request validation failed"); + pr_pasn_params->pr_pasn_status = PASN_STATUS_FAILURE; + return; + } + if (pr_pasn_params->action == PR_PASN_AND_RANGING) { wpa_printf(MSG_DEBUG, "PR PASN: Triggering PASN authentication for " MACSTR @@ -1023,12 +1146,46 @@ void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, os_memcpy(pr->pr_pasn_params, pr_pasn_params, sizeof(*pr->pr_pasn_params)); + /* Log EDCA parameters if applicable */ + if (pr_pasn_params->ranging_type & PR_EDCA_BASED_RANGING) { + wpa_printf(MSG_DEBUG, + "PR PASN: EDCA params - burst_period=%u num_bursts_exp=%u " + "ftms_per_burst=%u ftmr_retries=%u burst_duration=%u", + pr_pasn_params->burst_period, + pr_pasn_params->num_bursts_exp, + pr_pasn_params->ftms_per_burst, + pr_pasn_params->ftmr_retries, + pr_pasn_params->burst_duration); + } + + /* Log NTB parameters if applicable */ + if (pr_pasn_params->ranging_type & (PR_NTB_SECURE_LTF_BASED_RANGING | + PR_NTB_OPEN_BASED_RANGING)) { + wpa_printf(MSG_DEBUG, + "PR PASN: NTB params - min_time=%u max_time=%u " + "aw=%u nominal_time=%u", + pr_pasn_params->min_time_between_measurements, + pr_pasn_params->max_time_between_measurements, + pr_pasn_params->availability_window, + pr_pasn_params->nominal_time); + } + + /* Log location request parameters */ + if (pr_pasn_params->request_lci || + pr_pasn_params->request_civicloc) { + wpa_printf(MSG_DEBUG, + "PR PASN: Location requests - LCI=%d CivicLoc=%d", + pr_pasn_params->request_lci, + pr_pasn_params->request_civicloc); + } + /* Initiate PASN authentication for the peer */ if (wpas_pr_initiate_pasn_auth(wpa_s, pr_pasn_params->peer_addr, pr_pasn_params->freq, pr_pasn_params->auth_mode, pr_pasn_params->ranging_role, - pr_pasn_params->ranging_type, 0, + pr_pasn_params->ranging_type, + pr_pasn_params->forced_pr_freq, pr_pasn_params->src_addr, pr_pasn_params->pasn_role)) { wpa_printf(MSG_DEBUG, From patchwork Wed May 13 09:59:53 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237624 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=r0etpRBY; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=dUikhuWO; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=GJAE/x7U; 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 4gFpsp00dnz1yJ5 for ; Wed, 13 May 2026 20:02:21 +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=Bf/92V1BuLM/w/aFeYLen4hQipzj+jstZ2ye711Mg4g=; b=r0etpRBY/yGLVx cZcMOkA6ejtB16odz8WIHwpT+qNWepzllPBBVNfVHrKfcFgRuqzIRBhO22Hskd+fmBjX2XCiertMN u0K7fXxeh9u4er6O+da7INOLCgm6zwBV8Y83+fejrWJTN9sSYpNPnkgkQFRzomonZEQgt2+iH1ZA3 aOC6zCqgJXipxFtd5oVf02hy6ha8nTQsktku2Zy1TZoe1s8mn2tuPB4936pA3k642C6CrSqdTEpg2 hTygtwL53A/4FcRJM1VuP3B8plctfoDLxz8ATEZN+Y5cDR9kwdkDjdFko1PebwWS//5cev+U3+dcp ulpZrJIGEH533oknR7Lg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pa-000000022HB-1QAb; Wed, 13 May 2026 10:01:54 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PS-0000000221F-2gmJ for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:51 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D6FLBg3324708 for ; Wed, 13 May 2026 10:01:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=yW+FMU8Dhb0 cZ7/1MG0a3FZjr2bxFe2TykFzmG5ug7M=; b=dUikhuWOHwp16TOviWDvefaF9AZ y0MExh0s4WUe/tErdxr/8J0ax7Kxv1chdIQsT9QgNmIL7YPEy8rdtq4Se0Eumk2o A0y+LL4vHczu5hCkGtcaKE83dVqftS508aOR7hlciMlTURQ+KtMv2Y3UCgScH3hd eB80M+oYQItDUyA8MUmFIj4ftuWtU82FjQjfSZjNH1pfiEh0g1EgqD18GYB54+7J CSdHzeYxbz9O2CTTcdADwrm6JUWt/vgvdtZ8XtV6xXz8Zm+l2VnOaPa47hu3NxgO zWNX7m9BVHG90BVPcD6FxncRb6cmGxIXqVJXvc8ryPRByGj5NfjqdTDI/0Q== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4kvd8wnx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:44 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2ba86e35aa1so102721645ad.1 for ; Wed, 13 May 2026 03:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666503; x=1779271303; darn=lists.infradead.org; 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=yW+FMU8Dhb0cZ7/1MG0a3FZjr2bxFe2TykFzmG5ug7M=; b=GJAE/x7UVRKRQEcIXgtmBFrNSrQ9+jHT7iV9u32WTWHRsYN+cvQ/RoUcZN+LHLImXl /Wf4KUW48eGwOlmVFIE+x8k2NRvkiuVO0XmEx+y3XlQ2SPJReEemT/eWpdq+JQcwbsTd Dcf7O/jg9H+faXKGMcod2nGjxMX6Xy7sDvM4/orR23hkvvPpuZ8qt4q+JhlHi7KfmUAr 1yjiKjqsF7bu5vIUI8axen4onGhwM4+WKSKKpCZfnPsOHimik0o7+XYhyCN1Bp7G57zV ia8YnbhX0E1kohQl3LXwlfkou0SGf9aPN3VgQGUrVJ4VBxphSwsud0jqqKMc4pCelIfY mwEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666503; x=1779271303; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yW+FMU8Dhb0cZ7/1MG0a3FZjr2bxFe2TykFzmG5ug7M=; b=E7UfBctA3TOI2ncSyNJVNbKdihSuyQnGvRBnxqDhtLypX7xL90/g/gW0kebPsmKBGY qqvdNEEXfXePhBBdiX7GdKjRsIPr6OPi6RkhNvTNZnVnfLYC44ECvcozoE86Whdx37i6 MZyCDa3nPPiVvLPVhZLl2+UC/yJCpcB0rQCjWF9b225SukoHbtTnJiK0GETV+JyHYFRD b1cB45QRRpb/udemhOVgZ7ZxulSfG+x1RCfMQiYiGQLm5Cvr3XaNnvGjsGBaRiZpgCGO rHjJDYULUTHNUS9z0t2fMdl6HBwiDbgoo/S8SQbRhQ2VOh8ScgxXqFZW6DeFbtOMdqyS 4M4w== X-Gm-Message-State: AOJu0YzUUdSuBqHevl8FzKTvJJNrDADCbBAOQP3B9ZyLSPupIQYcfg11 BdIpwsSXRyKphxs0Ldg7TokzH8sQdOUq8ele+sr44u2Psipl5HxR2dQeqG3s297c0MWBHaXHl1N ZsoWpC3qOiVoLlf2qr2QZVnKaAPSN3gndP4ZOIlo/vjbgjzK3jneOF/8NTbdSoSM5OiRllTbX X-Gm-Gg: Acq92OFrv1lD1/vvzxZQkgPvK2JQJbilRi1Czos9+3eFhIDFxuF3TYP75wMnVH7V3WW 9mQKY7z1gDp7gSZojk6GUdN1WbIkeaLWz5lfoSGaMQiMuvAzzPx6l3fVCdbVK3ukQW+mSX1t/4Q OlO4bCyk1LgPqgdqQlnK063ldPdBBbmTITJ12Y3X0HdXQl+9XjdbAlD2v6YbQpzZbVSPQCZP/2z 4JqiJ/WsPn0MOUCbWUmbn8qpLlE778Xk6jTC0cnPIkHJ3FMdkjRfiDJDY1wnCLy/G2wCK4/HV9f 5TVUMWKMfR+PFMz6axixePttO3E/mTOthCMc5t/WHLtXSX3sND1gmgfW2+OVcuT+R6HXAaOhZw+ hDBer6AH5RJFRa4iLzonYKt//Waz6DxJAykaZQrzoHzn+LNT63rzkJQ== X-Received: by 2002:a17:903:198c:b0:2bc:a577:70c2 with SMTP id d9443c01a7336-2bd276e9861mr33997085ad.31.1778666502923; Wed, 13 May 2026 03:01:42 -0700 (PDT) X-Received: by 2002:a17:903:198c:b0:2bc:a577:70c2 with SMTP id d9443c01a7336-2bd276e9861mr33996635ad.31.1778666502359; Wed, 13 May 2026 03:01:42 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:41 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 29/46] PR: Use op_class_to_bandwidth() in wpas_pr_ranging_params() Date: Wed, 13 May 2026 15:29:53 +0530 Message-Id: <20260513100010.1947710-30-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: zs_mbEePrTMmaD-6IWsHhxCPZcL9DGC9 X-Proofpoint-ORIG-GUID: zs_mbEePrTMmaD-6IWsHhxCPZcL9DGC9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXw3VKXD28vWnx O3oSrgEMs0yEZ0/dmpEM69gFrhHSydOJ41Jvu195Odg8NKrAtM8C2B05vSyjsPj30jJbjtib2Ci Yu8F/NxZe0vuSciEIWcC17l9qAuXDafN5kupZ5j5VRMobHFXVix419YJ10DZmk3uP7X/lA0LvLJ nP4FnicJc41IhDLCTbEpde6nohxlaVAKO3W3fTJEqu7h3URK6w0ROmgoncotIw46zN6HMHNgAKJ lAz2ilyqsFv2mje73MlLXY1G5NwH02PkZMQxIDsXPNLqgiuxQR3gaZIfOaaT9xEuGak8qXM8h7N 0syAGSCCjQyF5Id1emr5vd/a7i8eBgUvvBidQZ2FRmfO+UUh+Kf5NQSKsa91tTXZ3p28VZZTsUh QyYIK1dYx5qCnVSF5ykT2ciew+GIgWjwC+z3hJbrwxf+nMRAPQEO+g6QKk2AW+wndM9Z93dAHF9 y5uoB1mXe9MRhtwAQvQ== X-Authority-Analysis: v=2.4 cv=Iu0utr/g c=1 sm=1 tr=0 ts=6a044c08 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=E4FyMVKsbN1YmFMLC84A:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030146_882082_121160DF X-CRM114-Status: GOOD ( 13.69 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Replace oper_class_bw_to_int(get_oper_class(NULL, op_class)) with the simpler and more direct op_class_to_bandwidth(op_class) which achieves the same result without the intermediate get_oper_class() l [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Replace oper_class_bw_to_int(get_oper_class(NULL, op_class)) with the simpler and more direct op_class_to_bandwidth(op_class) which achieves the same result without the intermediate get_oper_class() lookup. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/pr_supplicant.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index f3f3ad11d..f1120c8a2 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -299,7 +299,7 @@ static void wpas_pr_ranging_params(void *ctx, const u8 *dev_addr, struct wpa_supplicant *wpa_s = ctx; int bw, format_bw, freq; - bw = oper_class_bw_to_int(get_oper_class(NULL, op_class)); + bw = op_class_to_bandwidth(op_class); format_bw = self_format_bw < peer_format_bw ? self_format_bw : peer_format_bw; freq = ieee80211_chan_to_freq(NULL, op_class, op_channel); From patchwork Wed May 13 09:59:54 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237654 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=WaSCwdCA; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=uEwRSJLc; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=eNAlK/a6; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=RzTxwxKC; 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 4gFpvg3v9nz1yLT for ; Wed, 13 May 2026 20:03:59 +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=e75tmgbRyxkCXSU3B+bmCFqBqZzil1f93ZIpoyRlt1Y=; b=WaSCwdCAbwO/lP Bj4DeaW1eGKyqN/8yoAOGjXSNDxEqQ8B7mL1a+WqWDL4awr3HHEIj12/nIYzj9mPIdijhEaQB2eoV SIwY7jrf3sDQ32VLMk4URziGSywFjVwQMi5ME4TN3HyUEhHaUW6v9zOVCfNfdA6ky1IRK9bsK0UIi 8AqSxo3hHUKhqkP78a+dBjakNrzX2hN1HcRsqLxCyjIBUjdA8fOJDG2hJzQi7NBmuS6PqOaGvcOQC 4bSL3LlPwCcVVJrx0JpXg2uaAdtjHRDCNTlcUsChgu/6z5O/IkjBryzj0hxFE9e9o1f8iEPLT8l/l hncMJKKy+QX53BVcaHxg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pu-000000022gH-0US4; Wed, 13 May 2026 10:02:15 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pk-000000022Tk-38FH for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=hxsYLIJ80JgRR3A47OwmBbPJn9O40jcXsWUq6O3xj90=; b=uEwRSJLcy34oFZ2l9zdkjQosDu rRAJS20IEDy+8NdC7X8zNE7Hq9rBi/xa0AiDe+355aIAJlUsPujfp19HBQ8DPGal9OFfMbtK9NFvm HusLs77khEjSc3hmieQVoYS3shVPJLQyStu0ObmbBinwudjFOzwzxJDV67U1MEmuM5nwAn2wrlfpx Jwsim6kSXi71uJ/lD7QlhoXDcBlMgiWqD9CY1GGzsEoykXx+7TRHEzWVsHxjHE2tkCawJwPkliBIs mrT4+WAsLx/j4Gd4vDM52tXhurk9K9s1oE8YmW/vTlnLc0wYE9TsHtfYE4r6HuOfVev1Xn6eAvyBC isUXI6nA==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pf-0000000BRPE-1ni2 for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:03 +0000 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8mBHA3474744 for ; Wed, 13 May 2026 10:01:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=hxsYLIJ80Jg RR3A47OwmBbPJn9O40jcXsWUq6O3xj90=; b=eNAlK/a6ZQXxYv4+wAcyoqNWKJu 8evgis7mkLkb1GTVZs1+CnsAL2YqpfFqZRHjaALKcmcBFNRufGUdPPGnliCaWerx j1nud7qkxzHaIxdMr+GmJa5SrYxrqLi5DqIQTzewNgoWHXwbFJUMja5pTtPDXcWm ssECxQhn2cx03HyQziUIKKgUm7uvn59odzHRZLKzgfJlarZTDQm7GfjcaponZQb9 aBUBtwtHZRbT0rS6sP6MtUtnX7Ct29y46KeDdHh8rriXYVOQ2e+b9Mm5jEBGahrD LZRX4XQXVXIWGoT09bIbmKR26gLE4abz73vTImgtOSKlj7AFlgRNGgGFnWQ== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p4189a8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:47 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-365d4d2fa04so6322947a91.3 for ; Wed, 13 May 2026 03:01:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666506; x=1779271306; darn=lists.infradead.org; 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=hxsYLIJ80JgRR3A47OwmBbPJn9O40jcXsWUq6O3xj90=; b=RzTxwxKCn0okQg3jDn5eExCjjxFzcoM+5CSzdOw6P8Xk4Jhpfll0Dr1jy+DCcr2wVv yC+Mvy/jwlebAKWUepBMHW9xJ33+jH8rnOIOcjRvUl65Lz+dJhGEVQIhVH2BI7UhN2lJ Qj09Xlkq7RPbhrtcntsIvDFKVqNasqOiJCLoRFytlh9PLFyV1FOcN6Io1XZKnErGt9+w 3BquFsxg6DdubUcLnhWqeDGMfydLMDAJliRlQI12JrTEPJZhpl/F5wPTFwgAsuwMRsga 7aeFyuW1IVPQZe7m/gl9nOB+8lEFk95+T/ZyVtrvSbaHjJY5E+xSnTbyntrYDNJbrBoa pEbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666506; x=1779271306; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hxsYLIJ80JgRR3A47OwmBbPJn9O40jcXsWUq6O3xj90=; b=bSkp+02ALzSSgPCBll05nLWsrEDdijOCeiktsmG3jvYcVIu05P+Qx1iGyjAAnqGeqP qUzXc04rtv4L/LCHuPyoGtRtGtOtJp4/32fqxwpe+Mm/BenYddBr8gT5IVZau8JycXCn 0L4+Z5iotvw2NBKVvY/xMtIjGhEoccPHfWZeFItmQaY+u4Uc1IimPqVIdmNW2WuO+ZxI /ZTHYBLj5/uhG1+Q5ayGJ6Vbss6QeY4WpoKD1hsuHWBiUVOEFgyHtfthI5pCf6q3+aaF Crq6CYOujI5vxr1tmtkn4mWnCaSIqVKCMWrvtDL3TzVi3DWDoiuIQNdMwwVUlie4l4FJ T+QQ== X-Gm-Message-State: AOJu0YzJgH9rwdc3VT/NuwVYz0JQucgWf+T7nn0WzmAp02di/BJ4FO6+ bgJBNCZSEmfvUS1rSQq09O714b+iSnzqoMjrrV40QX1jmLjOneBwZGxsVJH3S0rPuf01tDM6kHo nP64ByT3nHfySL57ra1Z4ODFgRSLYnI2kGHY/iSGG3c9FTO54RgzRmH5SKEIX5Zd/0vJeA9tK X-Gm-Gg: Acq92OHfary64/Qe681SZULzA0AhCd2UtuJxhLp9gftoTmiIWj9EccfQ29cJ8eTNt9J UB+X2STZtsLPenLhQjlKOwTE5+cmdWNnqeME1sWnyJT11rjnfkgrMZu0HUCkmkFJT8t3HAGXpgB Jua1pCvSvupH/sLQ3i1LfyuEC4VKldO7KUXC0N1Ch9eqqXmATdwCEgxjCnq7LP0QX+G//2xNvBR rqmhdS9J+ocfWgcKLRqWgtis58em7EZVZkFvjITaAYGNy/PAUUWN4xqVHTplkm+gRyzvGjhrrF0 q4T0lXyqRIO/I3o/CpFsZB8kAACY8LlYGAMRSHsrgpSwNqdz+bv0HdHy85XHYdBBaeFRHppGYoW g7gegJucFwcaDwMbkuFBoB0GtoOFpE2/Jtfcn/qufCZxf9fKm0RNpZQ== X-Received: by 2002:a17:90b:3845:b0:368:1064:62f2 with SMTP id 98e67ed59e1d1-368f3bd83ecmr2925234a91.3.1778666505395; Wed, 13 May 2026 03:01:45 -0700 (PDT) X-Received: by 2002:a17:90b:3845:b0:368:1064:62f2 with SMTP id 98e67ed59e1d1-368f3bd83ecmr2925163a91.3.1778666504578; Wed, 13 May 2026 03:01:44 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:44 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 30/46] nl80211: Add peer measurement support for proximity ranging Date: Wed, 13 May 2026 15:29:54 +0530 Message-Id: <20260513100010.1947710-31-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=df+wG3Xe c=1 sm=1 tr=0 ts=6a044c0b cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=3eZP8V7nN18rKMMdersA:9 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXzXWUZkb0RhFh deToNCRgpEvT3fPrzN9XUlYmkrdQjisyjG0Rxwr2ZaF90wOZWqD73ql1kz6Of0vl/AwTbihm97b VuCBPAMd5adl2UBsT3f884GpuBrx7CW9HSieRoy2hFc408Ej3Ofd/VE3Bf+OGBpAuBewTeYeSkE f8YjT4xpF9J19YuHk/FBQ13zqIbK8BwCdDi1fX8TYInk+0eeQXt+DBXieePKixxo/8VqO7XkkkC puEj4ad9KhOR4HnTcQbZoJUEqC6g5Pv2Z2t+R6SwsuNHJAtpD6WRqNyb7kHv09VWPUiWHY3RZRd ZQmJ6n5Rs8h3vlCzHM7OWV99BfUzWvw6/ox362f9Qjb0+nzv6OMsN/Qrs8Pfb9CJyx2ekLF0hk1 IPt2IfQnKHqK7KvWuYf0tSkGKsIJ7Nmz9ZX8It6neZJgu/br9wlEm5BML/1IK3eh258k9HWXhMp ctiHm0VN/FmHqs9y0dA== X-Proofpoint-GUID: F49QBSVgQ-2CCYz1UMxDr_fRF5t-0hnx X-Proofpoint-ORIG-GUID: F49QBSVgQ-2CCYz1UMxDr_fRF5t-0hnx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110159_711123_427FC953 X-CRM114-Status: GOOD ( 24.95 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add nl80211_start_peer_measurement() to build and send NL80211_CMD_PEER_MEASUREMENT_START for FTM-based proximity ranging after successful PASN authentication. The function constructs nested nl80211 attributes for channel configuration, preamble selection, and EDCA/NTB-specific FTM parameters, and routes the command via the PD wdev when src_addr matches the active PD wdev. Add wpas_pr_trigger_ranging() as the entry point called from the wpas_pr_ranging_params() callback after PASN completes. It derives center frequencies and channel width from the operating class via wpas_pr_op_class_to_chan_params() and calls the driver op. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.h | 7 + src/drivers/driver.h | 20 +++ src/drivers/driver_nl80211.c | 302 +++++++++++++++++++++++++++++++++ wpa_supplicant/driver_i.h | 16 ++ wpa_supplicant/pr_supplicant.c | 185 ++++++++++++++++++++ 5 files changed, 530 insertions(+) diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 3cee96133..b8e49ab77 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -273,6 +273,7 @@ struct pr_pasn_ranging_params { u8 pr_pasn_status; u8 auth_mode; int freq; + u32 ranging_timeout; u8 src_addr[ETH_ALEN]; enum pr_pasn_role pasn_role; @@ -350,6 +351,12 @@ struct pr_pasn_ranging_params { u32 continuous_ranging_session_time; int forced_pr_freq; + u8 ranging_op_class; + u16 channel_width; /* channel width in MHz (20/40/80/160/320) */ + u8 format_bw; + u32 center_freq1; + u32 center_freq2; + u64 cookie; }; struct pr_dev_ik { diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 375ac7da2..ee710fad8 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -30,6 +30,7 @@ struct nan_subscribe_params; struct nan_publish_params; +struct pr_pasn_ranging_params; #define HOSTAPD_CHAN_DISABLED 0x00000001 #define HOSTAPD_CHAN_NO_IR 0x00000002 @@ -5845,6 +5846,25 @@ struct wpa_driver_ops { struct hostapd_multi_hw_info * (*get_multi_hw_info)(void *priv, unsigned int *num_multi_hws); +#ifdef CONFIG_PR + /** + * start_peer_measurement - Start peer measurement (FTM ranging) + * @priv: Private driver interface data + * @peer_addr: Peer MAC address + * @freq: Operating frequency in MHz + * @channel: Operating channel number + * @bw: Channel bandwidth in MHz + * @params: Ranging parameters (EDCA/NTB specific) + * Returns: 0 on success, -1 on failure + * + * This function triggers peer measurement (FTM ranging) after + * successful PASN authentication for proximity ranging. + */ + int (*start_peer_measurement)(void *priv, const u8 *peer_addr, + int freq, u8 channel, int bw, + struct pr_pasn_ranging_params *params); +#endif /* CONFIG_PR */ + #ifdef CONFIG_NAN /** * nan_start - Start NAN operation diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 8397dc5ce..8af3efe98 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -41,6 +41,7 @@ #include "radiotap_iter.h" #include "rfkill.h" #include "driver_nl80211.h" +#include "common/proximity_ranging.h" #ifndef NETLINK_CAP_ACK @@ -9276,6 +9277,306 @@ static int i802_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, 0, NULL, 0, 0, link_id); } +#ifdef CONFIG_PR + +static u8 get_pr_preamble(u8 ranging_type, u8 format_bw) +{ + /* Determine preamble based on ranging type and format_bw */ + if (ranging_type & PR_EDCA_BASED_RANGING) { + /* EDCA format_bw maps to different preambles */ + switch (format_bw) { + case EDCA_FORMAT_AND_BW_HT40: + return NL80211_PREAMBLE_HT; + case EDCA_FORMAT_AND_BW_VHT20: + case EDCA_FORMAT_AND_BW_VHT40: + case EDCA_FORMAT_AND_BW_VHT80: + case EDCA_FORMAT_AND_BW_VHT80P80: + case EDCA_FORMAT_AND_BW_VHT160_DUAL_LO: + case EDCA_FORMAT_AND_BW_VHT160_SINGLE_LO: + return NL80211_PREAMBLE_VHT; + default: + return NL80211_PREAMBLE_VHT; + } + } else if (ranging_type & (PR_NTB_SECURE_LTF_BASED_RANGING | PR_NTB_OPEN_BASED_RANGING)) { + /* NTB format_bw all use HE preamble */ + return NL80211_PREAMBLE_HE; + } + + /* Default fallback */ + return NL80211_PREAMBLE_VHT; +} + + +/** + * nl80211_start_peer_measurement - Send NL80211_CMD_PEER_MEASUREMENT_START + */ +static int nl80211_start_peer_measurement(void *priv, const u8 *peer_addr, + int freq, u8 channel, int bw, + struct pr_pasn_ranging_params *params) +{ + struct i802_bss *bss = priv; + struct wpa_driver_nl80211_data *drv = bss->drv; + struct nl_msg *msg; + struct nlattr *pmsr_attr, *peers_attr, *peer_attr, *chan_attr, *req_attr, *ftm_attr; + struct nlattr *data_attr; + int ret = -1, center_freq1 = 0, center_freq2 = 0; + struct nl80211_ack_ext_arg ack_arg; + enum nl80211_chan_width width; + u32 preamble; + u64 cookie; + + if (!peer_addr || !params) { + wpa_printf(MSG_ERROR, "nl80211: Invalid parameters for peer measurement"); + return -1; + } + + /* Route via PD wdev if src_addr matches */ + if (drv->pd_bss && !is_zero_ether_addr(params->src_addr) && + ether_addr_equal(params->src_addr, drv->pd_bss->addr)) { + wpa_printf(MSG_DEBUG, + "nl80211: Peer measurement routed via PD wdev addr=" MACSTR, + MAC2STR(drv->pd_bss->addr)); + bss = drv->pd_bss; + } + + wpa_printf(MSG_DEBUG, + "nl80211: Start peer measurement for " MACSTR " freq=%d ch=%u bw=%d", + MAC2STR(peer_addr), freq, channel, bw); + + /* Use center frequencies from params (calculated in wpas_pr_trigger_ranging) */ + center_freq1 = params->center_freq1; + center_freq2 = params->center_freq2; + + /* channel_width is in MHz */ + switch (params->channel_width) { + case 20: + width = NL80211_CHAN_WIDTH_20; + break; + case 40: + width = NL80211_CHAN_WIDTH_40; + break; + case 80: + width = NL80211_CHAN_WIDTH_80; + break; + case 160: + width = NL80211_CHAN_WIDTH_160; + break; + case 320: + width = NL80211_CHAN_WIDTH_320; + break; + default: + wpa_printf(MSG_ERROR, "nl80211: Unsupported channel width %u MHz", + params->channel_width); + return -1; + } + + wpa_printf(MSG_DEBUG, + "nl80211: Using center_freq1=%u, center_freq2=%u, width=%d", + center_freq1, center_freq2, width); + /* + * PD interfaces are non-netdev (ifindex=0); use nl80211_cmd_msg() + * which emits NL80211_ATTR_WDEV instead of NL80211_ATTR_IFINDEX. + */ + msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_PEER_MEASUREMENT_START); + if (!msg) + return -1; + + /* Add timeout if specified */ + if (params->ranging_timeout > 0) { + if (nla_put_u32(msg, NL80211_ATTR_TIMEOUT, params->ranging_timeout)) + goto fail; + wpa_printf(MSG_DEBUG, "nl80211: Added timeout %u ms", params->ranging_timeout); + } + + /* Add peer measurements attribute */ + pmsr_attr = nla_nest_start(msg, NL80211_ATTR_PEER_MEASUREMENTS); + if (!pmsr_attr) + goto fail; + + /* Add peers array */ + peers_attr = nla_nest_start(msg, NL80211_PMSR_ATTR_PEERS); + if (!peers_attr) + goto fail; + + /* Add single peer */ + peer_attr = nla_nest_start(msg, 0); + if (!peer_attr) + goto fail; + + /* Peer MAC address */ + if (nla_put(msg, NL80211_PMSR_PEER_ATTR_ADDR, ETH_ALEN, peer_addr)) + goto fail; + + /* Add proximity detection request type */ + if (nla_put_u32(msg, NL80211_PMSR_PEER_ATTR_REQ_TYPE, + NL80211_PMSR_FTM_REQ_TYPE_PD)) + goto fail; + + /* Channel information */ + chan_attr = nla_nest_start(msg, NL80211_PMSR_PEER_ATTR_CHAN); + if (!chan_attr) + goto fail; + + if (nla_put_u32(msg, NL80211_ATTR_WIPHY_FREQ, freq) || + nla_put_u32(msg, NL80211_ATTR_CHANNEL_WIDTH, width) || + nla_put_u32(msg, NL80211_ATTR_CENTER_FREQ1, center_freq1)) + goto fail; + + if (center_freq2 && nla_put_u32(msg, NL80211_ATTR_CENTER_FREQ2, center_freq2)) + goto fail; + + nla_nest_end(msg, chan_attr); + + + /* Request attributes */ + req_attr = nla_nest_start(msg, NL80211_PMSR_PEER_ATTR_REQ); + if (!req_attr) + goto fail; + + /* Add DATA attribute as required by NL80211 specification */ + data_attr = nla_nest_start(msg, NL80211_PMSR_REQ_ATTR_DATA); + + if (!data_attr) + goto fail; + + /* FTM request */ + ftm_attr = nla_nest_start(msg, NL80211_PMSR_TYPE_FTM); + if (!ftm_attr) + goto fail; + + preamble = get_pr_preamble(params->ranging_type, params->format_bw); + if (nla_put_u32(msg, NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE, preamble)) + goto fail; + + /* Map ranging parameters to NL80211 attributes based on protocol type */ + if (params->ranging_type & PR_EDCA_BASED_RANGING) { + wpa_printf(MSG_DEBUG, "nl80211: Adding EDCA ranging parameters"); + + /* ASAP and BURST_PERIOD are always set for EDCA */ + if (nla_put_flag(msg, NL80211_PMSR_FTM_REQ_ATTR_ASAP) || + nla_put_u16(msg, NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD, + params->burst_period)) + goto fail; + + /* Other EDCA parameters are only set for ISTA */ + if (params->ranging_role == PR_ISTA_SUPPORT) { + if (nla_put_u8(msg, NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP, + params->num_bursts_exp) || + nla_put_u8(msg, NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST, + params->ftms_per_burst) || + nla_put_u8(msg, NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES, + params->ftmr_retries) || + nla_put_u8(msg, NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION, + params->burst_duration)) + goto fail; + } + } + + if (params->ranging_type & (PR_NTB_SECURE_LTF_BASED_RANGING | PR_NTB_OPEN_BASED_RANGING)) { + wpa_printf(MSG_DEBUG, "nl80211: Adding NTB ranging parameters"); + + /* Set non-trigger based flag */ + if (nla_put_flag(msg, NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED)) + goto fail; + + if (nla_put_u32(msg, NL80211_PMSR_FTM_REQ_ATTR_NOMINAL_TIME, + params->nominal_time)) + goto fail; + + /* ISTA-specific NTB parameters */ + if (params->ranging_role == PR_ISTA_SUPPORT && + (nla_put_u32(msg, NL80211_PMSR_FTM_REQ_ATTR_MIN_TIME_BETWEEN_MEASUREMENTS, + params->min_time_between_measurements) || + nla_put_u32(msg, NL80211_PMSR_FTM_REQ_ATTR_MAX_TIME_BETWEEN_MEASUREMENTS, + params->max_time_between_measurements) || + nla_put_u32(msg, NL80211_PMSR_FTM_REQ_ATTR_AW_DURATION, + params->availability_window) || + nla_put_u8(msg, NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST, + params->ftms_per_burst))) + goto fail; + } + + /* Location requests */ + if (params->request_lci && + nla_put_flag(msg, NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI)) + goto fail; + + if (params->request_civicloc && + nla_put_flag(msg, NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC)) + goto fail; + + /* RSTA mode if responder role */ + if (params->ranging_role == PR_RSTA_SUPPORT && + nla_put_flag(msg, NL80211_PMSR_FTM_REQ_ATTR_RSTA)) + goto fail; + + /* + * LMR feedback: set for RSTA role in NTB ranging so that + * the RSTA reports its measurement results back to the ISTA. + * Only valid when NON_TRIGGER_BASED is set. + */ + if (params->ranging_role == PR_RSTA_SUPPORT && + (params->ranging_type & (PR_NTB_SECURE_LTF_BASED_RANGING | + PR_NTB_OPEN_BASED_RANGING)) && + nla_put_flag(msg, NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK)) + goto fail; + + /* + * PD ingress/egress thresholds: only valid when + * NL80211_PMSR_PEER_ATTR_REQ_TYPE is NL80211_PMSR_FTM_REQ_TYPE_PD + * (always the case here). Thresholds are in millimeters. + */ + if (params->ingress_threshold && + nla_put_u64(msg, NL80211_PMSR_FTM_REQ_ATTR_INGRESS, + params->ingress_threshold)) + goto fail; + + if (params->egress_threshold && + nla_put_u64(msg, NL80211_PMSR_FTM_REQ_ATTR_EGRESS, + params->egress_threshold)) + goto fail; + + /* + * PD suppress results: suppress ranging results for PD requests. + */ + if (params->pr_suppress_results && + nla_put_flag(msg, NL80211_PMSR_FTM_REQ_ATTR_PD_SUPPRESS_RESULTS)) + goto fail; + + nla_nest_end(msg, ftm_attr); + nla_nest_end(msg, data_attr); + nla_nest_end(msg, req_attr); + nla_nest_end(msg, peer_attr); + nla_nest_end(msg, peers_attr); + nla_nest_end(msg, pmsr_attr); + + cookie = 0; + os_memset(&ack_arg, 0, sizeof(struct nl80211_ack_ext_arg)); + ack_arg.ext_data = &cookie; + ret = send_and_recv(drv, drv->global->nl, msg, NULL, NULL, + ack_handler_cookie, &ack_arg, NULL); + + if (ret < 0) { + wpa_printf(MSG_ERROR, + "nl80211: Peer measurement start failed: ret=%d (%s)", + ret, strerror(-ret)); + } else { + wpa_printf(MSG_DEBUG, + "nl80211: Peer measurement started successfully addr=" MACSTR + " cookie=%llu", MAC2STR(peer_addr), + (unsigned long long) cookie); + params->cookie = cookie; + } + + return ret; + +fail: + wpa_printf(MSG_ERROR, "nl80211: Failed to build peer measurement message"); + nlmsg_free(msg); + return -1; +} + +#endif /* CONFIG_PR */ static void dump_ifidx(struct wpa_driver_nl80211_data *drv) { @@ -16420,5 +16721,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = { #ifdef CONFIG_PR .pd_start = nl80211_pd_start, .pd_stop = nl80211_pd_stop, + .start_peer_measurement = nl80211_start_peer_measurement, #endif /* CONFIG_PR */ }; diff --git a/wpa_supplicant/driver_i.h b/wpa_supplicant/driver_i.h index c19c834b5..c111224a6 100644 --- a/wpa_supplicant/driver_i.h +++ b/wpa_supplicant/driver_i.h @@ -758,6 +758,22 @@ wpa_drv_pd_stop(struct wpa_supplicant *wpa_s) #endif /* CONFIG_PR */ +#ifdef CONFIG_PR + +static inline int +wpa_drv_start_peer_measurement(struct wpa_supplicant *wpa_s, const u8 *peer, + int freq, u8 channel, int bw, + struct pr_pasn_ranging_params *params) +{ + if (!wpa_s->driver->start_peer_measurement) + return -1; + return wpa_s->driver->start_peer_measurement(wpa_s->drv_priv, peer, + freq, channel, bw, + params); +} + +#endif /* CONFIG_PR */ + static inline int wpa_drv_vendor_cmd(struct wpa_supplicant *wpa_s, int vendor_id, int subcmd, const u8 *data, size_t data_len, diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index f1120c8a2..923fe9d0f 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -11,6 +11,7 @@ #include "utils/common.h" #include "utils/eloop.h" #include "common/ieee802_11_defs.h" +#include "common/ieee802_11_common.h" #include "common/proximity_ranging.h" #include "p2p/p2p.h" #include "wpa_supplicant_i.h" @@ -141,6 +142,94 @@ wpas_pr_ntb_is_valid_op_class(u32 bw_bitmap, u32 preamble_bitmap, } +/** + * wpas_pr_op_class_to_chan_params - Derive center freq and width from op_class + */ +static int wpas_pr_op_class_to_chan_params(u8 op_class, u8 op_channel, + u32 *center_freq1, + u32 *center_freq2, + u16 *channel_width) +{ + int control_freq, bw, offset = 0; + int half_bw, block_pos; + + if (!center_freq1 || !center_freq2 || !channel_width) + return -1; + + *center_freq1 = 0; + *center_freq2 = 0; + *channel_width = 0; + + /* 80+80 MHz: center_freq2 is unknown from primary channel alone */ + if (op_class == 130 || op_class == 135) { + wpa_printf(MSG_DEBUG, + "PR: op_class %u (80+80 MHz) not supported, " + "center_freq2 cannot be determined", op_class); + return -1; + } + + control_freq = ieee80211_chan_to_freq(NULL, op_class, op_channel); + if (control_freq < 0) { + wpa_printf(MSG_DEBUG, "PR: Invalid op_class=%u channel=%u", + op_class, op_channel); + return -1; + } + + bw = op_class_to_bandwidth(op_class); + + /* + * 2 GHz 40 MHz: channels are 5 MHz apart so the generic offset + * formula does not apply. Handle upper (op_class 83) and lower + * (op_class 84) secondary channel directions explicitly. + */ + if (op_class == 83) { + *center_freq1 = control_freq + 10; + *channel_width = 40; + return 0; + } + if (op_class == 84) { + *center_freq1 = control_freq - 10; + *channel_width = 40; + return 0; + } + + if (bw == 20) { + *center_freq1 = control_freq; + *channel_width = 20; + return 0; + } + + /* + * For 5 GHz and 6 GHz wider bandwidths, compute the primary channel's + * position (in 20 MHz steps) within its band segment, then derive + * center_freq1 using the formula: + * center_freq1 = control_freq + (bw/2 - 10) - (offset & (bw/20 - 1)) * 20 + */ + if (control_freq >= 5955) + offset = (control_freq - 5955) / 20; + else if (control_freq >= 5745) + offset = (control_freq - 5745) / 20; + else if (control_freq >= 5180) + offset = (control_freq - 5180) / 20; + + /* Distance from the primary channel to the center of the BW block */ + half_bw = bw / 2 - 10; + + /* Position of the primary channel within its BW block (in 20 MHz steps) */ + block_pos = offset & (bw / 20 - 1); + + /* Center = primary channel + half-BW offset - position within block */ + *center_freq1 = control_freq + half_bw - block_pos * 20; + *channel_width = bw; + + wpa_printf(MSG_DEBUG, + "PR: op_class=%u ch=%u -> freq=%d cf1=%u bw=%d", + op_class, op_channel, control_freq, *center_freq1, bw); + + return 0; +} + + static void wpas_pr_setup_edca_channels(struct wpa_supplicant *wpa_s, struct pr_channels *chan, @@ -291,6 +380,98 @@ static void wpas_pr_pasn_result(void *ctx, u8 role, u8 protocol_type, } +/** + * wpas_pr_trigger_ranging - Trigger FTM ranging after successful PASN auth + */ +static int wpas_pr_trigger_ranging(struct wpa_supplicant *wpa_s, + const u8 *peer_addr, int freq, u8 op_class, + u8 op_channel, u8 format_bw, + u8 protocol_type) +{ + struct pr_data *pr = wpa_s->global->pr; + struct pr_pasn_ranging_params *params; + u16 channel_width = 0; + u32 center_freq1 = 0, center_freq2 = 0; + int ret; + + if (!pr || !pr->pr_pasn_params) { + wpa_printf(MSG_DEBUG, + "PR: No ranging params available for " MACSTR, + MAC2STR(peer_addr)); + return -1; + } + + params = pr->pr_pasn_params; + + wpa_printf(MSG_DEBUG, + "PR: Triggering ranging for " MACSTR " freq=%d ch=%u", + MAC2STR(peer_addr), freq, op_channel); + + /* Derive center frequencies and channel width (MHz) from op_class */ + ret = wpas_pr_op_class_to_chan_params(op_class, op_channel, + ¢er_freq1, ¢er_freq2, + &channel_width); + if (ret < 0) { + wpa_printf(MSG_ERROR, + "PR: Failed to derive channel params for " + "op_class=%u ch=%u", op_class, op_channel); + goto fail; + } + + /* Populate ranging params */ + params->ranging_op_class = op_class; + params->channel_width = channel_width; + params->format_bw = format_bw; + params->center_freq1 = center_freq1; + params->center_freq2 = center_freq2; + + /* Validate format_bw is within enum limits before setting preamble */ + if (protocol_type & PR_EDCA_BASED_RANGING) { + if (format_bw < EDCA_FORMAT_AND_BW_VHT20 || + format_bw >= EDCA_FORMAT_AND_BW_MAX) { + wpa_printf(MSG_ERROR, + "PR: Invalid EDCA format_bw %u (valid range: %u-%u)", + format_bw, EDCA_FORMAT_AND_BW_VHT20, + EDCA_FORMAT_AND_BW_MAX - 1); + goto fail; + } + } else if (protocol_type & (PR_NTB_SECURE_LTF_BASED_RANGING | + PR_NTB_OPEN_BASED_RANGING)) { + if (format_bw >= NTB_FORMAT_AND_BW_MAX) { + wpa_printf(MSG_ERROR, + "PR: Invalid NTB format_bw %u (valid range: 0-%u)", + format_bw, NTB_FORMAT_AND_BW_MAX - 1); + goto fail; + } + } else { + wpa_printf(MSG_ERROR, "PR: Unknown protocol_type %u", + protocol_type); + goto fail; + } + + wpa_printf(MSG_DEBUG, + "PR: Ranging params - op_class=%u, ch_width=%u, format_bw=%u, cf1=%u, cf2=%u", + params->ranging_op_class, params->channel_width, + params->format_bw, params->center_freq1, params->center_freq2); + + /* Call driver operation to start peer measurement */ + if (wpa_drv_start_peer_measurement(wpa_s, peer_addr, freq, op_channel, + channel_width, params) < 0) { + wpa_printf(MSG_ERROR, "PR: Failed to start peer measurement"); + goto fail; + } + + wpa_printf(MSG_DEBUG, "PR: Successfully triggered ranging measurement"); + + return 0; + +fail: + os_free(pr->pr_pasn_params); + pr->pr_pasn_params = NULL; + return -1; +} + + static void wpas_pr_ranging_params(void *ctx, const u8 *dev_addr, const u8 *peer_addr, u8 ranging_role, u8 protocol_type, u8 op_class, u8 op_channel, @@ -307,6 +488,10 @@ static void wpas_pr_ranging_params(void *ctx, const u8 *dev_addr, wpas_notify_pr_ranging_params(wpa_s, dev_addr, peer_addr, ranging_role, protocol_type, freq, op_channel, bw, format_bw); + + /* Trigger ranging measurement after successful PASN authentication */ + wpas_pr_trigger_ranging(wpa_s, peer_addr, freq, op_class, op_channel, + format_bw, protocol_type); } From patchwork Wed May 13 09:59:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237627 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=wsd+QTNM; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=UeCoP0P5; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=IKD72L4B; 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 4gFpsv1yNzz1yLV for ; Wed, 13 May 2026 20:02:27 +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=GEJqSBCWOTSaZ+7SMW0oq6dM42SVOdykjbGFivOqIhs=; b=wsd+QTNM5Jf2Zc 9hYBiqZXB9CTjBYLsdwuIAmSbLZHLHha7qekWsE70d9wy2EPOOJdSm1O6Qi4znOozIA51qIFQl31e dXDssb3aZPZBBHC6XPYCwHm2MGcbuoo1T5wbWgWjhEI+OL4ut5MYY0T1t9VYBB9zy49N+QVTcQXgS oyiufhSmzNf2uszuXpKw1FWqUQ3dMPJDMaRFqSKjXP8cshJ3+//3ZISHYceds9Cr57GmcNt+2Wf+T L+DE6hpDTvJkbVwk5StJO3va7Uumq9oV7yiv8kRyvikfb5yK+FabuFfcLAfIsENfZ1qJMz/92Besw C76xVFWTMwOsboP6Re8Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pb-000000022Io-1yHk; Wed, 13 May 2026 10:01:55 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6PW-0000000227i-12JB for hostap@lists.infradead.org; Wed, 13 May 2026 10:01:52 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D6FIua3324667 for ; Wed, 13 May 2026 10:01:49 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=EI6IhVboIeB GJkCzxDO2S6zwIhrFrNskiLgyga+IdHE=; b=UeCoP0P5ct5VGX+jtINECeSaSsw pqPJxpobR15mDqODsp2oAugA8/Hd8CHaqyeC9MREWLKnDmaRw6BsTbXLSZ8HvN05 YVahtkDMv1WsHB0K47nUjEfptGGorP0GuwxzwdQ1hSOK4tDf7p5N6Ai9MoFZ36Uy mQMaC5kqdVbmWPTJRtzdQEhfJW2ukIC6iKKX6bPGNw5DXfHx6u5AbMEeZ6w0IYbT WU1Pc6yaXwK4Efb9V1R/c2zP1+/F3jArbbQ3qMLqEnzmu+KNuhBQm5mLGEYBwm5c n/OKpK8Fepyn8AZ0GdFKekxZYU2kll5pjEYMKn3LLISXwlmXdhb3lv3/lTg== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4kvd8wpa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:49 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2bc6899bfb1so51922395ad.2 for ; Wed, 13 May 2026 03:01:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666508; x=1779271308; darn=lists.infradead.org; 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=EI6IhVboIeBGJkCzxDO2S6zwIhrFrNskiLgyga+IdHE=; b=IKD72L4Bmm8uAfjETFVZXCmnAfQGUqemxEb7uHrJemH4XY5m0T0dDai9+E+BtMjlW7 j27DPxKAEjbGbmgbsZibxSD4AaAA31vAS3VV13prWgGNcLq65km9jx484i+OeIGBuoDa uBLYQVb1lnBfGNgTNwsJI7+1Df8btiYPzIVhQn7BRLfUDeNN+qIRl7y1mga2GDzDTYKY 3VePeTvO3za5T3DZITK/X+QAhVlugkNxpeQ1ZXlFGM/dDM5dZsBI7/7EZV23wv1327XH /6npUnm2HtOKOdYCr44HTazazIDygCWDd5/+CEnDjGqNdhBt2Cz6mXTyJ0CH14npor0v ct3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666508; x=1779271308; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EI6IhVboIeBGJkCzxDO2S6zwIhrFrNskiLgyga+IdHE=; b=SC865wwd5QIa/XJejlKsfG3CDN9wOg87tvUPWP6kU1X/lVVYKdOgIENDTbJd7lAl7E 5sA4d4ZCfj+yn4l+eHxw58pi1iK1NiqShrmkm5KblSZY17G0yM58b3rMzdfrM8zIgJi/ Gox6DwFKSmb32JIUgdikiZC17ubsJs8/fVMoW2GCUL7Cvl6dg0dOBpHtoO1RbWbajozy kxPvkpGia2Nu3IIO/7R2UEKF64ky4bFU6EPyILuMS8AI3h9a+WT77tHb5lFY0Uvau/uR MDNVfxOZPldkBcV60Obol4nex6LbqGoEjYB4Y5XQAGIqT2AoLoH+YoZMro+WJiOzavv+ w73w== X-Gm-Message-State: AOJu0YzxS0vYVA/5qZx0wCp2OUneWAEjtWLdyPePUrt+wH/ij+yoBQKY UjQR0XWtNePc7vOmSy736ViKTD1MjkAneDqOS0x8dikdwC+AfnJ0zZoNRFpxmIN75gc1Q7TLWGW qQzNZMo+sQgUfgMK8kYzPXbM8iUYO+GEq3mLXE5XuW4+Nqv+6vPdpqsTKWQmv5A/fFsUBzASb X-Gm-Gg: Acq92OGFT2kmKI+/WobZ5yrcIXf3S9C4Mn8ynBo7tDMkH9uQyDwygUCeM2gu3TsX9fV A8MCHDJ/0dEcbSrXRI3rBqNZNAlrxbO4KbsKEVps/Cv5l94IBqlJ1ymUBlTVCV2MFK5ZBWaZe7/ eW8qhN+xwfVyaeiachVidcanbpwQWSCsdAFRRj0RBzPkA+mbPCPRG89GObKdlRjvPQJgobMxyZT /P05BmV9L/A13AA2cTcj2fLlfoac6YDwOj5d8i4ultX47Eqy1fCkfW0A24Kyqle55eM5u+jpcBo XQp2Gn1c6zWySZugEPshohO7xK7QTuIKiPv++FAFHJCcAte7vCPoU5h5YwRkcto2KdjS/qn9KXf EYFUVzy5iSTY9UH4iZcv+bSXR7nj2ftPRNE1rz1Ao+tbdS+gR2w2jMw== X-Received: by 2002:a17:902:8e88:b0:2b0:61c2:8e83 with SMTP id d9443c01a7336-2bd275b1898mr19048985ad.20.1778666507734; Wed, 13 May 2026 03:01:47 -0700 (PDT) X-Received: by 2002:a17:902:8e88:b0:2b0:61c2:8e83 with SMTP id d9443c01a7336-2bd275b1898mr19048705ad.20.1778666506777; Wed, 13 May 2026 03:01:46 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:46 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 31/46] PR: Use session time as total ROC budget for PASN responder Date: Wed, 13 May 2026 15:29:55 +0530 Message-Id: <20260513100010.1947710-32-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: WkfRTCEWeR3rkTQT-o0-PBAldkktKpPo X-Proofpoint-ORIG-GUID: WkfRTCEWeR3rkTQT-o0-PBAldkktKpPo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXyysFr4MTQfxi GLAiRk7+013ocFODtOMz9i7AsUlCDm8LNw9ETQ93Z1nIOsGXc7/KKf+eBXpXXbc4vuwV3IOO+Yb atjgg965sRsa9yxlHSpCcDxZo6QAcbzGlRE45WFxE45mI6aU3eZlavDXeORFIJ5KiTNehM3g8wk gei4fcGbT+h30zzSBcA5fu4J7NpIvFbb7oAv7FAvzMbu6WYlyk6Aku5qWr+s3V0G4BvjAT8Sd9D D6+yEJNvEitjfDa5IPWogS1RNlo5xBuYrY3JoXRJ8/VQuLvlNhFeNFKJ0Y4t81IsUsFHkbe6sjD u2XcRxjm1ZulsokmeyT8v9CKHDeDPegDFW9rGama+FOsXVQLOgrZc7JYT0jAkQpSw4rgFXs6ZXs FUw+v4KDfDEuj5iHhSKY0O52VFCsIu/vtvI6dlb535e1KdejZ1LWAuziwtlyMgcqgM6vH74PjpU zgGEYeNFOayW7SCHWBQ== X-Authority-Analysis: v=2.4 cv=Iu0utr/g c=1 sm=1 tr=0 ts=6a044c0d cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=iiPnwz07CiLcL-Urlk8A:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030151_723868_B4DEE124 X-CRM114-Status: GOOD ( 16.42 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy When continuous_ranging_session_time is configured, use it as the total ROC budget for the PASN responder instead of the fixed PR_PASN_RESPONDER_ROC_DURATION default. This ensures the responder stops [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy When continuous_ranging_session_time is configured, use it as the total ROC budget for the PASN responder instead of the fixed PR_PASN_RESPONDER_ROC_DURATION default. This ensures the responder stops listening once the intended session duration expires. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/pr_supplicant.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 923fe9d0f..7a0557ea7 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -1073,6 +1073,8 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, if (pasn_role == PR_ROLE_PASN_RESPONDER) { struct wpa_pr_pasn_roc_work *rwork; + struct pr_data *pr = wpa_s->global->pr; + unsigned int roc_time_ms = PR_PASN_RESPONDER_ROC_DURATION; bool has_src_addr = src_addr && !is_zero_ether_addr(src_addr); wpa_printf(MSG_DEBUG, @@ -1112,9 +1114,16 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, /* * Register the total-budget timer. When it fires it clears * pr_responder_mode so the cancel callback stops restarting - * chunks. + * chunks. Defaults to PR_PASN_RESPONDER_ROC_DURATION; overridden + * by continuous_ranging_session_time when non-zero. */ - eloop_register_timeout(0, PR_PASN_RESPONDER_ROC_DURATION * 1000, + if (pr && pr->pr_pasn_params && + pr->pr_pasn_params->continuous_ranging_session_time > 0) + roc_time_ms = + pr->pr_pasn_params->continuous_ranging_session_time; + + eloop_register_timeout(roc_time_ms / 1000, + (roc_time_ms % 1000) * 1000, wpas_pr_pasn_roc_total_timeout, wpa_s, NULL); return 0; From patchwork Wed May 13 09:59:56 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237673 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=NvEgBFDM; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=lT+I5suK; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=IrR4pwRE; 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 4gFqKt6Pq4z1y5L for ; Wed, 13 May 2026 20:23:14 +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=aK1vGapyfoIt9k84W5gluj5ZELEyJ142DAFOH5r8uwA=; b=NvEgBFDM/ZClwD k/moeXyKk2zWvx/b3T5toyVAuccfbcLq+ylknx2Voaeyj7osV7UiZ6YoFPsvXDBMKbrirxUmIW+Ql xjkvPbNnUrinFFI64waHxa2SavzVityycXmIUjGqaPAD6MqBvtb1E0QVpH5F5RlPql2XF3tjJkH4Q E2tp1xGLW55luBMeKs3ieJR54shsQ5CUsBciiDRxYaD8fjGeO1OX5ybWyAvPNbTHlhuBkd6B8axZ3 y2YT4mwy448nQfi1CE0yA6RfMWFSQveEaDCNZmjzsBbzmCKA0syTOc4+hDtgCN1iA96pngIg45ZYP hY54FWSKOAI7pVReknvA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6j4-000000029jA-1W35; Wed, 13 May 2026 10:22:02 +0000 Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6iw-000000029gy-2nuI for hostap@lists.infradead.org; Wed, 13 May 2026 10:22:01 +0000 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8rIT74082600 for ; Wed, 13 May 2026 10:01:52 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=lyNCjXiDyZb l7KiTdq2NPdkFG5hVZ6mgGZUMzZScMmE=; b=lT+I5suKSJoq8XETJT75Gk22TEJ b9NSlnZbMOFABVjOu87qIyvsXFa6JPMinJ5wfEy1CthwMmHYPGMyLLmCF1S3hG4+ yAXyU0qlPpBdM3WGHhmi3zRx6UJjNyddwlU1Anp5dHa5Lw6gNwDX33XwgBkpODef 4vI1Gck8j2xJVXGQ3Kt4Zvplokoss4OTnLQbp1n4Yq3gzVAIX0AjSXigQyFCEc7t jpFIHHM3QmmquhhwP7kzOqwrJ+uiY5baQsBe1VmMxt/57iPalWdFaojWLuOp7RBe e9eMMK+KAJKEptcPOz0d558rHpycVzUQOJImiPB9KPVFC1BmqjJvCqV/gzQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p6e08mn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:51 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b9a3c3c4eeso71932235ad.3 for ; Wed, 13 May 2026 03:01:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666511; x=1779271311; darn=lists.infradead.org; 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=lyNCjXiDyZbl7KiTdq2NPdkFG5hVZ6mgGZUMzZScMmE=; b=IrR4pwREh2mfIXBSiRsNWJfr+gknbvbq7ARHhAB6q1hNYRqdn82cKLT4Nye/naoZq0 fiHOxUmvNkyLsBmzJ5Rg4WjR/52Z5g26Y1D1yQj9611YoU9gyxczUB9PQQEQSEgAsZES tXNjBIWjpGQ3lbZNLC38oCYUoKENVsSNIuWaDQAOLpMstGNAf7p8n7rAuIH3Tqg6BBQ2 ymPkUkKsyIbGMpBMGzPQhgZqVP9nvVU3+XgHU7zM3inahQ6mNdcmbFxzLjrCq5bNZxy1 pBmQV6qguOAP4kzryMtMtQY+9ul8cTOaOvoN1B4yQXbyBBN4k2w4gs/EGNwtU2dXTi/z OZeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666511; x=1779271311; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lyNCjXiDyZbl7KiTdq2NPdkFG5hVZ6mgGZUMzZScMmE=; b=H/srW42SeDKzxMXa0RSTz5NE9NnDd8E94WP817Mvyvjm7h0uJV54iXriOvqYeNrs3c PTtdfeG8OfShw3SspHXvQjOy10NnCReDzNjOzl4GlPbhhpeqpssFMQYIhmEEiXi4wD/6 n/qvGCCrRq3evjcvrEE6BjzciY4JYB6sow69I94jX4e9t+A5K746lqwRQ+gC/qAlX/3R 0YuztVpCwFJl3CNfdk0rZT7D46Wa6DsUi9mKYtfCZTk0/NTsT6Q0D0hxvBN3pKM0rzU0 +7SmNVtkPde7gbv68ECG+Sfq6M6OBVEEB8wM428TcBkUmegfpP5jRQXALqqQp4OmaQI8 JssA== X-Gm-Message-State: AOJu0Yyc4tCOGrRseaNQ3GhBS+lx1Hz3lcluS/vEWs6Eot51xy3ccvIq FEy1Opr9x9WXpg2qtwIGt++sKyhH5fMy2hBOP5wDAim9cOTB3ZlyXkzRHrAW8ZaZR7k2AAPK3Cs bnnKCteoflinXa1Hfzez7pmNg/kucs3CKESFIxriMzyJRST1febS+fe12uMFa8xlHlRhSHQj/ X-Gm-Gg: Acq92OHw/uM8GGZ+3YxwtGchiGl/VR31rFZZ9Yp+ojv+Wkbx8uBaorHoRTNQhgyJrgc P3B3PwmuDlbs6RebwQQuvrSQsAVpyQ1YUcv8MU2Vq3iqY58lczkml4QwXzYG6k9gECPJmavyrjd Yb2OTkP7fARMRnCC1S7JZQTLij4hMvwpEBk0g50r7sowYQscMI/T7KYu/Af5YoVUs/IT3fXI2gd +BTSK7x6J4XNcyYQgVYwaCtNJYgjX/zaIIAf3bLrYaEVn8f2xfQUsySJpCvvRY/JuV0BdR6z1t1 2lkgK7XOlJtnBxWdeUqdwA8rFV0NIsltFobjoVknUaOMGNQUzBDF+UmaUcyeA9gE692jGY/THQI +N80Xrg20ci50DI+/D9N4ssYe8BnX5XzFZioicWrF0x0/qJ/1cEraGA== X-Received: by 2002:a17:902:7443:b0:2bd:2de3:5187 with SMTP id d9443c01a7336-2bd2f4dbd20mr15263105ad.3.1778666510625; Wed, 13 May 2026 03:01:50 -0700 (PDT) X-Received: by 2002:a17:902:7443:b0:2bd:2de3:5187 with SMTP id d9443c01a7336-2bd2f4dbd20mr15262805ad.3.1778666510102; Wed, 13 May 2026 03:01:50 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:49 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 32/46] PR: Move ranging_wrapper free inside CONFIG_PASN ifdef Date: Wed, 13 May 2026 15:29:56 +0530 Message-Id: <20260513100010.1947710-33-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: NYLIfYUMOONJL--c0G-q8RfFTchUMKdk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX8jwDiOKnwjfS SPglugf2kW1CXgPm9+2elf5pedav5keIIA7k31r+2Z6+uF+zZl06VPIz0igrERyPR0os83erjtb /fgtzGyEMZJhrIJbH6HD3EGYq9vyWBZ0TQbaRhQtEO/7MkvHUx4+vr9XS22bFPGalATbIz9DVIR qKYaJz8V7ANHKEm93B0wpYeJ9cpYGX76TmytsiWHplc0miNlgVK6vpVzUv97ngbvV5EVHmz3nCT 21DxtIZWuS4E9f8t49sxW/cWAjK7GPmp6NGFI9sEBVReqTTR3Ze7qngc/AFGvIB5ZT+aBerLoLM PjwvE+PTdLV8Kc5w2PJhY6hGNuot3C61DjKa1baw46LN7XK/5zM9fxo33x4SRwW/jMAXl/OiiDR sj9WFRavnJ1RabATlqhA38vITICzedC+bRTlV698ISxsfHnIHuP+HpfyvBfdix8NuzSaKvDrhOp BnTfEc4PD+9WDe4yFWw== X-Proofpoint-GUID: NYLIfYUMOONJL--c0G-q8RfFTchUMKdk X-Authority-Analysis: v=2.4 cv=Wukb99fv c=1 sm=1 tr=0 ts=6a044c10 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=7bkVHflUaIJrpJBf6RgA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 phishscore=0 suspectscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_032154_716036_E50B0982 X-CRM114-Status: GOOD ( 14.12 ) X-Spam-Score: -2.8 (--) 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: The ranging_wrapper member of struct pr_device is only defined when CONFIG_PASN is enabled. Move wpabuf_free(dev->ranging_wrapper) inside the CONFIG_PASN ifdef block to fix compilation errors when CON [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 The ranging_wrapper member of struct pr_device is only defined when CONFIG_PASN is enabled. Move wpabuf_free(dev->ranging_wrapper) inside the CONFIG_PASN ifdef block to fix compilation errors when CONFIG_PASN is not defined. Fixes: ef1b1587d315 ("PR: Handle PR element in PASN Auth M1 and prepare M2") Signed-off-by: Kavita Kavita --- src/common/proximity_ranging.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 0ca9c95fe..06ee58b3d 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -24,8 +24,8 @@ static bool valid_country_ch(char c) static void pr_device_free(struct pr_data *pr, struct pr_device *dev) { - wpabuf_free(dev->ranging_wrapper); #ifdef CONFIG_PASN + wpabuf_free(dev->ranging_wrapper); if (dev->pasn) { wpa_pasn_reset(dev->pasn); pasn_data_deinit(dev->pasn); From patchwork Wed May 13 09:59:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237657 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=dqxZSwfl; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=ZeqpxBOz; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=bzpF81cH; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=Q/Fq2jkf; 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 4gFpvx5gSNz1yJ5 for ; Wed, 13 May 2026 20:04:13 +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=7MeNea1Rnua8k0Ul+mIb/iKp6oRlWa/dwbP6TKhEtYc=; b=dqxZSwflmb4kkE KfQlYQBxv47eqmiQvQnpsosWOw4tiDIHcEq/PTEVcRMtWEfgn/vkfHTDy3i5YNmOMRccHge4ID8B7 lQOIVBJ5que8m7L2QcIe6RpBCeTPgIUccNIk+FwYv1xD6C0EzqpU79QhMDuTbmhmyzGmfc1ZoSYXw Ax8/FV653fzKK3JW6IGEMTd1bwwi8Nms6OqEEq0YhZqC4Zy9id75jUEx90wwEAcNGwOc68Nd+D8TL 9kTkSB/E64wN0NIuzOd/lboh0Nvcq8lgLkcJmUbB1yVAhGpsnXwxkGF6IAeAjJlmYjTqIcZEnPr+O OLqF/pCyT2Ty3mVvViog==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6QC-000000023Be-3hKa; Wed, 13 May 2026 10:02:32 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pi-000000022T8-3pHY for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=LF+CusUaIWbyTBmWOzWbeLtrRJdDglEaDChX7fSYD38=; b=ZeqpxBOzwVV2IDkKWFBd2eVBch KHq37KSlNao8hLt//zEUDyDNDgOkSM0zWCpr12z/mjtwjRGHIrO5sJ1umHf+2unn52GXLE7WfE+Ce +5XG6+E2jdhSGPIJWbrOGEbN/xSLgM7oCg227l32c7z4CJZXhKI2YMRbSdBbl5GrFKCf+E4zoPKGh 24C0a8+vteyQL5I/5QpPKuYMOqnqgoragyWsIjppAVpc1UwIRXcje+O2OQYs0pwtjMgeWzQ8WqPth XVG4IOSA6dWN6GFP3cEuX8rAUElilzdAButJ2Ymw7C4/45s05wfB1RIvK/ACU+ZYrHKTUMWoBgaPG fxTFAuCQ==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pb-0000000H4ms-2fqY for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:01 +0000 Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pBmK2652515 for ; Wed, 13 May 2026 10:01:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=LF+CusUaIWb yTBmWOzWbeLtrRJdDglEaDChX7fSYD38=; b=bzpF81cHETgz//3lFYnkUfqg4Uu ZcxpOs4+0QwYOReC1fp99N8VnbjdXCedDwdItMNnmdUHeyKHLyGOuZ2qDsz6tGCy qeTshSnpvpWdYer+9x5uFyRk47sWSqVEkXdfvSmSWdMzxyJTMJiM3Qik/G547eVn /E4cbOTbXpSLcVwcJhGsEIUX9JcdbR2x3MBLLlvQ61S/UZrmYJrHiXP5/6eb+Gou 9KIqTf/T2VOap3YtZkQrJzXRrYQLhyDxp1yK3zWedzxQvHQfqX+3DzbJDPc3Z0+H UtVrvRPwjMblZImZMGsbcFEEMK23dEr1YJ/zIq4a7AvEuUtIaWFjNc2UZaw== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e45avm59b-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:54 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2bc860066a6so31416105ad.0 for ; Wed, 13 May 2026 03:01:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666513; x=1779271313; darn=lists.infradead.org; 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=LF+CusUaIWbyTBmWOzWbeLtrRJdDglEaDChX7fSYD38=; b=Q/Fq2jkfg3OtM4WFsgWKKqkBao8BH/rL9pY68tnHyULilLD2VgJfmCwfQ4EwRlRmaN Xj8liFgPtPpZgE6BWkG/ZkDQKddDsLsjoKlb/CAiO//SFFrRXreyey5aZ1ePKnmzmg8/ 9ZHvnmVNSVg0IFvzmACNwjxn8xf2bDbB4SCeXi/C6fZoWUzorfmMRhJlcTbZXKJ66hm9 A6E2KZvZNUwxoQD0R+CnW8HLgOP1sOU6UySR5uVRit8jBQd/dPBNgXn+0PZETigcXtdK 8NbF7m2u1/kLWNfxtgZemOU4soYz09+KOQHkq/wxitUXJLq/yrFVnMcqeDj4rQZxHRZJ cHUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666513; x=1779271313; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LF+CusUaIWbyTBmWOzWbeLtrRJdDglEaDChX7fSYD38=; b=maBaiopSxtniDVZ91k4kNKTMc7ukSGxxRRTLRnmaSHWg0/bpb8ipJM2RVtOcFcMUEl Xy/9CiG6AT2hvPKmawxAE3uZINKsAc5LEzqkl93M4creovAJ7Y0VfvI7YiKr8SAPcP9Q AaPURQVVLYEwHxnB/zJOIJwywyp7AQnQoDAwjXMg+sWsGKIFdwKjjjDpd1JtcCBi1bOG pN3H0OD/E9RMFbvL7HcMe1xpWZ3B5/ggwc7SJPVqcsfAfrzsvmTozeOwDgkZfQC5cPh3 NuVdzl4aOQHRivWFHNLCMwfyRzCN1GgmeH/w/O4KjCUxgqwz/Cg/TVGYZ6Z/+Dp41HPa N/ew== X-Gm-Message-State: AOJu0Yy0a+DAQvOmEN1xoEPTSI+vHBKJL+vXhWCd6nhWLnb6hBVWgqz0 x5lguaAeGaXQsW13M/qPupHTUSIeSXfKbxx/mvXzjruQ5pcvXMVj7qpVL8IAZua3h1E6Zk6E1Cq iyvShxef1N1N3tBOpXQZEuLo3pdxgLp6Lrk8zDAuG0e7Y+kOtukuuTI6GjH4E288rIyvUPvBE X-Gm-Gg: Acq92OE5tBOXu1fK8ZXnBffPzg0pOC8ZLsMI0d1rAsiGlx+rD+5gLHiYRhuYHOBgAIZ ikvChOwjvD615Ti2fXm8TBmUztVJs3TwWtVyCmFnspMtLCdpAyP8+xybm1qGG8B87+/ikE3QWFM Vh4rm738vwiKhFlyXwX5EKDo2IAuZg4BFoq5zPaYz7cyqo1Ejy3uK5HXVDYeLdY1wnOVLm5+zkc 5AmLShFstxP6pUozZLSt8kcYEmfcEd2aQXtVRX0HCdzApd9ai7LlHG49wAgmItVSrkkH5aNP9Ob UWgLBEOdlLfi9903w6Vrb9jSP7nBRImPD9RHcll8tqL94AFIsadOfQEn/hHqCu/+lFZPCofPCoV fZPoc3tv9Xjei5MRlpp91/E6hcIt2/Og2tbw2sszxWtnF9ZY6xWSY5A== X-Received: by 2002:a17:902:e8c8:b0:2b2:5503:1b8c with SMTP id d9443c01a7336-2bd2715fe60mr20241915ad.11.1778666512867; Wed, 13 May 2026 03:01:52 -0700 (PDT) X-Received: by 2002:a17:902:e8c8:b0:2b2:5503:1b8c with SMTP id d9443c01a7336-2bd2715fe60mr20241615ad.11.1778666512329; Wed, 13 May 2026 03:01:52 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:52 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 33/46] PR: Extend PR_PASN_START ctrl iface with full ranging parameters Date: Wed, 13 May 2026 15:29:57 +0530 Message-Id: <20260513100010.1947710-34-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: pchzhP-BAUm-4yUqhSmqTYOloiuVfjnV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX7ELGbtdPYHpD AvY4ISCeG6AKcjZrQbg0RXI3TO3sXFQTr2tVFkoxEXwdf1dUQJdKV/VkJOx6oGxGbgVqV1wQNis 7jHdMgwBDqBWdCf7oVkImZIagLXqhDiOT7zLbtWMWFs+9qQY24wHX0Ud1T9O5If985DQ4P2SP/h PHGOhuLAwo/GFUPt2Rujs7a1VY2C1/0Fi9vliry4cG+oAJuwK7q9YhWRMzIN1HF9lCxk6W0AOwo bZAkT1RnXtuLQu53aUv7aBt8R/eocb8cOnLDraYAClKR1Pt1y4T1eB3eM8VwOQepyKDJ9bGkq0i RYkRRWMEI56YsIM6OQ38z36h+tYtkE9NPaTeVYyjGSyfWTx+5o6C6TpKIa990s7BfpdF7LoqyjZ yhuXtydGIIl1tRlwiJUNNBVpgiBFnhqFZyGr7+kgMBL/h+7rbT0514n1Xv+JYTfGZb6d3pEQLE6 PaiT/DzzVAn9KubDMIA== X-Authority-Analysis: v=2.4 cv=bOwm5v+Z c=1 sm=1 tr=0 ts=6a044c12 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=1rSg3pJmw_g1HdETkqcA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: pchzhP-BAUm-4yUqhSmqTYOloiuVfjnV X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 clxscore=1015 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110156_409895_95215DC7 X-CRM114-Status: GOOD ( 18.14 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: Peddolla Harshavardhan Reddy Refactor wpas_ctrl_iface_pr_pasn_start() to build a pr_pasn_ranging_params struct and route through wpas_pr_pasn_trigger() which performs capability validation before initiating PASN. Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Refactor wpas_ctrl_iface_pr_pasn_start() to build a pr_pasn_ranging_params struct and route through wpas_pr_pasn_trigger() which performs capability validation before initiating PASN. Extend the command to accept EDCA burst parameters (burst_duration, num_bursts_exp, ftms_per_burst, ftmr_retries, burst_duration), NTB availability window settings (min/max_time_between_meas, availability_window, nominal_time), proximity thresholds (ingress_threshold, egress_threshold), lmr_feedback, pd_suppress_results, and continuous_session_time for session lifetime control. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/ctrl_iface.c | 102 ++++++++++++++++++++++++++---------- 1 file changed, 73 insertions(+), 29 deletions(-) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 6dd444349..b2cb6746e 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -11560,65 +11560,108 @@ static int wpas_ctrl_iface_pr_pasn_start(struct wpa_supplicant *wpa_s, char *cmd) { char *token, *context = NULL; - u8 addr[ETH_ALEN]; - int freq = 0, forced_pr_freq = 0; - u8 ranging_type = 0, role = 0, auth_mode = 0; + struct pr_pasn_ranging_params params; bool got_addr = false; - u8 src_addr[ETH_ALEN], *p_src_addr = NULL; - enum pr_pasn_role pasn_role = PR_ROLE_PASN_INITIATOR; + int interval_time = 0; + + os_memset(¶ms, 0, sizeof(params)); + params.action = PR_PASN_AND_RANGING; while ((token = str_token(cmd, " ", &context))) { if (os_strncmp(token, "addr=", 5) == 0) { - if (hwaddr_aton(token + 5, addr)) + if (hwaddr_aton(token + 5, params.peer_addr)) return -1; got_addr = true; } else if (os_strcmp(token, "role=ISTA") == 0) { - role |= PR_ISTA_SUPPORT; + params.ranging_role |= PR_ISTA_SUPPORT; } else if (os_strcmp(token, "role=RSTA") == 0) { - role |= PR_RSTA_SUPPORT; + params.ranging_role |= PR_RSTA_SUPPORT; } else if (os_strcmp(token, "ranging_type=EDCA") == 0) { - ranging_type |= PR_EDCA_BASED_RANGING; + params.ranging_type |= PR_EDCA_BASED_RANGING; } else if (os_strcmp(token, "ranging_type=NTB-OPEN-PHY") == 0) { - ranging_type |= PR_NTB_OPEN_BASED_RANGING; + params.ranging_type |= PR_NTB_OPEN_BASED_RANGING; } else if (os_strcmp(token, "ranging_type=NTB-SEC-PHY") == 0) { - ranging_type |= PR_NTB_SECURE_LTF_BASED_RANGING; + params.ranging_type |= PR_NTB_SECURE_LTF_BASED_RANGING; } else if (os_strncmp(token, "freq=", 5) == 0) { - freq = atoi(token + 5); + params.freq = atoi(token + 5); } else if (os_strncmp(token, "auth=", 5) == 0) { - auth_mode = atoi(token + 5); + params.auth_mode = atoi(token + 5); } else if (os_strncmp(token, "forced_pr_freq=", 15) == 0) { - forced_pr_freq = atoi(token + 15); + params.forced_pr_freq = atoi(token + 15); + } else if (os_strncmp(token, "num_bursts_exp=", 15) == 0) { + params.num_bursts_exp = atoi(token + 15); + } else if (os_strncmp(token, "ftmr_retries=", 13) == 0) { + params.ftmr_retries = atoi(token + 13); + } else if (os_strncmp(token, "burst_duration=", 15) == 0) { + params.burst_duration = atoi(token + 15); + } else if (os_strncmp(token, "ftms_per_burst=", 15) == 0) { + params.ftms_per_burst = atoi(token + 15); + } else if (os_strncmp(token, "interval_time=", 14) == 0) { + interval_time = atoi(token + 14); + } else if (os_strncmp(token, "min_time_between_meas=", 22) == 0) { + params.min_time_between_measurements = atoi(token + 22); + } else if (os_strncmp(token, "max_time_between_meas=", 22) == 0) { + params.max_time_between_measurements = atoi(token + 22); + } else if (os_strncmp(token, "availability_window=", 20) == 0) { + params.availability_window = atoi(token + 20); + } else if (os_strcmp(token, "request_lci=1") == 0) { + params.request_lci = true; + } else if (os_strcmp(token, "request_civicloc=1") == 0) { + params.request_civicloc = true; + } else if (os_strncmp(token, "continuous_session_time=", 24) == 0) { + params.continuous_ranging_session_time = atoi(token + 24); } else if (os_strncmp(token, "src_addr=", 9) == 0) { - if (hwaddr_aton(token + 9, src_addr)) + if (hwaddr_aton(token + 9, params.src_addr)) return -1; - p_src_addr = src_addr; } else if (os_strcmp(token, "pasn_role=INITIATOR") == 0) { - pasn_role = PR_ROLE_PASN_INITIATOR; + params.pasn_role = PR_ROLE_PASN_INITIATOR; } else if (os_strcmp(token, "pasn_role=RESPONDER") == 0) { - pasn_role = PR_ROLE_PASN_RESPONDER; + params.pasn_role = PR_ROLE_PASN_RESPONDER; + } else if (os_strcmp(token, "lmr_feedback=1") == 0) { + params.lmr_feedback = true; + } else if (os_strncmp(token, "ingress_threshold=", 18) == 0) { + params.ingress_threshold = atoll(token + 18); + } else if (os_strncmp(token, "egress_threshold=", 17) == 0) { + params.egress_threshold = atoll(token + 17); + } else if (os_strcmp(token, "pd_suppress_results=1") == 0) { + params.pr_suppress_results = true; } else { wpa_printf(MSG_DEBUG, - "CTRL: PASN invalid parameter: '%s'", + "CTRL: PR_PASN_START invalid parameter: '%s'", token); return -1; } } - if (!got_addr || ranging_type == 0 || role == 0 || freq == 0) { + /* + * Map interval_time to the appropriate protocol-specific field: + * - EDCA: burst_period + * - NTB: nominal_time (nominal time between measurements) + */ + if (interval_time > 0) { + if (params.ranging_type & PR_EDCA_BASED_RANGING) + params.burst_period = interval_time; + else if (params.ranging_type & (PR_NTB_OPEN_BASED_RANGING | + PR_NTB_SECURE_LTF_BASED_RANGING)) + params.nominal_time = interval_time; + } + + if (!got_addr || params.ranging_type == 0 || params.ranging_role == 0 || + params.freq == 0) { wpa_printf(MSG_DEBUG, - "CTRL: Proximity Ranging PASN missing parameter"); + "CTRL: PR_PASN_START missing parameter"); return -1; } wpa_printf(MSG_DEBUG, - "CTRL: PR PASN params: ranging type=0x%x, role=0x%x, " - "pasn_role=%d, auth_mode=%d, forced pr freq=%d, addr=" - MACSTR " src_addr=" MACSTR, - ranging_type, role, pasn_role, auth_mode, forced_pr_freq, - MAC2STR(addr), MAC2STR(p_src_addr ? p_src_addr : addr)); - return wpas_pr_initiate_pasn_auth(wpa_s, addr, freq, auth_mode, role, - ranging_type, forced_pr_freq, - p_src_addr, pasn_role); + "CTRL: PR_PASN_START params: ranging type=0x%x, role=0x%x," + " auth_mode=%d, freq=%d, addr=" MACSTR " src_addr=" MACSTR " pasn_role=%d", + params.ranging_type, params.ranging_role, params.auth_mode, + params.freq, MAC2STR(params.peer_addr), + MAC2STR(params.src_addr), params.pasn_role); + + wpas_pr_pasn_trigger(wpa_s, ¶ms); + return 0; } @@ -11673,6 +11716,7 @@ fail: return ret; } + #endif /* CONFIG_PR */ From patchwork Wed May 13 09:59:58 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237639 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=iPw+vgHO; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=gu9kMSQf; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=k+X1MdGV; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=WgXcpXfY; 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 4gFptk5Nlqz1yJ5 for ; Wed, 13 May 2026 20:03:10 +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=WSjIF1wD12nI4ZI/N6I1VBrnN3pOcDbWGJKV5ElyIl8=; b=iPw+vgHOIVh0M0 8NG9Qy3Gb0m/Um/ynW27Zoeso0ufcbc+vhHVpFc8gwIk1VqdhoSYrTqhrWjw6gFBf6sJiRnDEsyDg dNuuwZHfESPA09UPLPYY8Fdh+DHhLmvhxPVPoumwT30x+vOBH/7UKcbldp7d8fjLGbjDUCe2dEJzT YdL+/iUxBk3d358fWpTy8aHs3V8L4FDvHTAnz1aXRyFBdNQSOD1v59OSOAanzkdFS4hQBthjzWS3x aLD38SuACCXEk50Brx6eiLevAGkAPA3onspbCxyZjvfMztsOe6nz5CKswWfYvtbcy+VJi1ZlAfz0j iN3pUeN+U3kP7XaNsrrw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6QD-000000023E0-2acf; Wed, 13 May 2026 10:02:33 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pj-000000022TR-4BG0 for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=qrsw9TVEx7i7bQAR/mnXJc4jCtlL9zVDfPuwgTq155M=; b=gu9kMSQfmDr3xUB4dUJgZGeh3P 9C/Pk90htq65YAIqpp/HP35XGGoM/W71LpVLRE+mBvW2W263DuOlk5E32NJyYPxpxfgR2u96WH3zb qeIZzuuZ76aqynPMXNdKMHaEoFSqe3Rp9pRoTkpioHu26y5YHUG+ROBp7989Sa4hxF7M3l4jnEXN5 Gmk5gBzLzESkkAR2lROLFc+hga+tBcn9+I8gjwi+ddeighwaw8dhluHzCD88OTdLKmznTSJ2Tu7lc IvD8g4NiwqWxsfScfr46/tq6atGOVm3/Tf/KACiLLtvXwP5HAX3Kw3A6koUl3H4WfwaMLL1AD0/YX G+vVLQ/A==; Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pe-0000000BROW-1Fvd for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:02 +0000 Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8rIsa4082597 for ; Wed, 13 May 2026 10:01:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=qrsw9TVEx7i 7bQAR/mnXJc4jCtlL9zVDfPuwgTq155M=; b=k+X1MdGVwi8kbSW+8G1EwvtVKny 41CJvcc7nDur17rUVEes3T/sO1EszpAV/kKP7l/YS61MjyaYvWN5irITCyho0FjF WRjQbJpo9TELTZC37tXICRA9nXJxOqN9h/NCkRUMqh6jh9TSfCbOCLvFF6wTuJE9 ghCB53RTMwIZkqMuavkRzd9uRsnzsNOu+i6l1tXziE4ZJiRVH+vY0PTiCScbQVwu hM6+0DhD4FHRojFx/ARcTFWYikeuqIcqq8eKb6mH13/eZnk/aP48Xv1B/nGUAxaL op+zT1ZFRqqSkab6ttD/p8n69w+V385PVyZdPwc+ZiBNofpYvn7lCXuJSlg== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p6e08n8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:56 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2bd04e4fe3dso31287965ad.3 for ; Wed, 13 May 2026 03:01:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666515; x=1779271315; darn=lists.infradead.org; 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=qrsw9TVEx7i7bQAR/mnXJc4jCtlL9zVDfPuwgTq155M=; b=WgXcpXfYLhG0QPEmUuHDDxF5cI/NghWS0bQiADeXh8fAY6+uRPu2ihPfL7j/Cg6lLs eGMfs7Mzsp9/GZWIC9NOYuilh/TjykoLWfoLHTJ5YnMXFlrN3P7hm/3p0EZzxBvr6RoX SceyBVd7FENAfUOsFc8HD7l358KCBpXkegl7lwmglt+H881OzvB1qOY916dx1UatJCH7 CVA+OW9K7FqFAXYJgdkCujMY3sFBxLKYv8dQCtnSePSGXM0AgJs16D+89/lBEYaQF+Gy VfiqkmlZ32AzlWJoX2D5M2s2hovQekzDsQ6tHVme69W8dHl1pyT1Fi2YqvoqZW9qo3kD 1y3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666515; x=1779271315; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qrsw9TVEx7i7bQAR/mnXJc4jCtlL9zVDfPuwgTq155M=; b=J3+Nau1hU873U4kW+q7H9j4knI9h8KvODqk+ILIVXLG1fPQTdmP1PSF8g7uagZpAXr D5aOEll0D1BKR6r/JlboDHnjfTOk9jOUtSQ5vFZLl4KBgGO5i/BGEqgrjwXJ2eOuyWsp 9/fjiZ1WkGE2tA9DTyuCvq2wMqFGn7CPel445x046rQ8ZTtl1OF9gHL0zCGOjB2CHZmV je4mDTF+jmA7SborGBV/kavfUBD6JY6MHaJAfZWAinvimjnS9ulL6xGtiTFOXXk3GLKM 8qQzdg9MaQdRXY8dOvORMpNIuS2T5YHGjrRB89H3KplqU1m1u1aKUKgdOQRdfpredgD5 Ndzg== X-Gm-Message-State: AOJu0YzT0QoiGmSTsu96yXCXhGhwS/5oEuYEcuvsvTVTurDBxrL8YY1k tKDgVksoX1mKk4QCTaH9KSrr8ARamnxvWurti26FJ7xK+ecB77AEGz5xsAeCcCfA3bvS0HiOOdW XndFQjgdPNH8obLT0RrsXy/jGstKZCLAKIHlLPdQurCzKr3I5aLID8B5rsQe2JoaAkruKHonP X-Gm-Gg: Acq92OGTOj/tr2+3BYQZKykjZm72LdpA5L5cSee9Ckx8fxdcDNGp+ZNwiK15B1QqhDp agm8kqGo7buec8Y7l4ohQ9A0Tm7TwU32IpzSeJnznTF+yDfzhKPT1YLgKPb8cHCKlUuZG+fUDmX e27GRjRxaC5BJ9PdEkHyNemRD7v4d4YXW2yg9nnZP4fpVkIy/g/illGOsBzfmPRAaN5szrptEFB FH9f3CA4wFI5lRljX6jTE1uHgRYFPeDVGKevFzrVXy9jInKD5LqbCecQ4u/Pl3nuu44sDNHx6pQ i1bOb0r55vnn9+saSKDl3ml89W+mzQZbzR5U4A1LZEqN2aQZsdPaPwgsEPvm8H8pQ5IAzj4habB lkMNm130QdQQKhZC6okIxRErNT06EnS4bR+LNMXMn9fnghNu0odlnQw== X-Received: by 2002:a17:902:bd43:b0:2b0:bebb:1081 with SMTP id d9443c01a7336-2bd3022bc2cmr15664655ad.28.1778666515023; Wed, 13 May 2026 03:01:55 -0700 (PDT) X-Received: by 2002:a17:902:bd43:b0:2b0:bebb:1081 with SMTP id d9443c01a7336-2bd3022bc2cmr15664405ad.28.1778666514515; Wed, 13 May 2026 03:01:54 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:54 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 34/46] nl80211: Add dedicated PR ranging socket and stop op Date: Wed, 13 May 2026 15:29:58 +0530 Message-Id: <20260513100010.1947710-35-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: dVKnwbLDgLkWxEdejPl3cgKqqorv9tlf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXwEE+b8IlVA7a RTsUpTcWJ8iz6oPy5uxyo/HqiJdRRkDXZcbdYMDbPt5VV26fl+0PRaAC5ExcqGbOfLWKcFe/Znv yLomxRV5XX9nMNpMHz+YGjj88WXKYx3iL0p3ScHMNGy9qiPV6lRzHk/nVEjPzHpVq4wZcLt0icX 0hlIVuLBKX+raDCRTL7mYZ6LJewtSbWe0j2AJenZRV1unncECEwGptxkWQJvy2r4wTLhbyaFPcA EFvygQ0nZslXrijCVBRxNH5LZZFzPhiU3lDLNufaVQl/gLdne/aR+iLaihO0iTWnZIGaMsT3VIJ 4brnomHvMOgaY+u+IlNdbPBgcUChwxeyBLS7U5my8JvRTrbMlJqcVlS4l6j3AS2jgv43uo2LYRB b0SiXouOP/6xsC5Df+LgS5xmcSDwPAt+S9x8JmJwqlTjI1GbHzq3aKjUb2TPfBOtN3w/F6hIYzO VoEQQrVekBIPJycz13A== X-Proofpoint-GUID: dVKnwbLDgLkWxEdejPl3cgKqqorv9tlf X-Authority-Analysis: v=2.4 cv=Wukb99fv c=1 sm=1 tr=0 ts=6a044c14 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=Uhw5kk8dEQHENhflMIwA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 spamscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 phishscore=0 suspectscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110158_731743_D18FA5F2 X-CRM114-Status: GOOD ( 22.05 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Veerendranath Jakkam Create a dedicated netlink socket (nl_pr) in nl80211_global for PR peer measurements. The socket is created when start_peer_measurement() is called, used to send NL80211_CMD_PEER_MEASUREMENT_START, and registered with eloop to receive RESULT and COMPLETE events. Add stop_peer_measurement() driver op implemented by nl80211_stop_peer_measurement() which destroys the nl_pr socket and unregisters it from eloop. Also add cleanup in nl80211_global_deinit() for the case where stop was never called. Signed-off-by: Veerendranath Jakkam --- src/drivers/driver.h | 9 +++++++ src/drivers/driver_nl80211.c | 46 +++++++++++++++++++++++++++++++++++- src/drivers/driver_nl80211.h | 4 ++++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/drivers/driver.h b/src/drivers/driver.h index ee710fad8..4689bc5b0 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -5863,6 +5863,15 @@ struct wpa_driver_ops { int (*start_peer_measurement)(void *priv, const u8 *peer_addr, int freq, u8 channel, int bw, struct pr_pasn_ranging_params *params); + + /** + * stop_peer_measurement - Stop peer measurement and destroy ranging socket + * @priv: Private driver interface data + * + * Unregisters the ranging socket from eloop and frees all associated + * resources. Safe to call when no ranging session is active (no-op). + */ + void (*stop_peer_measurement)(void *priv); #endif /* CONFIG_PR */ #ifdef CONFIG_NAN diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 8af3efe98..4435b915d 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -9330,6 +9330,20 @@ static int nl80211_start_peer_measurement(void *priv, const u8 *peer_addr, return -1; } + /* Create dedicated ranging socket if not already created */ + if (drv->global->nl_pr) { + wpa_printf(MSG_ERROR, + "nl80211: PR ranging socket already in use"); + return -1; + } + + drv->global->nl_pr = nl_create_handle(drv->global->nl_cb, "pr"); + if (!drv->global->nl_pr) { + wpa_printf(MSG_ERROR, + "nl80211: Failed to create PR ranging socket"); + return -1; + } + /* Route via PD wdev if src_addr matches */ if (drv->pd_bss && !is_zero_ether_addr(params->src_addr) && ether_addr_equal(params->src_addr, drv->pd_bss->addr)) { @@ -9553,19 +9567,29 @@ static int nl80211_start_peer_measurement(void *priv, const u8 *peer_addr, cookie = 0; os_memset(&ack_arg, 0, sizeof(struct nl80211_ack_ext_arg)); ack_arg.ext_data = &cookie; - ret = send_and_recv(drv, drv->global->nl, msg, NULL, NULL, + ret = send_and_recv(drv, drv->global->nl_pr, msg, NULL, NULL, ack_handler_cookie, &ack_arg, NULL); if (ret < 0) { wpa_printf(MSG_ERROR, "nl80211: Peer measurement start failed: ret=%d (%s)", ret, strerror(-ret)); + nl_destroy_handles(&drv->global->nl_pr); } else { wpa_printf(MSG_DEBUG, "nl80211: Peer measurement started successfully addr=" MACSTR " cookie=%llu", MAC2STR(peer_addr), (unsigned long long) cookie); params->cookie = cookie; + /* + * Register the PR socket with eloop so that + * NL80211_CMD_PEER_MEASUREMENT_RESULT and + * NL80211_CMD_PEER_MEASUREMENT_COMPLETE events are delivered + * to the existing nl80211 event handler. + */ + nl80211_register_eloop_read(&drv->global->nl_pr, + wpa_driver_nl80211_event_receive, + drv->global->nl_cb, 1); } return ret; @@ -9573,9 +9597,23 @@ static int nl80211_start_peer_measurement(void *priv, const u8 *peer_addr, fail: wpa_printf(MSG_ERROR, "nl80211: Failed to build peer measurement message"); nlmsg_free(msg); + nl_destroy_handles(&drv->global->nl_pr); return -1; } + +static void nl80211_stop_peer_measurement(void *priv) +{ + struct i802_bss *bss = priv; + struct wpa_driver_nl80211_data *drv = bss->drv; + + if (!drv->global->nl_pr) + return; + + wpa_printf(MSG_DEBUG, "nl80211: Stopping PR ranging socket"); + nl80211_destroy_eloop_handle(&drv->global->nl_pr, 1); +} + #endif /* CONFIG_PR */ static void dump_ifidx(struct wpa_driver_nl80211_data *drv) @@ -11354,6 +11392,11 @@ static void nl80211_global_deinit(void *priv) nl_cb_put(global->nl_cb); +#ifdef CONFIG_PR + if (global->nl_pr) + nl80211_destroy_eloop_handle(&global->nl_pr, 1); +#endif /* CONFIG_PR */ + if (global->ioctl_sock >= 0) close(global->ioctl_sock); @@ -16722,5 +16765,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = { .pd_start = nl80211_pd_start, .pd_stop = nl80211_pd_stop, .start_peer_measurement = nl80211_start_peer_measurement, + .stop_peer_measurement = nl80211_stop_peer_measurement, #endif /* CONFIG_PR */ }; diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h index d1133a1fe..9c871ce18 100644 --- a/src/drivers/driver_nl80211.h +++ b/src/drivers/driver_nl80211.h @@ -52,6 +52,10 @@ struct nl80211_global { /* Dedicated socket for NAN interface creation and events */ struct nl_sock *nl_nan; #endif /* CONFIG_NAN */ +#ifdef CONFIG_PR + /* Dedicated socket for PR peer measurement commands and events */ + struct nl_sock *nl_pr; +#endif /* CONFIG_PR */ }; struct nl80211_wiphy_data { From patchwork Wed May 13 09:59:59 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237658 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=t9R05j/a; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=f5wCvobN; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=C81gr7In; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=H81nmY1d; 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 4gFpw545lZz1yJ5 for ; Wed, 13 May 2026 20:04:21 +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=B3L7iYlj0freHjwpQA3z3wBHIOw/P+8YXw6RHKMVXgM=; b=t9R05j/aT99YY9 dO3UqOKoMvOcWLws5G++GBBcLPihfTrnoTG9+Mv3jpljcP7BX0D5dB7MHV3BUL7aLbPmMbbIdTKlq jd4ZOPOUXISyDu3JxwyaYeGruAFgiX5uezz96d/tGu/x2O8jUGZeN2j51zDKXn/ht0hVlTVSCKmaQ dc2kc/TGyByA42M7wDhkiJbTi1F+jy92pR3mvVDpNRPGLyUi0wR8r8MVXf4zjyIP71idW9Je188Rj WV3q14/WXHi3V1vKB8qKgG9k5pjJ9N3YOEedbFRnFo6M2ikQSl+eqaudKZNm5m9/suoRbtgiG4SAY W7W82FxJrEiHWlX0vPcA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q1-000000022tp-2ixf; Wed, 13 May 2026 10:02:25 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pn-000000022UH-064Y for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=dMr1ipjDpDCulyL9smyEOdrS83aLlULIsv960QoBHus=; b=f5wCvobNxqH2lVhb867BrCp02O kmyH7umHfHckTHv3xK1LW4SWpyD1MNpCSuzoqOuThxFGX36KkM+cOnJYzR+PLR0ffvwgvSmNKvINx evxEbUmoQ6gaHBITV0q/yUOhKfCzmOTd6YdoXV3sLr2rtcNxxF7XMUBHk3ZETDqp92y/jke78CYEv c5oOdorzOMd9/6jFkrhcF41svaqelLMot6Zn5SPYDcJLRgw77V9uqvh2eTmuXVwGcT9UUc3PzhWtu 7DzHqykgXKx3iXnHJ0bVn9j9yftcAylrgRSm3qx+DBEOK1/pK9/8fvE4O017j1i0Gl/gjvxYeKbU0 Cf3YEnXA==; Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pg-0000000BRQS-3bWg for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:06 +0000 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D5Jbi21393169 for ; Wed, 13 May 2026 10:01:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dMr1ipjDpDCulyL9smyEOdrS83aLlULIsv960QoBHus=; b=C81gr7InmH1Dnv5G sR2bpGcZF/ewgQKSwYOdsmrUB0Ql70tB8+usUFbXzDUXDPUCyQIU4MY8CxIMaEch Chk2YOvDrPkA7T6VlE08dEuN23lSif9bUfC1BPdWCJ09e8uWtTqwu0Ywob54UkIZ gV70TT2KVwtSK126bQL+yBYDVoVse0LYJUvmGMl8sfB1zTeDdx1sv1RATP0eipdU wJc8qy8Ca6iNxAnw7In+Fxq6vemXJ2n6ftgN+QNYkuu4SP5hw86MPAGlhQW7gECW 0LTC0UFLhfiXvt8nMRcLbZ12yoNVKx4Wdvb1FRMxZGK1dDIGO/8LhbcAqhquTfzS 7hTwBw== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4k2613hx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:01:58 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2bd15c00a1fso16424325ad.1 for ; Wed, 13 May 2026 03:01:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666518; x=1779271318; darn=lists.infradead.org; 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=dMr1ipjDpDCulyL9smyEOdrS83aLlULIsv960QoBHus=; b=H81nmY1dbr3X84cyAp5Z/l1ODzLP3GchygM0cclQHE0TxDsLSecmoX7s0g2YeQnhda GUVNTqptjVwqoCss4oo+ydi2r7wJYutoU869rYGkSmUWSMgBB5V7Wj0fklaxoCq9w82J 1CoYcMhabucUpzx07srtJEZ+dPbg3qk/kC2kRAUzqzZgLwtRH4RZ1mShiFUIRIGsA68P 1KdLftQYxvs+ug+RBawwQnHWG/6RGZO4rs8CF2llxSxnDfm7WVCN6kea/I8pyikQTZDL PK+/gAcMET0H9xbwAlB3HIkhyfR4MdOmmYI5lJ9NA2UQT2rV4RKWQv7U/hUqiFMLWBTO UXBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666518; x=1779271318; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dMr1ipjDpDCulyL9smyEOdrS83aLlULIsv960QoBHus=; b=kmGNp2PnW9EsDgDWYMxaO5WwvcB4K4ZCyuIUlMoiT7bd4Y9vrECxsuJSXMNxgCixhN FUOAYlfcEPhNJJdlvl9iy2IrDWTODiqiUMMYEudXyALlBfQEq17s4wyWP+ayIJdeg2P1 eVXoLQA4gAHeJSvSQGXhMgzxHtbcArC1PU7xFg8G+xlRRQUPYvLKeZ+jk3PaglA2oe3t t50w3KxKvz9cJx9f8buNDZMmXVjhKozRuWlmL55bn8apOtn3U6ePL7b1vpI+q2lrc+t/ YMdc78m0rF0qT2Fw+7FmnS2CDWVueu1MN0RzEPLD0A4ojMD+US9ky7044/y3fUysv3/I S/EA== X-Gm-Message-State: AOJu0Yx29m2WeB4HijyRKGC4Nz9+7ane/hFDZV5hymV/sbwypkl5z8TY RE2FaKBNGJQA5JyMAEELjB2p1wJugyvmfJ6Xemh8G1aPWdxtc2/1EmbaDGjhHHmzzkKqNY6Z9N4 bdYb4xrQEWBj2U8K9/+/qUctqK89eQN003Urvy8utRk7xI+M56zU87dJiomXSEVorRs8DDXb2 X-Gm-Gg: Acq92OHaSZKD8FLcfIwL+7uHYWI6I2uQHCG6pV4b6ZX5rfQ/Dbh/7C9g4T0QPUjnUS2 kFMCFOTQUEK0tg5pX4F0Ij9cVS8C8wmEvuqFSmq0xSqb2JB8m0WcSYX+jFucnDEV7OnjeKQ0yml 1u/HeFc/IE8GKzxALtgNETXVjR5dY14AccolvJuz6oqQOsxGLk08lQ0JeBH4HkXkmlRGo10U3Wp +X0op3Z3RRs9KUq2cWFiAs0HAwCM1+MHbcdBkvvRWRR5EVyBI15DU2AySy+fer02P9ZPZpym7wM ovQr0KNkiHjmblkLDfHZ2riDLdQ/6aAk18BWOzZxcRaRDBW73fy38CgRDaeMEsoL90P/VbG0Glp W82L94ilL31dRZT892Aiw3dXSq+Qce0HHwMXO3bqnV2G7Dklxaf+UaQ== X-Received: by 2002:a17:903:1a86:b0:2bd:3c21:a053 with SMTP id d9443c01a7336-2bd3c21a2c3mr7710665ad.24.1778666517371; Wed, 13 May 2026 03:01:57 -0700 (PDT) X-Received: by 2002:a17:903:1a86:b0:2bd:3c21:a053 with SMTP id d9443c01a7336-2bd3c21a2c3mr7710305ad.24.1778666516748; Wed, 13 May 2026 03:01:56 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:56 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 35/46] wpa_supplicant: Add FTM peer measurement result handling Date: Wed, 13 May 2026 15:29:59 +0530 Message-Id: <20260513100010.1947710-36-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=M/l97Sws c=1 sm=1 tr=0 ts=6a044c16 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=mIjBbhEDw61Of_-f45QA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX2VDWDjpVssH+ /5utq0BvlQNgwh1w97JGNAqbtSifLbW+B+bh2/HlNkXEwqcJ7zbCLeyDY25m3LWfQyeBMjAFZam /zhg0GU9SrShNm9Em3OLIdOP9ksjMYnRyYVBglEBi/ADYKS2gWMlzHwG+e8bOhSnWt6vS/lmbdb zALRM5eE35VuKiaoXsHt8pftN/hN/l3krrXrVz5/Wg8Cd3EQnLV/0il95+ZfRf9YK4XctjWV0JN zV268x2twWLUdybyEGsnP/0XWwMOrsuBXuMExe3A6ptembTXsjorsxN2N5DgSKNUmP3tYOOYO09 lMVk4i2F4ggfzRgjvW/n2A9+kySUu4HcdYarI+df4JwjCmw3jEAHFs4IJkQS69XvcMSFlLGPARN p4G7gIQIBXHFuo9D0LSVuSv4u3cxKAl3pEBbun0ByYqXWz/0jUvRbbN/IYaAvB26ZAvg/ygHj0E CR0/EuIwhnDkGMwoBsQ== X-Proofpoint-ORIG-GUID: 55M58_pn0FrADnex-7SpwAhD0fhc4MQN X-Proofpoint-GUID: 55M58_pn0FrADnex-7SpwAhD0fhc4MQN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 suspectscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110201_293863_0822C21C X-CRM114-Status: GOOD ( 18.07 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add support for receiving and processing FTM ranging measurement results from the kernel via NL80211_CMD_PEER_MEASUREMENT_RESULT. Add EVENT_PEER_MEASUREMENT_RESULT event and peer_measurement_result structure containing RTT, distance, RSSI, burst parameters, LCI, civic location, and NTB-specific fields. nl80211_peer_measurement_result_event() parses the netlink message and fires the event. wpas_pr_measurement_result() validates the cookie against the pending session and forwards all results including failures to the upper layer via PR-PEER-MEASUREMENT ctrl event. On final result, ranging_final_received is set to block any further results for the session. Session cleanup is handled separately on the COMPLETE event. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.c | 1 + src/common/proximity_ranging.h | 3 + src/common/wpa_ctrl.h | 3 + src/drivers/driver.h | 63 +++++++ src/drivers/driver_common.c | 1 + src/drivers/driver_nl80211_event.c | 257 +++++++++++++++++++++++++++++ wpa_supplicant/events.c | 7 + wpa_supplicant/notify.c | 28 ++++ wpa_supplicant/notify.h | 2 + wpa_supplicant/pr_supplicant.c | 47 ++++++ wpa_supplicant/pr_supplicant.h | 8 + 11 files changed, 420 insertions(+) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 06ee58b3d..5b5f3bf8a 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -151,6 +151,7 @@ void pr_deinit(struct pr_data *pr) #ifdef CONFIG_PASN os_free(pr->pr_pasn_params); pr->pr_pasn_params = NULL; + pr->ranging_final_received = false; pasn_initiator_pmksa_cache_deinit(pr->initiator_pmksa); pasn_responder_pmksa_cache_deinit(pr->responder_pmksa); diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index b8e49ab77..52a9620ec 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -596,6 +596,9 @@ struct pr_data { /* PR PASN request tracking - similar to pasn_params in wpa_supplicant */ struct pr_pasn_ranging_params *pr_pasn_params; + + /* Set when final measurement result received; blocks further results */ + bool ranging_final_received; }; /* PR Device Identity Resolution Attribute parameters */ diff --git a/src/common/wpa_ctrl.h b/src/common/wpa_ctrl.h index 922d5f82a..70fe22576 100644 --- a/src/common/wpa_ctrl.h +++ b/src/common/wpa_ctrl.h @@ -507,6 +507,9 @@ extern "C" { /* Proximity Ranging parameters to use in ranging */ #define PR_RANGING_PARAMS "PR-RANGING-PARAMS " +/* Proximity Ranging measurement result */ +#define PR_EVENT_PEER_MEASUREMENT "PR-PEER-MEASUREMENT " + /* BSS command information masks */ #define WPA_BSS_MASK_ALL 0xFFFDFFFF diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 4689bc5b0..22a4ad02e 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -6668,6 +6668,13 @@ enum wpa_event_type { * activities). */ EVENT_NAN_CHAN_EVACUATION, + + /** + * EVENT_PEER_MEASUREMENT_RESULT - Ranging measurement result + * + * This event is used to indicate a ranging measurement result. + */ + EVENT_PEER_MEASUREMENT_RESULT, }; @@ -7719,6 +7726,62 @@ union wpa_event_data { struct nan_chan_evacuation_info { int freq; } nan_chan_evacuation_info; + + /** + * struct peer_measurement_result - Ranging measurement result + */ + struct peer_measurement_result { + u8 addr[ETH_ALEN]; + u32 status; + u64 host_time; + u64 ap_tsf; + u8 final; + u64 cookie; + + /** + * struct peer_measurement_ftm_result - + * FTM-specific measurement results + */ + struct peer_measurement_ftm_result { + u8 fail; + u32 fail_reason; + u32 burst_index; + u32 num_ftmr_attempts; + u32 num_ftmr_successes; + u32 busy_retry_time; + u32 num_bursts_exp; + u32 burst_duration; + u32 ftms_per_burst; + s32 rssi_avg; + s32 rssi_spread; + s64 rtt_avg; + u64 rtt_variance; + u64 rtt_spread; + s64 dist_avg; + u64 dist_variance; + u64 dist_spread; + const u8 *lci; + size_t lci_len; + const u8 *civicloc; + size_t civicloc_len; + /* Additional FTM parameters */ + u32 burst_period; + u32 tx_ltf_repetition_count; + u32 rx_ltf_repetition_count; + u32 max_time_between_measurements; + u32 min_time_between_measurements; + u32 num_tx_spatial_streams; + u32 num_rx_spatial_streams; + u32 nominal_time; + u8 availability_window; + u32 band_width; + u32 preamble; + u8 is_delayed_lmr; + /* Flag indicating if FTM data is present */ + u8 has_data; + } ftm; + + } peer_measurement_result; }; /** diff --git a/src/drivers/driver_common.c b/src/drivers/driver_common.c index f04f737c0..170821423 100644 --- a/src/drivers/driver_common.c +++ b/src/drivers/driver_common.c @@ -108,6 +108,7 @@ const char * event_to_string(enum wpa_event_type event) E2S(NAN_SCHED_UPDATE_DONE); E2S(NAN_ULW_UPDATE); E2S(NAN_CHAN_EVACUATION); + E2S(PEER_MEASUREMENT_RESULT); } return "UNKNOWN"; diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c index 2f5d352e2..c16508404 100644 --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c @@ -4258,6 +4258,258 @@ static void nl80211_assoc_comeback(struct wpa_driver_nl80211_data *drv, MAC2STR((u8 *) nla_data(mac)), nla_get_u32(timeout)); } +#ifdef CONFIG_PR + +static void +nl80211_parse_peer_ftm_result(struct peer_measurement_ftm_result *ftm, + struct nlattr *ftm_data) +{ + struct nlattr *ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_MAX + 1]; + + if (nla_parse_nested(ftm_tb, NL80211_PMSR_FTM_RESP_ATTR_MAX, + ftm_data, NULL)) + return; + + ftm->has_data = 1; + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON]) { + ftm->fail = 1; + ftm->fail_reason = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON]); + wpa_printf(MSG_DEBUG, + "nl80211: Ranging failed with reason %u", + ftm->fail_reason); + return; + } + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX]) + ftm->burst_index = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS]) + ftm->num_ftmr_attempts = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES]) + ftm->num_ftmr_successes = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME]) + ftm->busy_retry_time = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP]) + ftm->num_bursts_exp = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION]) + ftm->burst_duration = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST]) + ftm->ftms_per_burst = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG]) + ftm->rssi_avg = + nla_get_s32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD]) + ftm->rssi_spread = + nla_get_s32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG]) + ftm->rtt_avg = + nla_get_s64(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE]) + ftm->rtt_variance = + nla_get_u64(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD]) + ftm->rtt_spread = + nla_get_u64(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG]) + ftm->dist_avg = + nla_get_s64(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE]) + ftm->dist_variance = + nla_get_u64(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD]) + ftm->dist_spread = + nla_get_u64(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_LCI]) { + ftm->lci = os_memdup( + nla_data(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_LCI]), + nla_len(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_LCI])); + ftm->lci_len = nla_len(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_LCI]); + } + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC]) { + ftm->civicloc = os_memdup( + nla_data(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC]), + nla_len(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC])); + ftm->civicloc_len = + nla_len(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC]); + } + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BURST_PERIOD]) + ftm->burst_period = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_BURST_PERIOD]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_TX_LTF_REPETITION_COUNT]) + ftm->tx_ltf_repetition_count = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_TX_LTF_REPETITION_COUNT]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RX_LTF_REPETITION_COUNT]) + ftm->rx_ltf_repetition_count = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_RX_LTF_REPETITION_COUNT]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_MAX_TIME_BETWEEN_MEASUREMENTS]) + ftm->max_time_between_measurements = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_MAX_TIME_BETWEEN_MEASUREMENTS]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_MIN_TIME_BETWEEN_MEASUREMENTS]) + ftm->min_time_between_measurements = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_MIN_TIME_BETWEEN_MEASUREMENTS]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_TX_SPATIAL_STREAMS]) + ftm->num_tx_spatial_streams = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_TX_SPATIAL_STREAMS]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_RX_SPATIAL_STREAMS]) + ftm->num_rx_spatial_streams = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NUM_RX_SPATIAL_STREAMS]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NOMINAL_TIME]) + ftm->nominal_time = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_NOMINAL_TIME]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_AVAILABILITY_WINDOW]) + ftm->availability_window = + nla_get_u8(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_AVAILABILITY_WINDOW]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_CHANNEL_WIDTH]) + ftm->band_width = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_CHANNEL_WIDTH]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_PREAMBLE]) + ftm->preamble = + nla_get_u32(ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_PREAMBLE]); + + if (ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_IS_DELAYED_LMR]) + ftm->is_delayed_lmr = + !!ftm_tb[NL80211_PMSR_FTM_RESP_ATTR_IS_DELAYED_LMR]; +} + + +static void nl80211_peer_measurement_result_event(struct i802_bss *bss, + struct nlattr **tb) +{ + union wpa_event_data data; + struct nlattr *pmsr[NL80211_PMSR_ATTR_MAX + 1]; + struct nlattr *peer; + u64 cookie = 0; + int rem; + struct nla_policy pmsr_policy[NL80211_PMSR_ATTR_MAX + 1] = { + [NL80211_PMSR_ATTR_PEERS] = { .type = NLA_NESTED }, + }; + struct nla_policy peer_policy[NL80211_PMSR_PEER_ATTR_MAX + 1] = { + [NL80211_PMSR_PEER_ATTR_ADDR] = { + .minlen = ETH_ALEN, + .maxlen = ETH_ALEN, + }, + [NL80211_PMSR_PEER_ATTR_RESP] = { .type = NLA_NESTED }, + }; + struct nla_policy resp_policy[NL80211_PMSR_RESP_ATTR_MAX + 1] = { + [NL80211_PMSR_RESP_ATTR_DATA] = { .type = NLA_NESTED }, + [NL80211_PMSR_RESP_ATTR_STATUS] = { .type = NLA_U32 }, + [NL80211_PMSR_RESP_ATTR_HOST_TIME] = { .type = NLA_U64 }, + [NL80211_PMSR_RESP_ATTR_AP_TSF] = { .type = NLA_U64 }, + [NL80211_PMSR_RESP_ATTR_FINAL] = { .type = NLA_FLAG }, + }; + + os_memset(&data, 0, sizeof(data)); + if (tb[NL80211_ATTR_COOKIE]) { + cookie = nla_get_u64(tb[NL80211_ATTR_COOKIE]); + wpa_printf(MSG_DEBUG, + "nl80211: PR: Peer measurement cookie: %llu", + (unsigned long long) cookie); + } + + if (!tb[NL80211_ATTR_PEER_MEASUREMENTS] || + nla_parse_nested(pmsr, NL80211_PMSR_ATTR_MAX, + tb[NL80211_ATTR_PEER_MEASUREMENTS], pmsr_policy)) + return; + + if (!pmsr[NL80211_PMSR_ATTR_PEERS]) + return; + + nla_for_each_nested(peer, pmsr[NL80211_PMSR_ATTR_PEERS], rem) { + struct nlattr *peer_tb[NL80211_PMSR_PEER_ATTR_MAX + 1]; + struct nlattr *resp_tb[NL80211_PMSR_RESP_ATTR_MAX + 1]; + + if (nla_parse_nested(peer_tb, NL80211_PMSR_PEER_ATTR_MAX, + peer, peer_policy)) + continue; + + if (!peer_tb[NL80211_PMSR_PEER_ATTR_ADDR] || + !peer_tb[NL80211_PMSR_PEER_ATTR_RESP]) + continue; + + os_memset(&data.peer_measurement_result, 0, + sizeof(data.peer_measurement_result)); + data.peer_measurement_result.cookie = cookie; + + os_memcpy(data.peer_measurement_result.addr, + nla_data(peer_tb[NL80211_PMSR_PEER_ATTR_ADDR]), + ETH_ALEN); + + if (nla_parse_nested(resp_tb, NL80211_PMSR_RESP_ATTR_MAX, + peer_tb[NL80211_PMSR_PEER_ATTR_RESP], + resp_policy)) + continue; + + if (resp_tb[NL80211_PMSR_RESP_ATTR_STATUS]) + data.peer_measurement_result.status = + nla_get_u32(resp_tb[NL80211_PMSR_RESP_ATTR_STATUS]); + + if (resp_tb[NL80211_PMSR_RESP_ATTR_HOST_TIME]) + data.peer_measurement_result.host_time = + nla_get_u64(resp_tb[NL80211_PMSR_RESP_ATTR_HOST_TIME]); + + if (resp_tb[NL80211_PMSR_RESP_ATTR_AP_TSF]) + data.peer_measurement_result.ap_tsf = + nla_get_u64(resp_tb[NL80211_PMSR_RESP_ATTR_AP_TSF]); + + if (resp_tb[NL80211_PMSR_RESP_ATTR_FINAL]) + data.peer_measurement_result.final = 1; + + if (resp_tb[NL80211_PMSR_RESP_ATTR_DATA]) { + struct nlattr *data_type_tb[NL80211_PMSR_TYPE_MAX + 1]; + + if (nla_parse_nested(data_type_tb, NL80211_PMSR_TYPE_MAX, + resp_tb[NL80211_PMSR_RESP_ATTR_DATA], + NULL)) + continue; + + if (data_type_tb[NL80211_PMSR_TYPE_FTM]) + nl80211_parse_peer_ftm_result(&data.peer_measurement_result.ftm, + data_type_tb[NL80211_PMSR_TYPE_FTM]); + } + + wpa_supplicant_event(bss->ctx, EVENT_PEER_MEASUREMENT_RESULT, &data); + /* Free deep-copied LCI/civic location data */ + os_free((void *) data.peer_measurement_result.ftm.lci); + os_free((void *) data.peer_measurement_result.ftm.civicloc); + } +} + +#endif /* CONFIG_PR */ #ifdef CONFIG_IEEE80211AX @@ -4808,6 +5060,11 @@ static void do_process_drv_event(struct i802_bss *bss, int cmd, case NL80211_CMD_INCUMBENT_SIGNAL_DETECT: nl80211_incumbt_sig_intf_event(bss, tb); break; +#ifdef CONFIG_PR + case NL80211_CMD_PEER_MEASUREMENT_RESULT: + nl80211_peer_measurement_result_event(bss, tb); + break; +#endif /* CONFIG_PR */ default: wpa_dbg(drv->ctx, MSG_DEBUG, "nl80211: Ignored unknown event " "(cmd=%d)", cmd); diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 22d6ce196..1fcc57ee1 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -7648,6 +7648,13 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event, if (data) wpas_setup_link_reconfig(wpa_s, &data->reconfig_info); break; + case EVENT_PEER_MEASUREMENT_RESULT: +#ifdef CONFIG_PR + if (data) + wpas_pr_measurement_result(wpa_s, + &data->peer_measurement_result); +#endif /* CONFIG_PR */ + break; #ifdef CONFIG_NAN case EVENT_NAN_CLUSTER_JOIN: wpas_nan_cluster_join(wpa_s, data->nan_cluster_join_info.bssid, diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c index 59fce8e9b..58661c7ec 100644 --- a/wpa_supplicant/notify.c +++ b/wpa_supplicant/notify.c @@ -1561,4 +1561,32 @@ void wpas_notify_pr_ranging_params(struct wpa_supplicant *wpa_s, protocol_type, freq, channel, bw, format_bw); } + +void wpas_notify_pr_measurement_result(struct wpa_supplicant *wpa_s, + const struct peer_measurement_result *result) +{ + char rtt[32] = ""; + char dist[32] = ""; + + if (result->ftm.fail) { + wpa_msg_global(wpa_s, MSG_INFO, PR_EVENT_PEER_MEASUREMENT + "addr=" MACSTR " status=%u burst_index=%u fail=1 fail_reason=%u", + MAC2STR(result->addr), result->status, + result->ftm.burst_index, result->ftm.fail_reason); + return; + } + + if (result->ftm.rtt_avg || result->ftm.has_data) + os_snprintf(rtt, sizeof(rtt), " rtt_avg=%lld", + (long long) result->ftm.rtt_avg); + if (result->ftm.dist_avg || result->ftm.has_data) + os_snprintf(dist, sizeof(dist), " dist_avg=%lld", + (long long) result->ftm.dist_avg); + + wpa_msg_global(wpa_s, MSG_INFO, PR_EVENT_PEER_MEASUREMENT + "addr=" MACSTR " status=%u burst_index=%u%s%s", + MAC2STR(result->addr), result->status, + result->ftm.burst_index, rtt, dist); +} + #endif /* CONFIG_PR */ diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h index eb4ce89a7..1ed9978b9 100644 --- a/wpa_supplicant/notify.h +++ b/wpa_supplicant/notify.h @@ -216,6 +216,8 @@ void wpas_notify_pr_ranging_params(struct wpa_supplicant *wpa_s, const u8 *dev_addr, const u8 *peer_addr, u8 role, u8 protocol, int freq, int channel, int bw, int format_bw); +void wpas_notify_pr_measurement_result(struct wpa_supplicant *wpa_s, + const struct peer_measurement_result *result); void wpas_notify_nan_bootstrap_request(struct wpa_supplicant *wpa_s, const u8 *peer_addr, u16 pbm, int handle, u8 requestor_instance_id); diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 7a0557ea7..e28b68c13 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -468,6 +468,7 @@ static int wpas_pr_trigger_ranging(struct wpa_supplicant *wpa_s, fail: os_free(pr->pr_pasn_params); pr->pr_pasn_params = NULL; + pr->ranging_final_received = false; return -1; } @@ -756,6 +757,51 @@ void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik, } +void wpas_pr_measurement_result(struct wpa_supplicant *wpa_s, + struct peer_measurement_result *result) +{ + struct pr_data *pr = wpa_s->global->pr; + + if (!result) { + wpa_printf(MSG_ERROR, "PR: Invalid measurement result"); + return; + } + + /* Drop results after final has been received */ + if (pr && pr->ranging_final_received) { + wpa_printf(MSG_DEBUG, + "PR: Ignoring result after final for " MACSTR, + MAC2STR(result->addr)); + return; + } + + /* Validate cookie if we have a pending ranging request */ + if (pr && pr->pr_pasn_params && result->cookie != 0) { + if (pr->pr_pasn_params->cookie != result->cookie) { + wpa_printf(MSG_WARNING, + "PR: Cookie mismatch - expected %llu, got %llu. Ignoring result.", + (unsigned long long) pr->pr_pasn_params->cookie, + (unsigned long long) result->cookie); + return; + } + } + + /* Forward result to upper layer — includes failures and final */ + if (result->ftm.has_data || result->ftm.fail) + wpas_notify_pr_measurement_result(wpa_s, result); + + /* After final result, mark session done — no more results accepted */ + if (result->final) { + wpa_printf(MSG_DEBUG, + "PR: Final result received for " MACSTR + " — no further results will be processed", + MAC2STR(result->addr)); + if (pr) + pr->ranging_final_received = true; + } +} + + #ifdef CONFIG_PASN static int wpas_pr_start_pd(struct wpa_supplicant *wpa_s, const u8 *src_addr) @@ -1388,6 +1434,7 @@ void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, pr_pasn_params->pr_pasn_status = PASN_STATUS_FAILURE; os_free(pr->pr_pasn_params); pr->pr_pasn_params = NULL; + pr->ranging_final_received = false; return; } } else { diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index f8b114985..679c755e2 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -41,6 +41,8 @@ void wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, unsigned int freq); void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, struct pr_pasn_ranging_params *pr_pasn_params); +void wpas_pr_measurement_result(struct wpa_supplicant *wpa_s, + struct peer_measurement_result *result); #else /* CONFIG_PR */ @@ -118,6 +120,12 @@ static inline void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, { } +static inline void +wpas_pr_measurement_result(struct wpa_supplicant *wpa_s, + struct peer_measurement_result *result) +{ +} + #endif /* CONFIG_PR */ #endif /* PR_SUPPLICANT_H */ From patchwork Wed May 13 10:00:00 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237674 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=o+yUI3ov; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=OdWi/VwM; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=MqKxGV5i; 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 4gFqLF2F1hz1y5L for ; Wed, 13 May 2026 20:23:33 +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=0r8BEncpNu/SxpeGZ2by6yl7q12U0NTvRorzuMIhrxo=; b=o+yUI3ovZfW9OF DFPpNRV3csqs22RpGqCudLAh6Cz64SnNTopv9AAItzW58zEOTNOytD5ebbiHVg6mnvXxqqD4l+pGs OgrWSB5LH4lH/1yofEdojd55EH8jYqCFW4OtDlJyef0wOE7h56F465oBHhunWvnviuQ5pkYq/cbIT ArBRFf8YkxI3NzHMg5B8+oJB5ddzt0UYITYmtguAvqhV/wDF/Q5tZg464ds3+Cz3Qt/dRgmOgcYBg E2A6Yh6/wFR4MSad0DG4v7zL5jUF8wMpM6vdb9AFl531k1o4WopYUtl58ioe5xBFdNmhJnh5MhV6k Daefz9JUtmKZUmFipUMw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6jJ-000000029oG-1of1; Wed, 13 May 2026 10:22:17 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6jD-000000029mY-3YTJ for hostap@lists.infradead.org; Wed, 13 May 2026 10:22:15 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D6FIuB3324658 for ; Wed, 13 May 2026 10:02:00 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=6iwDhXyGVMo g11OJ4TC+YxOI/TCM7BuF/h+850UsF4E=; b=OdWi/VwM8G1R4zPxakMGbjhlOsA KnfKUktFjjLTelv2KK/xAC/CZgxEtHPYN0l+JWmkUK6liu5DXC5Wan0QnnKKSa21 0R0AsMFToUr5fRAWcLtC6uSA3A/YWxIVFf28pNFbcvEDCF2xaiJN6KUopsSIweb2 1sU0qqFhm9tZchECenLqiq9XRU5v6sr1aUZCH9hIgreDYH0gJR1wg++rTxgmMK67 ZiXlzF/MlYziqyFErfrX64bVW7hNBK/z6H4fakyRFXYpwlb32DFjezWeNq9A2F/r fIyIc0TO09yYyeLga6HDPuslZdS8YoDx0qtX1UAX7AmKu+hIXV01RWXKixA== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4kvd8wqg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:00 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ba838d3fa4so73550545ad.3 for ; Wed, 13 May 2026 03:02:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666520; x=1779271320; darn=lists.infradead.org; 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=6iwDhXyGVMog11OJ4TC+YxOI/TCM7BuF/h+850UsF4E=; b=MqKxGV5i+PLJE5d7UhPcGbC9mxi5J547+bBSbO+XH8PWbz6detLB7IGt4q4zlYAN9a M/lEud5nk0jVETs5nQ20pyiYQVYml955PpsGp+K27ZddAxUC7UilB5PdosMTlp8injGw GZhGexTDyDrJ2WdU3z0WEyA56yUSvYYU4YTuC41AuPJc/EP/kqiZa1CGiG7+XNavobPx pNa98k5TKR+HLrnflaNSH7i1UdGcRjHDoG0Vo+M7Y9ZHSw0hhbgvCNlfqP73+TaGmJ61 LxJi2gPG5TyKmZvTqxjHuZHgwfQVm4nsS7F/ZcrI+NR1CUir/u+kPmmfxs6FgvrzTMBj 5N2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666520; x=1779271320; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6iwDhXyGVMog11OJ4TC+YxOI/TCM7BuF/h+850UsF4E=; b=Wm9YKgPmcxvV4FQKckvM1q8UIzQuPtGf9/LTwj3xL0OEoLLnjxngKMLMga5Gmyau9r WT1mOxUOsE2EVyXtULpkdsZLUBiswcNkh4lFQujfe2kLIRa+ePczD8zO7++Cn2L73aHi 3UPbXy5U1tjZDA8hnBTw+JkH6+ZUAt5Um4PbuRnsPjvUJxiye5ulRbXtjPXfsMLKC7CJ h+ghJbvDi6oDaaLHHKMvUIM3FjArJxtuoL58twXLcmLx1Dw1btrw6lK439hSl2VcsyZN dtVV4MKsIOsO6DbR0ZjnNsM7VXIuuPglQGgiB/Ye0HKkHF4PqVIQrC63G27CwHNaaXmn iDTg== X-Gm-Message-State: AOJu0YxyS3Js08etVmc9FZK+Ymbxq6qKx4H1WYq1vuqcq9rHcN+wVS/q Cp0Qd9w+KZYGe0ku/5kFWb9lkiOYH30Xn2bgImEOJbMYtxQvn8iXJ2x+3zCcBEp4LtL+6Cmu4un zuIDsNcbNVbwYwzOlNf62cGffADIykXlMC7OVNem9bWuFvD3dA6wNuzaRKbtWjxmyiMg/LtJa X-Gm-Gg: Acq92OFdeOnsYnIajzrjkb3RaGVcqIjYmJbeMo3A6OGminx5iCaw4Y3T4OPv3Z77Kao ceMQbHd+59Eob+0aBe/mZ1sFZzFloIQb5KGkQQcsuHcGRNYcpKWrLdwYeobImFiIb4qtH7LEBOA n5w0ckHBg1wNXwyXGyStmqGNnnn5BCAb7L+uj1i8rGU73HVLjJdH20fZFbAzAuaoAyoLOT6xJtn uMJXPt1A6ZN7gc0VvLFz2RB+tM7H2Na00D+RExN7DUORW2MH2jHW1PEs0uSAyoHUJ+8a3wwB24g YRGecpzvzawbCJ2yZPm6i0lxy1+U1NA3sQ771H3WPXrSLOE4SW6go1fwvOaJ2+9mkCpiRbUqf5l VMqFAyMwQ27z1kQsTlZrnYnKFLkq0NyuZjdyJD2GC/etCwbewy1UVoA== X-Received: by 2002:a17:902:d50b:b0:2ba:60a:3105 with SMTP id d9443c01a7336-2bd2f4e343dmr21693655ad.9.1778666519521; Wed, 13 May 2026 03:01:59 -0700 (PDT) X-Received: by 2002:a17:902:d50b:b0:2ba:60a:3105 with SMTP id d9443c01a7336-2bd2f4e343dmr21693165ad.9.1778666518906; Wed, 13 May 2026 03:01:58 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:01:58 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 36/46] PR: Handle peer measurement complete event Date: Wed, 13 May 2026 15:30:00 +0530 Message-Id: <20260513100010.1947710-37-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: ooVOxm3Gwde5g5xjufIrbVjlbqpLsLzR X-Proofpoint-ORIG-GUID: ooVOxm3Gwde5g5xjufIrbVjlbqpLsLzR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX4gCeGbChOPtr jJ79zhAnngEs/iCrR8oG0HmfJLsKZzVs6hlx2ExzkjJwRiI1++/s0cGdMvAE74GPV2iyMHqUNvJ Dan20ho+1e2ryZ/dgbLCuBhWF7QsrHCbphOHStxCzCwhmgPGS2fOS23HwzzxuVnZso2ZJpkol2k NANQeIOsdpStVZo4eOOuZjk20y49ViPKxkf8HOYjvZhWrL4rlqHGlAIsadrV1mZ8VUCaxEqkqQ7 jNv4RYjRapyhZuvvUbWlCg32cn+49TCEBSYRw2FFujnq9c0QcT6b6Wi5jsOQKxx4b3i44gsFd7N yceXz+dkyxLYDZ/RehXcViemcNFpwwuSrlHm/TFbMnZXqrFGNeTJxG3pqoCI9xQbkF3DlBDqMiy gEcKGpYZMx8fTuNLHB/Y6d2GJitJH00luBJ+sGl1mWT6XViZNbq5juMOCPmXLZr1YxYfKN/T8S3 Wai1hNe5VDDZXWegTjg== X-Authority-Analysis: v=2.4 cv=Iu0utr/g c=1 sm=1 tr=0 ts=6a044c18 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=k1Gpuj_iez5cBAfz6hsA:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_032212_043564_F4AC4E09 X-CRM114-Status: GOOD ( 21.48 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Add support for NL80211_CMD_PEER_MEASUREMENT_COMPLETE which signals the entire ranging session has ended. Add EVENT_PEER_MEASUREMENT_COMPLETE event and peer_measurement_complete struct. wpas_pr_measurement_complete() validates the cookie, emits PR-RANGING-COMPLETE ctrl event, frees pr_pasn_params, resets [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add support for NL80211_CMD_PEER_MEASUREMENT_COMPLETE which signals the entire ranging session has ended. Add EVENT_PEER_MEASUREMENT_COMPLETE event and peer_measurement_complete struct. wpas_pr_measurement_complete() validates the cookie, emits PR-RANGING-COMPLETE ctrl event, frees pr_pasn_params, resets ranging_final_received, and stops the PD wdev. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/wpa_ctrl.h | 3 +++ src/drivers/driver.h | 15 +++++++++++++ src/drivers/driver_common.c | 1 + src/drivers/driver_nl80211_event.c | 26 +++++++++++++++++++++ wpa_supplicant/events.c | 7 ++++++ wpa_supplicant/notify.c | 7 ++++++ wpa_supplicant/notify.h | 2 ++ wpa_supplicant/pr_supplicant.c | 36 ++++++++++++++++++++++++++++++ wpa_supplicant/pr_supplicant.h | 8 +++++++ 9 files changed, 105 insertions(+) diff --git a/src/common/wpa_ctrl.h b/src/common/wpa_ctrl.h index 70fe22576..664a6c825 100644 --- a/src/common/wpa_ctrl.h +++ b/src/common/wpa_ctrl.h @@ -510,6 +510,9 @@ extern "C" { /* Proximity Ranging measurement result */ #define PR_EVENT_PEER_MEASUREMENT "PR-PEER-MEASUREMENT " +/* Proximity Ranging measurement session complete */ +#define PR_EVENT_RANGING_COMPLETE "PR-RANGING-COMPLETE " + /* BSS command information masks */ #define WPA_BSS_MASK_ALL 0xFFFDFFFF diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 22a4ad02e..43394afed 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -6675,6 +6675,14 @@ enum wpa_event_type { * This event is used to indicate a ranging measurement result. */ EVENT_PEER_MEASUREMENT_RESULT, + + /** + * EVENT_PEER_MEASUREMENT_COMPLETE - Ranging session fully done + * + * This event is used to notify that the entire peer + * measurement session identified by the cookie has ended. + */ + EVENT_PEER_MEASUREMENT_COMPLETE, }; @@ -7782,6 +7790,13 @@ union wpa_event_data { } ftm; } peer_measurement_result; + + /** + * struct peer_measurement_complete - Ranging session complete + */ + struct peer_measurement_complete { + u64 cookie; + } peer_measurement_complete; }; /** diff --git a/src/drivers/driver_common.c b/src/drivers/driver_common.c index 170821423..812305cae 100644 --- a/src/drivers/driver_common.c +++ b/src/drivers/driver_common.c @@ -109,6 +109,7 @@ const char * event_to_string(enum wpa_event_type event) E2S(NAN_ULW_UPDATE); E2S(NAN_CHAN_EVACUATION); E2S(PEER_MEASUREMENT_RESULT); + E2S(PEER_MEASUREMENT_COMPLETE); } return "UNKNOWN"; diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c index c16508404..f9db161bc 100644 --- a/src/drivers/driver_nl80211_event.c +++ b/src/drivers/driver_nl80211_event.c @@ -4407,6 +4407,29 @@ nl80211_parse_peer_ftm_result(struct peer_measurement_ftm_result *ftm, } +static void nl80211_peer_measurement_complete_event(struct i802_bss *bss, + struct nlattr **tb) +{ + union wpa_event_data data; + u64 cookie = 0; + + os_memset(&data, 0, sizeof(data)); + + if (tb[NL80211_ATTR_COOKIE]) { + cookie = nla_get_u64(tb[NL80211_ATTR_COOKIE]); + wpa_printf(MSG_DEBUG, + "nl80211: PR: Peer measurement complete cookie: %llu", + (unsigned long long) cookie); + } else { + wpa_printf(MSG_DEBUG, + "nl80211: PR: Peer measurement complete (no cookie)"); + } + + data.peer_measurement_complete.cookie = cookie; + wpa_supplicant_event(bss->ctx, EVENT_PEER_MEASUREMENT_COMPLETE, &data); +} + + static void nl80211_peer_measurement_result_event(struct i802_bss *bss, struct nlattr **tb) { @@ -5064,6 +5087,9 @@ static void do_process_drv_event(struct i802_bss *bss, int cmd, case NL80211_CMD_PEER_MEASUREMENT_RESULT: nl80211_peer_measurement_result_event(bss, tb); break; + case NL80211_CMD_PEER_MEASUREMENT_COMPLETE: + nl80211_peer_measurement_complete_event(bss, tb); + break; #endif /* CONFIG_PR */ default: wpa_dbg(drv->ctx, MSG_DEBUG, "nl80211: Ignored unknown event " diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c index 1fcc57ee1..f771f9658 100644 --- a/wpa_supplicant/events.c +++ b/wpa_supplicant/events.c @@ -7653,6 +7653,13 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event, if (data) wpas_pr_measurement_result(wpa_s, &data->peer_measurement_result); +#endif /* CONFIG_PR */ + break; + case EVENT_PEER_MEASUREMENT_COMPLETE: +#ifdef CONFIG_PR + if (data) + wpas_pr_measurement_complete(wpa_s, + &data->peer_measurement_complete); #endif /* CONFIG_PR */ break; #ifdef CONFIG_NAN diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c index 58661c7ec..c26203d5b 100644 --- a/wpa_supplicant/notify.c +++ b/wpa_supplicant/notify.c @@ -1589,4 +1589,11 @@ void wpas_notify_pr_measurement_result(struct wpa_supplicant *wpa_s, result->ftm.burst_index, rtt, dist); } + +void wpas_notify_pr_ranging_complete(struct wpa_supplicant *wpa_s, u64 cookie) +{ + wpa_msg_global(wpa_s, MSG_INFO, PR_EVENT_RANGING_COMPLETE + "cookie=%llu", (unsigned long long) cookie); +} + #endif /* CONFIG_PR */ diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h index 1ed9978b9..fe8375f09 100644 --- a/wpa_supplicant/notify.h +++ b/wpa_supplicant/notify.h @@ -218,6 +218,8 @@ void wpas_notify_pr_ranging_params(struct wpa_supplicant *wpa_s, int bw, int format_bw); void wpas_notify_pr_measurement_result(struct wpa_supplicant *wpa_s, const struct peer_measurement_result *result); +void wpas_notify_pr_ranging_complete(struct wpa_supplicant *wpa_s, + u64 cookie); void wpas_notify_nan_bootstrap_request(struct wpa_supplicant *wpa_s, const u8 *peer_addr, u16 pbm, int handle, u8 requestor_instance_id); diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index e28b68c13..60a8406cc 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -757,6 +757,42 @@ void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik, } +void wpas_pr_measurement_complete(struct wpa_supplicant *wpa_s, + struct peer_measurement_complete *complete) +{ + struct pr_data *pr = wpa_s->global->pr; + + if (!complete) { + wpa_printf(MSG_ERROR, + "PR: Invalid measurement complete event"); + return; + } + + wpa_printf(MSG_DEBUG, + "PR: Peer measurement complete cookie=%llu", + (unsigned long long) complete->cookie); + + /* Validate cookie if we have a pending ranging request */ + if (pr && pr->pr_pasn_params && complete->cookie != 0) { + if (pr->pr_pasn_params->cookie != complete->cookie) { + wpa_printf(MSG_WARNING, + "PR: Complete cookie mismatch - expected %llu, got %llu. Ignoring.", + (unsigned long long) pr->pr_pasn_params->cookie, + (unsigned long long) complete->cookie); + return; + } + } + + wpas_notify_pr_ranging_complete(wpa_s, complete->cookie); + if (pr) { + os_free(pr->pr_pasn_params); + pr->pr_pasn_params = NULL; + pr->ranging_final_received = false; + } + wpas_pr_pd_stop(wpa_s); +} + + void wpas_pr_measurement_result(struct wpa_supplicant *wpa_s, struct peer_measurement_result *result) { diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index 679c755e2..9a4009819 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -41,6 +41,8 @@ void wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, unsigned int freq); void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, struct pr_pasn_ranging_params *pr_pasn_params); +void wpas_pr_measurement_complete(struct wpa_supplicant *wpa_s, + struct peer_measurement_complete *complete); void wpas_pr_measurement_result(struct wpa_supplicant *wpa_s, struct peer_measurement_result *result); @@ -120,6 +122,12 @@ static inline void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, { } +static inline void +wpas_pr_measurement_complete(struct wpa_supplicant *wpa_s, + struct peer_measurement_complete *complete) +{ +} + static inline void wpas_pr_measurement_result(struct wpa_supplicant *wpa_s, struct peer_measurement_result *result) From patchwork Wed May 13 10:00:01 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237642 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=XeYtfkya; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=mcbj66qF; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=gXnpKTZ+; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=gJ+wMJoR; 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 4gFptp4hgJz1yJ5 for ; Wed, 13 May 2026 20:03:14 +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=pspVVnHRod3S+8ow8jBgVXc3IA+D4EOGSJ9wNSqafY0=; b=XeYtfkyaWa1iPv m+vWKq/vQzzcZJuHdPchOTC72DJVnqsKXQ4xKG1wg3e75OZCNjxMlCDi1XoJwV6J+p378wjt8dEcE xrv0tGonDT+b6rdRJVJUv0FA+3a2FvToxr6CdPSYiLs5STPbat676+8M73gW3VKB5QJ1GFE1/yOIs Pxr1a6Z4TeqfljzIWJ2IR4ZpyoCjIuclbqlQqMB84INsTtluajH4hO9e9o7NzJuhSj6raZvpPE8hP gBS45woNPxcu6lzIdU/+aZFhFrimPSiViFnjh4Ya1x4jhvmVp6l8nkaeSn8fo/X/dWlNcmIOy71mX lvRnYpwgLhrikz5H0e6Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6QA-0000000231Z-2rgt; Wed, 13 May 2026 10:02:30 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pq-000000022VO-3Psq for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=kwhNiV0yIHbH47cWG6zfQLdoFuJXQppWqUgieNL12Qg=; b=mcbj66qFeI9fBmoBIoXRF23/kG hqbyMMOgXAI0L4OHqmVcEWl7nW9NhVvLURmsqLvbbYTlZoRT1uTuwRqNuYSgrda55Bk8kbYt7p3jL TueRDX9/4iZmwKyexat026z7N7IK0Wl7GY5BhEW+YQ1jKRlYM4CCHERyhrj5+OayTzxz7+3ZfGfRZ 9/ufGYs0HPD4+VqwqZ+p/EWTEoLTOERrZQQFwDNzjlURNI1N1fI+ei9n29GcUJ99TqmiPjGMiPGvo Lv7alNZQTmDky730y+hFAZms4IQyVZA7nVpIMu9u4bd3SdiwAAtYorATPn3V68NXPS9RkXR/9o2v7 i0ev2Ygw==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pk-0000000BRSr-3Qw7 for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:09 +0000 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pB6t978175 for ; Wed, 13 May 2026 10:02:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=kwhNiV0yIHb H47cWG6zfQLdoFuJXQppWqUgieNL12Qg=; b=gXnpKTZ+mZjre5tz8hfsvlbUijM A4B8xpWDdNZN5LLPe+79aocfgO30Y/yfi6V0SKLTQKFfjc2sHEsnQLO0UW1wDie1 R4t/NOVceG9ab6nNnPkZ0BGkD6qGG3eAVDltfrac4k3UcGU8iiehErQKzeNrRyhk V++rwCRdiePPRR344chj4/aBBYePfexrf22Rvtk92gO6+ynwVoY7g9YjVCJgPWOy 1HE8VKuRR5Yf58Y4ybInZYfg08gnLDamq1dVNWzesPmBd7i/9hNGDwVn1WZpz5Vt JDuA7JqFmKlRtJT3YoXRc4xzGbPb5yI39SYH6FvgdP0YtfMIvZI5Rdpl4hw== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e46s9uqpu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:02 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-366ded5ab5fso9409636a91.0 for ; Wed, 13 May 2026 03:02:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666522; x=1779271322; darn=lists.infradead.org; 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=kwhNiV0yIHbH47cWG6zfQLdoFuJXQppWqUgieNL12Qg=; b=gJ+wMJoRlm5v1vW5q80azAymMSTd+hZxfboerEDiM6BiQxdsUz9OYtFY3mYAPHZ4EJ /W993/rAWu2as0gvPKjrkG692oZUykoM7hcJEJzudY1mUPVaNe9o93xxNrmSoeD/l14w ESMwa3iTPRZ57RZuAJYzQIL1T4C2NmEHVr400x3XEWvkImVGrWwmudFEm4TFuGNZouPW 0ZpglQDLZ1H4nN/DSyP6JSTRBfuYm4o0svZaeuqUBrYGpg2SoshlGS356HybUflI3TBB +l4ppoSbuM633Y5y3xJy8+rUJusPTCbsPJ2SC4TFwg4a+DKt+1NV98ArQNIHED+m4aQZ ADaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666522; x=1779271322; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kwhNiV0yIHbH47cWG6zfQLdoFuJXQppWqUgieNL12Qg=; b=VpFmUOPAlHR9gXjNWIWJCHfl1oRUxxFLxZmUV3JRYCKnff4bijll6DAeyZEaBohIkZ jkXuuRUwj3zOatDgDIqenGLMFGikL2vBkPlHV02ZT1vqWC8xaIOsoeyUJwa8fDFjaETi Zlax9foNZ6Xof3maCOAYBIZ0XFqLLVGtZCgZqeID+oKiUeURvBiuqZbS0zdaRayjJbZk zvtTNY/sjlRkyj3BSa83yCjxnDJXMa+J3W/9qDNG7DlUV9T1WKKC2QYHTaizz5qXf1Nr 9z9Qu860/Q45DNuKj95J5Q6avn6Y8XhhGXOV8l8EIZ71Z1nKMOSnK6R1x6HDjM+hWcrc 3fBA== X-Gm-Message-State: AOJu0YyModelrLKQ3lZ9h46dIWD8XFtzFmqOSUe+5BucWBoPM0cHKd6e ifo+ekmrPzjodyj4uSBEFDXvsCJHTIjWiEHdpTKQ6ovQ5Z71jbOggvZVxE8ppQPSFXQZt9k6CMl Mj7kCp8CXsz04Nyrk4C2ZpnRNyTE5wZWoTuswmyZ5vtIy10OU44WPj0RN+0aeE7cHXWkAVQHX X-Gm-Gg: Acq92OGsGa27EPnskRqkl0ta2MFL8KtfMaLZ28VUGr62mpf/byeCSAwNH7sY77jAhLW JVZajxtYfQHPnfSdNuQRq9051Dhg4MIGqoj6UujeFYndc0KWff5uHjFMIQunQ2tNEaNjzitz65F QfOFeunpysB9uHaf5E9tP538v4SVk374827sWxJtH/UH+F1f8cu0hzzjABbOcWHRWyg0k2ssF6g 2YPy2SaHv1YxFIFRi9kZjTdOm30/WKRcIosxVejdDTqgfULyrZxYr/Za+/Mk7JV0CsNutae+R2O SNj/NkQ5ev99gzps/ZlhftVLI65N+p/lFuSJa0Rv3Kf373MufUtQF05UwBPUD66beTS6sittbKD lzDvbET3w6gJSmw8XEtzuVdlAV6G/JR2VmH0aKl6cQlNqdxaECs75dw== X-Received: by 2002:a17:90b:3a46:b0:35d:a861:36de with SMTP id 98e67ed59e1d1-368f3e58dfemr3196015a91.24.1778666521637; Wed, 13 May 2026 03:02:01 -0700 (PDT) X-Received: by 2002:a17:90b:3a46:b0:35d:a861:36de with SMTP id 98e67ed59e1d1-368f3e58dfemr3195963a91.24.1778666521054; Wed, 13 May 2026 03:02:01 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.01.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:00 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 37/46] PR: Add ranging session timeout and integrate socket cleanup Date: Wed, 13 May 2026 15:30:01 +0530 Message-Id: <20260513100010.1947710-38-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXzXMR5Qcs+joQ kyruGnytvl296D61dvVyAhJDRDvbrXhDNBLp95S/lz+WZzCHc/GG7KK8fqozD5MyZRdcOs4GlRT 48wrBheI9XfZLq/PTTDCL3SjDBzqWFb8XqOu/fpjhJkHTMgdpYKmqas1m2CM75YMba13VDi1nxu UTK+ABm+y7r8DYAPEIc/zhxtDqYq6rHLyPRWFrZhD4jegXBziHSz+apYrLnM41DznroC/ul9/Ef WLRg3DprefVvE60OmoQBCO0Ts4iFgcCV3bFNaUqUMgp8OFsgDn2wePMUklRCdoyE6VLRb+p627Z aCgHmRWF+oi+NwafbBXGEHzIbP4BDW9q6QsJfJcljwnJtUW4GJb5IE7XLKFgbBdlSMJ1e+GLrjj ECz1lhShvlsnR3hJl1LUUpeE88pPRvgEh7+p7jyCtA/AQu8LLcFqwPyDVgEpt4ijIl2PP+uFquA PYovCqjFFtA0fThLi6g== X-Proofpoint-GUID: ajEFYlAKoxeKFZ51EmQrH21mbexq59mr X-Authority-Analysis: v=2.4 cv=L68theT8 c=1 sm=1 tr=0 ts=6a044c1a cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=G-HEYAKeVWfQlSNW4CcA:9 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-ORIG-GUID: ajEFYlAKoxeKFZ51EmQrH21mbexq59mr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110205_124121_A38B935B X-CRM114-Status: GOOD ( 21.31 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add wpas_pr_ranging_session_timeout() to automatically clean up when a continuous ranging session expires. When continuous_ranging_session_time is set, a timer is started after ranging begins; on expiry it stops the peer measurement, frees pr_pasn_params, and stops the PD wdev. Cancel the PASN timeout when ranging starts to avoid premature cleanup while ranging is in progress. Cancel the ranging timeout on measurement completion. On final measurement result, only ranging_final_received is set to block further results. Actual cleanup is deferred to the COMPLETE event or session timeout to avoid premature teardown. Integrate wpa_drv_stop_peer_measurement() into wpas_pr_pd_stop() so the nl_pr socket is always destroyed when the PD wdev is stopped, ensuring proper cleanup on all termination paths. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/driver_i.h | 8 +++++ wpa_supplicant/pr_supplicant.c | 55 ++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/driver_i.h b/wpa_supplicant/driver_i.h index c111224a6..7ff9f454c 100644 --- a/wpa_supplicant/driver_i.h +++ b/wpa_supplicant/driver_i.h @@ -772,6 +772,14 @@ wpa_drv_start_peer_measurement(struct wpa_supplicant *wpa_s, const u8 *peer, params); } +static inline void +wpa_drv_stop_peer_measurement(struct wpa_supplicant *wpa_s) +{ + if (!wpa_s->driver->stop_peer_measurement) + return; + wpa_s->driver->stop_peer_measurement(wpa_s->drv_priv); +} + #endif /* CONFIG_PR */ static inline int wpa_drv_vendor_cmd(struct wpa_supplicant *wpa_s, diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 60a8406cc..a753db9a1 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -380,6 +380,28 @@ static void wpas_pr_pasn_result(void *ctx, u8 role, u8 protocol_type, } +static void wpas_pr_ranging_session_timeout(void *eloop_ctx, void *timeout_ctx) +{ + struct wpa_supplicant *wpa_s = eloop_ctx; + struct pr_data *pr = wpa_s->global->pr; + + wpa_printf(MSG_DEBUG, + "PR: Ranging session timeout - cleaning up"); + + /* Stop peer measurement and cleanup ranging socket */ + wpa_drv_stop_peer_measurement(wpa_s); + + /* Free ranging params */ + if (pr && pr->pr_pasn_params) { + os_free(pr->pr_pasn_params); + pr->pr_pasn_params = NULL; + pr->ranging_final_received = false; + } + + wpas_pr_pd_stop(wpa_s); +} + + /** * wpas_pr_trigger_ranging - Trigger FTM ranging after successful PASN auth */ @@ -463,6 +485,20 @@ static int wpas_pr_trigger_ranging(struct wpa_supplicant *wpa_s, wpa_printf(MSG_DEBUG, "PR: Successfully triggered ranging measurement"); + /* Start session timeout timer if continuous ranging session time is set */ + if (params->continuous_ranging_session_time > 0) { + unsigned int timeout_sec = params->continuous_ranging_session_time / 1000; + unsigned int timeout_usec = (params->continuous_ranging_session_time % 1000) * 1000; + + wpa_printf(MSG_DEBUG, + "PR: Starting ranging session timeout timer for %u ms", + params->continuous_ranging_session_time); + + eloop_cancel_timeout(wpas_pr_ranging_session_timeout, wpa_s, NULL); + eloop_register_timeout(timeout_sec, timeout_usec, + wpas_pr_ranging_session_timeout, wpa_s, NULL); + } + return 0; fail: @@ -490,9 +526,20 @@ static void wpas_pr_ranging_params(void *ctx, const u8 *dev_addr, protocol_type, freq, op_channel, bw, format_bw); + /* + * PASN succeeded - cancel the PASN timeout so it does not fire and + * prematurely stop the PD wdev while ranging is in progress. + * Cleanup happens on COMPLETE event or session timeout. + */ + eloop_cancel_timeout(wpas_pr_pasn_timeout, wpa_s, NULL); + /* Trigger ranging measurement after successful PASN authentication */ - wpas_pr_trigger_ranging(wpa_s, peer_addr, freq, op_class, op_channel, - format_bw, protocol_type); + if (wpas_pr_trigger_ranging(wpa_s, peer_addr, freq, op_class, op_channel, + format_bw, protocol_type) < 0) { + wpa_printf(MSG_DEBUG, + "PR: Failed to trigger ranging, stopping PD wdev"); + wpas_pr_pd_stop(wpa_s); + } } @@ -713,6 +760,10 @@ void wpas_pr_deinit(struct wpa_supplicant *wpa_s) void wpas_pr_pd_stop(struct wpa_supplicant *wpa_s) { + /* Cancel ranging session timeout and stop peer measurement */ + eloop_cancel_timeout(wpas_pr_ranging_session_timeout, wpa_s, NULL); + wpa_drv_stop_peer_measurement(wpa_s); + if (is_zero_ether_addr(wpa_s->pd_addr)) { wpa_printf(MSG_DEBUG, "PR: pd_stop: no active PD wdev"); return; From patchwork Wed May 13 10:00:02 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237675 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=F38BL6xR; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=X0/j9OUN; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=VUJHpKbr; 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 4gFqNY52bWz1yKH for ; Wed, 13 May 2026 20:25:33 +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=thz6LPa9eeoUi7feT0PxZPqaPKaf5eZQ+nKsW+IVLwA=; b=F38BL6xRVusesh xx2jbUSv3rewsw0NqCtY5V6Bex/Y0ILaBtfR0zlKPdZbNiBFIhOWaBEs3sSCgS5gOfe4tFinuoTYL Ihwj6+HA78yc5NP7XD31tSYGlxxYmtkzydOlIOvQDrweF/a4nvVkCF3LuO/y4qaqiSmHl3Iju0Vgx PxuIBrhJSDJYXzzNa/hP/FHgehQwC3X4BTK6eYVQrfkflfVrX5/x+ibz+F/wNV19Ag7bdebrhUl/l IDXxPxlmGcksmZPwLZ0ZT1scR7SejTWiy25uzM7QFZC6BYuUr9FvG43TsYuMOTQo6fD5iQ7hACt/r YiZnugxt2eNez07x6u3g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6lJ-00000002AS9-3y2F; Wed, 13 May 2026 10:24:21 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6lH-00000002ARb-0VHA for hostap@lists.infradead.org; Wed, 13 May 2026 10:24:20 +0000 Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4pIoo978386 for ; Wed, 13 May 2026 10:02:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Xp+37d98CkK 3fI3djlZJungU0UR2XiiIXre1F7LeE+k=; b=X0/j9OUNJY1Oh0umtVoJ0kd3j7w BpSeVJHdfHSewksntXuqODu17nxaNr42DZKcAx/ZNsGSg+jgTZg8tP2jo5hwVTIU wDLZlD8klA/esEWuQ0ZbG3INXSzwihPHTzk3wFMEjG/ezU0x4nyrKSrOni74b3e6 uaHpi3dxbOoWWuqOmAt6HqewEY/2KRgZuhoU5alLqcu8rnPSUM5GGplwy32ZXi2J 4wniOaQPWSXASSWaPiz5Gxh0iGlnN6mCjqDl0J0ApdZVZCuIBwySc9uRXzWC3It2 EGW+FP+ctI0PI89R+fsrPw4K+ORlUeEbvEWi9YWVggWNDLkqcfrg5maXXqw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e46s9uqq6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:05 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2bd1dbcccf6so21557795ad.2 for ; Wed, 13 May 2026 03:02:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666524; x=1779271324; darn=lists.infradead.org; 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=Xp+37d98CkK3fI3djlZJungU0UR2XiiIXre1F7LeE+k=; b=VUJHpKbrS7CF0a6DVs3edCS3w0zUac+EaawCBSn8XP53W7gCy9RBuN7RgODx42ishB zKZsv0w8DI8N0ipSbvJ+jwsRGRqY/w93tGapyt1DtnHSLBxMf4AMcSdMjyAIAyHG/ZwU JK18+fXvaT7GDmC2cbduXYWXbp2ubsqSK2cWgwxH+5KXBs1WyM/ZfHD0ZvSZeXiXrKKD nSSnhxCC0s5EfXqqd1r+W2xRA++u8fOkuNryFJvCbL39Q+i+8GaHY3hGcYlBhk3CAAN3 GzTk5QPYhxYAQYG3Sn5S1ITbN6sdj8nAkMUBMKJbssqiz1sD7fMM5L3grvkpmvtPs5Z/ B/Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666524; x=1779271324; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Xp+37d98CkK3fI3djlZJungU0UR2XiiIXre1F7LeE+k=; b=TiM3uqsGRzQpUSKNrl1H/tDPZlsVWIsxF05MYw+VlY5tm7AEq8VqO7KJ4BucVQPe8b W3OQ0u0JFwiYsC60FyoTwe4jmBE5pB3jflqI4HFoTgBt/ciNSSUyW5ZQvqEbDTuExWU4 acHwWto87kqksGaHpqU3lEvjgbyMSmO1oaIv8AI7OtsdrBJrZDjK9P9N4g0Qi1UjQuIQ u8vVodlvQbSEs3rEenbS+5kAvTqZmOIgQ8HJmA0U5zinjhWSSHuKno17HTkWrYwV7Tue 8PPhjKHAswz58W4aJYzfBDg5kim7FOrYurCMw/hNyV61meoHzsScSxv4BZNMfAIuWCjJ z0pA== X-Gm-Message-State: AOJu0Yxw1WYlXfnxNz0rEOrP8EwfLe3hH7AXWPaaIvRucLfDoUEY5CyS gnJF6lycBsIjxtSuJgPMiGBYCdWDohmbVDY0IcKVePshDoBPNKoA8BD+IxwPJQGhSpfLbj5WOeq 5QvpmZHKhJ0QkZCe/0OncVbtCPAOF0PwRlhfit52eEWAbF4d62dQU5HjKqgiYGFfvrH9eNXxf X-Gm-Gg: Acq92OG4bDC7Mw4X5pvNk7cDvv0Da6KbcLpaCm63dejz+ZvwRGHGghxvRtSblCEqQDX NaiaJ73hLHD+wpZ39oRnMctZUqkjUxFQSjppFVVBK84eQjrdzzEPL0k4XgjMziZDVF+YOB7avHl hJM3YVrtCOo40RzwkOyvQue+VQ8vOwgGu7Kty4DIkUGEIVPmiz3ERx8jNJCyJDvLF1rEnrm1nwq YkdQoXQMTRkfyYckpfeSvbNV1BnZJb0D/GJkKyV7LRyPiN/8lFvrrd3ov53Y1c6sAJ34xYT8EJ1 zojWFYLZwxosga3FMeUfCZfFhnenIxDl0qOtvtV3Z1ihkoUaobpAfbudYIG0CHW0UNc3qmkDM4h ZDA4IfZ8dSqJaYTdgyM+sDf/0ev0S7SKYAPcPNn6dC2Pk1cwCOPCCow== X-Received: by 2002:a17:903:2ace:b0:2ba:924b:3948 with SMTP id d9443c01a7336-2bd2f71a709mr23271175ad.15.1778666523784; Wed, 13 May 2026 03:02:03 -0700 (PDT) X-Received: by 2002:a17:903:2ace:b0:2ba:924b:3948 with SMTP id d9443c01a7336-2bd2f71a709mr23270735ad.15.1778666523276; Wed, 13 May 2026 03:02:03 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:02 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 38/46] PR: Add API and ctrl iface command to abort ranging session Date: Wed, 13 May 2026 15:30:02 +0530 Message-Id: <20260513100010.1947710-39-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX3LXn5BBc3jo3 KyAqP7OXHeeCCi5B45O34k4XyRtFUiPiSPWi7ekfNUjPjnBHILRuzVNyQMsPk/ermQzdwzHuo+1 UQxWEbrp2czsvPleVmsJ8yjjaEpgNEjCVnRKME8aycFnlR5+itCdZaIChhVPh2FHwL4g73/HeFH gZkrxnsqww8jd8/+fmM5fpHaB3y7zolm8EzeSpT/k8FmQV/y6qgcXY2V8e8aszO81SeXHBuSVsi LWONhsRdVdcQRP1pMFb93zQorCwdd8kCBycZ1yacCv1yrHsiGtZ7Ywsq2yZvo0m8dszWeGB9fs6 UEJwe3N3R1aZyvrRaSDQ1Dl/KLkClIFPHata/ATwqzr4qseYRBBnBcumdKs8Tzl7BliYVzJKqgv CZi4ptKFf5iSQZfr8A3rTdzCNGAHk2BtP5V8pf33cUxTYU1X3b7Ec4kQHch6yUHYjtFuktpRugA s365ib5W7nESOQDpnMA== X-Proofpoint-GUID: CkdfoDofhinPWt7Si7Nu0b6PfC0jobWD X-Authority-Analysis: v=2.4 cv=L68theT8 c=1 sm=1 tr=0 ts=6a044c1d cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=XRsKbliyRFcxqNKwjcYA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: CkdfoDofhinPWt7Si7Nu0b6PfC0jobWD X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 impostorscore=0 adultscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_032419_275322_9842F229 X-CRM114-Status: GOOD ( 18.91 ) X-Spam-Score: -2.8 (--) 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: Peddolla Harshavardhan Reddy Add wpas_pr_abort_ranging() and PR_RANGING_ABORT ctrl_iface command to allow early termination of an ongoing ranging session. The function cancels any active PASN work and ROC (for the responder path where no PD wdev exists yet), then calls wpas_pr_pd_stop() to clean up all ranging resources including the nl_pr socket, sessi [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Add wpas_pr_abort_ranging() and PR_RANGING_ABORT ctrl_iface command to allow early termination of an ongoing ranging session. The function cancels any active PASN work and ROC (for the responder path where no PD wdev exists yet), then calls wpas_pr_pd_stop() to clean up all ranging resources including the nl_pr socket, session timeout, and PD wdev. Signed-off-by: Peddolla Harshavardhan Reddy --- wpa_supplicant/ctrl_iface.c | 2 ++ wpa_supplicant/pr_supplicant.c | 48 ++++++++++++++++++++++++++++++++++ wpa_supplicant/pr_supplicant.h | 5 ++++ 3 files changed, 55 insertions(+) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index b2cb6746e..8238229f0 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -14505,6 +14505,8 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s, reply_len = -1; } else if (os_strcmp(buf, "PR_CLEAR_DIK_CONTEXT") == 0) { wpas_pr_clear_dev_iks(wpa_s); + } else if (os_strcmp(buf, "PR_RANGING_ABORT") == 0) { + wpas_pr_abort_ranging(wpa_s); #endif /* CONFIG_PR */ #ifdef CONFIG_TESTING_OPTIONS } else if (os_strncmp(buf, "PASN_DRIVER ", 12) == 0) { diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index a753db9a1..8d1a1b632 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -22,6 +22,8 @@ #ifdef CONFIG_PASN static void wpas_pr_pasn_timeout(void *eloop_ctx, void *timeout_ctx); +static void wpas_pr_pasn_cancel_auth_work(struct wpa_supplicant *wpa_s); +static void wpas_pr_pasn_roc_work_done(struct wpa_supplicant *wpa_s); /* Total listen window (ms) for the PASN responder ROC */ #define PR_PASN_RESPONDER_ROC_DURATION 5000 @@ -808,6 +810,52 @@ void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik, } +void wpas_pr_abort_ranging(struct wpa_supplicant *wpa_s) +{ + struct pr_data *pr = wpa_s->global->pr; + + if (!pr) { + wpa_printf(MSG_DEBUG, "PR: abort_ranging: PR not initialized"); + return; + } + + /* Check if there's an active ranging session */ + if (is_zero_ether_addr(wpa_s->pd_addr) && !pr->pr_pasn_params) { + wpa_printf(MSG_DEBUG, + "PR: abort_ranging: no active ranging session"); + return; + } + + wpa_printf(MSG_DEBUG, "PR: Aborting ranging session"); + + /* + * Cancel PASN and ROC in case PD wdev is not yet created + * (PASN still in progress or responder ROC active). + */ + wpas_pr_pasn_cancel_auth_work(wpa_s); + wpa_s->pr_pasn_auth_work = NULL; + if (wpa_s->pr_responder_mode) { + eloop_cancel_timeout(wpas_pr_pasn_roc_total_timeout, wpa_s, NULL); + wpa_drv_cancel_remain_on_channel(wpa_s); + wpa_s->off_channel_freq = 0; + wpa_s->roc_waiting_drv_freq = 0; + wpas_pr_pasn_roc_work_done(wpa_s); + wpa_s->pr_responder_mode = false; + os_memset(wpa_s->pr_responder_src_addr, 0, ETH_ALEN); + } + + /* Stop PD wdev and cleanup all ranging resources */ + wpas_pr_pd_stop(wpa_s); + + /* Free ranging params so a new session can be started */ + if (pr->pr_pasn_params) { + os_free(pr->pr_pasn_params); + pr->pr_pasn_params = NULL; + pr->ranging_final_received = false; + } +} + + void wpas_pr_measurement_complete(struct wpa_supplicant *wpa_s, struct peer_measurement_complete *complete) { diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index 9a4009819..941a4a2f8 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -41,6 +41,7 @@ void wpas_pr_cancel_remain_on_channel_cb(struct wpa_supplicant *wpa_s, unsigned int freq); void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, struct pr_pasn_ranging_params *pr_pasn_params); +void wpas_pr_abort_ranging(struct wpa_supplicant *wpa_s); void wpas_pr_measurement_complete(struct wpa_supplicant *wpa_s, struct peer_measurement_complete *complete); void wpas_pr_measurement_result(struct wpa_supplicant *wpa_s, @@ -122,6 +123,10 @@ static inline void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, { } +static inline void wpas_pr_abort_ranging(struct wpa_supplicant *wpa_s) +{ +} + static inline void wpas_pr_measurement_complete(struct wpa_supplicant *wpa_s, struct peer_measurement_complete *complete) From patchwork Wed May 13 10:00:03 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237644 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=qtXXeRTK; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=R7Iy9+Gz; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=lGpvR4A5; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=XYwuDhNX; 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 4gFptr51xmz1yJ5 for ; Wed, 13 May 2026 20:03:16 +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=1amtK/TVibjm2+srLBjE8j7AvZN+Sf5undO/EHw0KP8=; b=qtXXeRTKFuoZov 9peN6Wu0uklrULfFWNZfjfQeypcJ1nv86Dqxq6NzW0ndRpxh/LZaihtUbZKSVMrHh93Bo0UQERfpc C3757LupBHYsdkEERya+ANThTKKZpMnM6pHjEy5a2T296CGodpE7Fhs/6WMDR30sGYRHy9yV/SYEt T6dY5mnazN023LfZZDNBJzx9HcPUzRqKHBrn5XIGSUxYRfp7pjfopa+ov22Fuo2F9pWE6XGBQH+5L mBA7msW6yT2EopqDr8e4GgKt7xv8CM2CuvxWRohQMDfwsY3bxtJ1fbg95ybnwJv7MWPey4oSIE6EG 0BCmmliNjRNtAp3GL9Nw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6QO-000000023ZA-3eTB; Wed, 13 May 2026 10:02:44 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pu-000000022fM-13R1 for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-ID:Content-Description; bh=MzRzHlnkxsYXKRexIN7pTB4V5ITcqeCd1CLui1yir6k=; b=R7Iy9+Gz8L35R0kULzHrzaMLNL 1NDJ1XXOuiFKdj6qTT1zzP6+9z0CpxO+NhlVXcJ5wuPcRqvFr2CFCeDD6Q7DN2vS3VLe96/qSozO2 W4gY0ZAzbeIDTQ2kPE2vn9sLP3UlQA+aH/m70CWPeSWbVaImHh0/8jFC5qGYKVmcBF+o5O/255chf IqijjOZ9Y9MQvuueOMFTdC2wgmiHPhiFvpJnCVjmBjKDijrJ2kByP7Q5Nrxg/9hAQVlKDZ4Ob7wev pibuEOxcP6x4LZuQocWaXfVhJOZmZGJ36NILC+ym7es/vW/LphLcDEC5ybfCB4B2n4ohiyuoKoGXB YeXbGEjA==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Po-0000000BRUv-3A27 for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:13 +0000 Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D4p9rD2338828 for ; Wed, 13 May 2026 10:02:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= MzRzHlnkxsYXKRexIN7pTB4V5ITcqeCd1CLui1yir6k=; b=lGpvR4A5kwXg9GAt D22nJniUHA65VrdoKzq6TCqOHtHHPzH9Jx4mmjBQ4eQdYy8Jw7cn3fb6JRYjpozc mz/XvBYshGJbxAuPG5nwAedmzbtblZLL0S+53HYRkocr3Kv6Dh8+HvbGeM7WqCwj p/WjOZSx65+3GrHzWmP8eaWag1F0rF/EJ2YVMYuxDvyjqvPDOiaTxyw8KS5OO/ZT YqwV9d/k9BFBOnSIgSsBMiSVJ4pk+jGHAHBiv5JgkeUhnJk+tPaJzvzZCQ8KUnJV 2IUGwb0cD54C/I/WFoO28A6q9VZi4hz2EBSrYCADzsiqY40vqMlyOjnqujdw4NXM fByqZQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e49vxaw29-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:07 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b9b8137828so70271245ad.0 for ; Wed, 13 May 2026 03:02:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666526; x=1779271326; darn=lists.infradead.org; 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=MzRzHlnkxsYXKRexIN7pTB4V5ITcqeCd1CLui1yir6k=; b=XYwuDhNXUcLWYR9b8kyE8Q6QQst2dWEeHvqzHYtcUjZQuVDbcc3FpAUHhntG5LLdh7 SAEzXM9UEW69iYrtLbP9azBOYJHAefmiurNLUs/Sg4hmzXE15zlRfYC+opZ+Kp7H+kIR 6PNFraIhaT2IvLIeOJ8ESyXK5JTGE2CrZ3mpL8ux0riM1Zvti7IDcSYLV2DeOIvkCPcj C+kW80J4vOZogteOdgnZiAcOWj4A9Nh31FBXYv1IoY1qq6lYf1kE/o5cLVkbBtQCXvOP 81I1HzF2DskMCAVlroJuZ6hh1IoTw/pAliOxrmqfRphNSbMtg6BlJJEhLs1AQuVRQP/U jokw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666526; x=1779271326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=MzRzHlnkxsYXKRexIN7pTB4V5ITcqeCd1CLui1yir6k=; b=sygCiZMUEiE1Rkmzjc+T1Dm5dxUj5E1p9v9j80Ej6xSXVE6xrnkTHsXn0n1bbjrl3j QYw2aO/VIbe83eE+XYgmA7jjRS09AcjOMIOpemDkYFX0xY3nJ+VemO9sGrg5T3Yx9yM8 sYMF14OaFq0F3y6Cbcfl/Vqi0Spd6pSklyqkMs1hkg9L23FxAjDVj1Q2ywSadNB0C0UN 7kH9ecRkxjlRjwWSJsYH2KueLuv573R3W89O4SLlitivT21r4AUGj0CA22EttzRxytzi vq4wfDYdjzlSuVe6f5QxXAehdjkeSPrH1TWg4OCytzTL3292fXQXy5KtpkC//qw8HQpI /DNA== X-Gm-Message-State: AOJu0YxMOcCilPXNkwgU7wAadtJ1p2OWFWyo9fUMM2H8C4SyMmOdDhGU qlSm/WUYnyT43u4h+ga9+bBXPnBL3R5jnOKXnHsDblWhc2HKWfwHn3vsMmMX2YSLaGyZvSwkojc bTWHL1g3AemjEiveQ64GiY4Q8uOCh4mVRahdpLvaV6TaQQO3+LPNCYs850I5LjUEtmhSzG5K9 X-Gm-Gg: Acq92OEOYnLqHu274/a2dGgKBVdnHj7pO0Xo/Z6bDqID2sZl2q3DWcwX8GKItGJkqxa m8a9EDvhx8Skg6gq4VmNwjii/m3d9dO28a9wDHlkzqXNj6gO5FIvBgkI02wgWPPJ9oZ2uZ2BkK2 V5OS34Z9vfskJZfOtq96tpliwCUExTD+wskn7vm6XB0Qi5Dadkya0lIHj/Bm/5o9ozgCFoHLoRa CofEUVtDf7udeA2Efx+BqH+rhxAVNnj74ppOn+MeqjnAO9y2k+wGaDc7I7HkX6yCjM3K8WmZgW8 adf1RJjx4NXQ0qlIf2z9N04vQgT4Razrinej1DMaWIrks9Py1Sm+z/cFfmY/SacIBVJBJ3HCy+s SMVac4cOzPNvbSQsFaO1uv4sK5shp1AtfzTUlc3zB87FSpuldyB7krg== X-Received: by 2002:a17:902:cec8:b0:2ba:4086:ecb1 with SMTP id d9443c01a7336-2bd30228194mr22758785ad.34.1778666525910; Wed, 13 May 2026 03:02:05 -0700 (PDT) X-Received: by 2002:a17:902:cec8:b0:2ba:4086:ecb1 with SMTP id d9443c01a7336-2bd30228194mr22758105ad.34.1778666525422; Wed, 13 May 2026 03:02:05 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:05 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 39/46] PR: Default pasn_type to DH19_UNAUTH|DH19_AUTH when not configured Date: Wed, 13 May 2026 15:30:03 +0530 Message-Id: <20260513100010.1947710-40-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: row1ENBsN8Fl0SbGKl5Il3OXjZToysbE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXz51K9Zw0I6Sa TuRkejK01LMxDGf6IglKsvCfR/rRTttTd4TZ/wwzzLq+EmYWvBsmdWbWCn0Vh0gkao8HpSLU7Ay 48g8k3DIZm1HjMzGi6IkKY1MPeGXV0tvB9QoOYVQDGlbatDw4UNjMvTf1qEGLIbQlW7KkQlXhu8 +58wYkxAKbZg27mblxTZQjk8k2vZ8YWnbz3yoT1rt3rn9pLW8C451GzGYWnyRvRoFetjD1G2g3p qDYWjnc0/2PLxSupwSWpyhiW6SqH1/ohOPhoERahg1ZPehnb+JbkX9Ml9FGD4ab7V7UGHIihf8u CFkAx7GV3ejo43gJZ6QfYK74ycmcsXzk9IQqtMhjgP3a3iy6aKSnbYAdDGmd/QnmeFHSMaKtjsE TX91jLGFQa6x3CvfhOn3lYBkoahJnhuAATqydosBbRLG5iqSMSO909vFkXoYvxRAqZXU3Z9ijkV Dmkt6Do3gVeHztO3ctg== X-Proofpoint-GUID: row1ENBsN8Fl0SbGKl5Il3OXjZToysbE X-Authority-Analysis: v=2.4 cv=A8Fc+aWG c=1 sm=1 tr=0 ts=6a044c1f cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=9HmpdI9mPFNYjiRhp9YA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 bulkscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110209_022747_97930534 X-CRM114-Status: GOOD ( 13.22 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 When pr_pasn_type is not configured in wpa_supplicant.conf, default to PR_PASN_DH19_UNAUTH | PR_PASN_DH19_AUTH (0x03) to support both unauthenticated and authenticated PASN with DH group 19. DH group 19 (P-256) is mandatory per IEEE 802.11az. Advertising AUTH support does not force authenticated PASN — the actual mode is determined at session time based on the auth parameter in PR_PASN_START and credential availability. Signed-off-by: Kavita Kavita --- wpa_supplicant/pr_supplicant.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 8d1a1b632..3cd4f3cc6 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -636,7 +636,9 @@ int wpas_pr_init(struct wpa_global *global, struct wpa_supplicant *wpa_s, os_memcpy(pr.dev_addr, wpa_s->own_addr, ETH_ALEN); pr.cb_ctx = wpa_s; pr.dev_name = wpa_s->conf->device_name; - pr.pasn_type = wpa_s->conf->pr_pasn_type; + pr.pasn_type = wpa_s->conf->pr_pasn_type ? + wpa_s->conf->pr_pasn_type : + (PR_PASN_DH19_UNAUTH | PR_PASN_DH19_AUTH); pr.preferred_ranging_role = wpa_s->conf->pr_preferred_role; pr.edca_ista_support = capa->ista.support_edca && capa->asap_support; From patchwork Wed May 13 10:00:04 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237646 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=4UUSi8AK; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=M3F9mNXL; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=o4/+If0a; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=eJ1RRtQM; 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 4gFptx0Vsnz1yJ5 for ; Wed, 13 May 2026 20:03:21 +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=SGd6wRd+BVZBL3+ARQX3SmlBUCAVjMmmi4T0aPQ022M=; b=4UUSi8AKCZ4AYJ Uqbo47JlaSQLRd9cD9A4fzZcsL4QGhbUPzv8X8y1EbUNCJO8y4bZ0eRo+m3nBCJD0Qg9flG8XTD+6 PU2OTmQqLu5JdFq8iorLi3eq8lUGqIkpl8NMiRNebhlQNnpPtU3qS4IXi1rUTAnGT/JeDOeQWf0j9 5393pcyUslEcHY8fylEp+Zw7R4LSW9fFOPSV3vcEPY3SqED68fHzDlQO2L9PIWkW/T5ugTiKpMznh /IrWpP11I/8TRyTD2x9prL7qliT0K/ozFUU5zm/KFJ5DGq0/crUJdwLJOArbXkqLM6SnHyeTiR1wJ 7ejTAcIeCG5sI2mUs0rw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6QQ-000000023cU-1Yyk; Wed, 13 May 2026 10:02:46 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pw-000000022k2-3mY5 for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=cBG6/kPkLPmitaWTuD76kR2CEaW0BRtAaki68HqNOUo=; b=M3F9mNXLk0U9U/UxvI3Sloea+u I0zmnQ9ppcKtBDZGg4gCxbfR5BhmR9QkfdNmlXamEVv7Z91HFRyzVV7s16C38E+tevxeoeFtiEfCe ho17SDQNLPkuBhRPsls+IzTgxrUOXQ25Zxu5yZHO196UQ04GHrw+FcbI6Qj/t8bK03VsNxfsWbm+b Te+CQF38Nzjp3E0bIbr26EnSbSc+8OdhHELF6W7dVNbrhq3CCCbMehxreDIVMh8GG98wLrWa4+M8c P7NZxaZMPtjYSyy2dmON6HkYAlAWAOFTR8KbhaM65GH9pKp3Lrzezr9350n/KkkJ8/hQw03pvB3VV 4GMpfCfQ==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pr-0000000BRW5-2BkJ for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:15 +0000 Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8mBHE3474744 for ; Wed, 13 May 2026 10:02:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=cBG6/kPkLPm itaWTuD76kR2CEaW0BRtAaki68HqNOUo=; b=o4/+If0aOrzl5ZfAU7hcX40e0Zp N65MVF2FVUrCxUHJ+OWml3o0Wj5AD2hXdVEKFbcCats3zfA65QjmCts/tzK8rY0b KNUPW66X0uT1nmA83nw/7MEHr213UGOaJNHID46x4YWmRpbJFOmWoo1oJvHtl6Mi MSWSTSqaE5KaOhvsmO341DpAlkWlt0hPOYCv39Qn6xbYR3RBUfhNO7poEIpNUMbS BRZBJ8J7qKiUCM49T7weuIWMFrHgPDg+GTwn6V4gDPyOoR51FFVB5M+Jz5Wwa3hq 6LBwmTb6JOzxWPIsmntNTQAbS+8vjhtXH1VogIOybR01b7p3OjYRJmGTvQA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p4189c7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:09 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2ba6fe41283so76451315ad.1 for ; Wed, 13 May 2026 03:02:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666528; x=1779271328; darn=lists.infradead.org; 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=cBG6/kPkLPmitaWTuD76kR2CEaW0BRtAaki68HqNOUo=; b=eJ1RRtQMipldNCX1j//Zw77dkSzFfVFNiPnJ6tjSb47+vfZ6zp8b8tbvVQ+SGvTrlj UKaUmvgJ7ScFNXVs2wY6ANVJUU5rtWFlPlKdLcTU7zSkXqQfVJ1HDhrgf4G6FbqRMhmu jxCnOYAQjfapKdnfPxpfuRbwnC2nBsHxPl5E0Dp5ICyBZleRqmf9MzRSTaPVe+PXrHNq 13aJr0cEe46+tO2KlYn8vIGaeCwUQUrHugWs/FR2TxCJNluZb27VQN13Ol/uWT/NTlmV P40CVCz+45jktgRVCAUTZJKiS+PDWwuxosCTmGmIXmYkjC1pUOiN3vYW8qzG1xeA+77y eyMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666528; x=1779271328; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=cBG6/kPkLPmitaWTuD76kR2CEaW0BRtAaki68HqNOUo=; b=lPWQI2m2UhBJdlxZoMuy/bXSyNVtvXRAk+qgTOWLHZrHOoSo9rdBXdG0Dcndiwz3n9 8yEuNrTmTxtY/KAIcx14LFNyfgnvhMLoAy6HMED5ot+DwfQoPhgHVC5N1171bUNZTDm0 q1p4A6WyET5Mwi9JjkSDAFqvXVXuBrKm4DQYrk169EHJKLWfPhCsvg8sfbV6R/2MrqKI x/9Af5lUhhNGycQ6uHoVIwuNm7sxjJzybTks7K5NZy2nNAS2xX1ypdlfASjIp3+lW3YR pzfRLLRnYpCuzqqkQWtZAJxVSwD4/wM71e6twkc67SQChhhxwGz5+8PJDW0AFH2Tc85g hbeQ== X-Gm-Message-State: AOJu0Yytyp/Hl9+kP10SVoKZXSBlwvqSfNwBUAdYkARQ67MiUC1wHsGC W5Mt+eGhu0wEBVlB3auCugT8LM6t4bhcbPEjGq8FjMVDGlBxyCM5xWgInlUsNJlw2bpVlxch0WU VwS75YKp9m8hlBjADZqvhRuNQ8uCbks3Z0BfthOfDrK7zdTIjrQtDtFy4y5xtZ3eC0PI3rSl4 X-Gm-Gg: Acq92OHdvonL1qHeuVDXEuWjyV+YfA7V0WjsP/P/uJ3ViRZob4JFBW02orq42636E// MCLEZ8+Vp7NIK4d9fak1ZZoNIzo8nUO7G0fpRlH2faN54MNxTuFW0Me/aX4nVGRtc1abMMNe/2k y+qV4AdDiahI/vqjZmWElm5OT/MZi9/zT0URpiiJrilnP02gccZS02JiO3679LsKvHm1Gt4Ql66 7hOOiOsiOBuutToTKC+wyI9oWZJ3xaIdoSEurRLQbPNXbHpr7niaJcSpC4xcnqs8Mx8yrBPHgaj SPpbZsADyJbCxlwP1/vks2rjq+ld2hkU2F6jb79BYkjkhCA1vUMDiBQ0kfCouG2em/lQQ0Wg30U qsAQaC/wAJIscBI0B03bYsU0Kr40ixBYtbk67qz/XVOp03osLp9vVcA== X-Received: by 2002:a17:903:2f44:b0:2bc:f202:54d7 with SMTP id d9443c01a7336-2bd3032cb5emr22507455ad.38.1778666528064; Wed, 13 May 2026 03:02:08 -0700 (PDT) X-Received: by 2002:a17:903:2f44:b0:2bc:f202:54d7 with SMTP id d9443c01a7336-2bd3032cb5emr22507025ad.38.1778666527582; Wed, 13 May 2026 03:02:07 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:07 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 40/46] PR: Restore dev_addr to station MAC after PD wdev stop Date: Wed, 13 May 2026 15:30:04 +0530 Message-Id: <20260513100010.1947710-41-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=df+wG3Xe c=1 sm=1 tr=0 ts=6a044c21 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=sfl7DiyNIms5WKc4xN0A:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXyGyNnOBSqMZN 36liD9cNeom93sBsxHf0uE2695N1FMnQ/UhF5e4jJMzFH1qFwjZsZCuWBQd+kk4ePWK3+VJzbg3 wILGem/1jKhY7gjUBxX49c1pMcTNxQ8umEuqSCyKeA6i/SCsES+cpnl4+ib2l2PAO1tPBbEeoRw 8TJWPw4s/gpo2APquclzH2e3KVNlprfHgMFozk0i43ICq0HrYt8zSpi9HRbjUO4CFgD0pTi6paJ CcKHQ8ylt1yVCRpTEwkCZ7vVms/ZBgj0cdDPdnJcvZmeqjHXDym12Rx5A3I+3GJK/oQDEEgxqdG uGJoq1ggzybLFoq69K/EYj/fCgZZW8rowDv7pwIu48094WJNf7k8TV5NwLwhtSJ8CF+OO8hZvOs kIpZT/H6Fhu+qJLjoOvCMMuB+NUIK9TI42eqjulpa9emBSCHK4fsaVKV8dsaNWrwNWyf4UTacNG sc2eExGd0mijD0kx+yg== X-Proofpoint-GUID: RYoLdKmkALRi3RtP7ybq2SfGAZF4cgvN X-Proofpoint-ORIG-GUID: RYoLdKmkALRi3RtP7ybq2SfGAZF4cgvN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110211_832712_D95794FA X-CRM114-Status: GOOD ( 14.04 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 When a PD wdev is created with a custom MAC, pr_set_dev_addr() updates pr->cfg->dev_addr to the PD MAC address. pr_pasn_auth_rx() validates incoming PASN frames against pr->cfg->dev_addr, so without restoring it, subsequent ranging sessions using the station MAC would have their PASN frames rejected. Call pr_set_dev_addr() with wpa_s->own_addr in wpas_pr_pd_stop() so that pr->cfg->dev_addr reflects the station MAC once the PD wdev is torn down. Signed-off-by: Kavita Kavita --- wpa_supplicant/pr_supplicant.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 3cd4f3cc6..f37d1915e 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -764,6 +764,8 @@ void wpas_pr_deinit(struct wpa_supplicant *wpa_s) void wpas_pr_pd_stop(struct wpa_supplicant *wpa_s) { + struct pr_data *pr = wpa_s->global->pr; + /* Cancel ranging session timeout and stop peer measurement */ eloop_cancel_timeout(wpas_pr_ranging_session_timeout, wpa_s, NULL); wpa_drv_stop_peer_measurement(wpa_s); @@ -778,7 +780,13 @@ void wpas_pr_pd_stop(struct wpa_supplicant *wpa_s) wpa_drv_pd_stop(wpa_s); os_memset(wpa_s->pd_addr, 0, ETH_ALEN); - wpa_printf(MSG_DEBUG, "PR: PD wdev stopped"); + + /* Restore dev_addr to station MAC now that PD wdev is gone */ + if (pr) + pr_set_dev_addr(pr, wpa_s->own_addr); + + wpa_printf(MSG_DEBUG, "PR: PD wdev stopped, dev_addr restored to " MACSTR, + MAC2STR(wpa_s->own_addr)); } From patchwork Wed May 13 10:00:05 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237648 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=exE+KfPN; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=YfIUPXmw; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=DwD7PXYS; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=S+F49i8I; 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 4gFpv76V2Bz1yJ5 for ; Wed, 13 May 2026 20:03:31 +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=fIf4dF1D/6vT1LX+zhIg9Y9UXfGYDDTSHwPji6YLOxM=; b=exE+KfPN5VZcXD Dp4Z4B+9Xxv8AevDf3vT+/5zOkBBBkx6q6O2pc+/NnIfl/neGrzOLpaytHgLxPajpDVMbNALrr/Yl 1vAgvQaGrtgmvQIWRDhj8bn7lpilANB8kCGNUygWULdWcnqXr1Hj9Qi09AwVqSm0mMIjoG8kmPqiE NXOgiM98hZAVVMKmjKm+EY76EmUJiQiyWJuPaML/CMNdWBrU3eB7tyru7/uX9uzGRIJE4XqZ2kOSs lQUMChRTcuQVby62vYeFGSrVyBEXurHfDDoCiUbGWbsqZvEqhOlGdqydlixx2NjIo2Q+0T2mO+Ad6 nyiL0VaxeTaEYL/vHn8g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6QZ-000000023oU-31tl; Wed, 13 May 2026 10:02:57 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q0-000000022ps-2Ryu for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=4clunu2+tKc0s/KmAulUs634oXi5cRLPRDpBSFz4TWI=; b=YfIUPXmwJmmqL580CSeZ0I4Y0i mjJQE9Htu6IWuxE4VJFT/DSSr0fZGogp2HHg6QaWjW2ztQclaJUIJG+xqqwyCagv2m39Tjlw9s+Cc BCZdKt6MKnzIcJhT9r7mrTwY2l1ailtzfjSDpsrxGg/xsmY9dVgX4Tfset0xrG7W/LiKMtr5lN3QR v9Dkm16zGwui88TY/Z/fH3YgBUWBqcMNR1u9Nytd+2ute7P2oCYG78VH8XtjOg61QuhEP321K336X usWFuUSGgHYP9QGrx0vUXl6/4VLI+l6/x0r6YJfAG40fBjHn4KjqK/EBtIlzfnhtCxG1pccK7BTqp SVEkW3Dg==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Ps-0000000H4vn-39cG for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:18 +0000 Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D6FJEF3324682 for ; Wed, 13 May 2026 10:02:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=4clunu2+tKc 0s/KmAulUs634oXi5cRLPRDpBSFz4TWI=; b=DwD7PXYSQToY/ZcgYS9EZ0AqS36 8kwLD9wGcZEkUCX2zUpyFCdGyCKuQjDAK6pqc+nxEM3L0wiP5Jjx4gq8BiGTvo02 uuIuKKeMJUx+oahTqqzyFQQZNPXz+VQV2X/zYwZzALh/lSJ04kyFn2aS8I+YRTaM MTz23eclpGFIqaqXeXMCfLME/OnKwuXRD3ihbuei6/9ThzdYa9YekBsBn6+J7vdD 7Shwl+OJhsEXpe32BcSg3abn4hB0NRjfHjEkRfoldlFKOc2NG6apMUciKdnEu76J pESzEPo1nhxSu/PKzXV3if6koCPPCbtKM29MCgKAT7Q6qVOKQ6QgJDp9STg== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4kvd8wrd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:11 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b9a3c3c4eeso71935825ad.3 for ; Wed, 13 May 2026 03:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666530; x=1779271330; darn=lists.infradead.org; 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=4clunu2+tKc0s/KmAulUs634oXi5cRLPRDpBSFz4TWI=; b=S+F49i8Iqd/C6X0SZ2lApSe98az89Jvo8ctImA6WlicYqE8j+hF0wPor6aotRgF21d mt7fxnXQnN1VMA/Bkwaw4Njpiii9swJTN5Tja5y/sEzBG4BWzdOYnmCftXNrAzfTITCj Sz6lwy20KYcF3GWPHP4Mk/TVKD7wHungPKHodzwN6dKG5aI45A28UbqBfje/kWq9Jlxe Hw2aq6DQdANS9bHv+mZlAqlSgMeWLwQivHurjOiJP3ayj7DDGR9qH2Vgw4le6SBfSILN T2M/MXGzjnHvXE5mabacI0NVnzGGrHQRoYPktkNeDGfiYcbpa93FEVhpyV9twzVCpsN7 5c8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666530; x=1779271330; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4clunu2+tKc0s/KmAulUs634oXi5cRLPRDpBSFz4TWI=; b=YYa0BX4AUa1RbjqPMeP8cbaekZKPlsHsBnX0oZnTLUjpS6fCJ4Aibyz+dsBjT2Kk0W 16N1KuiJZFAyEQDUo1J6pdIA37d6iuVSawCVnhxnG0lS9cIHRGFQpOUglWJDTz9Zpg+q XUDniQic4uE443W1jiMyWghen8X+GSzyUUK1HAdmlGiTtgRIXoSqsVcHE61sZF7sImkB zqhm8Fq/hZxRGExycUYxzbqAUzW0n0ZjWh93q+dA67DwDKkLNvZXnXKgsgYw2GH9eQru UnOvgLxA//py0QCbraz6Yd3TCB8ayh/fxJ6X930gHyqwJAIl6hiW7bJBVkI+6mm+nCb2 M2Pw== X-Gm-Message-State: AOJu0YybwtEUCMrqzaI7/BfLpCWMKI4ustOJvRR2O0vC3E7ywdreqQ42 PSlWq5bhp+tSwV34rx7D8GRfUH0a+8gMRRKTKN9nCm7FSvcdsAopGjcdK9JkoMKYJLVJFURtRSa EPn4hcMsE/PVow+9oPQGhk+JNSmLYy8/1jAnQKMtyAK4m+40SpOUpvuhuvmScW3W63q8ZJfYC X-Gm-Gg: Acq92OHX2IQwyi7CmeMmV7155tty4ippjGl8OjxytlQzcTFb9fIEDKfnDWahzmDrZLU Vb/fNpguX6ZjA9I8GbAzpZFIE7eAPnBY9hj7fLR4nyTIOGql3FGsoVcGJ4fxkXh7uC+eN7GoQIa V+X2dgSXSoaLJTxZ9BeGOwKnFGQiUL6J48RVwFxw1bjzaT43/0rhW1lMzMnWxoA250yhnJTsimq /Ws1817cSIQCPH4S8k4+0I5vOBiKZmh0lAyeU6qw/BraAyK2MdymbDAD5+QYJGRxmlccNDmNAoI GTUc2/4SDwljoagwzWva7iiYPKnDBN6K8WnAmiKuJD31RdAiWWwcJRhcWt2L/r9czr9RNIKYVKj XEqOlNQbNEGhT/WhrytH5pdvvV7QgJkmL8jIsXzWQpH4gtDJtIFGC1w== X-Received: by 2002:a17:903:32c3:b0:2b0:c90f:449d with SMTP id d9443c01a7336-2bd2fe21b31mr22001325ad.19.1778666530375; Wed, 13 May 2026 03:02:10 -0700 (PDT) X-Received: by 2002:a17:903:32c3:b0:2b0:c90f:449d with SMTP id d9443c01a7336-2bd2fe21b31mr22000815ad.19.1778666529863; Wed, 13 May 2026 03:02:09 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:09 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 41/46] PR: Flush PMKSA cache after TK is configured for ranging Date: Wed, 13 May 2026 15:30:05 +0530 Message-Id: <20260513100010.1947710-42-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: kQh6TauagCMF7kGeK-Hqt1cxD71qr4vm X-Proofpoint-ORIG-GUID: kQh6TauagCMF7kGeK-Hqt1cxD71qr4vm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX/Y1PfICZEGq6 MRUDO7YoV5fn38RFXu5RtiL1EzcLr1s//SUHjiaazKjBmmKLyIYYg6ijmu/20QVHaU9PlahxBK4 4HhHNf1RqYGx7e8ZS4Mn6T7tI8nhhQ3eu4bRf8GxwXZDkpAQ89Wz+Aq4r/RSB31VXEUqck1A8n2 E3Xz5FZeudbtkMwO0hOMU4zaNxnI8kfqN4rGUrxgQbZvP4hPHYee4xGi6cviSWQq0FW3wOIVGsW JRS6VVHPdqCe6xt5XsGk7fFmHCxNhVkOpVCjJa+DpNczGRmiQrSxui/uMs4ai4/KJGZEqCN4fbO 6g0zoM3sjp4yliK0DyVuHs0+FBw8FlEHt/yq3nI9V7oCec3UEjWNhazuAjg6iF4F5x234PD+hc8 qJZfgDY5Qz4dh7BobYU4TTWGmiG+rY/l/908v6dcW7bipOi3OxMwKuhyPs7ZatvP03b0zjuNOjG Sq2rDbhTjZB4A2dQwZA== X-Authority-Analysis: v=2.4 cv=Iu0utr/g c=1 sm=1 tr=0 ts=6a044c23 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=MPEJBYxa9eQ-4ns7YeAA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 spamscore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110213_371494_DB6FE26A X-CRM114-Status: GOOD ( 13.26 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: In the ranging use case, PASN is performed solely to derive and install the encryption keys (TK) into the driver. Once set_keys() has been called, the PMK and any cached PMKSA entry serve no further p [...] Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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 In the ranging use case, PASN is performed solely to derive and install the encryption keys (TK) into the driver. Once set_keys() has been called, the PMK and any cached PMKSA entry serve no further purpose. Flush the PMKSA cache after get_ranging_params() is invoked on both the initiator and responder to ensure the PMKID is not included in M1 on any subsequent PASN attempt. Signed-off-by: Kavita Kavita --- src/common/proximity_ranging.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 5b5f3bf8a..d728e0030 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -2048,6 +2048,7 @@ int pr_pasn_auth_tx_status(struct pr_data *pr, const u8 *data, size_t data_len, dev->final_op_channel, self_format_bw, peer_format_bw); + pr_flush(pr); } out: @@ -2516,6 +2517,7 @@ static int pr_pasn_handle_auth_3(struct pr_data *pr, struct pr_device *dev, dev->final_op_channel, self_format_bw, peer_format_bw); + pr_flush(pr); return 0; fail: From patchwork Wed May 13 10:00:06 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237649 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=IFForGWv; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=hsJG3LbK; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=DyQDJklH; 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 4gFpv91vndz1yJ5 for ; Wed, 13 May 2026 20:03:33 +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=47SxsdMxx7OoLFi33pFvKwvF3xQiDNd8baOnry13VKs=; b=IFForGWvnw16cP qIfOpyZMrHLFkC/5zQ0y1X6jEF4AKCY8yxVlLTHwfW+jb659pgqbsRJ3lNDVU4Q9bFnWA+xncdV6T KAUZ+g2kuuqBLXwVqinKwJVDhu3D9TFVhxqscrHEm9mmNxGBi41iPKoGZuZKMnAGcFLqEFUCUvEo0 heGhnC9E7mlG5znJ8vW4n+CeAc52sgSH7aDT/3xhAg0BZ3VboGCegkg8kPKHyXMeNQrZ5HxTIRxCg /M2Z9lMXPMiH42l30gEhfE6LuMwYbbu24UigFyx8KElw+fSQIym6b2o8HhLS/oxDIfcFSVBKlp3VO nYO85xlGQx2fi80rECzA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Qh-0000000241n-0zPY; Wed, 13 May 2026 10:03:03 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Pv-000000022gu-01O1 for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:21 +0000 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D9jiwA3007654 for ; Wed, 13 May 2026 10:02:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=aC7uIU9KyoY f5oXR6Hgil8oe7grdR6AliPi1pb6ALX0=; b=hsJG3LbKJivIEUjIFGL6ndYn/nT 7P4HhgddqKz+bLctEPULU4hzKxblnik1wJtQCJm9VwRUG4CAeVyFk0qJMS5yXoS3 O98gUfvfwAoiKtbQOPXUWop3S0KX+8Nhme11QU2245U0xbNWw4nJxc7yj9j6sJER j6wmDFipSgoaJH8EWKom94GZ68PAFoF8k2H/GWtpZh3hHzBX1vSp+UDiziLBx9Q2 RYBlpce5r3CA8/+75pqboGwkdkhMe27nNiQXq1uE5o5RNrnjhVdENfsSJRZ9Yqfx /GRYk5AcTqtBuqAVWeh5Yveq1WMkx+ll+Aq/LmN00/vOVvILftvcT26WGOg== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4py0g2a6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:13 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2bc6899bfb1so51927955ad.2 for ; Wed, 13 May 2026 03:02:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666533; x=1779271333; darn=lists.infradead.org; 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=aC7uIU9KyoYf5oXR6Hgil8oe7grdR6AliPi1pb6ALX0=; b=DyQDJklH+bUbeY4ych2gpgZUavMQLZxcOShl2RMiLiupvyFcs8APAeYVVJ9jvYyL2R NsP6iyKCUvJmjQYwP2j1/icc7gmC/Y6/gHfYEC/Pe/HNs9wlWyTgZBDt7MkCyzr63jdr YZqADrwWHfAOkYvLCoV1vcrfjCWHurdRiDBI4WN12lw5/4EmamuDcbMhd3GvPCVl8Sny cMPRwKAHo4oIPX9sEwWgr5o1xZ1n1ZGSx8mCzHlOh5Ah46RVNvW8TPt3OwJrVTJ27Jch 3PUue078jwddQZqvCO1152xd0hmnzogWIhIx8snP3toJRhwbBm8/EttxDrz/ZeCzA4sW gp0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666533; x=1779271333; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=aC7uIU9KyoYf5oXR6Hgil8oe7grdR6AliPi1pb6ALX0=; b=nENwORg+YPrfEgwCUOgolPoj+OV5vsxERPdvigJiZ4o/T1dHdiLc6ZoYyBHRP3dKcU swHT33W+skdEhHyTJOEbF2xlCRtjxzfiPM5TQiOeyGM98tKJjCRK1n3bnIQw2r/jhS8o EllDNNnasGVb+LsmRwFRxay4Iy091JMaTgpQSn6569ftDqwF+AG9ogLUjDJgUZ2vllNH SEZG/4PpvnPCE8Ye8t9ZNvrW3+EpxR9w3GsNCEcY/c2K/rJylJiUAn/4wqNgNIRt4zTY iIatD7UIi4EKtnz65tWkh9ue8MUW00OXP5Cxi5as949wz8fouQHRHmlop3n7Rw0kPpSi VYUg== X-Gm-Message-State: AOJu0YwBQlkzoimZaO/7by9Rgx28fFyiSA/kUg+rHTEKGHV8zrP84HEB W74QggoWlRWUYPzcn4Y9wWiAy/Ro1qES8WSjJup/SWP4+LlHT8hT7VDgeaHGPZFafNKBvV+PZbx CdlkiWf37IrOIl3iBFNMbffB6BMScolWofhbnlYVA5xq8NGdoyKhnVZsCIAwO32m9+r9arrTL X-Gm-Gg: Acq92OErkqC0ipP6QS9Q90PYX/P1roXUJ7z5G9TODzPVx8I+VMXJJd1Xcdym1YiEMwr 2/SesTa1vwlhevC9Ix8QetV7xgUEY+NI2IQfLVpYKlhL9Wen6kAitzmCMrk1/CS63kT/YcMzH7N jgy/R5VAlPTstwFlkutn6wVv3u24h4WpRriu8jp9V4JYyEsSk1JAtiTaFO3dutBZgylgOZOTPBl bQuYqGdKZpHBbUEN9+9UpEhD8urEbe28OuK8QjjPngJQyvMj42bmRItv6UeTgwd9TUl3oCaaMZW 3hM4GOnJGCKNLakUM4sEnzFPZ8kAI5PEnr19sZd61cb67vnFN5E3RE+lBekXkBYu9NZEXvIXCyP KbE5ogCGHeyFd8Ul07lEHjxzq6HzX4SrRY4uxvNAYzhmcj7wRVqPj9w== X-Received: by 2002:a17:902:ceca:b0:2bd:2de3:5181 with SMTP id d9443c01a7336-2bd2de353e8mr24236435ad.9.1778666532602; Wed, 13 May 2026 03:02:12 -0700 (PDT) X-Received: by 2002:a17:902:ceca:b0:2bd:2de3:5181 with SMTP id d9443c01a7336-2bd2de353e8mr24236035ad.9.1778666532055; Wed, 13 May 2026 03:02:12 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:11 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 42/46] PR: Track peer discovery type and handle OOB peers in PASN initiation Date: Wed, 13 May 2026 15:30:06 +0530 Message-Id: <20260513100010.1947710-43-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX/g06FJygLBfc oEcRJRrP7r8RZb+kFTV6j8qzew5mMD6yXa/ni2MKdmp4RIxNQr3H96ZuORp8UbM03Twfy6LFTpB wEW/FSkmSxjIg+KcEQuy2pB3tlLdvgqhMAoqNSZlopQZs7ooOSnwxy4vQdCdqWddqVDrSZ0ar29 Y7mYwdfqwc7H3RqO6V7K4P1OmgJHH5cingeShrBGdoWJJEU4Tp1zCQ2lJwxyQdTMY6me+7vdR5B 9MrfmgkcRUDMFyahbV0M7JRsUY62ypBTS1N+Slt+bqPPfUybTyQOOyh+TV5uATbVphyQKJ7Nc51 5ZMrdANPr6oDMMAlEkhA+POMM5TE4M9cJ62nssI/Fg7Kr+PfJsU8B7jT9CdoFPCMnQYjE14bWLG Oj2hggLbi8nmr1QeG13SGOUsSueVTQ8PyPN3PeE86+DqEj6RRimnqyJWzOx45xTGwbe5imve51d /F8//fflMPDWM2gqBOQ== X-Authority-Analysis: v=2.4 cv=XqXK/1F9 c=1 sm=1 tr=0 ts=6a044c25 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=hrq5DP1M1nlMgIQk-TIA:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: dp83WEd1xRtxqB6h8a_dLLcM0cLaziGY X-Proofpoint-GUID: dp83WEd1xRtxqB6h8a_dLLcM0cLaziGY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 phishscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_030215_837678_02F10EF5 X-CRM114-Status: GOOD ( 23.47 ) X-Spam-Score: -2.8 (--) 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: Add discovery_type to struct pr_device to distinguish peers discovered via NAN USD from peers added out-of-band. Mark peers as NAN-discovered when found via USD and as OOB when added without prior NAN [...] Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -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 -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 -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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 Add discovery_type to struct pr_device to distinguish peers discovered via NAN USD from peers added out-of-band. Mark peers as NAN-discovered when found via USD and as OOB when added without prior NAN discovery. When PR_PASN_START is issued for a peer that is not in the discovery list, create a minimal OOB peer entry so that PASN can proceed without requiring prior NAN USD discovery. This is done at PR_PASN_START time for both initiator and responder roles. For OOB peers, skip capability comparison and PASN parameter validation since their capabilities are not known. Per spec, all PR devices must support unauthenticated DH group 19, so cipher and group selection defaults to the mandatory baseline. Signed-off-by: Kavita Kavita --- src/common/proximity_ranging.c | 52 +++++++++++++++++++++++++++++++--- src/common/proximity_ranging.h | 6 ++++ wpa_supplicant/pr_supplicant.c | 6 +++- 3 files changed, 59 insertions(+), 5 deletions(-) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index d728e0030..2624b8d97 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -1140,6 +1140,7 @@ void pr_process_usd_elems(struct pr_data *pr, const u8 *ies, u16 ies_len, os_get_reltime(&dev->last_seen); dev->listen_freq = freq; + dev->discovery_type = PR_DISCOVERY_TYPE_USD; pr_process_ranging_capabilities(msg.pr_capability, msg.pr_capability_len, &dev->pr_caps); @@ -1162,11 +1163,45 @@ void pr_process_usd_elems(struct pr_data *pr, const u8 *ies, u16 ies_len, } +/** + * pr_ensure_oob_peer - Add a minimal OOB peer entry if not already present + */ +int pr_ensure_oob_peer(struct pr_data *pr, const u8 *addr, int freq) +{ + struct pr_device *dev; + + if (!pr || !addr) + return -1; + + dev = pr_get_device(pr, addr); + if (dev) + return 0; + + dev = pr_create_device(pr, addr); + if (!dev) { + wpa_printf(MSG_DEBUG, "PR: Failed to create OOB peer " MACSTR, + MAC2STR(addr)); + return -1; + } + + dev->discovery_type = PR_DISCOVERY_TYPE_OOB; + if (freq) + dev->listen_freq = freq; + + wpa_printf(MSG_DEBUG, "PR: OOB peer " MACSTR " created at PASN_START", + MAC2STR(addr)); + return 0; +} + + #ifdef CONFIG_PASN static bool pr_eq_ranging_capa_params(const struct pr_device *dev, const struct pr_capabilities *caps) { + if (dev->discovery_type == PR_DISCOVERY_TYPE_OOB) + return true; + return dev->pr_caps.edca_support == caps->edca_support && dev->pr_caps.ntb_support == caps->ntb_support && dev->pr_caps.pasn_type == caps->pasn_type && @@ -1179,6 +1214,9 @@ static bool pr_eq_ranging_capa_params(const struct pr_device *dev, static bool pr_eq_edca_params(const struct pr_device *dev, const struct edca_capabilities *edca_caps) { + if (dev->discovery_type == PR_DISCOVERY_TYPE_OOB) + return true; + return dev->edca_caps.ista_support == edca_caps->ista_support && dev->edca_caps.rsta_support == edca_caps->rsta_support && dev->edca_caps.edca_hw_caps == edca_caps->edca_hw_caps && @@ -1189,6 +1227,9 @@ static bool pr_eq_edca_params(const struct pr_device *dev, static bool pr_eq_ntb_params(const struct pr_device *dev, const struct ntb_capabilities *ntb_caps) { + if (dev->discovery_type == PR_DISCOVERY_TYPE_OOB) + return true; + return dev->ntb_caps.ista_support == ntb_caps->ista_support && dev->ntb_caps.rsta_support == ntb_caps->rsta_support && dev->ntb_caps.ntb_hw_caps == ntb_caps->ntb_hw_caps && @@ -1717,9 +1758,11 @@ static int pr_pasn_initialize(struct pr_data *pr, struct pr_device *dev, /* As specified in Proximity Ranging Implementation Considerations for * P2P Operation D1.8, unauthenticated mode PASN with DH group 19 - * should be supported by all P2P proximity ranging devices. */ - if (!(pr->cfg->pasn_type & BIT(0)) || - !(dev->pr_caps.pasn_type & BIT(0))) { + * should be supported by all P2P proximity ranging devices. Skip + * this check for OOB peers whose capabilities are not known. */ + if (dev->discovery_type != PR_DISCOVERY_TYPE_OOB && + (!(pr->cfg->pasn_type & BIT(0)) || + !(dev->pr_caps.pasn_type & BIT(0)))) { wpa_printf(MSG_DEBUG, "PR PASN: Unauthenticated DH group 19 NOT supported, PASN type of self 0x%x, peer 0x%x", pr->cfg->pasn_type, dev->pr_caps.pasn_type); @@ -1927,7 +1970,8 @@ int pr_initiate_pasn_auth(struct pr_data *pr, const u8 *addr, int freq, return -1; } - if (pr_validate_pasn_request(pr, dev, auth_mode, ranging_role, + if (dev->discovery_type != PR_DISCOVERY_TYPE_OOB && + pr_validate_pasn_request(pr, dev, auth_mode, ranging_role, ranging_type) < 0) { wpa_printf(MSG_INFO, "PR PASN: Invalid parameters to initiate authentication"); diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 52a9620ec..908827c83 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -258,6 +258,10 @@ enum pr_attr_id { #define PR_PASN_AUTH_MODE_SAE 1 #define PR_PASN_AUTH_MODE_PMK 2 +/* Peer discovery type */ +#define PR_DISCOVERY_TYPE_USD 0 +#define PR_DISCOVERY_TYPE_OOB 1 + /** * struct pr_pasn_ranging_params - peer parameters to be used in PASN * then to trigger ranging in case where PR PASN is successful. @@ -410,6 +414,7 @@ struct pr_device { u8 protocol_type; u8 final_op_class; u8 final_op_channel; + u8 discovery_type; }; @@ -637,6 +642,7 @@ void pr_add_dev_ik(struct pr_data *pr, const u8 *dik, const char *password, struct wpabuf * pr_prepare_usd_elems(struct pr_data *pr); void pr_process_usd_elems(struct pr_data *pr, const u8 *ies, u16 ies_len, const u8 *peer_addr, unsigned int freq); +int pr_ensure_oob_peer(struct pr_data *pr, const u8 *addr, int freq); int pr_initiate_pasn_auth(struct pr_data *pr, const u8 *addr, int freq, u8 auth_mode, u8 ranging_role, u8 ranging_type, int forced_pr_freq); diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index f37d1915e..7f0061c0c 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -1261,10 +1261,14 @@ int wpas_pr_initiate_pasn_auth(struct wpa_supplicant *wpa_s, enum pr_pasn_role pasn_role) { struct wpa_pr_pasn_auth_work *awork; + struct pr_data *pr = wpa_s->global->pr; + + /* Add OOB peer if not already in the discovery list */ + if (pr && pr_ensure_oob_peer(pr, peer_addr, freq) < 0) + return -1; if (pasn_role == PR_ROLE_PASN_RESPONDER) { struct wpa_pr_pasn_roc_work *rwork; - struct pr_data *pr = wpa_s->global->pr; unsigned int roc_time_ms = PR_PASN_RESPONDER_ROC_DURATION; bool has_src_addr = src_addr && !is_zero_ether_addr(src_addr); From patchwork Wed May 13 10:00:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237647 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=L+Hmut8n; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=f45mGuZ1; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=OK6oB5EV; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=K+8UmEWd; 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 4gFpv65T0vz1yJ5 for ; Wed, 13 May 2026 20:03:30 +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=yeU4GXG75mIYzPIAnqzlNoC6cXBO5srvk6A8nBGOYq8=; b=L+Hmut8n3uO26Q rvfbrmzAnlBI9G31DwjYPThUetxJkNiXIaJTa5/anbMStc0B6YI+AkkxYzei/nfaCSbQb3FrGpHNa bAuWxjzZPIpDbOrlffxo2pC6y9VJkmWXnmmEJrduz5jU28UTKOXKNva2EEsZeo+zipbPhpkbmtmAZ Gp/r5aqtn7e4iUbiHR7RtGit+Kncs3ewxF3+aIT7P80e3309rpwwm7sSxryFlWIQDaIcEnKcKjIbi D1ozolAbqq3vhZZdeE22JGlTRNwnU4Dusw0YhIuolikDrW9EznyiZvstQtc36vJ+5Qb0je7VnwybW wHTN+225E4VfIdXABWww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Qi-0000000246K-2PZk; Wed, 13 May 2026 10:03:04 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q4-000000022vt-0WXe for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=kfaixFvQsACqKP2qFBHlCTgHaFETKxiaBzT4JG3N/dA=; b=f45mGuZ1dQyD5f1cl10cJMvigj wkPYu4y+tyzDl4izLd17OcF+KmRi0ZRXL6fiPdxYLPN6fkpugC9JOsiw/ELkJnFwuPy0OarE9JomX 6hK/JivnHwxrp7KBGYF4aLd4bBVb24SJzW0N8ea7CzSUCr+N4rKln1IYhEFBshE9jT+K4CoTGasZ7 IfxLtnPShZI2QKLRvXTOvPdxQNAZqUTD2VWGUTm+3EWX4moVP4KbRZ5UpPr7b+WID8OQEZEtlbgLs 3Q6r+0tvTydRDSbVHmV8xSVygp8t3qLMhhweZV4X/1/hzbIsHzdEtKTZcyvOtC9gYm5UEr67yafWV d5SOtVWA==; Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Px-0000000H4wf-3UQ5 for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:21 +0000 Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D5Jt0N1393501 for ; Wed, 13 May 2026 10:02:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= kfaixFvQsACqKP2qFBHlCTgHaFETKxiaBzT4JG3N/dA=; b=OK6oB5EVJs6GJjye GYcotlHDBh0kAOTeHgE7dEupSPtsPaIzE8OtrkgczQtPh2ggi1/BLYjUdDaeaTO1 m20c8h5xuaJm3UJBxknsvigb8zgWf+JFXMNYKlNDSh0JGZL6yoCp5qB7aCJIN4Ej SUi+KXriyksAKAEUszX03DqUhbra+ZVeIFAThBYN7XwpcEQWrqFn5DVV8IrLtstx zmt5VCxDSPjC1slc3wXyu6QJa3d27/T4GVALaxTiT00W6p/nlrmCiDFc9Ki3Xehs vXzvFzAW9O91HiQGFq/9EyTL34EEoTfvGZqVKZBYUQDVgDrBw4QuFoDiuhWc1+2q 0+HsaA== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4k2613kh-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:16 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2ba6ca20ceeso72912675ad.2 for ; Wed, 13 May 2026 03:02:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666535; x=1779271335; darn=lists.infradead.org; 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=kfaixFvQsACqKP2qFBHlCTgHaFETKxiaBzT4JG3N/dA=; b=K+8UmEWdIhT8CGe1R23K4+6B3PxAn0mv90cFw4fmIcT6xafhPH7FOsl9jwgWG/m/i1 kU5+ui6C0K5AGQk8UQMfazflfiYS9ZeV2AHij8EJlz0ZBQj03Uc/5GJyPFpxrzBAooPf vMOUUNni7ccodmXaHfSm4/3iAeJRL4KCdF0zk8ZfyVOagb6EwEhtVgVqXSuzPu6hfmHW xHG3+ZiFN7GGoXULjdo4XAA09j/A/hBhnE8ACHfGcObHMqUvbOlqn0weuKOGyqZHcelQ +HhYkDoLDaaEkFxCHSmMI8SNBRacSEo+hCPjbnKY4dk8aN4lGU8Dz14yh9CDss5NV6H5 ZFkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666535; x=1779271335; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=kfaixFvQsACqKP2qFBHlCTgHaFETKxiaBzT4JG3N/dA=; b=r0LVcmU1T0QtjniB4/aTVYgbakvvOpj79iDilU1BiSHW43BEoAO+LnBpbWN7dIyfx9 GtDIi8+izxPGLCpeFSRtKLHxJY2HZeDlg27cQvnIjKqErU7j5beeSaX953zefW5I6WlD gUCR3QWWMY1zD15AFGlPETDY0YxUupcNGYpJuzfd8wbASLiB0Yw+VDdVi/Et9d3sufU7 GfXQf7afk/UnGdmPJRPXOIRkK9T20r6gc1GONV4xyll0kx6/n9Fbh+3UoRGaXn5V2bmx H17Iy0KAx3WTOAKTXpdwWOo2bCI+r2CjC36c5pACNah8doPTCQrYD+O1AWlLm8zUvv08 dwOw== X-Gm-Message-State: AOJu0YzdnTRLQ1+Q8HTLlzBH029D+Z8FgHGfgEdRqLkfnKYkK55zGJwt xYspVYO8U/U1+pmpBCLAoOcXfaEgSdfZqgU4eiIip+T2rVmTPC8RQZs9jTLklxJ+nHve0WiiQea W4QBQoMXOz6Fw89XJEKdNmqbBg1R+HvidMHOw3nTulvxISyXjioSS231ErUgN6vBoyQgdvNAn X-Gm-Gg: Acq92OE2zkDlAaSZJmQBluhGE6vOqI6IqaoIax48uPwhPWoXBvjs7ZN0NmJdrsoNk7o Oz/tTbcrQoptD5ZN+CU30FFP1+xI7AxmMb90ObM+Esjt7RzMYZ48aTI5b0AvzOXpB+6oT6aEcMk Wt41gu2bYiaXb1aPGiBogu0Wbe8PYY0lOlQkYxKV/pjYENlI3DxFS8u0J4etyWYPafkMYxAOB+O KN3eDHScTqnlo3Kw2fCKauHpAIwshbCAcsTJnIpUg2An/nFobgzIfFq0exKC+h000/TxR0aRhpd DfspYCACywHUX+PrcRxucNJHDnwr6faG66xrhlqLHJQFeZ/THg4HdlbzEfrx3sShzUkZpYhpXiS 1wTZJtekldpVQ98lwP9v4bCI8pVJpRaR7XYfUFBrtbmFzz+6bXfERYQ== X-Received: by 2002:a17:903:249:b0:2b2:58c7:2ce1 with SMTP id d9443c01a7336-2bd276f32fbmr27310685ad.36.1778666534955; Wed, 13 May 2026 03:02:14 -0700 (PDT) X-Received: by 2002:a17:903:249:b0:2b2:58c7:2ce1 with SMTP id d9443c01a7336-2bd276f32fbmr27310155ad.36.1778666534284; Wed, 13 May 2026 03:02:14 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:13 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 43/46] PR: Allow PMK and password configuration in PR_PASN_START Date: Wed, 13 May 2026 15:30:07 +0530 Message-Id: <20260513100010.1947710-44-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Authority-Analysis: v=2.4 cv=M/l97Sws c=1 sm=1 tr=0 ts=6a044c28 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=lDTOvq5A2iDnhj9e4wIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX0Zu+NW1JqajA 88kuWALw5prmDzc5QkkryTgAhyE/y49tH7IEsQ7doJR2KE9si39pls7Z+i3pGIkCqS2rxttf0Ww dbH0k9uBtmkTmme+hlJ7L5IukY7TF9NPUF4A29q6VIzGhUCvaD1A4ymTU+36bnQys/QKdf4+qpS gZI1rVhYBnaVmgdvR7rQynkAtdhxt4ZllNoj0p0YJ1xTUCm85aVvmICUuaA50FR9qbJspDg3FxQ qK0NIEli2MLUAK03fcnJ835Sh3o+bFP1GgyOWevTpTBEH+nLsZL68PbX6S4jbUsu4NPSJ8LnRBU aHg6xdvXevxLPi3cxESQkq9JrwIFrI/MvJOsC/ue2jP2PLnE9ukryYNJw1UYOksocdPPEEZfNTf Sa8ti/IcWKY0gDiBkr4vbPjqyt7YXATgnYAsbYIcRjho7wUfXVuufE0Fnj62+g75zxoas+vhVpw trS1iPG2NP+TZe2P0Wg== X-Proofpoint-ORIG-GUID: wN8Q8lECu8n3x-jYpISsX62OKDAxNEpe X-Proofpoint-GUID: wN8Q8lECu8n3x-jYpISsX62OKDAxNEpe X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 impostorscore=0 malwarescore=0 suspectscore=0 spamscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110218_877830_28426CD0 X-CRM114-Status: GOOD ( 22.61 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: Add optional pmk and password parameters to the PR_PASN_START ctrl_iface command to allow per-peer credentials to be configured directly at session initiation time. When provided, the credentials are stored in the peer's pr_device entry and used for the PASN exchange. This works for both USD-discovered peers (overriding DIRA-resolved credentials) and OOB peers (w [...] Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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 Add optional pmk and password parameters to the PR_PASN_START ctrl_iface command to allow per-peer credentials to be configured directly at session initiation time. When provided, the credentials are stored in the peer's pr_device entry and used for the PASN exchange. This works for both USD-discovered peers (overriding DIRA-resolved credentials) and OOB peers (where DIRA resolution never occurs). The credentials persist for future sessions with the same peer. The peer device entry is ensured to exist before applying credentials so that PR_PASN_START with pmk or password works even when no prior NAN USD discovery has taken place. Passing pmk or password with auth=0 (unauthenticated PASN) is rejected since credentials are not applicable in that mode. Signed-off-by: Peddolla Harshavardhan Reddy Signed-off-by: Kavita Kavita --- src/common/proximity_ranging.c | 32 +++++++++++++++++++++++++++++++ src/common/proximity_ranging.h | 9 +++++++++ wpa_supplicant/ctrl_iface.c | 35 ++++++++++++++++++++++++++++++++++ wpa_supplicant/pr_supplicant.c | 13 +++++++++++++ 4 files changed, 89 insertions(+) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 2624b8d97..72f70597d 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -238,6 +238,38 @@ void pr_add_dev_ik(struct pr_data *pr, const u8 *dik, const char *password, } +void pr_set_peer_credentials(struct pr_data *pr, const u8 *addr, + const u8 *pmk, size_t pmk_len, + const char *password) +{ + struct pr_device *dev; + + if (!pr || !addr) + return; + + dev = pr_get_device(pr, addr); + if (!dev) { + wpa_printf(MSG_DEBUG, "PR: set_peer_credentials: " MACSTR + " not found", MAC2STR(addr)); + return; + } + + if (pmk && pmk_len) { + os_memcpy(dev->pmk, pmk, pmk_len); + dev->pmk_len = pmk_len; + dev->pmk_valid = true; + wpa_printf(MSG_DEBUG, "PR: PMK set for " MACSTR, MAC2STR(addr)); + } + + if (password) { + os_strlcpy(dev->password, password, sizeof(dev->password)); + dev->password_valid = true; + wpa_printf(MSG_DEBUG, "PR: password set for " MACSTR, + MAC2STR(addr)); + } +} + + static struct wpabuf * pr_encaps_elem(const struct wpabuf *subelems, u32 ie_type) { diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 908827c83..4b98ca612 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -361,6 +361,12 @@ struct pr_pasn_ranging_params { u32 center_freq1; u32 center_freq2; u64 cookie; + + /* Per-session credentials — if set, used instead of stored ones */ + char password[100]; + bool password_valid; + u8 pmk[PMK_LEN_MAX]; + size_t pmk_len; }; struct pr_dev_ik { @@ -639,6 +645,9 @@ void pr_set_dev_addr(struct pr_data *pr, const u8 *addr); void pr_clear_dev_iks(struct pr_data *pr); void pr_add_dev_ik(struct pr_data *pr, const u8 *dik, const char *password, const u8 *pmk, size_t pmk_len, bool own); +void pr_set_peer_credentials(struct pr_data *pr, const u8 *addr, + const u8 *pmk, size_t pmk_len, + const char *password); struct wpabuf * pr_prepare_usd_elems(struct pr_data *pr); void pr_process_usd_elems(struct pr_data *pr, const u8 *ies, u16 ies_len, const u8 *peer_addr, unsigned int freq); diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 8238229f0..ffcd6173a 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -11625,6 +11625,33 @@ static int wpas_ctrl_iface_pr_pasn_start(struct wpa_supplicant *wpa_s, params.egress_threshold = atoll(token + 17); } else if (os_strcmp(token, "pd_suppress_results=1") == 0) { params.pr_suppress_results = true; + } else if (os_strncmp(token, "password=", 9) == 0) { + size_t pwd_len = os_strlen(token + 9); + + if (pwd_len == 0 || pwd_len >= sizeof(params.password)) { + wpa_printf(MSG_DEBUG, + "CTRL: PR_PASN_START invalid password length %zu", + pwd_len); + return -1; + } + os_strlcpy(params.password, token + 9, + sizeof(params.password)); + params.password_valid = true; + } else if (os_strncmp(token, "pmk=", 4) == 0) { + size_t pmk_len = os_strlen(token + 4) / 2; + + if (pmk_len != 32 && pmk_len != 48 && pmk_len != 64) { + wpa_printf(MSG_DEBUG, + "CTRL: PR_PASN_START invalid PMK length %zu", + pmk_len); + return -1; + } + if (hexstr2bin(token + 4, params.pmk, pmk_len)) { + wpa_printf(MSG_DEBUG, + "CTRL: PR_PASN_START invalid PMK"); + return -1; + } + params.pmk_len = pmk_len; } else { wpa_printf(MSG_DEBUG, "CTRL: PR_PASN_START invalid parameter: '%s'", @@ -11653,6 +11680,14 @@ static int wpas_ctrl_iface_pr_pasn_start(struct wpa_supplicant *wpa_s, return -1; } + /* pmk and password are only valid for authenticated modes */ + if (params.auth_mode == PR_PASN_AUTH_MODE_PASN && + (params.pmk_len > 0 || params.password_valid)) { + wpa_printf(MSG_DEBUG, + "CTRL: PR_PASN_START pmk/password not applicable for unauthenticated mode"); + return -1; + } + wpa_printf(MSG_DEBUG, "CTRL: PR_PASN_START params: ranging type=0x%x, role=0x%x," " auth_mode=%d, freq=%d, addr=" MACSTR " src_addr=" MACSTR " pasn_role=%d", diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index 7f0061c0c..a6137f1a4 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -1535,6 +1535,19 @@ void wpas_pr_pasn_trigger(struct wpa_supplicant *wpa_s, os_memcpy(pr->pr_pasn_params, pr_pasn_params, sizeof(*pr->pr_pasn_params)); + /* Ensure peer device entry exists before setting credentials */ + if (pr_pasn_params->pmk_len > 0 || pr_pasn_params->password_valid) { + pr_ensure_oob_peer(pr, pr_pasn_params->peer_addr, + pr_pasn_params->freq); + pr_set_peer_credentials(pr, + pr_pasn_params->peer_addr, + pr_pasn_params->pmk_len > 0 ? + pr_pasn_params->pmk : NULL, + pr_pasn_params->pmk_len, + pr_pasn_params->password_valid ? + pr_pasn_params->password : NULL); + } + /* Log EDCA parameters if applicable */ if (pr_pasn_params->ranging_type & PR_EDCA_BASED_RANGING) { wpa_printf(MSG_DEBUG, From patchwork Wed May 13 10:00:08 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237651 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=wlNrF8Wm; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=T+NXH0hG; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=FD/Xl3wA; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=jh/P2OlS; 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 4gFpvG1Vjdz1yLT for ; Wed, 13 May 2026 20:03:38 +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=nMQr8s86q/UCsencYPBKbUEhuaBmx9ewpP4X3zO5sE0=; b=wlNrF8WmZARD74 bsHPV5mzX42kTkG2D4+v2+Sm3VYfxaiY7FikTBq8plE72nSpZEEOUR0h7VJp39GrGzcGUJCmziidK DNJrvlVz78ON4a4M0A6xbKtY8BeDAB9v1cFMnJtlfwJ/YjsXXLlMc4mghiF7QqnT7ylxtqY+Tq45L c0wMJnATLXEe0N4QPWLXuByhNAScdWvKGKTSIm4je9RImxp/YW92Uj/WlXOZdHEJ0ReE/3B6AklrC 0IxK+eWbzBb/otifO8DIMfWuS3656BlYX1YKp0qN3Zjwc7GT64k/lJkHu0zPlmhGvlfHF6Mx/KU6v nqmXKQqrcp1BVnazPUFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Qo-0000000247Y-09XT; Wed, 13 May 2026 10:03:10 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q6-0000000231A-49SV for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:Content-Type :MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:Content-ID:Content-Description; bh=D0aZPl0MYCIz6Jix08K3tr/R2B2KbELbdH86vRU0R1A=; b=T+NXH0hG/whheUk6KHEA1fBzlt ZUoZrMfMCS444ZZTAIZEDhxp/F56FN+WOPRUVq5FSWYp/zEPoefK3taCX3D4MErqpEUh490uTb0Kw rPA5RngPapZYFJKEm34Cpx3imRDazQb6RgF9zOql9ePOatC88l0g4l01pTnS9LBF3zawiT9X8SeQp AKClCI/kpaRzbvKF7bKpRxpZp61TikoQuo/euLB6+mG+XTvVfCbS/2A6hztF8ibOEzCbyB4Vig9wN V/KKF++isGVMEFjLtmrziTA7ndPP98PacmjBw2ZAxan5f7F6F8/UGsVkUX+porc+bCwGPIMqL3QpD bdSxllKg==; Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q0-0000000H4xd-088t for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:24 +0000 Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8nBTG2887841 for ; Wed, 13 May 2026 10:02:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= D0aZPl0MYCIz6Jix08K3tr/R2B2KbELbdH86vRU0R1A=; b=FD/Xl3wAzivoMENU eYybmYlkFEB6/l0uvZk8W6nICIL1OuOdkhQsd+UkIf3yIZ1HrNcCjGYC/AX2Gyc3 d6QEe541szmynxNpOLo1qmMWyFtMSJmgulV9Z8Zb5u3Dzqn6FjFfehFqsN2ugitG iz/MEsypp2kG9oZ4QaUbuyBWYGIUEucP9ruM9G5aGWpgkrWth865wiPVdFt/pxmX tJVc7pNOrhO5jmGN+RZp6TmcoXO+Zs44FA+Cq+3JJKDINSJejvdIokgx9ALDKMyT X2VTb4L7gxZhCOOI7P5EOZGlL2Kx3cjWAKQILXP4FuMLQY17r6CXP+14OtueoY6T k3T6jQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p4gg9au-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:18 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2baedd2fd43so40725465ad.1 for ; Wed, 13 May 2026 03:02:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666537; x=1779271337; darn=lists.infradead.org; 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=D0aZPl0MYCIz6Jix08K3tr/R2B2KbELbdH86vRU0R1A=; b=jh/P2OlStsVG3OxiCc1zPLUI+wRdLGvrJzOH29CU3mCiFWh+B3nxblI+7jUAjxiyIl DsVdC4lFTVf/Dq3WYYI9x8mSxQ7bVO7UKlXtWZTbN1dXWRxyA8IOgkPKSFhlrk35RSlM RbwBeJuM7PNpfj1tgxb0Bbz+X2b9zzwcsfqpqPR/SVX284P4TuMJclhQK4B9xkDKFgxw HYRt1SNYSuzeBU8B1HQ74qEOXMq7lVZBQty1f1/iO5Jd4rZbuhonNCYTui7EMRvZdgh8 L12j1tWG9xEtuLTl1ELa7cq4tx497A55mAPtslU9Xkpa4EXmUC19pCdLDUY0V18O6jrP hJiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666537; x=1779271337; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=D0aZPl0MYCIz6Jix08K3tr/R2B2KbELbdH86vRU0R1A=; b=EBBlJPJ8Wj8QPg3xEJeteKiWWoHEIl7cZNdanjzPYHzOUx3j4/ClHTc0zUFWYoGv+7 OTL2+upaBnQCY9zXoO+ATf4Lgv2VfyChj5BRuZZLhuybI1nBGjoqS2LFFzItf+zFdNKA Gcyob+GACoVGV3g6YLDBJmHJAroU8K5F29/oNgBApUo8hWYkrO834Gq+I61gf4sy7Aqx fHxQKjWPZat87CxpD67gsUdZGxEBoCnaIyobwarJdFUOYD7u1lgrUR9RvItfs76OLK6F 0Cx1UK3KFcc1bf2tSRi/AE/mGgv5MUbRrdpBXqqW3azysUKKe/A/VaZncOozJTILoEe3 KS1Q== X-Gm-Message-State: AOJu0YzVEbM2yWKXWpRUyFV8fOv/VN1hSEVg07NTt1eYYLtJQH0F4tg6 +LlLTxa2XkoN79kwjYPyqCJlUInohRS5wuvEvBVaPaYY/bRbUmesxGgOaAzvdw2181EPlrbdp9B OooEueq9d4e285AVGaecZF817c/j1ABBzSjLW0x+v8o5k1yO3SB9h8e6lkB/FkXB/ACrr/S36 X-Gm-Gg: Acq92OFLBCukTuUHVjlfV1R6J3GVpK3C9OvZd9WBbXNvR7oxnuLN4EtomYSktXA8R0m XKjCX+wnhR0FOBJ0MtOOFmzbwqa37jzVn2cMZcHxn7u9PmEgOpx7kb15dB9xyAJAhEB2Qfn0+8a VeejAN1QAO6APShETEeWT0ZQhHoKssbx9+JLNHmpSN2r08QdCimkY4dJR+veyIfIfZgm3sm+FVu x83eJacNLCcPXvyTDLTE1jnTFDTaRdBDbxpJwGan0WU0Y3vxl1KXPwDGmMhBsx2sy6/ebge5a2t 7BRZN0QHKWn9SLTFD3hLghdT8j53PzGxQu38AW8wdMh7vSw6pB62pq6tG28qgSCclrG0Pz6+mMz K6z8tvT8oIobg2KpVpzgHXAGs9CcbBj5k3SVmu7zDMn8mr9vedSb9+w== X-Received: by 2002:a17:902:c40f:b0:2ba:bfc:76b5 with SMTP id d9443c01a7336-2bd2f4dba62mr22724625ad.4.1778666537287; Wed, 13 May 2026 03:02:17 -0700 (PDT) X-Received: by 2002:a17:902:c40f:b0:2ba:bfc:76b5 with SMTP id d9443c01a7336-2bd2f4dba62mr22724085ad.4.1778666536550; Wed, 13 May 2026 03:02:16 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:16 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 44/46] PR: store resolved peer DevIK in pr_device after DIRA match Date: Wed, 13 May 2026 15:30:08 +0530 Message-Id: <20260513100010.1947710-45-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-GUID: ACQYms4apQZb6Yk0OYqyCoS-rMmACEX3 X-Authority-Analysis: v=2.4 cv=DOS/JSNb c=1 sm=1 tr=0 ts=6a044c2a cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=MYn973uoZ094V6IQQHgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: ACQYms4apQZb6Yk0OYqyCoS-rMmACEX3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX3OgOwAjcdzpV u/fOeFqe9098WvhenV+F/pTYEFYNRHNohNREJ6ZieFTH2T5dvUgxrEnIJfsDixY0TvwiPtU4Rub XUVOPNK2w3RanD2E6Kc+UD67fm5x23otAqjMFAZjfl6dzS1VvDRv30Qnz9VT76lYs+KFlvcRcmS vWr9QBntsl/mpDciH0R2t6ye3keg4x9nLidchq65pCgtY81gCJWnBDaso5S92NrMzQWtFGECdxs HGxrwX6n73r8yHRh2zuJsdgd8FWsvhbOfqRg60zURY24ojHJcVcbGZapFJXMgXrluQyYkvcgfaU WYJKKwAyPe7dKmgOkRTa247Gg4wrELpH7Os6sVDpamFKMB+RGcn/tBiGS2U+I5cuqB3wzD9HpvK CbjgKZy2jNQ7d8ejmmhS+YWedu7+LjoPS2LGhNyeyRUjje397wtZT3BYyZBJVz6mCzvOZ321QhY IetBLH8YpsMSlVQJopQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 adultscore=0 impostorscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110221_488869_D3249A6D X-CRM114-Status: GOOD ( 17.73 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: Peddolla Harshavardhan Reddy Currently when pr_validate_dira() successfully matches a peer's DIRA tag, the matched DevIK is not stored on the pr_device. This makes it impossible to report the resolved peer identity back to the fr [...] Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Currently when pr_validate_dira() successfully matches a peer's DIRA tag, the matched DevIK is not stored on the pr_device. This makes it impossible to report the resolved peer identity back to the framework after USD discovery. To address this issue, add dik[DEVICE_IDENTITY_KEY_LEN] and dik_valid fields to struct pr_device, following the same pattern as the existing pmk and password fields. In pr_validate_dira(), reset dik and dik_valid at entry so stale state from a previous match is never visible, then copy dev_ik->dik and set dik_valid=true only when the DIRA tag comparison succeeds. In pr_clear_dev_iks(), clear dik and dik_valid alongside password to prevent dangling state after the dev_iks list is freed. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.c | 8 ++++++++ src/common/proximity_ranging.h | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 72f70597d..365c828a0 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -182,6 +182,8 @@ void pr_clear_dev_iks(struct pr_data *pr) dl_list_for_each(dev, &pr->devices, struct pr_device, list) { dev->password_valid = false; os_memset(dev->password, 0, sizeof(dev->password)); + dev->dik_valid = false; + os_memset(dev->dik, 0, DEVICE_IDENTITY_KEY_LEN); } pr_deinit_dev_iks(pr); @@ -452,6 +454,10 @@ static int pr_validate_dira(struct pr_data *pr, struct pr_device *dev, const char *label = "DIR"; const u8 *dira_nonce, *dira_tag; + /* Reset DevIK state — set only if DIRA verification succeeds */ + os_memset(dev->dik, 0, DEVICE_IDENTITY_KEY_LEN); + dev->dik_valid = false; + if (dira_len < 1 + DEVICE_IDENTITY_NONCE_LEN + DEVICE_IDENTITY_TAG_LEN) { wpa_printf(MSG_DEBUG, "PR: Truncated DIRA (length %u)", @@ -503,6 +509,8 @@ static int pr_validate_dira(struct pr_data *pr, struct pr_device *dev, dev->pmk_len = dev_ik->pmk_len; dev->pmk_valid = true; } + os_memcpy(dev->dik, dev_ik->dik, DEVICE_IDENTITY_KEY_LEN); + dev->dik_valid = true; return 0; } } diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 4b98ca612..771b109af 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -409,6 +409,13 @@ struct pr_device { size_t pmk_len; bool pmk_valid; + /* DevIK of the peer resolved via DIRA verification. + * Set to the matched dev_ik->dik when pr_validate_dira() succeeds. + * Cleared by pr_clear_dev_iks(). + */ + u8 dik[DEVICE_IDENTITY_KEY_LEN]; + bool dik_valid; + #ifdef CONFIG_PASN /* PASN data structure */ struct pasn_data *pasn; From patchwork Wed May 13 10:00:09 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237652 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=2Zv+Cw58; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=casper.20170209 header.b=GTJ4V3Dw; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=Tjx9HOD/; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=MiD4xBDJ; 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 4gFpvS5V8mz1yJ5 for ; Wed, 13 May 2026 20:03:48 +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=jXWAfaLgTD2HuvG7+pe1flib+f0B8Bc9IhL9FQueGKw=; b=2Zv+Cw58ztGcBq dFujNqPcfdyWO94uKJv99KhmGNwarir3XakVCD7U/+3em6GeDWNs9jC6FNAu3TY7XqT6QeR5+bUN+ BJ6b62SkbKIm7KTOYTZHZn92qBoaJ8fpeaBrkf6P6QJTWWvTB1WfuFmZaONllhMTAkVpeL8V6/S2P Tp94Yxjm8ZpTqQgwPdR9n04KfTzk4E5h8ja3UeBE8YSVzbK7wR/tNtS+1RXoOaT8GSlhiISQdnNpF qiiFOsdl9jRVgUhL7SJLH6mhXr466MH95mkIWn0DApevxDihFEQJ4Jj+mCJnnNF5VLzICBmfQGZJ7 a+G5EcUSRbhl1zrGSHng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Qs-000000024JT-1MgL; Wed, 13 May 2026 10:03:14 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q9-00000002333-2DbQ for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=shO0VbDT5yVB0SmBNsPWgk4M1qb5g0Z2Cs/+7w3LHiY=; b=GTJ4V3DwUIx7R3pSl2x2fNxb+j OkUJwra7YplZ0Lo1XdDv1XmOkL+84SLXP2ma76ug0RYzhSxRNRUdqVjLxpYlWRTG82EO06x8MDVZ2 bN6cd8sMX+VIV/Q3s8m6Lq+DBtljOJwGMNkWCOtGGFIEbBlMI/iw6WE1/N/RRHTK9jDrQv04vTmUb CrOTy7y0/c+3U4aepcoUOxTLb+3RJg96tmXQ7UH+/dnjx8nx9UJmHMGJjLPFj1+7wZZrFIZFYAv28 t4oTnqTzITQxOjEQEYM8CrSm/xyaV/yx/8e0gpTyl56reirIfPDgLJs2ai7Pw3g6Y1tWrBfSsRxL2 lLO0wFYQ==; Received: from mx0a-0031df01.pphosted.com ([205.220.168.131]) by casper.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q2-0000000BRYa-3rA8 for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:28 +0000 Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D8x0LT4159945 for ; Wed, 13 May 2026 10:02:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=shO0VbDT5yV B0SmBNsPWgk4M1qb5g0Z2Cs/+7w3LHiY=; b=Tjx9HOD/bnf+wF3+YbQgL+Avd+L Bc9kQQ0ghPOef/g/RDP3jNy0mcJjslwMaz1J9JOUcYMXcm2gIEAKcprKRZdv3RdU sDW2uzaZA1AV4UQJRMYK3a1vurfbgeT98OtxvIaGuzS1GGJdMV7/de0D2rHnN7kP aQVCZK/scA/ZxbcggvFZaLzdI/owfenTfMCAV9k8rpuol5D0gj5L8KC5wr2UsuTw A8fI3yf2KPFs3vt+fSeLIsJ+U32uCuo4rqD9yvjZ1l1f18uwEtSME637b2EJyvxE scS27bdLQwYs7C87GoNGfh/wH4Kl69I/qRJssGzG6F4lP59npcgt+QbYUKg== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4p91r82x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:20 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2b9b8137828so70272815ad.0 for ; Wed, 13 May 2026 03:02:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666539; x=1779271339; darn=lists.infradead.org; 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=shO0VbDT5yVB0SmBNsPWgk4M1qb5g0Z2Cs/+7w3LHiY=; b=MiD4xBDJ94jMZ3R9huCQfW1IHvvw8RmdgdosaD18ldSVp0ksO6NSGr2Aw+0/6wyaf+ uyLk4SxCc3fuJ07vp0JTj1rkCyNxk17X7BNKPoRy/Rc8LE0uZ5YVSCkt1nOLphaojsoG dV+qV/XDxpK+eoXWDvlEGrWQjU9jr9/M6VzIPA1P4OxBCMDjRcqCNACr8nAzYVerFaRk PDYQ6x99EXyC5bfdAEt4FWaX9W6KcgjQsAgBLRjAQRoqB1NCYbkyb75F0IlI2ULATFW4 4515GaIAOpZXuHPR2NaYNwtTNMYUE57UAkjKcKEiJxVW+OzxAMz1GaBh9u0AYk72I8ZJ 6sCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666539; x=1779271339; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=shO0VbDT5yVB0SmBNsPWgk4M1qb5g0Z2Cs/+7w3LHiY=; b=GFhJnzlIfAePLG/HkDDoCe7DVsnjuMD6nBe0ufKb27wLp8tr39pKFgpMZixphYNkrU J/11jJWGx1bKbCVIb7kbkXH9VaEzdMPGTpcUIGBeRDaugVLVjfxbTFAI37r0gUZjlN0r 5EgiytX/PHOnN3BPp1dDe/5yu0B0t6WCBjfjDFdtWkrRvrcV+wcSpeHhyBIyqpRqqQBl LUBPhkfiGKm29BeP43cBqhDmUXsbQX0ogPBzhHZ+SqODJSYu0lYR9H7AG6VWiHqsKVoB Jrwovy2FC6RguRyazgkntpw0faHox5crUpz4/upCQ5pHZ2ZhzctbcNirVJdlqZA9lMwE qoEg== X-Gm-Message-State: AOJu0Yz3bePZR4C/HU1HWf14maR67US5rvFbTk9qcBKkpvT/Xh/4rbqM 6isctOC5O2CRN/1wanpcIGrrMYtVDN2wD9CB8APhjMrYEFsykTnB1AGqBI2a88miqV5CaiH9NsZ jPStVG52GpoJn9nZHytZArvugoiK9vsTdAyhibZHxCBOhtJ0yc2394Bd9T+qQMDeuHZWjp/mi X-Gm-Gg: Acq92OEVGbFIeA8Of2JYPr3VFTHHZz1PRC5fN/e5FXxpNyXu9PPBEGf2HZDysCSFPq9 QLKDo3ZVhl5i+ltWsDTZ/qncm12v21nf7fevLo3k9bGchTj0L6dgOrlJpE+s8vANfLx6aIVjnBr ZQhMpvwRz4Mge9juvMULY/COrsGcHDRbPmV1qjOvguRofyGdRrLx3tK5OifHhz1I8pLR70o1icE 1kHQXrkEaZkqmPjgtE6dlsRER7jB5KZPpkUCt4sGgb+yVTKgZZ6xRw2lzW/UEEtjewrNwaOS0Si NLB5YktPNtts/0d++WuhfuA89J+3HAwyWq3T0y8Ef/ClEcDRuJVAGfKfLsuPjvIohBvstO3f203 Xr9kcwJu8M/DbaFYv0sn/G2FEINrDtxvh13id/vUJLWx72ykGabgBSw== X-Received: by 2002:a17:903:fae:b0:2ba:ba5c:2524 with SMTP id d9443c01a7336-2bd2f6014b5mr22167745ad.11.1778666539366; Wed, 13 May 2026 03:02:19 -0700 (PDT) X-Received: by 2002:a17:903:fae:b0:2ba:ba5c:2524 with SMTP id d9443c01a7336-2bd2f6014b5mr22167255ad.11.1778666538833; Wed, 13 May 2026 03:02:18 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:18 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 45/46] PR: use USD source address for DIRA tag computation Date: Wed, 13 May 2026 15:30:09 +0530 Message-Id: <20260513100010.1947710-46-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: jHWivHG46Oay1N5-FUv9sUGsIfH2dojI X-Proofpoint-GUID: jHWivHG46Oay1N5-FUv9sUGsIfH2dojI X-Authority-Analysis: v=2.4 cv=G9Ys1dk5 c=1 sm=1 tr=0 ts=6a044c2c cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=60an_59cYOpZ8QuWfl8A:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfXx7jge2JU5vN9 2ci8gw5DZak1uwZUZ5OFy9G1ZF0ZDa+tIzQtsdsSnGGvmRmCwGlA6BfJakhR1QPIieyctwUhSxb uCUOtBqYPpgGF6IDTMM9V9hqq41/7XxLAVC77wKkkBVoG6v4AeTHVLnuj06uJ5PG+Zj22EoVsZ1 ahNs7QWt3N+CdOltiSJBu2hhvd/rCO66GqglALSJEj6sMd5/+Vw14Lf1KQP2Liq2P+q+2bTiWMN ynb1cvk3rn2B6ligaDdJMiNpPDRpUbcRKGatHUrDZADhrsgnV/JqjngHr8sG+p0hpIlPAyaOrxQ FLm+26VH7l+RZx6GjeyT1LymThWNad74vtxJnhP/mW0mtZnQb6Q8dhmS4YOQpOmhGGHIjvuZxZS 5ABOHZ0NTAGZD2T7Ed4ybrHsNN5CZZq8xcybYU0YlmPp1fWcJEFr9thI80Wfnxj3ZUcI/vllcUv xnDLzV1Epns2kDwQ49A== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 adultscore=0 spamscore=0 phishscore=0 clxscore=1015 priorityscore=1501 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110223_403637_234239F2 X-CRM114-Status: GOOD ( 19.66 ) X-Spam-Score: -2.8 (--) X-Spam-Report: SpamAssassin version 4.0.2 on casper.infradead.org summary: Content analysis details: (-2.8 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.168.131 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_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 -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 DMARC_PASS DMARC pass policy 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: Peddolla Harshavardhan Reddy Currently when a USD publish or subscribe session is started with a forced (random) PR MAC address, pr_prepare_usd_elems() calls pr_derive_dira() which uses pr->cfg->dev_addr (the regular interface MAC) to compute the DIRA tag. The USD SDF is transmitted with the forced address as the source, so the receiving peer uses that address in pr_validate_dira(). The two addresses differ, causing the HMAC to never match and DIRA verification to always fail. To address this issue, add a src_addr parameter to pr_derive_dira() and pr_prepare_usd_elems() so the caller can supply the address that will appear as the SDF source on air. Thread this through wpas_pr_usd_elems() and use params->forced_addr (falling back to wpa_s->own_addr when no forced address is set) at the two call sites in wpas_nan_publish() and wpas_nan_subscribe(). The PASN path in pr_prepare_pasn_pr_elem() is unchanged and continues to pass pr->cfg->dev_addr, which is already set to the PD wdev address before any PASN DIRA computation occurs. Signed-off-by: Peddolla Harshavardhan Reddy --- src/common/proximity_ranging.c | 11 ++++++----- src/common/proximity_ranging.h | 2 +- wpa_supplicant/nan_supplicant.c | 8 ++++++-- wpa_supplicant/pr_supplicant.c | 5 +++-- wpa_supplicant/pr_supplicant.h | 6 ++++-- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 365c828a0..57e3f7b44 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -388,7 +388,8 @@ static void pr_get_ntb_capabilities(struct pr_data *pr, } -static int pr_derive_dira(struct pr_data *pr, struct pr_dira *dira) +static int pr_derive_dira(struct pr_data *pr, const u8 *src_addr, + struct pr_dira *dira) { u8 nonce[DEVICE_IDENTITY_NONCE_LEN]; u8 tag[DEVICE_MAX_HASH_LEN]; @@ -417,7 +418,7 @@ static int pr_derive_dira(struct pr_data *pr, struct pr_dira *dira) * Nonce)) */ os_memcpy(data, "DIR", DIR_STR_LEN); - os_memcpy(&data[DIR_STR_LEN], pr->cfg->dev_addr, ETH_ALEN); + os_memcpy(&data[DIR_STR_LEN], src_addr, ETH_ALEN); os_memcpy(&data[DIR_STR_LEN + ETH_ALEN], nonce, DEVICE_IDENTITY_NONCE_LEN); @@ -745,7 +746,7 @@ static void pr_buf_add_dira(struct wpabuf *buf, const struct pr_dira *dira) } -struct wpabuf * pr_prepare_usd_elems(struct pr_data *pr) +struct wpabuf * pr_prepare_usd_elems(struct pr_data *pr, const u8 *src_addr) { u32 ie_type; struct wpabuf *buf, *buf2; @@ -773,7 +774,7 @@ struct wpabuf * pr_prepare_usd_elems(struct pr_data *pr) pr_buf_add_ntb_capa_info(buf, &ntb_caps); } - if (!pr_derive_dira(pr, &dira)) + if (!pr_derive_dira(pr, src_addr, &dira)) pr_buf_add_dira(buf, &dira); ie_type = (OUI_WFA << 8) | PR_OUI_TYPE; @@ -1684,7 +1685,7 @@ static int pr_prepare_pasn_pr_elem(struct pr_data *pr, struct wpabuf *extra_ies, pr_buf_add_operation_mode(buf, &op_mode); /* PR Device Identity Resolution attribute */ - if (!pr_derive_dira(pr, &dira)) + if (!pr_derive_dira(pr, pr->cfg->dev_addr, &dira)) pr_buf_add_dira(buf, &dira); ie_type = (OUI_WFA << 8) | PR_OUI_TYPE; diff --git a/src/common/proximity_ranging.h b/src/common/proximity_ranging.h index 771b109af..0685e1d6e 100644 --- a/src/common/proximity_ranging.h +++ b/src/common/proximity_ranging.h @@ -655,7 +655,7 @@ void pr_add_dev_ik(struct pr_data *pr, const u8 *dik, const char *password, void pr_set_peer_credentials(struct pr_data *pr, const u8 *addr, const u8 *pmk, size_t pmk_len, const char *password); -struct wpabuf * pr_prepare_usd_elems(struct pr_data *pr); +struct wpabuf * pr_prepare_usd_elems(struct pr_data *pr, const u8 *src_addr); void pr_process_usd_elems(struct pr_data *pr, const u8 *ies, u16 ies_len, const u8 *peer_addr, unsigned int freq); int pr_ensure_oob_peer(struct pr_data *pr, const u8 *addr, int freq); diff --git a/wpa_supplicant/nan_supplicant.c b/wpa_supplicant/nan_supplicant.c index 705643ca7..13969ef1c 100644 --- a/wpa_supplicant/nan_supplicant.c +++ b/wpa_supplicant/nan_supplicant.c @@ -4521,7 +4521,9 @@ int wpas_nan_publish(struct wpa_supplicant *wpa_s, const char *service_name, elems = wpas_p2p_usd_elems(wpa_s, service_name); addr = wpa_s->global->p2p_dev_addr; } else if (params->proximity_ranging) { - elems = wpas_pr_usd_elems(wpa_s); + const u8 *src = params->forced_addr ? + params->forced_addr : wpa_s->own_addr; + elems = wpas_pr_usd_elems(wpa_s, src); } if (params->forced_addr) { @@ -4687,7 +4689,9 @@ int wpas_nan_subscribe(struct wpa_supplicant *wpa_s, elems = wpas_p2p_usd_elems(wpa_s, service_name); addr = wpa_s->global->p2p_dev_addr; } else if (params->proximity_ranging) { - elems = wpas_pr_usd_elems(wpa_s); + const u8 *src = params->forced_addr ? + params->forced_addr : wpa_s->own_addr; + elems = wpas_pr_usd_elems(wpa_s, src); } if (params->forced_addr) { diff --git a/wpa_supplicant/pr_supplicant.c b/wpa_supplicant/pr_supplicant.c index a6137f1a4..aa4bf027f 100644 --- a/wpa_supplicant/pr_supplicant.c +++ b/wpa_supplicant/pr_supplicant.c @@ -602,12 +602,13 @@ static void wpas_pr_pasn_clear_keys(void *ctx, const u8 *own_addr, } -struct wpabuf * wpas_pr_usd_elems(struct wpa_supplicant *wpa_s) +struct wpabuf * wpas_pr_usd_elems(struct wpa_supplicant *wpa_s, + const u8 *src_addr) { if (!wpa_s->global->pr) return NULL; - return pr_prepare_usd_elems(wpa_s->global->pr); + return pr_prepare_usd_elems(wpa_s->global->pr, src_addr); } diff --git a/wpa_supplicant/pr_supplicant.h b/wpa_supplicant/pr_supplicant.h index 941a4a2f8..4a158d9af 100644 --- a/wpa_supplicant/pr_supplicant.h +++ b/wpa_supplicant/pr_supplicant.h @@ -23,7 +23,8 @@ void wpas_pr_clear_dev_iks(struct wpa_supplicant *wpa_s); void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, const u8 *dik, const char *password, const u8 *pmk, size_t pmk_len, bool own); -struct wpabuf * wpas_pr_usd_elems(struct wpa_supplicant *wpa_s); +struct wpabuf * wpas_pr_usd_elems(struct wpa_supplicant *wpa_s, + const u8 *src_addr); void wpas_pr_process_usd_elems(struct wpa_supplicant *wpa_s, const u8 *buf, u16 buf_len, const u8 *peer_addr, unsigned int freq); @@ -82,7 +83,8 @@ static inline void wpas_pr_set_dev_ik(struct wpa_supplicant *wpa_s, { } -static inline struct wpabuf * wpas_pr_usd_elems(struct wpa_supplicant *wpa_s) +static inline struct wpabuf * wpas_pr_usd_elems(struct wpa_supplicant *wpa_s, + const u8 *src_addr) { return NULL; } From patchwork Wed May 13 10:00:10 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kavita Kavita X-Patchwork-Id: 2237650 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=Y72aOLUB; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=desiato.20200630 header.b=ZPn8AMu7; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256 header.s=qcppdkim1 header.b=fvPP/BV9; dkim=neutral header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.a=rsa-sha256 header.s=google header.b=GlJUOLWb; 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 4gFpvF5bDMz1yJ5 for ; Wed, 13 May 2026 20:03:37 +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=IFunaKfDWA1UL4ZXDhg9+gjbA4vY44cT+vNH7al2nOc=; b=Y72aOLUBs+2XnC ZK5D+SqF32BxBVCXtRYnjPQknFkC5RgSc6Py/YJ6Xrc0PTQN76dnKHUYMbaEf6NZ8nnLoKia7UvP9 x6GIiFj+GpXw23+VJK+lERxNYQtMzP/hB6sYEJHINrJ7tqIqJzgpRqseB4i/UhK82PQ6C7anGUoqs BuXSozo3iRIEy3Z1E0sX5bbv/oBw2anxeJh28ECYo1Rw2/8BNcZC5jYDifodlDHv5PP4airjxVJb9 3HRkDzKSS9dCvHyh+S4VCWja+aTgz071Q3FT+NU8UplttDHN6bNY8iwSWYmNQZ5XpMMDqJQbFE4MC tsiwJcxeqB4PBsIraf2Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Qu-000000024OD-1LjR; Wed, 13 May 2026 10:03:16 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6QB-0000000237G-3EUE for hostap@bombadil.infradead.org; Wed, 13 May 2026 10:02:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=98Dtba1YtJo/z8aVgSH9QJelrfiY1JrJzTff/O7TpIM=; b=ZPn8AMu7S0FTwoMAaSu2UpCjGX 5+ZucK+DIDwovU7o2EqkoJfYgRIa3E5IkF26l+IXxFdirIX0OZoUX8meFlIYxGe2TQAnBC12kZf5A P0mei9vKqezH1Yzy6Q0QAbDK4Zqz1TZtf0UkFoNdkfVPSFTCMNsDhm8CTrs6jiNvGgFuTsvcIe9Cd VXBypeGcKrbirkY7D1e79i8cOzKlETivjxpAdvzAurqtKxq1perfcHVRH+l5DvBsVW2YeF7BAV5Mg PmnsUC4chtuVv13HSuWCwraYpvAg8pr2gay9rPqqtPKSLk2lfpf9wtccNKfai10levbPX4dAL/9nb 97gDAzSA==; Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by desiato.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wN6Q3-0000000H50e-47lI for hostap@lists.infradead.org; Wed, 13 May 2026 10:02:29 +0000 Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64D9jfLZ3007206 for ; Wed, 13 May 2026 10:02:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=98Dtba1YtJo /z8aVgSH9QJelrfiY1JrJzTff/O7TpIM=; b=fvPP/BV9n6cTmNRrI6utQrSehe6 uu8MBu3R0SqACwDk5Ygz1f9BpnmBnLL2pzSNvYyjVrZFhomBtonZnP7p6hEcODBg UsHQ7MWuiNIMz0v1zBqOqlN6tyJQVdIWZ35KTHviofO9itFvdd9sLBWaPtWilZoc OCAJgAcp/OJAi2Y1GAYqRBeVJsSR0tEfAufI7HMVlBQxLExd6BINuS8JKp4x4u+k 7L6aEDCbMnqF1sXfOV7LocQ1Xd2jEpUQ5juNje2wnoEi4bA4lV7m9Wd/+xS3X7ek dIyYgOCFx3EPOZKn+Hz4EvFV3hbhR0fX9SjaiNUGaTrIiS6cIfC0iIkFgYw== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e4py0g2b1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 13 May 2026 10:02:22 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2babbeff9e4so78631115ad.0 for ; Wed, 13 May 2026 03:02:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778666541; x=1779271341; darn=lists.infradead.org; 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=98Dtba1YtJo/z8aVgSH9QJelrfiY1JrJzTff/O7TpIM=; b=GlJUOLWbfPVlQM0WuPluvqtBejA8QyMdaD1aXCwvlvscny47xRGdZKdyIplRpUxgkJ gKw5AdldIX9rKcQDSqaNU6CsjuB8hKlIk3Z7hKbgOZ2YltdNfAYb2prEDKATvoA2l5Qr JwDKcw0cfJbuLARP0SnyxhQ5HlS7+DtW/RPi3albgXlwqzOE1bKaij19Emylxt+dbGNW 5D0cCl0FN+RW8w5my899xXBwmvIbROJPB3WXp0KhvgD0lvmDlMyCrKM8Um51Va+FLMwF FC4U4fXXJ5jtWK0a1o/qGCLYTQi2kgQHD5K2JfmVUdf7Z+bCc7LT+T7K194f9SwQU6uX zDTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778666541; x=1779271341; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=98Dtba1YtJo/z8aVgSH9QJelrfiY1JrJzTff/O7TpIM=; b=tFJUbT0qD6UU3Zk8nOtZZ2uAj8icoJyBhXE/3jmLtW22bwBpTtFe7dWGg/xNJD74D4 osB+GwXJonhvOnYaZz4uNI+DvWReAkRxZqbSxkPHgWHZAlvxqs1RzIxdod8eIvmDW2QV bjBLqy8wSvzDM5cZlDGFBTOvFH/JvysJmNgvPGOTQC7q2xmU3mqsyEFfXZPxRBfgJoF+ k9pcm8RwT3q8r0mi0AAoMNQpcyAI40OG4FHXXziVzQrpZtZI/mamoatgPcpN0IoxMbeL p9BKP+4fTx4O5f/KjDl4Zkej1RUcreREF2ngTTHqrvdmsKIiwwpaZ3MH0AGmrjGLdzsV dBfQ== X-Gm-Message-State: AOJu0YydLoVyaT1hQ3wmyzkyaG8W73ijP+wy2L2Fjy+mcYmJIUNOHJXU /LsNLkFMrB8CQRU8X06wEgMR9bmlO48FtemDFAd+5KI/RWI3e9MTVJLtlmsE25FbWNhnr32/wdD CZhhJqFqT4GADQPvCkpqt86YhTztL9aqoWPNKL/ErsL1Vmzwgtw1lt55VlPE7Tpy+yhaeBF+Y X-Gm-Gg: Acq92OFPBm00HgUBek4SefGHc+bt3FOFaXy6/gi6GVtboi6ksx4VDfz7Gcy6spT7nTo VF2s+v8ASwmXzA+ADdDwXrfwomNeSqPnBtFXKZEHhrcSj2aaGKwloaa2N8VUMAOtZPPls2u24nW 0l5DlLgs0IVPgUWffG3A2PGriM1LI+hyrvFvyXh3IjE+iJleun5/tV43Yv3AnSOdt48eUDDRTZA LYsL+1RjDKrc4d+xjosO7YQ5+ny/HEQORyFdTj48Xtlqiv/7fit+Cg2CinORWqqrcj30kmvBZ8x Bl/rE0XmVd4jkHSTM89xe45vQu7l5wFutH2+X/rzbUz11GchmmT2n6jCPlTDfb8xpI1HJ14KMgC pomShUDAF7CPKWrXe/n63mqmhlAYwVzHASlmNOj1OLPJ8oxkJkH6K4A== X-Received: by 2002:a17:903:2ad0:b0:2b4:64cf:e8f8 with SMTP id d9443c01a7336-2bcfcb26618mr73876185ad.2.1778666541444; Wed, 13 May 2026 03:02:21 -0700 (PDT) X-Received: by 2002:a17:903:2ad0:b0:2b4:64cf:e8f8 with SMTP id d9443c01a7336-2bcfcb26618mr73875785ad.2.1778666540973; Wed, 13 May 2026 03:02:20 -0700 (PDT) Received: from hu-kkavita-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1e35632sm168983355ad.53.2026.05.13.03.02.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 03:02:20 -0700 (PDT) From: Kavita Kavita To: hostap@lists.infradead.org Cc: kavita.kavita@oss.qualcomm.com, peddolla.reddy@oss.qualcomm.com, vamsin@qti.qualcomm.com Subject: [PATCH v3 46/46] PR: Skip key installation for EDCA-based ranging Date: Wed, 13 May 2026 15:30:10 +0530 Message-Id: <20260513100010.1947710-47-kavita.kavita@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> References: <20260513100010.1947710-1-kavita.kavita@oss.qualcomm.com> MIME-Version: 1.0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTEzMDEwMyBTYWx0ZWRfX7kwq+v5LEVvw Xv7oxfAV2NCwTEk0gBC3/EgHIA2zTOd0Cewc8Ycn1aewKilLWcizl6Vkx2em8twdrpsgPWpq6QJ ElraMuatJjg6tpaTiZdiKCY5Xwa15qPwHIb7QvdZmEb07yKiXcA8CDkWL9pONn463H6MAZm0jng yrhVedb6SOPxfJ38G30xSs8H6IGqiG3tRA6ijy7xSuSAaCes/b9ual0pvd8thkuaLcpnRudRfPV YNuArp8ylW39rSERMoj390D1qS0PJ47JoMCdroigkRiQjAvXLgNhjWffzsNN2MIR1HDdEX529K9 baeQNL11VjVPTd4vsFdy3fdSnz0vEAqhoK0WAEIqlLgYgwBilRkrhg3AlG7htgTcP2bpAvi0R5q Zf/x4VfiluF6oJcB09HPU/2fOob6tJEMDY5RIuTVEfOGL03QwpDf7V6hQKbrPlVPrAVTrKD4VFV qf95AzBfS12iENnmrfw== X-Authority-Analysis: v=2.4 cv=XqXK/1F9 c=1 sm=1 tr=0 ts=6a044c2e cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=iyvGJqArj9a_KKx18_kA:9 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: RKQZS7APyCOrpKwRhkohrvCBIBSIl-J4 X-Proofpoint-GUID: RKQZS7APyCOrpKwRhkohrvCBIBSIl-J4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-11_05,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 phishscore=0 bulkscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 adultscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605050000 definitions=main-2605130103 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260513_110224_611318_36288482 X-CRM114-Status: GOOD ( 15.16 ) X-Spam-Score: -0.9 (/) X-Spam-Report: Spam detection software, running on the system "desiato.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: IEEE 802.11az-2022 section 11.21.6.3 defines a secure FTM session as one where a PTKSA is established and Protected FTM frames are exchanged. This applies to TB ranging, non-TB ranging, and EDCA-based [...] Content analysis details: (-0.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [205.220.180.131 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 DMARC_PASS DMARC pass policy 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 IEEE 802.11az-2022 section 11.21.6.3 defines a secure FTM session as one where a PTKSA is established and Protected FTM frames are exchanged. This applies to TB ranging, non-TB ranging, and EDCA-based ranging only when the Format And Bandwidth field (Table 9-280) indicates DMG or EDMG format. For EDCA-based ranging, no encryption mechanism is defined for FTM timestamp frames and the spec explicitly states that an ISTA shall not set up a secure FTM session in this case. Skip key installation for EDCA-based ranging since there is no point in installing keys to the firmware when they will never be used. Signed-off-by: Kavita Kavita --- src/common/proximity_ranging.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/common/proximity_ranging.c b/src/common/proximity_ranging.c index 57e3f7b44..3b154d1b6 100644 --- a/src/common/proximity_ranging.c +++ b/src/common/proximity_ranging.c @@ -2484,7 +2484,8 @@ static int pr_pasn_handle_auth_1(struct pr_data *pr, struct pr_device *dev, goto fail; } - if (pr->cfg->set_keys) + if (!(dev->protocol_type & PR_EDCA_BASED_RANGING) && + pr->cfg->set_keys) pr->cfg->set_keys(pr->cfg->cb_ctx, pr->cfg->dev_addr, dev->pr_device_addr, dev->pasn->cipher, dev->pasn->akmp, &dev->pasn->ptk); @@ -2533,7 +2534,8 @@ static int pr_pasn_handle_auth_2(struct pr_data *pr, struct pr_device *dev, goto fail; } - if (pr->cfg->set_keys) + if (!(dev->protocol_type & PR_EDCA_BASED_RANGING) && + pr->cfg->set_keys) pr->cfg->set_keys(pr->cfg->cb_ctx, pr->cfg->dev_addr, dev->pr_device_addr, dev->pasn->cipher, dev->pasn->akmp, &dev->pasn->ptk);