[PATCH 82/92] wpa_supplicant: Move NAN notifications to notify.c
Andrei Otcheretianski
andrei.otcheretianski at intel.com
Wed Apr 22 05:24:13 PDT 2026
Move all NAN notifications to notify.c to simplify future extensions for
other notification APIs.
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski at intel.com>
---
wpa_supplicant/nan_supplicant.c | 91 ++++++-----------------
wpa_supplicant/notify.c | 124 ++++++++++++++++++++++++++++++++
wpa_supplicant/notify.h | 24 +++++++
3 files changed, 170 insertions(+), 69 deletions(-)
diff --git a/wpa_supplicant/nan_supplicant.c b/wpa_supplicant/nan_supplicant.c
index 432e752fc3..acebae9157 100644
--- a/wpa_supplicant/nan_supplicant.c
+++ b/wpa_supplicant/nan_supplicant.c
@@ -333,39 +333,22 @@ wpas_nan_ndp_action_notif_cb(void *ctx,
struct nan_ndp_action_notif_params *params)
{
struct wpa_supplicant *wpa_s = ctx;
- char *ssi_hex = NULL;
-
- if (params->ssi) {
- size_t len = 2 * params->ssi_len + 1;
-
- ssi_hex = os_zalloc(len);
- if (!ssi_hex)
- return;
-
- wpa_snprintf_hex(ssi_hex, len, params->ssi, params->ssi_len);
- }
if (params->is_request) {
- wpa_msg_global(wpa_s, MSG_INFO,
- NAN_NDP_REQUEST "peer_nmi=" MACSTR
- " init_ndi=" MACSTR
- " ndp_id=%u publish_inst_id=%u ssi=%s csid=%u",
- MAC2STR(params->ndp_id.peer_nmi),
- MAC2STR(params->ndp_id.init_ndi),
- params->ndp_id.id,
- params->publish_inst_id,
- ssi_hex ? ssi_hex : "", params->csid);
+ wpas_notify_nan_ndp_request(wpa_s, params->ndp_id.peer_nmi,
+ params->ndp_id.init_ndi,
+ params->ndp_id.id,
+ params->publish_inst_id,
+ params->ssi, params->ssi_len,
+ params->csid);
} else {
- wpa_msg_global(wpa_s, MSG_INFO,
- NAN_NDP_COUNTER_REQUEST "peer_nmi=" MACSTR
- " init_ndi=" MACSTR
- " ndp_id=%u ssi=%s",
- MAC2STR(params->ndp_id.peer_nmi),
- MAC2STR(params->ndp_id.init_ndi),
- params->ndp_id.id, ssi_hex ? ssi_hex : "");
+ wpas_notify_nan_ndp_counter_request(wpa_s,
+ params->ndp_id.peer_nmi,
+ params->ndp_id.init_ndi,
+ params->ndp_id.id,
+ params->ssi,
+ params->ssi_len);
}
-
- os_free(ssi_hex);
}
@@ -595,7 +578,6 @@ static int wpas_nan_ndp_connected_cb(void *ctx,
struct nan_ndp_connection_params *params)
{
struct wpa_supplicant *wpa_s = ctx;
- char *ssi_hex = NULL;
if (wpas_nan_add_ndi_sta(wpa_s, params->ndp_id.peer_nmi,
params->local_ndi, params->peer_ndi,
@@ -606,23 +588,10 @@ static int wpas_nan_ndp_connected_cb(void *ctx,
return -1;
}
- if (params->ssi) {
- size_t len = 2 * params->ssi_len + 1;
-
- ssi_hex = os_zalloc(len);
- if (!ssi_hex)
- return -1;
-
- wpa_snprintf_hex(ssi_hex, len, params->ssi, params->ssi_len);
- }
-
- wpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_CONNECTED "peer=" MACSTR
- " ndp_id=%u local_ndi=" MACSTR
- " peer_ndi=" MACSTR " ssi=%s",
- MAC2STR(params->ndp_id.peer_nmi), params->ndp_id.id,
- MAC2STR(params->local_ndi), MAC2STR(params->peer_ndi),
- ssi_hex ? ssi_hex : "");
- os_free(ssi_hex);
+ wpas_notify_nan_ndp_connected(wpa_s, params->ndp_id.peer_nmi,
+ params->ndp_id.id,
+ params->local_ndi, params->peer_ndi,
+ params->ssi, params->ssi_len);
return 0;
}
@@ -636,11 +605,9 @@ static void wpas_nan_ndp_disconnected_cb(void *ctx, struct nan_ndp_id *ndp_id,
struct wpa_supplicant *wpa_s = ctx;
wpas_nan_remove_ndi_sta(wpa_s, local_ndi, peer_ndi);
- wpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_DISCONNECTED
- "peer=" MACSTR " ndp_id=%u local_ndi=" MACSTR
- " peer_ndi=" MACSTR " reason=%u",
- MAC2STR(ndp_id->peer_nmi), ndp_id->id,
- MAC2STR(local_ndi), MAC2STR(peer_ndi), reason);
+ wpas_notify_nan_ndp_disconnected(wpa_s, ndp_id->peer_nmi,
+ ndp_id->id, local_ndi, peer_ndi,
+ reason);
}
@@ -879,22 +846,9 @@ static int wpas_nan_pasn_auth_status_cb(void *ctx, const u8 *peer_addr,
struct wpa_supplicant *wpa_s = ctx;
enum wpa_alg alg;
u8 seq[6];
- char nd_pmk_hex[2 * PMK_LEN + 1];
-
- if (nd_pmk)
- wpa_snprintf_hex(nd_pmk_hex, sizeof(nd_pmk_hex), nd_pmk,
- PMK_LEN);
- else
- nd_pmk_hex[0] = '\0';
- wpa_msg_global(wpa_s, MSG_INFO,
- NAN_PAIRING_STATUS "addr=" MACSTR " akmp=%s cipher=%s status=%s%s%s",
- MAC2STR(peer_addr),
- wpa_key_mgmt_txt(akmp, WPA_PROTO_RSN),
- wpa_cipher_txt(cipher),
- status == WLAN_STATUS_SUCCESS ? "success" : "failure",
- nd_pmk ? " nd_pmk=" : "",
- nd_pmk ? nd_pmk_hex : "");
+ wpas_notify_nan_pairing_status(wpa_s, peer_addr, akmp, cipher,
+ status, nd_pmk);
if (status != WLAN_STATUS_SUCCESS)
return 0;
@@ -2836,8 +2790,7 @@ void wpas_nan_cluster_join(struct wpa_supplicant *wpa_s,
if (!wpas_nan_ready(wpa_s))
return;
- wpa_msg_global(wpa_s, MSG_INFO, NAN_CLUSTER_JOIN "cluster_id=" MACSTR
- " new=%d", MAC2STR(cluster_id), new_cluster);
+ wpas_notify_nan_cluster_join(wpa_s, cluster_id, new_cluster);
nan_de_set_cluster_id(wpa_s->nan_de, cluster_id);
nan_set_cluster_id(wpa_s->nan, cluster_id);
diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c
index 3e122ed7fe..80545c456d 100644
--- a/wpa_supplicant/notify.c
+++ b/wpa_supplicant/notify.c
@@ -1340,6 +1340,130 @@ void wpas_notify_nan_pairing_request(struct wpa_supplicant *wpa_s,
MAC2STR(peer_nmi), csid, instance_id);
}
+
+void wpas_notify_nan_ndp_request(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi, const u8 *init_ndi,
+ u32 ndp_id, u8 publish_inst_id,
+ const u8 *ssi, size_t ssi_len, u32 csid)
+{
+ char *ssi_hex = NULL;
+
+ if (ssi) {
+ ssi_hex = os_zalloc(2 * ssi_len + 1);
+ if (!ssi_hex)
+ return;
+
+ wpa_snprintf_hex(ssi_hex, 2 * ssi_len + 1, ssi, ssi_len);
+ }
+
+ wpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_REQUEST "peer_nmi=" MACSTR
+ " init_ndi=" MACSTR
+ " ndp_id=%u publish_inst_id=%u ssi=%s csid=%u",
+ MAC2STR(peer_nmi), MAC2STR(init_ndi),
+ ndp_id, publish_inst_id,
+ ssi_hex ? ssi_hex : "", csid);
+
+ os_free(ssi_hex);
+}
+
+
+void wpas_notify_nan_ndp_counter_request(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi,
+ const u8 *init_ndi, u32 ndp_id,
+ const u8 *ssi, size_t ssi_len)
+{
+ char *ssi_hex = NULL;
+
+ if (ssi) {
+ ssi_hex = os_zalloc(2 * ssi_len + 1);
+ if (!ssi_hex)
+ return;
+
+ wpa_snprintf_hex(ssi_hex, 2 * ssi_len + 1, ssi,
+ ssi_len);
+ }
+
+ wpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_COUNTER_REQUEST
+ "peer_nmi=" MACSTR " init_ndi=" MACSTR
+ " ndp_id=%u ssi=%s",
+ MAC2STR(peer_nmi), MAC2STR(init_ndi),
+ ndp_id, ssi_hex ? ssi_hex : "");
+
+ os_free(ssi_hex);
+}
+
+
+void wpas_notify_nan_ndp_connected(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi, u32 ndp_id,
+ const u8 *local_ndi,
+ const u8 *peer_ndi,
+ const u8 *ssi, size_t ssi_len)
+{
+ char *ssi_hex = NULL;
+
+ if (ssi) {
+ ssi_hex = os_zalloc(2 * ssi_len + 1);
+ if (!ssi_hex)
+ return;
+
+ wpa_snprintf_hex(ssi_hex, 2 * ssi_len + 1, ssi, ssi_len);
+ }
+
+ wpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_CONNECTED "peer=" MACSTR
+ " ndp_id=%u local_ndi=" MACSTR
+ " peer_ndi=" MACSTR " ssi=%s",
+ MAC2STR(peer_nmi), ndp_id, MAC2STR(local_ndi),
+ MAC2STR(peer_ndi), ssi_hex ? ssi_hex : "");
+
+ os_free(ssi_hex);
+}
+
+
+void wpas_notify_nan_ndp_disconnected(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi, u32 ndp_id,
+ const u8 *local_ndi,
+ const u8 *peer_ndi,
+ enum nan_reason reason)
+{
+ wpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_DISCONNECTED
+ "peer=" MACSTR " ndp_id=%u local_ndi=" MACSTR
+ " peer_ndi=" MACSTR " reason=%u",
+ MAC2STR(peer_nmi), ndp_id,
+ MAC2STR(local_ndi), MAC2STR(peer_ndi), reason);
+}
+
+
+void wpas_notify_nan_cluster_join(struct wpa_supplicant *wpa_s,
+ const u8 *cluster_id, bool new_cluster)
+{
+ wpa_msg_global(wpa_s, MSG_INFO, NAN_CLUSTER_JOIN "cluster_id=" MACSTR
+ " new=%d", MAC2STR(cluster_id), new_cluster);
+}
+
+
+void wpas_notify_nan_pairing_status(struct wpa_supplicant *wpa_s,
+ const u8 *peer_addr, int akmp,
+ int cipher, u8 status,
+ const u8 *nd_pmk)
+{
+ char nd_pmk_hex[2 * PMK_LEN + 1];
+
+ if (nd_pmk)
+ wpa_snprintf_hex(nd_pmk_hex, sizeof(nd_pmk_hex), nd_pmk,
+ PMK_LEN);
+ else
+ nd_pmk_hex[0] = '\0';
+
+ wpa_msg_global(wpa_s, MSG_INFO,
+ NAN_PAIRING_STATUS "addr=" MACSTR " akmp=%s cipher=%s status=%s%s%s",
+ MAC2STR(peer_addr),
+ wpa_key_mgmt_txt(akmp, WPA_PROTO_RSN),
+ wpa_cipher_txt(cipher),
+ status == WLAN_STATUS_SUCCESS ? "success" : "failure",
+ nd_pmk ? " nd_pmk=" : "",
+ nd_pmk ? nd_pmk_hex : "");
+}
+
#endif /* CONFIG_NAN || CONFIG_NAN_USD */
diff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h
index 3b1517d91b..2ef2b59d32 100644
--- a/wpa_supplicant/notify.h
+++ b/wpa_supplicant/notify.h
@@ -233,5 +233,29 @@ void wpas_notify_nan_bootstrap_failure(struct wpa_supplicant *wpa_s,
void wpas_notify_nan_pairing_request(struct wpa_supplicant *wpa_s,
const u8 *peer_nmi, u8 csid,
u8 instance_id);
+void wpas_notify_nan_ndp_request(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi, const u8 *init_ndi,
+ u32 ndp_id, u8 publish_inst_id,
+ const u8 *ssi, size_t ssi_len, u32 csid);
+void wpas_notify_nan_ndp_counter_request(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi,
+ const u8 *init_ndi, u32 ndp_id,
+ const u8 *ssi, size_t ssi_len);
+void wpas_notify_nan_ndp_connected(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi, u32 ndp_id,
+ const u8 *local_ndi,
+ const u8 *peer_ndi,
+ const u8 *ssi, size_t ssi_len);
+void wpas_notify_nan_ndp_disconnected(struct wpa_supplicant *wpa_s,
+ const u8 *peer_nmi, u32 ndp_id,
+ const u8 *local_ndi,
+ const u8 *peer_ndi,
+ enum nan_reason reason);
+void wpas_notify_nan_cluster_join(struct wpa_supplicant *wpa_s,
+ const u8 *cluster_id, bool new_cluster);
+void wpas_notify_nan_pairing_status(struct wpa_supplicant *wpa_s,
+ const u8 *peer_addr, int akmp,
+ int cipher, u8 status,
+ const u8 *nd_pmk);
#endif /* NOTIFY_H */
--
2.53.0
More information about the Hostap
mailing list