Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2226431/?format=api
{ "id": 2226431, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2226431/?format=api", "web_url": "http://patchwork.ozlabs.org/project/hostap/patch/20260422122424.43776-83-andrei.otcheretianski@intel.com/", "project": { "id": 22, "url": "http://patchwork.ozlabs.org/api/1.2/projects/22/?format=api", "name": "HostAP Development", "link_name": "hostap", "list_id": "hostap.lists.infradead.org", "list_email": "hostap@lists.infradead.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260422122424.43776-83-andrei.otcheretianski@intel.com>", "list_archive_url": null, "date": "2026-04-22T12:24:13", "name": "[82/92] wpa_supplicant: Move NAN notifications to notify.c", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5f5a46c3caa2ba3192aa94f75236e3c309529dd6", "submitter": { "id": 62065, "url": "http://patchwork.ozlabs.org/api/1.2/people/62065/?format=api", "name": "Andrei Otcheretianski", "email": "andrei.otcheretianski@intel.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/hostap/patch/20260422122424.43776-83-andrei.otcheretianski@intel.com/mbox/", "series": [ { "id": 501001, "url": "http://patchwork.ozlabs.org/api/1.2/series/501001/?format=api", "web_url": "http://patchwork.ozlabs.org/project/hostap/list/?series=501001", "date": "2026-04-22T12:23:05", "name": "Add NAN PASN pairing support", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/501001/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2226431/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2226431/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=3fAwkh0E;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=ns4HwZ21;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0z9s2kv2z1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 22:31:45 +1000 (AEST)", "from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1wFWjb-0000000ABEb-0h8v;\n\tWed, 22 Apr 2026 12:31:15 +0000", "from mgamail.intel.com ([192.198.163.17])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1wFWfm-0000000A34B-1UjH\n\tfor hostap@lists.infradead.org;\n\tWed, 22 Apr 2026 12:27:31 +0000", "from orviesa010.jf.intel.com ([10.64.159.150])\n by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 22 Apr 2026 05:26:48 -0700", "from iapp347.iil.intel.com (HELO 87c02287900a.iil.intel.com)\n ([10.167.28.6])\n by orviesa010-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 22 Apr 2026 05:26:47 -0700" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:\n\tMessage-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=sZ9LOtCqKL8i5sbkpis89rsooUgD2hBmkriK9O8OlyU=; b=3fAwkh0ETDXsci\n\tdo4GWMM8ZFxaJKLrZUIr/V1HGi6mGV2ivsGX5wb7yO9U1seHXSvj5bEBOLO/OoX9bW5z9sPZJJA2L\n\tlQ3mFa7jdY+xwOrlGUyDKSpn86iZF7EKhcPrxzrAkLPLkkyhIuwzphI0YpZV61F0M4wie4QgiOSqA\n\tPilhU44Ejv4dTpeHSp9XQm7CVK/waRvrGAl9EyodakSeLRiZjabqgokZppuPWh+dV+MDI2ipiw+aw\n\tNunj6uPjxGK528DsxtYT79YvIQO/A1YXh1zr7rLRW8ZAoTNxLGLgj3WG3qWRLdSUGvbvEmJzfFawf\n\tQKJxKPBTfDgqzpzstJzw==;", "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1776860838; x=1808396838;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=CpDfef0+ZuqaaNXqrvLRzg9NLFKbWaCpnicsp0SByco=;\n b=ns4HwZ21q73AEgiSXmvWyyeb+41T/gSlICE8rBSfmIMOfSgrsg5lN9D3\n gmdhLh5ZUvtRuPTciA/V23siPzSsq37b5LYNheSxXaRoz/l+tUbQ5aYFa\n QmLkgU9BK/DdSlMHkwk0UpupqHtGdL7f5tnlLlWdcrLtaQrxHajvA+DSz\n adfTWA4IWXpB0H8Ih2izkVG7cPkhJa6y7n56kz2XG5HsAEuG2ZPscqXp8\n jMZ++TEPXNOISqU+jqMclMM5L1N9PhKjaJlc9TPnaox3EcJOjRixZD6IX\n KLgjeXzYiF3A9RSU75DjCgvvBTsnoTXgOMTaF+sD4B0Pe/hHhhgKH/TWY\n w==;" ], "X-CSE-ConnectionGUID": [ "Q3VqJclMQna+j+wBu71Wjw==", "pMtrmA4dT2+ABMJnj6aVZQ==" ], "X-CSE-MsgGUID": [ "2aIiQBTaTsGqnYbKgi1Iiw==", "BH0blN32QVu0PzJy/tDn7w==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6800,10657,11764\"; a=\"77687589\"", "E=Sophos;i=\"6.23,192,1770624000\";\n d=\"scan'208\";a=\"77687589\"", "E=Sophos;i=\"6.23,192,1770624000\";\n d=\"scan'208\";a=\"231445308\"" ], "X-ExtLoop1": "1", "From": "Andrei Otcheretianski <andrei.otcheretianski@intel.com>", "To": "hostap@lists.infradead.org", "Cc": "vamsin@qti.qualcomm.com,\n\tmaheshkkv@google.com,\n\tAndrei Otcheretianski <andrei.otcheretianski@intel.com>", "Subject": "[PATCH 82/92] wpa_supplicant: Move NAN notifications to notify.c", "Date": "Wed, 22 Apr 2026 15:24:13 +0300", "Message-ID": "<20260422122424.43776-83-andrei.otcheretianski@intel.com>", "X-Mailer": "git-send-email 2.53.0", "In-Reply-To": "<20260422122424.43776-1-andrei.otcheretianski@intel.com>", "References": "<20260422122424.43776-1-andrei.otcheretianski@intel.com>", "MIME-Version": "1.0", "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ", "X-CRM114-CacheID": "sfid-20260422_052718_576599_94C9EB1C ", "X-CRM114-Status": "GOOD ( 12.65 )", "X-Spam-Score": "-4.4 (----)", "X-Spam-Report": "Spam detection software,\n running on the system \"bombadil.infradead.org\",\n has NOT identified this incoming email as spam. The original\n message has been attached to this so you can view it or label\n similar future email. If you have any questions, see\n the administrator of that system for details.\n Content preview: Move all NAN notifications to notify.c to simplify future\n extensions for other notification APIs. Signed-off-by: Andrei\n Otcheretianski\n <andrei.otcheretianski@intel.com> --- wpa_supplicant/nan_supplicant.c | 91\n ++++++ wpa_supplicant/notify.c | 124 ++++++++++++++++++++++++++++++++ w\n [...] \n Content analysis details: (-4.4 points, 5.0 required)\n pts rule name description\n ---- ----------------------\n --------------------------------------------------\n -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,\n medium trust\n [192.198.163.17 listed in list.dnswl.org]\n 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record\n -0.0 SPF_PASS SPF: sender matches SPF record\n -0.1 DKIM_VALID Message has at least one valid DKIM or DK\n signature\n -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from\n author's\n domain\n -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from\n envelope-from domain\n 0.1 DKIM_SIGNED Message has a DKIM or DK signature,\n not necessarily valid\n -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%\n [score: 0.0000]\n -0.0 DKIMWL_WL_HIGH DKIMwl.org - High trust sender", "X-BeenThere": "hostap@lists.infradead.org", "X-Mailman-Version": "2.1.34", "Precedence": "list", "List-Id": "<hostap.lists.infradead.org>", "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/hostap>,\n <mailto:hostap-request@lists.infradead.org?subject=unsubscribe>", "List-Archive": "<http://lists.infradead.org/pipermail/hostap/>", "List-Post": "<mailto:hostap@lists.infradead.org>", "List-Help": "<mailto:hostap-request@lists.infradead.org?subject=help>", "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/hostap>,\n <mailto:hostap-request@lists.infradead.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Sender": "\"Hostap\" <hostap-bounces@lists.infradead.org>", "Errors-To": "hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org" }, "content": "Move all NAN notifications to notify.c to simplify future extensions for\nother notification APIs.\n\nSigned-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>\n---\n wpa_supplicant/nan_supplicant.c | 91 ++++++-----------------\n wpa_supplicant/notify.c | 124 ++++++++++++++++++++++++++++++++\n wpa_supplicant/notify.h | 24 +++++++\n 3 files changed, 170 insertions(+), 69 deletions(-)", "diff": "diff --git a/wpa_supplicant/nan_supplicant.c b/wpa_supplicant/nan_supplicant.c\nindex 432e752fc3..acebae9157 100644\n--- a/wpa_supplicant/nan_supplicant.c\n+++ b/wpa_supplicant/nan_supplicant.c\n@@ -333,39 +333,22 @@ wpas_nan_ndp_action_notif_cb(void *ctx,\n \t\t\t struct nan_ndp_action_notif_params *params)\n {\n \tstruct wpa_supplicant *wpa_s = ctx;\n-\tchar *ssi_hex = NULL;\n-\n-\tif (params->ssi) {\n-\t\tsize_t len = 2 * params->ssi_len + 1;\n-\n-\t\tssi_hex = os_zalloc(len);\n-\t\tif (!ssi_hex)\n-\t\t\treturn;\n-\n-\t\twpa_snprintf_hex(ssi_hex, len, params->ssi, params->ssi_len);\n-\t}\n \n \tif (params->is_request) {\n-\t\twpa_msg_global(wpa_s, MSG_INFO,\n-\t\t\t NAN_NDP_REQUEST \"peer_nmi=\" MACSTR\n-\t\t\t \" init_ndi=\" MACSTR\n-\t\t\t \" ndp_id=%u publish_inst_id=%u ssi=%s csid=%u\",\n-\t\t\t MAC2STR(params->ndp_id.peer_nmi),\n-\t\t\t MAC2STR(params->ndp_id.init_ndi),\n-\t\t\t params->ndp_id.id,\n-\t\t\t params->publish_inst_id,\n-\t\t\t ssi_hex ? ssi_hex : \"\", params->csid);\n+\t\twpas_notify_nan_ndp_request(wpa_s, params->ndp_id.peer_nmi,\n+\t\t\t\t\t params->ndp_id.init_ndi,\n+\t\t\t\t\t params->ndp_id.id,\n+\t\t\t\t\t params->publish_inst_id,\n+\t\t\t\t\t params->ssi, params->ssi_len,\n+\t\t\t\t\t params->csid);\n \t} else {\n-\t\twpa_msg_global(wpa_s, MSG_INFO,\n-\t\t\t NAN_NDP_COUNTER_REQUEST \"peer_nmi=\" MACSTR\n-\t\t\t \" init_ndi=\" MACSTR\n-\t\t\t \" ndp_id=%u ssi=%s\",\n-\t\t\t MAC2STR(params->ndp_id.peer_nmi),\n-\t\t\t MAC2STR(params->ndp_id.init_ndi),\n-\t\t\t params->ndp_id.id, ssi_hex ? ssi_hex : \"\");\n+\t\twpas_notify_nan_ndp_counter_request(wpa_s,\n+\t\t\t\t\t\t params->ndp_id.peer_nmi,\n+\t\t\t\t\t\t params->ndp_id.init_ndi,\n+\t\t\t\t\t\t params->ndp_id.id,\n+\t\t\t\t\t\t params->ssi,\n+\t\t\t\t\t\t params->ssi_len);\n \t}\n-\n- os_free(ssi_hex);\n }\n \n \n@@ -595,7 +578,6 @@ static int wpas_nan_ndp_connected_cb(void *ctx,\n \t\t\t\t struct nan_ndp_connection_params *params)\n {\n \tstruct wpa_supplicant *wpa_s = ctx;\n-\tchar *ssi_hex = NULL;\n \n \tif (wpas_nan_add_ndi_sta(wpa_s, params->ndp_id.peer_nmi,\n \t\t\t\t params->local_ndi, params->peer_ndi,\n@@ -606,23 +588,10 @@ static int wpas_nan_ndp_connected_cb(void *ctx,\n \t\treturn -1;\n \t}\n \n-\tif (params->ssi) {\n-\t\tsize_t len = 2 * params->ssi_len + 1;\n-\n-\t\tssi_hex = os_zalloc(len);\n-\t\tif (!ssi_hex)\n-\t\t\treturn -1;\n-\n-\t\twpa_snprintf_hex(ssi_hex, len, params->ssi, params->ssi_len);\n-\t}\n-\n-\twpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_CONNECTED \"peer=\" MACSTR\n-\t\t \" ndp_id=%u local_ndi=\" MACSTR\n-\t\t \" peer_ndi=\" MACSTR \" ssi=%s\",\n-\t\t MAC2STR(params->ndp_id.peer_nmi), params->ndp_id.id,\n-\t\t MAC2STR(params->local_ndi), MAC2STR(params->peer_ndi),\n-\t\t ssi_hex ? ssi_hex : \"\");\n- os_free(ssi_hex);\n+\twpas_notify_nan_ndp_connected(wpa_s, params->ndp_id.peer_nmi,\n+\t\t\t\t params->ndp_id.id,\n+\t\t\t\t params->local_ndi, params->peer_ndi,\n+\t\t\t\t params->ssi, params->ssi_len);\n \n return 0;\n }\n@@ -636,11 +605,9 @@ static void wpas_nan_ndp_disconnected_cb(void *ctx, struct nan_ndp_id *ndp_id,\n \tstruct wpa_supplicant *wpa_s = ctx;\n \n \twpas_nan_remove_ndi_sta(wpa_s, local_ndi, peer_ndi);\n-\twpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_DISCONNECTED\n-\t\t \"peer=\" MACSTR \" ndp_id=%u local_ndi=\" MACSTR\n-\t\t \" peer_ndi=\" MACSTR \" reason=%u\",\n-\t\t MAC2STR(ndp_id->peer_nmi), ndp_id->id,\n-\t\t MAC2STR(local_ndi), MAC2STR(peer_ndi), reason);\n+\twpas_notify_nan_ndp_disconnected(wpa_s, ndp_id->peer_nmi,\n+\t\t\t\t\t ndp_id->id, local_ndi, peer_ndi,\n+\t\t\t\t\t reason);\n }\n \n \n@@ -879,22 +846,9 @@ static int wpas_nan_pasn_auth_status_cb(void *ctx, const u8 *peer_addr,\n \tstruct wpa_supplicant *wpa_s = ctx;\n \tenum wpa_alg alg;\n \tu8 seq[6];\n-\tchar nd_pmk_hex[2 * PMK_LEN + 1];\n-\n-\tif (nd_pmk)\n-\t\twpa_snprintf_hex(nd_pmk_hex, sizeof(nd_pmk_hex), nd_pmk,\n-\t\t\t\t PMK_LEN);\n-\telse\n-\t\tnd_pmk_hex[0] = '\\0';\n \n-\twpa_msg_global(wpa_s, MSG_INFO,\n-\t\t NAN_PAIRING_STATUS \"addr=\" MACSTR \" akmp=%s cipher=%s status=%s%s%s\",\n-\t\t MAC2STR(peer_addr),\n-\t\t wpa_key_mgmt_txt(akmp, WPA_PROTO_RSN),\n-\t\t wpa_cipher_txt(cipher),\n-\t\t status == WLAN_STATUS_SUCCESS ? \"success\" : \"failure\",\n-\t\t nd_pmk ? \" nd_pmk=\" : \"\",\n-\t\t nd_pmk ? nd_pmk_hex : \"\");\n+\twpas_notify_nan_pairing_status(wpa_s, peer_addr, akmp, cipher,\n+\t\t\t\t status, nd_pmk);\n \n \tif (status != WLAN_STATUS_SUCCESS)\n \t\treturn 0;\n@@ -2836,8 +2790,7 @@ void wpas_nan_cluster_join(struct wpa_supplicant *wpa_s,\n \tif (!wpas_nan_ready(wpa_s))\n \t\treturn;\n \n-\twpa_msg_global(wpa_s, MSG_INFO, NAN_CLUSTER_JOIN \"cluster_id=\" MACSTR\n-\t\t \" new=%d\", MAC2STR(cluster_id), new_cluster);\n+\twpas_notify_nan_cluster_join(wpa_s, cluster_id, new_cluster);\n \n \tnan_de_set_cluster_id(wpa_s->nan_de, cluster_id);\n \tnan_set_cluster_id(wpa_s->nan, cluster_id);\ndiff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c\nindex 3e122ed7fe..80545c456d 100644\n--- a/wpa_supplicant/notify.c\n+++ b/wpa_supplicant/notify.c\n@@ -1340,6 +1340,130 @@ void wpas_notify_nan_pairing_request(struct wpa_supplicant *wpa_s,\n \t\t MAC2STR(peer_nmi), csid, instance_id);\n }\n \n+\n+void wpas_notify_nan_ndp_request(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_nmi, const u8 *init_ndi,\n+\t\t\t\t u32 ndp_id, u8 publish_inst_id,\n+\t\t\t\t const u8 *ssi, size_t ssi_len, u32 csid)\n+{\n+\tchar *ssi_hex = NULL;\n+\n+\tif (ssi) {\n+\t\tssi_hex = os_zalloc(2 * ssi_len + 1);\n+\t\tif (!ssi_hex)\n+\t\t\treturn;\n+\n+\t\twpa_snprintf_hex(ssi_hex, 2 * ssi_len + 1, ssi, ssi_len);\n+\t}\n+\n+\twpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_REQUEST \"peer_nmi=\" MACSTR\n+\t\t \" init_ndi=\" MACSTR\n+\t\t \" ndp_id=%u publish_inst_id=%u ssi=%s csid=%u\",\n+\t\t MAC2STR(peer_nmi), MAC2STR(init_ndi),\n+\t\t ndp_id, publish_inst_id,\n+\t\t ssi_hex ? ssi_hex : \"\", csid);\n+\n+\tos_free(ssi_hex);\n+}\n+\n+\n+void wpas_notify_nan_ndp_counter_request(struct wpa_supplicant *wpa_s,\n+\t\t\t\t\t const u8 *peer_nmi,\n+\t\t\t\t\t const u8 *init_ndi, u32 ndp_id,\n+\t\t\t\t\t const u8 *ssi, size_t ssi_len)\n+{\n+\tchar *ssi_hex = NULL;\n+\n+\tif (ssi) {\n+\t\tssi_hex = os_zalloc(2 * ssi_len + 1);\n+\t\tif (!ssi_hex)\n+\t\t\treturn;\n+\n+\t\twpa_snprintf_hex(ssi_hex, 2 * ssi_len + 1, ssi,\n+\t\t\t\t ssi_len);\n+\t}\n+\n+\twpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_COUNTER_REQUEST\n+\t\t \"peer_nmi=\" MACSTR \" init_ndi=\" MACSTR\n+\t\t \" ndp_id=%u ssi=%s\",\n+\t\t MAC2STR(peer_nmi), MAC2STR(init_ndi),\n+\t\t ndp_id, ssi_hex ? ssi_hex : \"\");\n+\n+\tos_free(ssi_hex);\n+}\n+\n+\n+void wpas_notify_nan_ndp_connected(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_nmi, u32 ndp_id,\n+\t\t\t\t const u8 *local_ndi,\n+\t\t\t\t const u8 *peer_ndi,\n+\t\t\t\t const u8 *ssi, size_t ssi_len)\n+{\n+\tchar *ssi_hex = NULL;\n+\n+\tif (ssi) {\n+\t\tssi_hex = os_zalloc(2 * ssi_len + 1);\n+\t\tif (!ssi_hex)\n+\t\t\treturn;\n+\n+\t\twpa_snprintf_hex(ssi_hex, 2 * ssi_len + 1, ssi, ssi_len);\n+\t}\n+\n+\twpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_CONNECTED \"peer=\" MACSTR\n+\t\t \" ndp_id=%u local_ndi=\" MACSTR\n+\t\t \" peer_ndi=\" MACSTR \" ssi=%s\",\n+\t\t MAC2STR(peer_nmi), ndp_id, MAC2STR(local_ndi),\n+\t\t MAC2STR(peer_ndi), ssi_hex ? ssi_hex : \"\");\n+\n+\tos_free(ssi_hex);\n+}\n+\n+\n+void wpas_notify_nan_ndp_disconnected(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_nmi, u32 ndp_id,\n+\t\t\t\t const u8 *local_ndi,\n+\t\t\t\t const u8 *peer_ndi,\n+\t\t\t\t enum nan_reason reason)\n+{\n+\twpa_msg_global(wpa_s, MSG_INFO, NAN_NDP_DISCONNECTED\n+\t\t \"peer=\" MACSTR \" ndp_id=%u local_ndi=\" MACSTR\n+\t\t \" peer_ndi=\" MACSTR \" reason=%u\",\n+\t\t MAC2STR(peer_nmi), ndp_id,\n+\t\t MAC2STR(local_ndi), MAC2STR(peer_ndi), reason);\n+}\n+\n+\n+void wpas_notify_nan_cluster_join(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *cluster_id, bool new_cluster)\n+{\n+\twpa_msg_global(wpa_s, MSG_INFO, NAN_CLUSTER_JOIN \"cluster_id=\" MACSTR\n+\t\t \" new=%d\", MAC2STR(cluster_id), new_cluster);\n+}\n+\n+\n+void wpas_notify_nan_pairing_status(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_addr, int akmp,\n+\t\t\t\t int cipher, u8 status,\n+\t\t\t\t const u8 *nd_pmk)\n+{\n+\tchar nd_pmk_hex[2 * PMK_LEN + 1];\n+\n+\tif (nd_pmk)\n+\t\twpa_snprintf_hex(nd_pmk_hex, sizeof(nd_pmk_hex), nd_pmk,\n+\t\t\t\t PMK_LEN);\n+\telse\n+\t\tnd_pmk_hex[0] = '\\0';\n+\n+\twpa_msg_global(wpa_s, MSG_INFO,\n+\t\t NAN_PAIRING_STATUS \"addr=\" MACSTR \" akmp=%s cipher=%s status=%s%s%s\",\n+\t\t MAC2STR(peer_addr),\n+\t\t wpa_key_mgmt_txt(akmp, WPA_PROTO_RSN),\n+\t\t wpa_cipher_txt(cipher),\n+\t\t status == WLAN_STATUS_SUCCESS ? \"success\" : \"failure\",\n+\t\t nd_pmk ? \" nd_pmk=\" : \"\",\n+\t\t nd_pmk ? nd_pmk_hex : \"\");\n+}\n+\n #endif /* CONFIG_NAN || CONFIG_NAN_USD */\n \n \ndiff --git a/wpa_supplicant/notify.h b/wpa_supplicant/notify.h\nindex 3b1517d91b..2ef2b59d32 100644\n--- a/wpa_supplicant/notify.h\n+++ b/wpa_supplicant/notify.h\n@@ -233,5 +233,29 @@ void wpas_notify_nan_bootstrap_failure(struct wpa_supplicant *wpa_s,\n void wpas_notify_nan_pairing_request(struct wpa_supplicant *wpa_s,\n \t\t\t\t const u8 *peer_nmi, u8 csid,\n \t\t\t\t u8 instance_id);\n+void wpas_notify_nan_ndp_request(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_nmi, const u8 *init_ndi,\n+\t\t\t\t u32 ndp_id, u8 publish_inst_id,\n+\t\t\t\t const u8 *ssi, size_t ssi_len, u32 csid);\n+void wpas_notify_nan_ndp_counter_request(struct wpa_supplicant *wpa_s,\n+\t\t\t\t\t const u8 *peer_nmi,\n+\t\t\t\t\t const u8 *init_ndi, u32 ndp_id,\n+\t\t\t\t\t const u8 *ssi, size_t ssi_len);\n+void wpas_notify_nan_ndp_connected(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_nmi, u32 ndp_id,\n+\t\t\t\t const u8 *local_ndi,\n+\t\t\t\t const u8 *peer_ndi,\n+\t\t\t\t const u8 *ssi, size_t ssi_len);\n+void wpas_notify_nan_ndp_disconnected(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_nmi, u32 ndp_id,\n+\t\t\t\t const u8 *local_ndi,\n+\t\t\t\t const u8 *peer_ndi,\n+\t\t\t\t enum nan_reason reason);\n+void wpas_notify_nan_cluster_join(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *cluster_id, bool new_cluster);\n+void wpas_notify_nan_pairing_status(struct wpa_supplicant *wpa_s,\n+\t\t\t\t const u8 *peer_addr, int akmp,\n+\t\t\t\t int cipher, u8 status,\n+\t\t\t\t const u8 *nd_pmk);\n \n #endif /* NOTIFY_H */\n", "prefixes": [ "82/92" ] }