get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2218836,
    "url": "http://patchwork.ozlabs.org/api/1.0/patches/2218836/?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-46-andrei.otcheretianski@intel.com>",
    "date": "2026-04-01T22:01:54",
    "name": "[45/71] NAN: Configure peer even if there is not common schedule with it",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "dedaf15b1f7fe18a35edcd0a5f4b128fb514a2a5",
    "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-46-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/2218836/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=O8A80bFa;\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=MWs2IntN;\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 4fmJzh1w5mz1yFv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 02 Apr 2026 09:09:04 +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 1w83ja-0000000GDnu-0u9F;\n\tWed, 01 Apr 2026 22:08:22 +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 1w83hR-0000000G9is-29js\n\tfor hostap@lists.infradead.org;\n\tWed, 01 Apr 2026 22:06:14 +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:06:00 -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:59 -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=344v//eTfQcQT7bLZjYlq+CbquNLa2MLnJx+h17yFfE=; b=O8A80bFa1GRo7/\n\tzGLSIODb2yyZzVGA8jwgST0YuWC6JPz5iYAXVIN1fmeTohXaus4Z0fJljjcwu8uK+3gBCsewZDvWx\n\tDgRZiJfPkMDOUu1c8rF8fVgogEkNhnOspT63OPjPaDd4eETJRnJ4AjI9lJzPljFVfrFlPiqPQuuUK\n\tCY4rgfDcunP7wkbFpsKwTkiMWa87OHbsQOozy4yRY18x8C5l7guyR4Zm8yFv9XW/iayKCf94RWU/2\n\tZ2TKY5/YxJMgQqNifHY7s6gvdtioeACPIA30se2DrzuxhAkqPcjw62qOTTPKXRhuKvDWfawHsHUB9\n\tb0CISm726kEy2kPcBVgg==;",
            "v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1775081169; x=1806617169;\n  h=from:to:subject:date:message-id:in-reply-to:references:\n   mime-version:content-transfer-encoding;\n  bh=03IFo8wpCPNGoNr/fHikZgG0six3OL0zHY+ylRNgPdY=;\n  b=MWs2IntNl4iVNwgN4Ra4PMbQkMgXRPgdcP1mclEiGPmOVjCB2JJ6kaWO\n   3xz/cdyBD8WavdJFKeR14ao09U09FXHl0Oq5SnZTGj9ZbFt/O8B/ZfMJk\n   Kl04lbnGs6p2nlTdPF7/wHMxip9bBKB2avMEVGOoaC2GgWHcP7bE9OMWY\n   C34CbBoZrxAJkzp34UufOsM0caZXTtOmUQYbrVObIn6UEJcLNz7XTOPCg\n   0nIgF6DdnbN9IeaSNfXiFTCi+Ac9uwCDDhsQhgndKd+t9Prg5/BZ2AdCX\n   9JK3WihNnL1+kmHHQD54ep1uQyGjO8MKEUlaLTGM/LBtRI6N6lNjmadn+\n   A==;"
        ],
        "X-CSE-ConnectionGUID": [
            "iRnBFNRBRk69jcajTw+jzQ==",
            "hQIIzIGJQQ+ghBiCs3eqyw=="
        ],
        "X-CSE-MsgGUID": [
            "7kPRrjstTsqu5K2AVBNetg==",
            "kgRBSHm4SZyEli79OEfitw=="
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6800,10657,11746\"; a=\"75851639\"",
            "E=Sophos;i=\"6.23,153,1770624000\";\n   d=\"scan'208\";a=\"75851639\""
        ],
        "X-ExtLoop1": "1",
        "From": "Andrei Otcheretianski <andrei.otcheretianski@intel.com>",
        "To": "hostap@lists.infradead.org",
        "Subject": "[PATCH 45/71] NAN: Configure peer even if there is not common\n schedule with it",
        "Date": "Thu,  2 Apr 2026 01:01:54 +0300",
        "Message-ID": "<20260401220220.4418-46-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_150609_767841_5CAAD3ED ",
        "X-CRM114-Status": "GOOD (  17.12  )",
        "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:  From: Ilan Peer <ilan.peer@intel.com> Configure a peer even\n    if there is no common schedule with it so the underlying driver would know\n    on what DWs the peer device is available for reception. Signed-off-by:\n Ilan\n    Peer <ilan.peer@intel.com> --- src/nan/nan.c | 56\n +++++++++++++++++++++++++++++++++++++\n    1 file changed, 41 insertions(+), 15 deletions(-)\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": "From: Ilan Peer <ilan.peer@intel.com>\n\nConfigure a peer even if there is no common schedule with it\nso the underlying driver would know on what DWs the peer device\nis available for reception.\n\nSigned-off-by: Ilan Peer <ilan.peer@intel.com>\n---\n src/nan/nan.c | 56 +++++++++++++++++++++++++++++++++++++--------------\n 1 file changed, 41 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/src/nan/nan.c b/src/nan/nan.c\nindex 4a8bb5176a..46e38bc295 100644\n--- a/src/nan/nan.c\n+++ b/src/nan/nan.c\n@@ -1186,9 +1186,11 @@ static bool nan_ndp_supported(struct nan_data *nan)\n }\n \n \n-static void nan_peer_get_committed_avail(const struct nan_data *nan,\n-\t\t\t\t\t const struct nan_peer *peer,\n-\t\t\t\t\t struct nan_peer_schedule *sched);\n+static void\n+nan_peer_get_committed_avail(const struct nan_data *nan,\n+\t\t\t     const struct nan_peer *peer,\n+\t\t\t     const struct nan_schedule *local_sched,\n+\t\t\t     struct nan_peer_schedule *sched);\n \n \n static int nan_configure_peer_schedule(struct nan_data *nan,\n@@ -1202,11 +1204,12 @@ static int nan_configure_peer_schedule(struct nan_data *nan,\n \n \twpa_printf(MSG_DEBUG, \"NAN: Configure peer schedule\");\n \n-\tif (!nan_peer_schedule_intersects(nan, peer, local_sched)) {\n+\tos_memset(&sched, 0, sizeof(sched));\n+\tif (nan_peer_schedule_intersects(nan, peer, local_sched))\n+\t\tnan_peer_get_committed_avail(nan, peer, local_sched, &sched);\n+\telse\n \t\twpa_printf(MSG_DEBUG,\n-\t\t\t   \"NAN: Cannot configure peer NMI STA - no intersecting schedule\");\n-\t\treturn 0;\n-\t}\n+\t\t\t   \"NAN: Cannot configure peer schedule since there is no intersection\");\n \n \tdl_list_for_each(cur, &peer->info.dev_capa,\n \t\t\t struct nan_dev_capa_entry, list) {\n@@ -1224,9 +1227,6 @@ static int nan_configure_peer_schedule(struct nan_data *nan,\n \t\treturn -1;\n \t}\n \n-\tos_memset(&sched, 0, sizeof(sched));\n-\tnan_peer_get_committed_avail(nan, peer, &sched);\n-\n \tret = nan->cfg->set_peer_schedule(nan->cfg->cb_ctx, peer->nmi_addr,\n \t\t\t\t\t  !peer->configured, capa->cdw_info,\n \t\t\t\t\t  peer->info.seq_id,\n@@ -1839,10 +1839,28 @@ int nan_peer_get_tk(struct nan_data *nan, const u8 *addr,\n }\n \n \n+static bool\n+nan_peer_channel_in_local_sched(const struct nan_data *nan,\n+\t\t\t\tint peer_ctrl_freq,\n+\t\t\t\tconst struct nan_schedule *local_sched)\n+{\n+\tsize_t i;\n+\n+\t/* It's enough to compare the control freqs to ensure compatibility */\n+\tfor (i = 0; i < local_sched->n_chans; i++) {\n+\t\tif (peer_ctrl_freq == local_sched->chans[i].chan.freq)\n+\t\t\treturn true;\n+\t}\n+\n+\treturn false;\n+}\n+\n+\n static void\n nan_peer_get_committed_avail_add(const struct nan_data *nan,\n \t\t\t\t const struct nan_peer *peer,\n \t\t\t\t const struct nan_avail_entry *avail,\n+\t\t\t\t const struct nan_schedule *local_sched,\n \t\t\t\t struct nan_peer_schedule *sched)\n {\n \tstruct nan_map *map;\n@@ -1925,6 +1943,11 @@ nan_peer_get_committed_avail_add(const struct nan_data *nan,\n \t\t\tfreq = freq - 70 + idx * 20;\n \n \t\t/* TODO: Missing support for 80 + 80 */\n+\n+\t\t/* Skip channels that are not in local schedule */\n+\t\tif (local_sched &&\n+\t\t    !nan_peer_channel_in_local_sched(nan, freq, local_sched))\n+\t\t\treturn;\n \t}\n \n \t/* Assume committed for conditional slots if setup is done */\n@@ -1986,15 +2009,18 @@ nan_peer_get_committed_avail_add(const struct nan_data *nan,\n }\n \n \n-static void nan_peer_get_committed_avail(const struct nan_data *nan,\n-\t\t\t\t\t const struct nan_peer *peer,\n-\t\t\t\t\t struct nan_peer_schedule *sched)\n+static void\n+nan_peer_get_committed_avail(const struct nan_data *nan,\n+\t\t\t     const struct nan_peer *peer,\n+\t\t\t     const struct nan_schedule *local_sched,\n+\t\t\t     struct nan_peer_schedule *sched)\n {\n \tconst struct nan_avail_entry *avail;\n \n \tdl_list_for_each(avail, &peer->info.avail_entries,\n \t\t\t struct nan_avail_entry, list)\n-\t\tnan_peer_get_committed_avail_add(nan, peer, avail, sched);\n+\t\tnan_peer_get_committed_avail_add(nan, peer, avail,\n+\t\t\t\t\t\t local_sched, sched);\n }\n \n \n@@ -2108,7 +2134,7 @@ int nan_peer_get_schedule_info(struct nan_data *nan, const u8 *addr,\n \tif (!peer)\n \t\treturn -1;\n \n-\tnan_peer_get_committed_avail(nan, peer, sched);\n+\tnan_peer_get_committed_avail(nan, peer, NULL, sched);\n \tnan_peer_get_ndc_sched(nan, peer, sched);\n \tnan_peer_get_immut_sched(nan, peer, sched);\n \n",
    "prefixes": [
        "45/71"
    ]
}