[PATCH 59/92] NAN: Add an indication that a peer is paired
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Wed Apr 22 05:23:50 PDT 2026
From: Avraham Stern <avraham.stern at intel.com>
Add a function for other modules to check if the peer is paired.
This can be used to decide whether frames sent to the peer
should be protected.
Signed-off-by: Avraham Stern <avraham.stern at intel.com>
---
src/nan/nan.h | 7 +++++++
src/nan/nan_i.h | 2 ++
src/nan/nan_pairing.c | 14 ++++++++++++++
3 files changed, 23 insertions(+)
diff --git a/src/nan/nan.h b/src/nan/nan.h
index 4225b8fb78..a9bdcf9d67 100644
--- a/src/nan/nan.h
+++ b/src/nan/nan.h
@@ -739,6 +739,7 @@ int nan_pairing_set_pairing_setup(struct nan_data *nan_data, bool value);
int nan_pairing_set_npk_caching(struct nan_data *nan_data, bool value);
int nan_pairing_set_pairing_verification(struct nan_data *nan_data, bool value);
int nan_pairing_set_cipher_suites(struct nan_data *nan_data, u32 value);
+bool nan_pairing_is_peer_paired(struct nan_data *nan_data, const u8 *peer_addr);
#else
static inline int nan_pairing_add_attrs(struct nan_data *nan_data,
struct wpabuf *buf)
@@ -768,6 +769,12 @@ static inline int nan_pairing_auth_rx(struct nan_data *nan_data,
{
return -1;
}
+
+static inline
+bool nan_pairing_is_peer_paired(struct nan_data *nan_data, const u8 *peer_addr)
+{
+ return false;
+}
#endif /* CONFIG_PASN */
#endif /* NAN_H */
diff --git a/src/nan/nan_i.h b/src/nan/nan_i.h
index 9c6ff10cab..667bc3b480 100644
--- a/src/nan/nan_i.h
+++ b/src/nan/nan_i.h
@@ -473,6 +473,8 @@ enum nan_pairing_role {
/* Current pairing uses pairing verification */
#define NAN_PAIRING_FLAG_NPK_VERIFICATION BIT(0)
+/* Peer is paired */
+#define NAN_PAIRING_FLAG_PAIRED BIT(1)
/**
* struct nan_pairing_peer_data - NAN pairing peer information
diff --git a/src/nan/nan_pairing.c b/src/nan/nan_pairing.c
index 840044357f..185a9e92a1 100644
--- a/src/nan/nan_pairing.c
+++ b/src/nan/nan_pairing.c
@@ -587,6 +587,8 @@ static void nan_pairing_done(struct nan_data *nan_data, struct nan_peer *peer)
u8 *initiator_nmi, *responder_nmi;
int ret;
+ peer->pairing.flags |= NAN_PAIRING_FLAG_PAIRED;
+
if (!nan_data->cfg->pairing_cfg.npk_caching ||
!peer->pairing.pairing_cfg.npk_caching ||
peer->pairing.flags & NAN_PAIRING_FLAG_NPK_VERIFICATION)
@@ -1375,3 +1377,15 @@ int nan_pairing_set_cipher_suites(struct nan_data *nan, u32 value)
nan->cfg->pairing_cfg.cipher_suites = value;
return 0;
}
+
+
+bool nan_pairing_is_peer_paired(struct nan_data *nan_data, const u8 *peer_addr)
+{
+ struct nan_peer *peer;
+
+ peer = nan_get_peer(nan_data, peer_addr);
+ if (!peer)
+ return 0;
+
+ return !!(peer->pairing.flags & NAN_PAIRING_FLAG_PAIRED);
+}
--
2.53.0
More information about the Hostap
mailing list