get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 131286,
    "url": "http://patchwork.dpdk.org/api/patches/131286/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230908112901.1169869-24-haijie1@huawei.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20230908112901.1169869-24-haijie1@huawei.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230908112901.1169869-24-haijie1@huawei.com",
    "date": "2023-09-08T11:28:48",
    "name": "[23/36] net/nfp: fix Rx and Tx queue state",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "a169d00108b50cc27538f836d93e5584a8ba1853",
    "submitter": {
        "id": 2935,
        "url": "http://patchwork.dpdk.org/api/people/2935/?format=api",
        "name": "Jie Hai",
        "email": "haijie1@huawei.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230908112901.1169869-24-haijie1@huawei.com/mbox/",
    "series": [
        {
            "id": 29461,
            "url": "http://patchwork.dpdk.org/api/series/29461/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29461",
            "date": "2023-09-08T11:28:25",
            "name": "fix Rx and Tx queue state",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/29461/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/131286/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/131286/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 0E34E42547;\n\tFri,  8 Sep 2023 13:34:55 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id B9D4940F35;\n\tFri,  8 Sep 2023 13:32:40 +0200 (CEST)",
            "from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188])\n by mails.dpdk.org (Postfix) with ESMTP id 1D71040A6D\n for <dev@dpdk.org>; Fri,  8 Sep 2023 13:32:26 +0200 (CEST)",
            "from kwepemi500020.china.huawei.com (unknown [172.30.72.56])\n by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4Rhv4q2yLTzNmqx;\n Fri,  8 Sep 2023 19:28:43 +0800 (CST)",
            "from localhost.localdomain (10.67.165.2) by\n kwepemi500020.china.huawei.com (7.221.188.8) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.1.2507.31; Fri, 8 Sep 2023 19:32:24 +0800"
        ],
        "From": "Jie Hai <haijie1@huawei.com>",
        "To": "<dev@dpdk.org>, Chaoyong He <chaoyong.he@corigine.com>, =?utf-8?q?Niklas?=\n\t=?utf-8?q?_S=C3=B6derlund?= <niklas.soderlund@corigine.com>,\n Chengwen Feng <fengchengwen@huawei.com>, Lijun Ou <oulijun@huawei.com>,\n Konstantin Ananyev\n <\"konstantin.v.ananyev@yandex.rukonstantin.ananyev\"@huawei.com>,\n  Thomas Monjalon <thomas@monjalon.net>, Ferruh Yigit <ferruh.yigit@intel.com>",
        "CC": "<haijie1@huawei.com>, <lihuisong@huawei.com>",
        "Subject": "[PATCH 23/36] net/nfp: fix Rx and Tx queue state",
        "Date": "Fri, 8 Sep 2023 19:28:48 +0800",
        "Message-ID": "<20230908112901.1169869-24-haijie1@huawei.com>",
        "X-Mailer": "git-send-email 2.30.0",
        "In-Reply-To": "<20230908112901.1169869-1-haijie1@huawei.com>",
        "References": "<20230908112901.1169869-1-haijie1@huawei.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.67.165.2]",
        "X-ClientProxiedBy": "dggems702-chm.china.huawei.com (10.3.19.179) To\n kwepemi500020.china.huawei.com (7.221.188.8)",
        "X-CFilter-Loop": "Reflected",
        "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": "The DPDK framework reports the queue state, which is stored in\ndev->data->tx_queue_state and dev->data->rx_queue_state. The\nstate is maintained by the driver. Users may determine whether\na queue participates in packet forwarding based on the state.\nTherefore, the driver needs to modify the queue state in time\naccording to the actual situation.\n\nFixes: 9ad9ff476cac (\"ethdev: add queue state in queried queue information\")\nCc: stable@dpdk.org\n\nSigned-off-by: Jie Hai <haijie1@huawei.com>\n---\n drivers/net/nfp/flower/nfp_flower.c             |  8 ++++++++\n drivers/net/nfp/flower/nfp_flower_representor.c | 12 ++++++++++++\n drivers/net/nfp/nfp_common.c                    |  2 ++\n drivers/net/nfp/nfp_ethdev.c                    |  6 ++++++\n drivers/net/nfp/nfp_ethdev_vf.c                 |  6 ++++++\n 5 files changed, 34 insertions(+)",
    "diff": "diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c\nindex 77dab864f319..eb7b40a6eb25 100644\n--- a/drivers/net/nfp/flower/nfp_flower.c\n+++ b/drivers/net/nfp/flower/nfp_flower.c\n@@ -85,6 +85,7 @@ int\n nfp_flower_pf_start(struct rte_eth_dev *dev)\n {\n \tint ret;\n+\tuint16_t i;\n \tuint32_t new_ctrl;\n \tuint32_t update = 0;\n \tstruct nfp_net_hw *hw;\n@@ -137,6 +138,11 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)\n \t\treturn -EIO;\n \t}\n \n+\tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n+\t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\tfor (i = 0; i < dev->data->nb_tx_queues; i++)\n+\t\tdev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\n \treturn 0;\n }\n \n@@ -159,11 +165,13 @@ nfp_flower_pf_stop(struct rte_eth_dev *dev)\n \tfor (i = 0; i < dev->data->nb_tx_queues; i++) {\n \t\tthis_tx_q = dev->data->tx_queues[i];\n \t\tnfp_net_reset_tx_queue(this_tx_q);\n+\t\tdev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;\n \t}\n \n \tfor (i = 0; i < dev->data->nb_rx_queues; i++) {\n \t\tthis_rx_q = dev->data->rx_queues[i];\n \t\tnfp_net_reset_rx_queue(this_rx_q);\n+\t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;\n \t}\n \n \tif (rte_eal_process_type() == RTE_PROC_PRIMARY)\ndiff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c\nindex 5f94d20f1b0c..3f97bc9f8a39 100644\n--- a/drivers/net/nfp/flower/nfp_flower_representor.c\n+++ b/drivers/net/nfp/flower/nfp_flower_representor.c\n@@ -303,6 +303,7 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)\n {\n \tstruct nfp_flower_representor *repr;\n \tstruct nfp_app_fw_flower *app_fw_flower;\n+\tuint16_t i;\n \n \trepr = dev->data->dev_private;\n \tapp_fw_flower = repr->app_fw_flower;\n@@ -314,6 +315,11 @@ nfp_flower_repr_dev_start(struct rte_eth_dev *dev)\n \n \tnfp_flower_cmsg_port_mod(app_fw_flower, repr->port_id, true);\n \n+\tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n+\t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\tfor (i = 0; i < dev->data->nb_tx_queues; i++)\n+\t\tdev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\n \treturn 0;\n }\n \n@@ -322,6 +328,7 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)\n {\n \tstruct nfp_flower_representor *repr;\n \tstruct nfp_app_fw_flower *app_fw_flower;\n+\tuint16_t i;\n \n \trepr = dev->data->dev_private;\n \tapp_fw_flower = repr->app_fw_flower;\n@@ -333,6 +340,11 @@ nfp_flower_repr_dev_stop(struct rte_eth_dev *dev)\n \t\t\t\trepr->nfp_idx, 0);\n \t}\n \n+\tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n+\t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;\n+\tfor (i = 0; i < dev->data->nb_tx_queues; i++)\n+\t\tdev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;\n+\n \treturn 0;\n }\n \ndiff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c\nindex 5092e5869de4..c0d4708f2b3e 100644\n--- a/drivers/net/nfp/nfp_common.c\n+++ b/drivers/net/nfp/nfp_common.c\n@@ -1927,6 +1927,7 @@ nfp_net_stop_rx_queue(struct rte_eth_dev *dev)\n \tfor (i = 0; i < dev->data->nb_rx_queues; i++) {\n \t\tthis_rx_q = dev->data->rx_queues[i];\n \t\tnfp_net_reset_rx_queue(this_rx_q);\n+\t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;\n \t}\n }\n \n@@ -1952,6 +1953,7 @@ nfp_net_stop_tx_queue(struct rte_eth_dev *dev)\n \tfor (i = 0; i < dev->data->nb_tx_queues; i++) {\n \t\tthis_tx_q = dev->data->tx_queues[i];\n \t\tnfp_net_reset_tx_queue(this_tx_q);\n+\t\tdev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;\n \t}\n }\n \ndiff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex e3ff3d80873d..bdfd5530c55f 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -65,6 +65,7 @@ nfp_net_start(struct rte_eth_dev *dev)\n \tstruct rte_eth_conf *dev_conf;\n \tstruct rte_eth_rxmode *rxmode;\n \tuint32_t intr_vector;\n+\tuint16_t i;\n \tint ret;\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n@@ -176,6 +177,11 @@ nfp_net_start(struct rte_eth_dev *dev)\n \n \thw->ctrl = new_ctrl;\n \n+\tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n+\t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\tfor (i = 0; i < dev->data->nb_tx_queues; i++)\n+\t\tdev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\n \treturn 0;\n \n error:\ndiff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c\nindex eaf815d06da5..3e8aeef51ab4 100644\n--- a/drivers/net/nfp/nfp_ethdev_vf.c\n+++ b/drivers/net/nfp/nfp_ethdev_vf.c\n@@ -39,6 +39,7 @@ nfp_netvf_start(struct rte_eth_dev *dev)\n \tstruct rte_eth_conf *dev_conf;\n \tstruct rte_eth_rxmode *rxmode;\n \tuint32_t intr_vector;\n+\tuint16_t i;\n \tint ret;\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n@@ -115,6 +116,11 @@ nfp_netvf_start(struct rte_eth_dev *dev)\n \n \thw->ctrl = new_ctrl;\n \n+\tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n+\t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\tfor (i = 0; i < dev->data->nb_tx_queues; i++)\n+\t\tdev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\n+\n \treturn 0;\n \n error:\n",
    "prefixes": [
        "23/36"
    ]
}