get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.1/patches/2229825/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2229825,
    "url": "http://patchwork.ozlabs.org/api/1.1/patches/2229825/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/hostap/patch/20260428200639.40243-19-andrei.otcheretianski@intel.com/",
    "project": {
        "id": 22,
        "url": "http://patchwork.ozlabs.org/api/1.1/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": ""
    },
    "msgid": "<20260428200639.40243-19-andrei.otcheretianski@intel.com>",
    "date": "2026-04-28T20:05:19",
    "name": "[18/97] NAN: Add support for communicating the IPv6 local address",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "177517f73f9b157b70a0dac07d2c37d1a843437e",
    "submitter": {
        "id": 62065,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/62065/?format=api",
        "name": "Andrei Otcheretianski",
        "email": "andrei.otcheretianski@intel.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/hostap/patch/20260428200639.40243-19-andrei.otcheretianski@intel.com/mbox/",
    "series": [
        {
            "id": 501927,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/501927/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/hostap/list/?series=501927",
            "date": "2026-04-28T20:05:05",
            "name": "NAN: Group keys support, schedule update and more",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/501927/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2229825/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2229825/checks/",
    "tags": {},
    "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=fUzOkNCX;\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=lEsbI8vR;\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 4g4s316HZVz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 06:09:17 +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 1wHojb-00000002Dws-2bJA;\n\tTue, 28 Apr 2026 20:08:43 +0000",
            "from mgamail.intel.com ([198.175.65.16])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1wHoic-00000002CcZ-3Yas\n\tfor hostap@lists.infradead.org;\n\tTue, 28 Apr 2026 20:07:44 +0000",
            "from fmviesa001.fm.intel.com ([10.60.135.141])\n  by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Apr 2026 13:07:43 -0700",
            "from iapp347.iil.intel.com (HELO 87c02287900a.iil.intel.com)\n ([10.167.28.6])\n  by smtpauth.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 28 Apr 2026 13:07:41 -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=soOGJk87X4mwg4EMKlK4oXrv/eED+zTiVoaZOF4IHzk=; b=fUzOkNCX8Z7tmE\n\tNjZNZQlLvyXCdSkGJagN3n4SB8dgTLjlXgFtHWuhjvfXKn9Lo/az7ZdLMsxEacdF4WO+xaTlrGCTM\n\tuYDte9TavTKuqmAyBTkxw/OaZgjf7TUEiAkzaYKfrzFSR7b5f6Tb5E9ehFRtqk2EkfhS25mMlB2Pt\n\tUeryyFQTmLHWJom+awppurO2P/l+DjpaucDHbgOkzvYjO0HoaaXFleXkMzy7RewS6g9KYBtu61Ks2\n\tzVzIx5c5PQ1rMkiEdor+sLvXow9MThfRO/Qj/uwmqnzMZeiFa2J/tqNEk8DGeTWC1Ahj+lGUnPpkK\n\tk2JYPRBSYhq8fuBgb3IQ==;",
            "v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1777406863; x=1808942863;\n  h=from:to:cc:subject:date:message-id:in-reply-to:\n   references:mime-version:content-transfer-encoding;\n  bh=Ke8GsZzrfWFoRqI8V1j+YQw5KF7c9VcyzK9xjZgmXYQ=;\n  b=lEsbI8vRzf5ni0UDy/r8b4WnlyuCkRrZIcrhTaLqdhvPeoKq8OfI/zEx\n   i8IKzPQY0lJ1mNbcw4ezeln8TLjb1gvVcb1WxKRDdMumghxK2jxjHgTNi\n   rXxqlmPISIicibW7sxy7H0YDziL7ZkDhfiTBzAQ6Nm6b98O+O2c4bwwA7\n   OzJcqWFN1S/KqWMr/OLd5ymlWdm9fRWgknTSOhHPVJCpBRXFIRm8m1FUR\n   tjXa8/GCl1nHLhCEy5lAdrrbiUcJixDWZwT+uhVXCD6XzQpRoNPzJ6ZVj\n   pDA6ilEAvNbwXh3jJcCxmYv/pILIH/IyQriurmBYAsFTVWXkEvgQXH1gS\n   g==;"
        ],
        "X-CSE-ConnectionGUID": [
            "YnG0+j8tSuuBvExJ59fLAQ==",
            "qfNWbbUAQHeEpcQdcaCaQA=="
        ],
        "X-CSE-MsgGUID": [
            "/r8gxFCpSAeo2fAnbNtLcg==",
            "bMo5h5fbS8SVLaN0GF4eFw=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6800,10657,11770\"; a=\"78519324\"",
            "E=Sophos;i=\"6.23,204,1770624000\";\n   d=\"scan'208\";a=\"78519324\"",
            "E=Sophos;i=\"6.23,204,1770624000\";\n   d=\"scan'208\";a=\"257610042\""
        ],
        "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\tIlan Peer <ilan.peer@intel.com>",
        "Subject": "[PATCH 18/97] NAN: Add support for communicating the IPv6 local\n address",
        "Date": "Tue, 28 Apr 2026 23:05:19 +0300",
        "Message-ID": "<20260428200639.40243-19-andrei.otcheretianski@intel.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260428200639.40243-1-andrei.otcheretianski@intel.com>",
        "References": "<20260428200639.40243-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-20260428_130742_992752_3564AC92 ",
        "X-CRM114-Status": "GOOD (  16.63  )",
        "X-Spam-Score": "-4.5 (----)",
        "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:  From: Ilan Peer <ilan.peer@intel.com> When both peers\n support\n    the NAN Data Path Extension (NDPE) attribute and IPv6 interface identifier\n    is configured, communicate the information as part of the NDP setup.\n Content analysis details:   (-4.5 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                             [198.175.65.16 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_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 -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 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n                             [score: 0.0000]\n -0.1 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": "From: Ilan Peer <ilan.peer@intel.com>\n\nWhen both peers support the NAN Data Path Extension (NDPE)\nattribute and IPv6 interface identifier is configured,\ncommunicate the information as part of the NDP setup.\n\nSigned-off-by: Ilan Peer <ilan.peer@intel.com>\n---\n src/nan/nan.c     |  7 +++++++\n src/nan/nan.h     |  6 ++++++\n src/nan/nan_i.h   | 13 +++++++++++++\n src/nan/nan_ndp.c | 41 +++++++++++++++++++++++++++++++++++++++++\n 4 files changed, 67 insertions(+)",
    "diff": "diff --git a/src/nan/nan.c b/src/nan/nan.c\nindex a91fb8c713..5614a7bd89 100644\n--- a/src/nan/nan.c\n+++ b/src/nan/nan.c\n@@ -1508,6 +1508,13 @@ static int nan_ndp_connected(struct nan_data *nan, struct nan_peer *peer)\n \tparams.ssi = peer->ndp_setup.ssi;\n \tparams.ssi_len = peer->ndp_setup.ssi_len;\n \n+\tif (peer->ndp_setup.peer_interface_id_valid) {\n+\t\twpa_printf(MSG_DEBUG,\n+\t\t\t   \"NAN: NDP connected with peer interface id\");\n+\n+\t\tparams.interface_id = peer->ndp_setup.peer_interface_id;\n+\t}\n+\n \tif (peer->ndp_setup.ndp->initiator) {\n \t\tparams.local_ndi = peer->ndp_setup.ndp->init_ndi;\n \t\tparams.peer_ndi = peer->ndp_setup.ndp->resp_ndi;\ndiff --git a/src/nan/nan.h b/src/nan/nan.h\nindex 2d9372f014..a999a6582c 100644\n--- a/src/nan/nan.h\n+++ b/src/nan/nan.h\n@@ -223,6 +223,9 @@ struct nan_ndp_sec_params {\n  * @reason_code: In case of rejected response, the rejection reason.\n  * @sched_valid: Indicates whether the schedule field is valid\n  * @sched: The NAN schedule associated with the NDP parameters\n+ * @interface_id: The interface identifier to be used for the NDP. The interface\n+ *    identifier is used to derive the IPv6 link-local address as specified in\n+ *    Table 90 in WiFi Aware specification v4.0\n  */\n struct nan_ndp_params {\n \tenum nan_ndp_action type;\n@@ -253,6 +256,7 @@ struct nan_ndp_params {\n \n \tbool sched_valid;\n \tstruct nan_schedule sched;\n+\tu8 *interface_id;\n };\n \n /**\n@@ -289,6 +293,7 @@ struct nan_channels {\n  * @first_ndp: Whether this is the first NDP with the peer\n  * @new_ndi_sta: Whether a new NDI station needs to be added (peer_ndi not\n  * \talready used by another NDP with this peer)\n+ * @interface_id: The interface identifier to be used by the peer for the NDP\n  */\n struct nan_ndp_connection_params {\n \tstruct nan_ndp_id ndp_id;\n@@ -299,6 +304,7 @@ struct nan_ndp_connection_params {\n \tbool install_keys;\n \tbool first_ndp;\n \tbool new_ndi_sta;\n+\tconst u8 *interface_id;\n };\n \n /**\ndiff --git a/src/nan/nan_i.h b/src/nan/nan_i.h\nindex 3bd01debc0..d01f720be6 100644\n--- a/src/nan/nan_i.h\n+++ b/src/nan/nan_i.h\n@@ -163,6 +163,14 @@ struct nan_ndp {\n  * @ssi_len: Service specific information length\n  * @service_id: Service ID of the service used for NDP setup\n  * @sec: NDP security data\n+ * @local_interface_id_valid: Indicates whether the &local_interface_id\n+ *      field is valid.\n+ * @local_interface_id: The local interface identifier to be used for\n+ *      the NDP\n+ * @peer_interface_id_valid: Indicates whether the &peer_interface_id\n+ *      field is valid.\n+ * @peer_interface_id: The peer interface identifier to be used for\n+ *      the NDP\n  */\n struct nan_ndp_setup {\n \tstruct nan_ndp *ndp;\n@@ -177,6 +185,11 @@ struct nan_ndp_setup {\n \n \tu8 service_id[NAN_SERVICE_ID_LEN];\n \tstruct nan_ndp_sec sec;\n+\n+\tbool local_interface_id_valid;\n+\tu8 local_interface_id[NAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN];\n+\tbool peer_interface_id_valid;\n+\tu8 peer_interface_id[NAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN];\n };\n \n /**\ndiff --git a/src/nan/nan_ndp.c b/src/nan/nan_ndp.c\nindex 91e517115a..5a95005d21 100644\n--- a/src/nan/nan_ndp.c\n+++ b/src/nan/nan_ndp.c\n@@ -147,6 +147,17 @@ int nan_ndp_setup_req(struct nan_data *nan, struct nan_peer *peer,\n \t\t\tpeer->ndp_setup.publish_inst_id;\n \t}\n \n+\tif (params->interface_id) {\n+\t\twpa_printf(MSG_DEBUG,\n+\t\t\t   \"NAN: NDP setup request with local interface id\");\n+\n+\t\tos_memcpy(peer->ndp_setup.local_interface_id,\n+\t\t\t  params->interface_id,\n+\t\t\t  NAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN);\n+\n+\t\tpeer->ndp_setup.local_interface_id_valid = true;\n+\t}\n+\n \tnan_ndp_set_state(nan, &peer->ndp_setup, NAN_NDP_STATE_START);\n \tpeer->ndp_setup.status = NAN_NDP_STATUS_CONTINUED;\n \treturn 0;\n@@ -240,6 +251,17 @@ int nan_ndp_setup_resp(struct nan_data *nan, struct nan_peer *peer,\n \tif (ret)\n \t\treturn ret;\n \n+\tif (params->interface_id) {\n+\t\twpa_printf(MSG_DEBUG,\n+\t\t\t   \"NAN: NDP setup response with local interface id\");\n+\n+\t\tos_memcpy(peer->ndp_setup.local_interface_id,\n+\t\t\t  params->interface_id,\n+\t\t\t  NAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN);\n+\n+\t\tpeer->ndp_setup.local_interface_id_valid = true;\n+\t}\n+\n \treturn 0;\n }\n \n@@ -264,6 +286,18 @@ static int nan_ndp_attr_handle_tlvs(struct nan_data *nan,\n \t\t}\n \n \t\tswitch (tlv_type) {\n+\t\tcase NAN_NDPE_TLV_IPV6_LINK_LOCAL:\n+\t\t\tif (tlv_len != NAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN) {\n+\t\t\t\twpa_printf(MSG_DEBUG,\n+\t\t\t\t\t   \"NAN: NDP: req: Invalid interface ID tlv len=%u\",\n+\t\t\t\t\t   tlv_len);\n+\t\t\t\tbreak;\n+\t\t\t}\n+\n+\t\t\tpeer->ndp_setup.peer_interface_id_valid = true;\n+\t\t\tos_memcpy(peer->ndp_setup.peer_interface_id, tlv_data,\n+\t\t\t\t  NAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN);\n+\t\t\tbreak;\n \t\tcase NAN_NDPE_TLV_SRV_INFO:\n \t\t\twpa_printf(MSG_DEBUG,\n \t\t\t\t   \"NAN: NDP: Handle NDP service specific information\");\n@@ -950,6 +984,13 @@ int nan_ndp_add_ndp_attr(struct nan_data *nan, struct nan_peer *peer,\n \t\t}\n \t}\n \n+\tif (ndpe_supported && ndp_setup->local_interface_id_valid) {\n+\t\twpabuf_put_u8(buf, NAN_NDPE_TLV_IPV6_LINK_LOCAL);\n+\t\twpabuf_put_le16(buf, NAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN);\n+\t\twpabuf_put_data(buf, ndp_setup->local_interface_id,\n+\t\t\t\tNAN_NDPE_TLV_IPV6_LINK_LOCAL_LEN);\n+\t}\n+\n \tWPA_PUT_LE16(len_ptr, (u8 *) wpabuf_put(buf, 0) - len_ptr - 2);\n \treturn 0;\n }\n",
    "prefixes": [
        "18/97"
    ]
}