get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 94746,
    "url": "https://patches.dpdk.org/api/patches/94746/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210623044702.4240-51-ndabilpuram@marvell.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20210623044702.4240-51-ndabilpuram@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210623044702.4240-51-ndabilpuram@marvell.com",
    "date": "2021-06-23T04:46:50",
    "name": "[v4,50/62] net/cnxk: add flow ops get operation",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "41bdea00f8ee9833d30ce6daec7bc1c852dbef8d",
    "submitter": {
        "id": 1202,
        "url": "https://patches.dpdk.org/api/people/1202/?format=api",
        "name": "Nithin Dabilpuram",
        "email": "ndabilpuram@marvell.com"
    },
    "delegate": {
        "id": 310,
        "url": "https://patches.dpdk.org/api/users/310/?format=api",
        "username": "jerin",
        "first_name": "Jerin",
        "last_name": "Jacob",
        "email": "jerinj@marvell.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210623044702.4240-51-ndabilpuram@marvell.com/mbox/",
    "series": [
        {
            "id": 17449,
            "url": "https://patches.dpdk.org/api/series/17449/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=17449",
            "date": "2021-06-23T04:46:00",
            "name": "Marvell CNXK Ethdev Driver",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/17449/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/94746/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/94746/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 44E6CA0C41;\n\tWed, 23 Jun 2021 06:52:50 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 4CB03411CE;\n\tWed, 23 Jun 2021 06:50:04 +0200 (CEST)",
            "from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com\n [67.231.156.173])\n by mails.dpdk.org (Postfix) with ESMTP id A185941160\n for <dev@dpdk.org>; Wed, 23 Jun 2021 06:50:02 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id\n 15N4k9p4025587 for <dev@dpdk.org>; Tue, 22 Jun 2021 21:50:02 -0700",
            "from dc5-exch02.marvell.com ([199.233.59.182])\n by mx0b-0016f401.pphosted.com with ESMTP id 39bptj1guh-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT)\n for <dev@dpdk.org>; Tue, 22 Jun 2021 21:50:02 -0700",
            "from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.18;\n Tue, 22 Jun 2021 21:50:00 -0700",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com\n (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.18 via Frontend\n Transport; Tue, 22 Jun 2021 21:49:59 -0700",
            "from hyd1588t430.marvell.com (unknown [10.29.52.204])\n by maili.marvell.com (Postfix) with ESMTP id 56A145B6938;\n Tue, 22 Jun 2021 21:49:57 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;\n h=from : to : cc :\n subject : date : message-id : in-reply-to : references : mime-version :\n content-type; s=pfpt0220; bh=B5v+hBNC5pk9qva2vdHR+hL+3H0ocUqm1vh78G/c9e8=;\n b=BYdYi39w+fSk182OATHYwruPn1L513O0GOjd0HEEk8SC76n88EtXbsXXX/lXyov9FYjY\n z2CV2xsvTls6+scQvcZWD2BR1TZEAHd1dtOvt3rWFLg0pVauDZNdhQLYT8cYmZtwhqeX\n dvi9bv7Fheggj7yyJcY9J7cq381Q11kJP8vsFYntxyXtI7juPje2wKCx2MFOdvKNBV37\n iNrTSiztRPCzMfkifkPUqS7nCcMKxqg3AY99rWfzY467f05hTRrmc+eCrfDQ3luNLj+Q\n 2V94ecV2XdRrX6HHNT8XHKXAAG4I13sat7St3f7ATmKR3kPMs+PI/MkHPhuc9FeEdUtk qw==",
        "From": "Nithin Dabilpuram <ndabilpuram@marvell.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<jerinj@marvell.com>, <skori@marvell.com>, <skoteshwar@marvell.com>,\n <pbhagavatula@marvell.com>, <kirankumark@marvell.com>,\n <psatheesh@marvell.com>, <asekhar@marvell.com>, <hkalra@marvell.com>",
        "Date": "Wed, 23 Jun 2021 10:16:50 +0530",
        "Message-ID": "<20210623044702.4240-51-ndabilpuram@marvell.com>",
        "X-Mailer": "git-send-email 2.8.4",
        "In-Reply-To": "<20210623044702.4240-1-ndabilpuram@marvell.com>",
        "References": "<20210306153404.10781-1-ndabilpuram@marvell.com>\n <20210623044702.4240-1-ndabilpuram@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Proofpoint-ORIG-GUID": "Phcnh8vTS8Ttv6YRgvOx6sCkAMCjobFk",
        "X-Proofpoint-GUID": "Phcnh8vTS8Ttv6YRgvOx6sCkAMCjobFk",
        "X-Proofpoint-Virus-Version": "vendor=fsecure engine=2.50.10434:6.0.391, 18.0.790\n definitions=2021-06-23_01:2021-06-22,\n 2021-06-23 signatures=0",
        "Subject": "[dpdk-dev] [PATCH v4 50/62] net/cnxk: add flow ops get operation",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Satheesh Paul <psatheesh@marvell.com>\n\nThis patch adds flow ops get operation to enable rte_flow_ops.A\n\nThis patch also add support for flow dev dump API.\nEvery flow rule added will be dumped in the below format.\n\nMCAM Index:1881\nInterface :NIX-RX (0)\nPriority  :1\nNPC RX Action:0X00000000404001\n\tActionOp:NIX_RX_ACTIONOP_UCAST (1)\n\tPF_FUNC: 0X400\n\tRQ Index:0X004\n\tMatch Id:0000\n\tFlow Key Alg:0\nNPC RX VTAG Action:0X00000000008100\n\tVTAG0:relptr:0\n\tlid:0X1\n\ttype:0\nPatterns:\n\tNPC_PARSE_NIBBLE_CHAN:000\n\tNPC_PARSE_NIBBLE_LA_LTYPE:LA_ETHER\n\tNPC_PARSE_NIBBLE_LB_LTYPE:NONE\n\tNPC_PARSE_NIBBLE_LC_LTYPE:LC_IP\n\tNPC_PARSE_NIBBLE_LD_LTYPE:LD_TCP\n\tNPC_PARSE_NIBBLE_LE_LTYPE:NONE\n\tLA_ETHER, hdr offset:0, len:0X6, key offset:0X8,\\\n\t\tData:0X4AE124FC7FFF, Mask:0XFFFFFFFFFFFF\n\tLA_ETHER, hdr offset:0XC, len:0X2, key offset:0X4, Data:0XCA5A,\\\n\t\tMask:0XFFFF\n\tLC_IP, hdr offset:0XC, len:0X8, key offset:0X10,\\\n\t\tData:0X0A01010300000000, Mask:0XFFFFFFFF00000000\n\tLD_TCP, hdr offset:0, len:0X4, key offset:0X18, Data:0X03450000,\\\n\t\tMask:0XFFFF0000\nMCAM Raw Data :\n\tDW0     :0000CA5A01202000\n\tDW0_Mask:0000FFFF0FF0F000\n\tDW1     :00004AE124FC7FFF\n\tDW1_Mask:0000FFFFFFFFFFFF\n\tDW2     :0A01010300000000\n\tDW2_Mask:FFFFFFFF00000000\n\tDW3     :0000000003450000\n\tDW3_Mask:00000000FFFF0000\n\tDW4     :0000000000000000\n\tDW4_Mask:0000000000000000\n\tDW5     :0000000000000000\n\tDW5_Mask:0000000000000000\n\tDW6     :0000000000000000\n\tDW6_Mask:0000000000000000\n\nSigned-off-by: Satheesh Paul <psatheesh@marvell.com>\n---\n drivers/common/cnxk/roc_npc.c      |  2 ++\n drivers/net/cnxk/cnxk_ethdev.c     |  3 +++\n drivers/net/cnxk/cnxk_ethdev.h     |  3 ++-\n drivers/net/cnxk/cnxk_ethdev_ops.c | 10 ++++++++++\n drivers/net/cnxk/cnxk_rte_flow.c   | 28 ++++++++++++++++++++++++++++\n 5 files changed, 45 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c\nindex 8a76823..aff4eef 100644\n--- a/drivers/common/cnxk/roc_npc.c\n+++ b/drivers/common/cnxk/roc_npc.c\n@@ -1009,6 +1009,8 @@ roc_npc_flow_create(struct roc_npc *roc_npc, const struct roc_npc_attr *attr,\n \tstruct npc_flow_list *list;\n \tint rc;\n \n+\tnpc->channel = roc_npc->channel;\n+\n \tflow = plt_zmalloc(sizeof(*flow), 0);\n \tif (flow == NULL) {\n \t\t*errcode = NPC_ERR_NO_MEM;\ndiff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c\nindex 7088e67..d863810 100644\n--- a/drivers/net/cnxk/cnxk_ethdev.c\n+++ b/drivers/net/cnxk/cnxk_ethdev.c\n@@ -819,6 +819,8 @@ cnxk_nix_configure(struct rte_eth_dev *eth_dev)\n \t\tgoto fail_configure;\n \t}\n \n+\tdev->npc.channel = roc_nix_get_base_chan(nix);\n+\n \tnb_rxq = data->nb_rx_queues;\n \tnb_txq = data->nb_tx_queues;\n \trc = -ENOMEM;\n@@ -1223,6 +1225,7 @@ struct eth_dev_ops cnxk_eth_dev_ops = {\n \t.rxq_info_get = cnxk_nix_rxq_info_get,\n \t.txq_info_get = cnxk_nix_txq_info_get,\n \t.tx_done_cleanup = cnxk_nix_tx_done_cleanup,\n+\t.flow_ops_get = cnxk_nix_flow_ops_get,\n };\n \n static int\ndiff --git a/drivers/net/cnxk/cnxk_ethdev.h b/drivers/net/cnxk/cnxk_ethdev.h\nindex b7869b4..07c87ea 100644\n--- a/drivers/net/cnxk/cnxk_ethdev.h\n+++ b/drivers/net/cnxk/cnxk_ethdev.h\n@@ -273,7 +273,8 @@ int cnxk_nix_rx_queue_intr_disable(struct rte_eth_dev *eth_dev,\n \t\t\t\t   uint16_t rx_queue_id);\n int cnxk_nix_pool_ops_supported(struct rte_eth_dev *eth_dev, const char *pool);\n int cnxk_nix_tx_done_cleanup(void *txq, uint32_t free_cnt);\n-\n+int cnxk_nix_flow_ops_get(struct rte_eth_dev *eth_dev,\n+\t\t\t  const struct rte_flow_ops **ops);\n int cnxk_nix_configure(struct rte_eth_dev *eth_dev);\n int cnxk_nix_tx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t qid,\n \t\t\t    uint16_t nb_desc, uint16_t fp_tx_q_sz,\ndiff --git a/drivers/net/cnxk/cnxk_ethdev_ops.c b/drivers/net/cnxk/cnxk_ethdev_ops.c\nindex 305220a..36ca750 100644\n--- a/drivers/net/cnxk/cnxk_ethdev_ops.c\n+++ b/drivers/net/cnxk/cnxk_ethdev_ops.c\n@@ -300,6 +300,16 @@ cnxk_nix_flow_ctrl_set(struct rte_eth_dev *eth_dev,\n }\n \n int\n+cnxk_nix_flow_ops_get(struct rte_eth_dev *eth_dev,\n+\t\t      const struct rte_flow_ops **ops)\n+{\n+\tRTE_SET_USED(eth_dev);\n+\n+\t*ops = &cnxk_flow_ops;\n+\treturn 0;\n+}\n+\n+int\n cnxk_nix_mac_addr_set(struct rte_eth_dev *eth_dev, struct rte_ether_addr *addr)\n {\n \tstruct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);\ndiff --git a/drivers/net/cnxk/cnxk_rte_flow.c b/drivers/net/cnxk/cnxk_rte_flow.c\nindex 1695d4f..2dee19e 100644\n--- a/drivers/net/cnxk/cnxk_rte_flow.c\n+++ b/drivers/net/cnxk/cnxk_rte_flow.c\n@@ -322,9 +322,37 @@ cnxk_flow_isolate(struct rte_eth_dev *eth_dev __rte_unused,\n \treturn -rte_errno;\n }\n \n+static int\n+cnxk_flow_dev_dump(struct rte_eth_dev *eth_dev, struct rte_flow *flow,\n+\t\t   FILE *file, struct rte_flow_error *error)\n+{\n+\tstruct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);\n+\tstruct roc_npc *npc = &dev->npc;\n+\n+\tif (file == NULL) {\n+\t\trte_flow_error_set(error, EINVAL,\n+\t\t\t\t   RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,\n+\t\t\t\t   \"Invalid file\");\n+\t\treturn -rte_errno;\n+\t}\n+\n+\tif (flow != NULL) {\n+\t\trte_flow_error_set(error, EINVAL,\n+\t\t\t\t   RTE_FLOW_ERROR_TYPE_HANDLE,\n+\t\t\t\t   NULL,\n+\t\t\t\t   \"Invalid argument\");\n+\t\treturn -EINVAL;\n+\t}\n+\n+\troc_npc_flow_dump(file, npc);\n+\n+\treturn 0;\n+}\n+\n struct rte_flow_ops cnxk_flow_ops = {\n \t.validate = cnxk_flow_validate,\n \t.flush = cnxk_flow_flush,\n \t.query = cnxk_flow_query,\n \t.isolate = cnxk_flow_isolate,\n+\t.dev_dump = cnxk_flow_dev_dump,\n };\n",
    "prefixes": [
        "v4",
        "50/62"
    ]
}