[PATCH 71/92] NAN: Send NAFs to paired peer as protected dual public action

Andrei Otcheretianski andrei.otcheretianski at intel.com
Wed Apr 22 05:24:02 PDT 2026


From: Avraham Stern <avraham.stern at intel.com>

NAN action frames should be sent as protected dual public action
if the peer is paired.

Signed-off-by: Avraham Stern <avraham.stern at intel.com>
---
 src/nan/nan.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/nan/nan.c b/src/nan/nan.c
index 6cf00a5bb5..b4f16bfc6b 100644
--- a/src/nan/nan.c
+++ b/src/nan/nan.c
@@ -1152,11 +1152,16 @@ int nan_add_peer(struct nan_data *nan, const u8 *addr,
 }
 
 
-static void nan_action_build_header(struct nan_data *nan, struct wpabuf *buf,
+static void nan_action_build_header(struct nan_data *nan, struct nan_peer *peer,
+				    struct wpabuf *buf,
 				    enum nan_subtype subtype)
 {
-	/* TODO: need to also support protected dual */
-	wpabuf_put_u8(buf, WLAN_ACTION_PUBLIC);
+	u8 category = WLAN_ACTION_PUBLIC;
+
+	if (nan_pairing_is_peer_paired(nan, peer->nmi_addr))
+		category = WLAN_ACTION_PROTECTED_DUAL;
+
+	wpabuf_put_u8(buf, category);
 	wpabuf_put_u8(buf, WLAN_PA_VENDOR_SPECIFIC);
 	wpabuf_put_be24(buf, OUI_WFA);
 	wpabuf_put_u8(buf, NAN_NAF_OUI_TYPE);
@@ -1171,7 +1176,7 @@ static int nan_action_build(struct nan_data *nan, struct nan_peer *peer,
 
 	wpa_printf(MSG_DEBUG, "NAN: Build NAF");
 
-	nan_action_build_header(nan, buf, subtype);
+	nan_action_build_header(nan, peer, buf, subtype);
 
 	nan_add_dev_capa_attr(nan, buf);
 	nan_add_dev_capa_ext_attr(nan, buf);
-- 
2.53.0




More information about the Hostap mailing list