get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 135485,
    "url": "http://patches.dpdk.org/api/patches/135485/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231221180529.18687-11-ajit.khaparde@broadcom.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20231221180529.18687-11-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231221180529.18687-11-ajit.khaparde@broadcom.com",
    "date": "2023-12-21T18:05:21",
    "name": "[10/18] net/bnxt: add flow query callback",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "57e4a0e8f0c098ad09122e90efc980d4a82fd9cc",
    "submitter": {
        "id": 501,
        "url": "http://patches.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20231221180529.18687-11-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 30650,
            "url": "http://patches.dpdk.org/api/series/30650/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30650",
            "date": "2023-12-21T18:05:11",
            "name": "bnxt patchset",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/30650/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/135485/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/135485/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4FF2343752;\n\tThu, 21 Dec 2023 19:07:02 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 15EAA42EB1;\n\tThu, 21 Dec 2023 19:05:53 +0100 (CET)",
            "from mail-pl1-f180.google.com (mail-pl1-f180.google.com\n [209.85.214.180])\n by mails.dpdk.org (Postfix) with ESMTP id 69CF342ECA\n for <dev@dpdk.org>; Thu, 21 Dec 2023 19:05:49 +0100 (CET)",
            "by mail-pl1-f180.google.com with SMTP id\n d9443c01a7336-1d32c5ce32eso16017695ad.0\n for <dev@dpdk.org>; Thu, 21 Dec 2023 10:05:49 -0800 (PST)",
            "from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252])\n by smtp.gmail.com with ESMTPSA id\n j17-20020a170902da9100b001d3b3ac2d7bsm1916379plx.245.2023.12.21.10.05.47\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 21 Dec 2023 10:05:47 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=broadcom.com; s=google; t=1703181948; x=1703786748; darn=dpdk.org;\n h=mime-version:references:in-reply-to:message-id:date:subject:cc:to\n :from:from:to:cc:subject:date:message-id:reply-to;\n bh=YymZtAb/ah8jliUDD8dQSttaioJ5qPNXKttH9FOr8Cs=;\n b=dqjvzaV+aphbbKMX8IA5MATe71gNhfBcxIPEw+SbTwzDuyMqmrnkvFfttXr1w+i9RN\n 6MxQtB1aohbYv1athqy+8K64oyzvGQjc9uWwvMEGADITHfBFfUrUm9jH1iPuftd43Ojv\n QywH9QebswxGPPvnzkRk279gLgkQ1/r5j3Z/o=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1703181948; x=1703786748;\n h=mime-version:references:in-reply-to:message-id:date:subject:cc:to\n :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=YymZtAb/ah8jliUDD8dQSttaioJ5qPNXKttH9FOr8Cs=;\n b=gDpmu/bP1fA8zHBSgoSuiwwVFRYYXaxg2ZZzPUY17IFIY6znurNfi2cZRbzF31KQ7O\n aL7X30OL1ZqNqbpNvYNzrnS2j0YslYeTvItITOF5wFIN+xnA8jLOuR+UJepo+bdyk/sN\n 562PQCuTJWyIwKpjkEMkAkjok9+0QW6FN6w/XJbqDHrc5DwcA2YHtIV4tJgCctVaWljo\n R3i+mmHyWPqzTFDFO5DU7AS802OSPL+3na5+fXV5lisHHwLLuPIc6vNY+QEuwFVA53HR\n cuII8AkS4k3+kvc9M+mn0d+DUJzWcr7LZaLUER5yy+h4b496N1X6uOVmuQliCfEeTdUR\n KGtQ==",
        "X-Gm-Message-State": "AOJu0YyynMY43iN2x6J7D5VqfqmkFlzerHWrrIsrpX2ym3tsQa6iBrNx\n DyMIquz+Pt6RV1jtovgFmrNx1OAnC7st0w+M3su9mE5XHVlo84CGw5Ut2fPp0Wrt1Tnw3vITRlA\n Bj++Bk757k8HsITrFAQDibM6+XBfGddOq+M7gYtN3oy5OMh3wRgdbVk+IdY3s34/tPkLZbVzL8O\n s=",
        "X-Google-Smtp-Source": "\n AGHT+IE2axJH3Bw0CF739JIzLuJkXA8Rf2N4fK3QKuTFhxLrHzDa47nqyOfN4m5+BPj09wSiYeoJZQ==",
        "X-Received": "by 2002:a17:902:7842:b0:1d3:dfef:52f2 with SMTP id\n e2-20020a170902784200b001d3dfef52f2mr85102pln.13.1703181947910;\n Thu, 21 Dec 2023 10:05:47 -0800 (PST)",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "Damodharam Ammepalli <damodharam.ammepalli@broadcom.com>",
        "Subject": "[PATCH 10/18] net/bnxt: add flow query callback",
        "Date": "Thu, 21 Dec 2023 10:05:21 -0800",
        "Message-Id": "<20231221180529.18687-11-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.39.2 (Apple Git-143)",
        "In-Reply-To": "<20231221180529.18687-1-ajit.khaparde@broadcom.com>",
        "References": "<20231221180529.18687-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Type": "multipart/signed; protocol=\"application/pkcs7-signature\";\n micalg=sha-256; boundary=\"0000000000000556d5060d08f303\"",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "From: Damodharam Ammepalli <damodharam.ammepalli@broadcom.com>\n\nThis patch addsbnxt query callback to rte_flow_ops in non TruFlow mode.\nAt this point only the RSS hash function type is displayed.\n\nSigned-off-by: Damodharam Ammepalli <damodharam.ammepalli@broadcom.com>\nReviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/bnxt_flow.c | 61 ++++++++++++++++++++++++++++++++++++\n drivers/net/bnxt/bnxt_vnic.c | 11 +++++++\n drivers/net/bnxt/bnxt_vnic.h |  2 ++\n 3 files changed, 74 insertions(+)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c\nindex 2d707b48d2..f25bc6ff78 100644\n--- a/drivers/net/bnxt/bnxt_flow.c\n+++ b/drivers/net/bnxt/bnxt_flow.c\n@@ -1917,6 +1917,66 @@ void bnxt_flow_cnt_alarm_cb(void *arg)\n \t\t\t  (void *)bp);\n }\n \n+/* Query an requested flow rule. */\n+static int\n+bnxt_flow_query_all(struct rte_flow *flow,\n+\t\t    const struct rte_flow_action *actions, void *data,\n+\t\t    struct rte_flow_error *error)\n+{\n+\tstruct rte_flow_action_rss *rss_conf;\n+\tstruct bnxt_vnic_info *vnic;\n+\n+\tvnic = flow->vnic;\n+\tif (vnic == NULL)\n+\t\treturn rte_flow_error_set(error, EINVAL,\n+\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_HANDLE, flow,\n+\t\t\t\t\t  \"Invalid flow: failed to query flow.\");\n+\n+\tfor (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {\n+\t\tswitch (actions->type) {\n+\t\tcase RTE_FLOW_ACTION_TYPE_VOID:\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_COUNT:\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_RSS:\n+\t\t\t/* Full details of rte_flow_action_rss not available yet TBD*/\n+\t\t\trss_conf = (struct rte_flow_action_rss *)data;\n+\n+\t\t\t/* toeplitz is default */\n+\t\t\tif (vnic->ring_select_mode ==\n+\t\t\t\t\tHWRM_VNIC_RSS_CFG_INPUT_RING_SELECT_MODE_TOEPLITZ)\n+\t\t\t\trss_conf->func = vnic->hash_f_local;\n+\t\t\telse\n+\t\t\t\trss_conf->func = RTE_ETH_HASH_FUNCTION_SIMPLE_XOR;\n+\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n+\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION, actions,\n+\t\t\t\t\t\t  \"action is not supported\");\n+\t\t}\n+\t}\n+\n+\treturn 0;\n+}\n+\n+static int\n+bnxt_flow_query(struct rte_eth_dev *dev, struct rte_flow *flow,\n+\t\tconst struct rte_flow_action *actions, void *data,\n+\t\tstruct rte_flow_error *error)\n+{\n+\tstruct bnxt *bp = dev->data->dev_private;\n+\tint ret = 0;\n+\n+\tif (bp == NULL)\n+\t\treturn -ENODEV;\n+\n+\tbnxt_acquire_flow_lock(bp);\n+\tret = bnxt_flow_query_all(flow, actions, data, error);\n+\tbnxt_release_flow_lock(bp);\n+\n+\treturn ret;\n+}\n \n static struct rte_flow *\n bnxt_flow_create(struct rte_eth_dev *dev,\n@@ -2374,4 +2434,5 @@ const struct rte_flow_ops bnxt_flow_ops = {\n \t.create = bnxt_flow_create,\n \t.destroy = bnxt_flow_destroy,\n \t.flush = bnxt_flow_flush,\n+\t.query = bnxt_flow_query,\n };\ndiff --git a/drivers/net/bnxt/bnxt_vnic.c b/drivers/net/bnxt/bnxt_vnic.c\nindex 6a57f85ea7..bf1f0ea09f 100644\n--- a/drivers/net/bnxt/bnxt_vnic.c\n+++ b/drivers/net/bnxt/bnxt_vnic.c\n@@ -1335,6 +1335,9 @@ int bnxt_rte_flow_to_hwrm_ring_select_mode(enum rte_eth_hash_function hash_f,\n \t}\n \n \tvnic->ring_select_mode = _bnxt_rte_to_hwrm_ring_select_mode(hash_f);\n+\tvnic->hash_f_local = hash_f;\n+\t/* shadow copy types as !hash_f is always true with default func */\n+\tvnic->rss_types_local = types;\n \treturn 0;\n }\n \n@@ -1359,6 +1362,8 @@ int bnxt_rte_eth_to_hwrm_ring_select_mode(struct bnxt *bp, uint64_t types,\n \t */\n \tvnic->ring_select_mode =\n \t\tHWRM_VNIC_RSS_CFG_INPUT_RING_SELECT_MODE_TOEPLITZ;\n+\tvnic->hash_f_local =\n+\t\tHWRM_VNIC_RSS_CFG_INPUT_RING_SELECT_MODE_TOEPLITZ;\n \treturn 0;\n }\n \n@@ -1367,6 +1372,12 @@ void bnxt_hwrm_rss_to_rte_hash_conf(struct bnxt_vnic_info *vnic,\n {\n \tuint32_t hash_types;\n \n+\t/* check for local shadow rte types */\n+\tif (vnic->rss_types_local != 0) {\n+\t\t*rss_conf = vnic->rss_types_local;\n+\t\treturn;\n+\t}\n+\n \thash_types = vnic->hash_type;\n \t*rss_conf = 0;\n \tif (hash_types & HWRM_VNIC_RSS_CFG_INPUT_HASH_TYPE_IPV4)\ndiff --git a/drivers/net/bnxt/bnxt_vnic.h b/drivers/net/bnxt/bnxt_vnic.h\nindex d01c9ebdb4..93155648e2 100644\n--- a/drivers/net/bnxt/bnxt_vnic.h\n+++ b/drivers/net/bnxt/bnxt_vnic.h\n@@ -79,6 +79,8 @@ struct bnxt_vnic_info {\n \tSTAILQ_HEAD(, bnxt_filter_info)\tfilter;\n \tSTAILQ_HEAD(, rte_flow)\tflow_list;\n \tuint8_t\t\tring_select_mode;\n+\tenum rte_eth_hash_function hash_f_local;\n+\tuint64_t\trss_types_local;\n };\n \n struct bnxt_vnic_queue_db {\n",
    "prefixes": [
        "10/18"
    ]
}