get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2218793,
    "url": "http://patchwork.ozlabs.org/api/1.0/patches/2218793/?format=api",
    "project": {
        "id": 22,
        "url": "http://patchwork.ozlabs.org/api/1.0/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": "<20260401220220.4418-6-andrei.otcheretianski@intel.com>",
    "date": "2026-04-01T22:01:14",
    "name": "[05/71] drivers: Define new NAN capabilities struct",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "17d06a95b41cd0c7f763aa12b0a294682d2a1465",
    "submitter": {
        "id": 62065,
        "url": "http://patchwork.ozlabs.org/api/1.0/people/62065/?format=api",
        "name": "Andrei Otcheretianski",
        "email": "andrei.otcheretianski@intel.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/hostap/patch/20260401220220.4418-6-andrei.otcheretianski@intel.com/mbox/",
    "series": [
        {
            "id": 498402,
            "url": "http://patchwork.ozlabs.org/api/1.0/series/498402/?format=api",
            "date": "2026-04-01T22:01:09",
            "name": "NAN Data Path and Bootstrapping support",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498402/mbox/"
        }
    ],
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218793/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=e5HZU++n;\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=GcbBiLiX;\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 4fmJvw4qpLz1yGY\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 09:05:48 +1100 (AEDT)",
            "from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w83gi-0000000G9gb-09Bj;\n\tWed, 01 Apr 2026 22:05:24 +0000",
            "from mgamail.intel.com ([198.175.65.20])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w83gf-0000000G9e1-2rPG\n\tfor hostap@lists.infradead.org;\n\tWed, 01 Apr 2026 22:05:22 +0000",
            "from fmviesa003.fm.intel.com ([10.60.135.143])\n  by orvoesa112.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 01 Apr 2026 15:05:20 -0700",
            "from iapp347.iil.intel.com (HELO 87c02287900a.iil.intel.com)\n ([10.167.28.6])\n  by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 01 Apr 2026 15:05:19 -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:To:From:Reply-To:Cc:Content-ID:Content-Description:\n\tResent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:\n\tList-Owner; bh=TzTb3Vue6KOIHKV1zwIp5DG6QmH0Ohn+o4GNo3dXIjw=; b=e5HZU++n/W2P6i\n\tC1f0xAN27bZjuxluwv+h3MB6mC/jRZdIjyq0qu5m0E+CVEk7JLtUUBkai+Pa395tPs3UMAM4RLVLq\n\tn/RTxcFlTsa1v2vWRBhdu9fvvjEJ21oUTjBw965gBYXJNXYkYW1M+RE++h7J/yVe4zyGOcO9zLbGI\n\t8gZe2RBxtm6DacWT6DREp7INb31pY3xgyOJ5JirgffFUz4whHk81frIkJBi5SBPi4J25EymQ6u66z\n\tq+JMC6UWvONT+VZ/6Y6kjG7i7p71IqxlnJBQM36Ocy2BA5m7BCv+PZZ7et+D5u9n9lekl0q8Lh2bI\n\tUXauY5cVjcczOCoHdL/A==;",
            "v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1775081121; x=1806617121;\n  h=from:to:subject:date:message-id:in-reply-to:references:\n   mime-version:content-transfer-encoding;\n  bh=ojvwfZUeEZHpC8o9Whq80rMduUR2Yo4A7LXzkufbYMA=;\n  b=GcbBiLiX/T+m/iXHeXB010bHMaPN10QVVGKVFGt/Hk2sj06UJKH34sL4\n   rdu0suySg+vsXnA69chzdDScwKl8KLe5olziCQymf7giWUh4RrQFmkdGS\n   dB2Q7N0Q8ZoafchItsdBBq58YUNnH0yjpH5DdcjZgQBW6H0dkfzJ70k6H\n   KxH9VtZ0/+lnVSVeiYo/WOmgLSaSy2scGN/ny+Ol+Y1wojI45hUbWmHMu\n   TZbRhTsxmA0msUnrzRHHCSjfc+K9CfSQn+lPV0l0w2EjtIaE494mXVTU8\n   N+IBVZKnntsKxd0qvgjmxnI/7xFOJkn56oWdd06Lg5IKDSrF6dlVuwp8W\n   Q==;"
        ],
        "X-CSE-ConnectionGUID": [
            "X0jNS/8TQFCi5t9rX9EalA==",
            "fVHk/9YZQOSoHQf97aXCHQ=="
        ],
        "X-CSE-MsgGUID": [
            "n7Nc34ooS3CM/SgI/zCeiA==",
            "PY4Tn/9NTw2UnnmW41hxqg=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6800,10657,11746\"; a=\"75851574\"",
            "E=Sophos;i=\"6.23,153,1770624000\";\n   d=\"scan'208\";a=\"75851574\""
        ],
        "X-ExtLoop1": "1",
        "From": "Andrei Otcheretianski <andrei.otcheretianski@intel.com>",
        "To": "hostap@lists.infradead.org",
        "Subject": "[PATCH 05/71] drivers: Define new NAN capabilities struct",
        "Date": "Thu,  2 Apr 2026 01:01:14 +0300",
        "Message-ID": "<20260401220220.4418-6-andrei.otcheretianski@intel.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260401220220.4418-1-andrei.otcheretianski@intel.com>",
        "References": "<20260401220220.4418-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-20260401_150521_767272_9E3A7E75 ",
        "X-CRM114-Status": "GOOD (  17.82  )",
        "X-Spam-Score": "-1.9 (-)",
        "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:  Define nan_capa struct that aggregates new NAN capabilities\n    which will be requried for NAN data path and scheduling. Add additinal\n driver\n    flag to indicate NAN Data Path support. Move the existing nan_ [...]\n Content analysis details:   (-1.9 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.20 listed in list.dnswl.org]\n  1.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to\n                              Validity was blocked.  See\n                             https://knowledge.validity.com/hc/en-us/articles/20961730681243\n                              for more information.\n                             [198.175.65.20 listed in\n bl.score.senderscore.com]\n  1.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The\n                             query to Validity was blocked.  See\n                             https://knowledge.validity.com/hc/en-us/articles/20961730681243\n                              for more information.\n                          [198.175.65.20 listed in\n sa-trusted.bondedsender.org]\n  1.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to\n                              Validity was blocked.  See\n                             https://knowledge.validity.com/hc/en-us/articles/20961730681243\n                              for more information.\n                             [198.175.65.20 listed in sa-accredit.habeas.com]\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_SIGNED            Message has a DKIM or DK signature,\n not necessarily valid\n -0.1 DKIM_VALID_EF          Message has a valid DKIM or DK signature from\n                             envelope-from domain\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             Message has at least one valid DKIM or DK\n signature\n -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n                             [score: 0.0000]\n -0.5 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": "Define nan_capa struct that aggregates new NAN capabilities which will\nbe requried for NAN data path and scheduling.\nAdd additinal driver flag to indicate NAN Data Path support.\nMove the existing nan_flags field into the same struct and adjust the\ncode accordingly.\n\nSigned-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>\n---\n src/drivers/driver.h              | 80 ++++++++++++++++++++++++++++---\n src/drivers/driver_nl80211.c      |  6 +--\n src/drivers/driver_nl80211_capa.c |  6 +--\n wpa_supplicant/wpa_supplicant.c   |  2 +-\n 4 files changed, 80 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/src/drivers/driver.h b/src/drivers/driver.h\nindex 1e4a3da355..42b18d7a7c 100644\n--- a/src/drivers/driver.h\n+++ b/src/drivers/driver.h\n@@ -2163,6 +2163,78 @@ enum wpa_driver_if_type {\n \tWPA_IF_MAX\n };\n \n+/**\n+ * struct nan_capa - NAN capabilities\n+ *\n+ * @drv_flags: NAN capability flags (WPA_DRIVER_FLAGS_NAN_*)\n+ * @num_radios: Maximum number of NAN radios\n+ * @sched_chans: Maximum number of channels in NAN schedule (per map)\n+ * @slot_duration: NAN schedule bitmap slot duration (16, 32, 64 or 128) in TUs\n+ * @schedule_period: Schedule period (powers of 2 in range: 128 - 8192) in TUs\n+ * @max_channel_switch_time: Max channel switch time in microseconds\n+ * @num_antennas: Number of antennas (lower nibble TX, upper nibble RX)\n+ * @op_modes: NAN capability operation modes\n+ * @dev_capa: NAN device capabilities\n+ * @ht_capab: HT capabilities information as defined in IEEE80211\n+ *     specification in section 9.4.2.54.2 (HT Capability Information field)\n+ * @ht_ampdu_params: HT A-MPDU parameters as defined in IEEE80211\n+ *     specification in section 9.4.2.54.3 (A-MPDU Parameters field)\n+ * @ht_mcs_set: HT MCS set as defined in IEEE80211 specification in\n+ *     section 9.4.2.54.4 (Supported MCS Set field)\n+ * @vht_capab: VHT capabilities information as defined in IEEE80211\n+ *     specification in section 9.4.2.156.2 (VHT Capabilities Information\n+ *     field)\n+ * @vht_mcs_set: VHT MCS set as defined in IEEE80211 specification in section\n+ *     9.4.2.156.3 (Supported VHT-MCS and NSS Set field)\n+ * @vht_valid: Whether &vht_capab and &vht_mcs_set are both valid\n+ * @he_capab: HE capabilities. See &struct he_capabilities.\n+ * @he_valid: Whether HE capabilities are valid\n+ *\n+ * For the schedule capabilities, even if the driver/device supports multiple\n+ * options, only a single option should be selected. For example, if both 16 TU\n+ * and 32 TU slot durations are supported, the driver should report\n+ * the shortest supported slot duration (16 TU). For schedule period, the\n+ * driver should report the maximum supported period, as longer periods can\n+ * always be represented by repetitions of the shorter schedule bitmap. In any\n+ * case 512/16 configuration is recommended for better interoperability.\n+ *\n+ * As for the PHY capabilities, HT must be supported for NAN Data path, and\n+ * without valid HT capabilities NAN Data path would be disabled.\n+ *\n+ * TODO: For now support only a single PHY capabilities configuration. This\n+ * might need to be extended to support multiple configurations in the future.\n+ */\n+struct nan_capa {\n+/* Driver supports dual band NAN operation */\n+#define WPA_DRIVER_FLAGS_NAN_SUPPORT_DUAL_BAND\t\t0x00000001\n+/* Driver supports NAN synchronization configuration */\n+#define WPA_DRIVER_FLAGS_NAN_SUPPORT_SYNC_CONFIG\t0x00000002\n+/* Driver supports DW notifications and SDF TX/RX over NAN device interface */\n+#define WPA_DRIVER_FLAGS_NAN_SUPPORT_USERSPACE_DE\t0x00000004\n+/** Driver supports NAN Data path */\n+#define WPA_DRIVER_FLAGS_NAN_SUPPORT_NDP\t\t0x00000008\n+\tu32 drv_flags;\n+\tu8 num_radios;\n+\tu8 sched_chans;\n+\tu8 slot_duration;\n+\tu16 schedule_period;\n+\tu16 max_channel_switch_time;\n+\tu8 num_antennas;\n+\tu8 op_modes;\n+\tu8 dev_capa;\n+\n+\tu16 ht_capab;\n+\tu8 ht_mcs_set[16];\n+\tu8 ht_ampdu_params;\n+\n+\tu32 vht_capab;\n+\tu8 vht_mcs_set[8];\n+\tbool vht_valid;\n+\n+\tstruct he_capabilities he_capab;\n+\tbool he_valid;\n+};\n+\n /**\n  * struct wpa_driver_capa - Driver capability information\n  */\n@@ -2586,13 +2658,7 @@ struct wpa_driver_capa {\n \tu8 max_tx_sts_gt_80;\n \n #ifdef CONFIG_NAN\n-/* Driver supports dual band NAN operation */\n-#define WPA_DRIVER_FLAGS_NAN_SUPPORT_DUAL_BAND\t\t0x00000001\n-/* Driver supports NAN synchronization configuration */\n-#define WPA_DRIVER_FLAGS_NAN_SUPPORT_SYNC_CONFIG\t0x00000002\n-/* Driver supports DW notifications and SDF TX/RX over NAN device interface */\n-#define WPA_DRIVER_FLAGS_NAN_SUPPORT_USERSPACE_DE\t0x00000004\n-\tu32 nan_flags;\n+\tstruct nan_capa nan_capa;\n #endif /* CONFIG_NAN */\n };\n \ndiff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c\nindex 52c561dfc1..bcb4148d6b 100644\n--- a/src/drivers/driver_nl80211.c\n+++ b/src/drivers/driver_nl80211.c\n@@ -2736,7 +2736,7 @@ static int nl80211_mgmt_subscribe_nan(struct i802_bss *bss)\n #ifdef CONFIG_NAN\n \tstruct wpa_driver_nl80211_data *drv = bss->drv;\n \n-\tif (!(drv->capa.nan_flags &\n+\tif (!(drv->capa.nan_capa.drv_flags &\n \t      WPA_DRIVER_FLAGS_NAN_SUPPORT_USERSPACE_DE)) {\n \t\twpa_printf(MSG_DEBUG,\n \t\t\t   \"nl80211: User space DE is not supported, don't subscribe to NAN public action frames\");\n@@ -15302,7 +15302,7 @@ static int nl80211_nan_config(struct i802_bss *bss,\n \tbands |= BIT(NL80211_BAND_2GHZ);\n \n \tif (params->dual_band) {\n-\t\tif (drv->capa.nan_flags &\n+\t\tif (drv->capa.nan_capa.drv_flags &\n \t\t    WPA_DRIVER_FLAGS_NAN_SUPPORT_DUAL_BAND) {\n \t\t\tbands |= BIT(NL80211_BAND_5GHZ);\n \t\t} else {\n@@ -15326,7 +15326,7 @@ static int nl80211_nan_config(struct i802_bss *bss,\n \t\tgoto fail;\n \n \tif (params->enable_dw_notif) {\n-\t\tif (!(drv->capa.nan_flags &\n+\t\tif (!(drv->capa.nan_capa.drv_flags &\n \t\t      WPA_DRIVER_FLAGS_NAN_SUPPORT_USERSPACE_DE)) {\n \t\t\twpa_printf(MSG_INFO,\n \t\t\t\t   \"nl80211: Driver doesn't support NAN DW notifications\");\ndiff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c\nindex 1ee021cd90..637ccc7c74 100644\n--- a/src/drivers/driver_nl80211_capa.c\n+++ b/src/drivers/driver_nl80211_capa.c\n@@ -1221,7 +1221,7 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)\n \t\t\t   bands);\n \t\tif ((bands & BIT(NL80211_BAND_2GHZ)) &&\n \t\t    (bands & BIT(NL80211_BAND_5GHZ)))\n-\t\t\tcapa->nan_flags |=\n+\t\t\tcapa->nan_capa.drv_flags |=\n \t\t\t\tWPA_DRIVER_FLAGS_NAN_SUPPORT_DUAL_BAND;\n \t}\n \n@@ -1246,14 +1246,14 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)\n \t\tif (tb_nan_capa[NL80211_NAN_CAPA_CONFIGURABLE_SYNC]) {\n \t\t\twpa_printf(MSG_DEBUG,\n \t\t\t\t   \"nl80211: NAN sync offload supported\");\n-\t\t\tcapa->nan_flags |=\n+\t\t\tcapa->nan_capa.drv_flags |=\n \t\t\t\tWPA_DRIVER_FLAGS_NAN_SUPPORT_SYNC_CONFIG;\n \t\t}\n \n \t\tif (tb_nan_capa[NL80211_NAN_CAPA_USERSPACE_DE]) {\n \t\t\twpa_printf(MSG_DEBUG,\n \t\t\t\t   \"nl80211: NAN user space DE is supported\");\n-\t\t\tcapa->nan_flags |=\n+\t\t\tcapa->nan_capa.drv_flags |=\n \t\t\t\tWPA_DRIVER_FLAGS_NAN_SUPPORT_USERSPACE_DE;\n \t\t}\n \t}\ndiff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c\nindex 72079bccf2..f0e68eb991 100644\n--- a/wpa_supplicant/wpa_supplicant.c\n+++ b/wpa_supplicant/wpa_supplicant.c\n@@ -8010,7 +8010,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,\n \t\treturn -1;\n \n #ifdef CONFIG_NAN\n-\twpa_s->nan_drv_flags = capa.nan_flags;\n+\twpa_s->nan_drv_flags = capa.nan_capa.drv_flags;\n #endif /* CONFIG_NAN */\n \n \tif (wpa_supplicant_init_eapol(wpa_s) < 0)\n",
    "prefixes": [
        "05/71"
    ]
}