get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 116326,
    "url": "http://patches.dpdk.org/api/patches/116326/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220915070732.182542-2-hpothula@marvell.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": "<20220915070732.182542-2-hpothula@marvell.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220915070732.182542-2-hpothula@marvell.com",
    "date": "2022-09-15T07:07:31",
    "name": "[v4,2/3] app/testpmd: Add support for mulitiple mbuf pools per Rx queue",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "31ea66c87ca1a7444e1337d90f126ac1f7e4cddd",
    "submitter": {
        "id": 2319,
        "url": "http://patches.dpdk.org/api/people/2319/?format=api",
        "name": "Hanumanth Pothula",
        "email": "hpothula@marvell.com"
    },
    "delegate": {
        "id": 3961,
        "url": "http://patches.dpdk.org/api/users/3961/?format=api",
        "username": "arybchenko",
        "first_name": "Andrew",
        "last_name": "Rybchenko",
        "email": "andrew.rybchenko@oktetlabs.ru"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220915070732.182542-2-hpothula@marvell.com/mbox/",
    "series": [
        {
            "id": 24672,
            "url": "http://patches.dpdk.org/api/series/24672/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=24672",
            "date": "2022-09-15T07:07:30",
            "name": "[v4,1/3] ethdev: Add support for mulitiple mbuf pools per Rx queue",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/24672/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/116326/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/116326/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 1152DA00C5;\n\tThu, 15 Sep 2022 09:09:58 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 034B040A80;\n\tThu, 15 Sep 2022 09:09:58 +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 6159840156\n for <dev@dpdk.org>; Thu, 15 Sep 2022 09:09:57 +0200 (CEST)",
            "from pps.filterd (m0045851.ppops.net [127.0.0.1])\n by mx0b-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id\n 28ENmgEt023790;\n Thu, 15 Sep 2022 00:07:50 -0700",
            "from dc5-exch01.marvell.com ([199.233.59.181])\n by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3jjy0272y3-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);\n Thu, 15 Sep 2022 00:07:50 -0700",
            "from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.2;\n Thu, 15 Sep 2022 00:07:48 -0700",
            "from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com\n (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.2 via Frontend\n Transport; Thu, 15 Sep 2022 00:07:48 -0700",
            "from localhost.localdomain (unknown [10.28.36.155])\n by maili.marvell.com (Postfix) with ESMTP id B838B3F70A3;\n Thu, 15 Sep 2022 00:07:43 -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-transfer-encoding : content-type; s=pfpt0220;\n bh=xShqtOsL3WhBDYMefcN1iKRuWKdjnF8EO8A14DPNEkQ=;\n b=KxA8K/IyhXzyLpIYBOdaeMfuxicbcCXdKXPW8WuvBbXNdTJrEtW1CgjYLVpAtUQIqsYI\n ewcACMUuQsfdD2c3Gm1BnNtIrfrPkRNxheoT61cNP8amY82hJSNPTVWrpmta2CfUjklH\n KUfdMSs91UXr94pOUyYORlktX+NBrIHX1+XhhRHB24H5MYTYZGpKJatOsypSedC/H+ZC\n xzvdCJQ7SZ1Y2dzmTxW5xkNnG+JZUfsrhh4NgUqtGj8Ws2cHxhRluJMRUP5zaIaoAN+C\n 2u7mF/kEqxF+pM+oI0AahxgHXVx2Q7VjcXLkltVlteGjnDQnzdBhGC09bbrljLrg1Umo Kg==",
        "From": "Hanumanth Pothula <hpothula@marvell.com>",
        "To": "Aman Singh <aman.deep.singh@intel.com>, Yuying Zhang\n <yuying.zhang@intel.com>",
        "CC": "<dev@dpdk.org>, <andrew.rybchenko@oktetlabs.ru>, <xuan.ding@intel.com>,\n <wenxuanx.wu@intel.com>, <thomas@monjalon.net>, <xiaoyun.li@intel.com>,\n <stephen@networkplumber.org>, <yuanx.wang@intel.com>, <mdr@ashroe.eu>,\n <ferruh.yigit@xilinx.com>, <qi.z.zhang@intel.com>,\n <viacheslavo@nvidia.com>, <jerinj@marvell.com>,\n <ndabilpuram@marvell.com>, Hanumanth Pothula <hpothula@marvell.com>",
        "Subject": "[PATCH v4 2/3] app/testpmd: Add support for mulitiple mbuf pools per\n Rx queue",
        "Date": "Thu, 15 Sep 2022 12:37:31 +0530",
        "Message-ID": "<20220915070732.182542-2-hpothula@marvell.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220915070732.182542-1-hpothula@marvell.com>",
        "References": "<20220902070047.2812906-1-hpothula@marvell.com>\n <20220915070732.182542-1-hpothula@marvell.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Proofpoint-GUID": "bvdIWyDalLyJgbpN1jF6Z-SyR3zGN9KB",
        "X-Proofpoint-ORIG-GUID": "bvdIWyDalLyJgbpN1jF6Z-SyR3zGN9KB",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.528,FMLib:17.11.122.1\n definitions=2022-09-15_03,2022-09-14_04,2022-06-22_01",
        "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": "This patch adds support for the mulitiple mempool.\nSome of the HW has support for choosing memory pools based on the\npacket's size. The pool sort capability allows PMD to choose a\nmemory pool based on the packet's length.\n\nOn multiple mempool support enabled, populate mempool array and\nalso print pool name on which packet is received.\n\nSigned-off-by: Hanumanth Pothula <hpothula@marvell.com>\n---\n app/test-pmd/testpmd.c | 41 +++++++++++++++++++++++++++++------------\n app/test-pmd/testpmd.h |  3 +++\n app/test-pmd/util.c    |  4 ++--\n 3 files changed, 34 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\nindex 77741fc41f..d16a552e6d 100644\n--- a/app/test-pmd/testpmd.c\n+++ b/app/test-pmd/testpmd.c\n@@ -2624,11 +2624,13 @@ rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,\n \t       struct rte_eth_rxconf *rx_conf, struct rte_mempool *mp)\n {\n \tunion rte_eth_rxseg rx_useg[MAX_SEGS_BUFFER_SPLIT] = {};\n+\tstruct rte_eth_rx_mempool rx_mempool[MAX_MEMPOOL] = {};\n \tunsigned int i, mp_n;\n \tint ret;\n \n \tif (rx_pkt_nb_segs <= 1 ||\n-\t    (rx_conf->offloads & RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT) == 0) {\n+\t    (rx_conf->offloads & RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT ||\n+\t     rx_conf->offloads & RTE_ETH_RX_OFFLOAD_MUL_MEMPOOL) == 0) {\n \t\trx_conf->rx_seg = NULL;\n \t\trx_conf->rx_nseg = 0;\n \t\tret = rte_eth_rx_queue_setup(port_id, rx_queue_id,\n@@ -2637,7 +2639,8 @@ rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,\n \t\tgoto exit;\n \t}\n \tfor (i = 0; i < rx_pkt_nb_segs; i++) {\n-\t\tstruct rte_eth_rxseg_split *rx_seg = &rx_useg[i].split;\n+\t\tstruct rte_eth_rxseg_split *rx_split = &rx_useg[i].split;\n+\t\tstruct rte_eth_rx_mempool *mempool = &rx_mempool[i];\n \t\tstruct rte_mempool *mpx;\n \t\t/*\n \t\t * Use last valid pool for the segments with number\n@@ -2645,16 +2648,30 @@ rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id,\n \t\t */\n \t\tmp_n = (i >= mbuf_data_size_n) ? mbuf_data_size_n - 1 : i;\n \t\tmpx = mbuf_pool_find(socket_id, mp_n);\n-\t\t/* Handle zero as mbuf data buffer size. */\n-\t\trx_seg->length = rx_pkt_seg_lengths[i] ?\n-\t\t\t\t   rx_pkt_seg_lengths[i] :\n-\t\t\t\t   mbuf_data_size[mp_n];\n-\t\trx_seg->offset = i < rx_pkt_nb_offs ?\n-\t\t\t\t   rx_pkt_seg_offsets[i] : 0;\n-\t\trx_seg->mp = mpx ? mpx : mp;\n-\t}\n-\trx_conf->rx_nseg = rx_pkt_nb_segs;\n-\trx_conf->rx_seg = rx_useg;\n+\t\tif (rx_conf->offloads & RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT) {\n+\t\t\t/**\n+\t\t\t * On Segment length zero, update length as,\n+\t\t\t *      buffer size - headroom size\n+\t\t\t * to make sure enough space is accomidate for header.\n+\t\t\t */\n+\t\t\trx_split->length = rx_pkt_seg_lengths[i] ?\n+\t\t\t\t\t   rx_pkt_seg_lengths[i] :\n+\t\t\t\t\t   mbuf_data_size[mp_n] - RTE_PKTMBUF_HEADROOM;\n+\t\t\trx_split->offset = i < rx_pkt_nb_offs ?\n+\t\t\t\t\t   rx_pkt_seg_offsets[i] : 0;\n+\t\t\trx_split->mp = mpx ? mpx : mp;\n+\t\t}\n+\t\tif (rx_conf->offloads & RTE_ETH_RX_OFFLOAD_MUL_MEMPOOL)\n+\t\t\tmempool->mp = mpx ? mpx : mp;\n+\t}\n+\tif (rx_conf->offloads & RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT) {\n+\t\trx_conf->rx_nseg = rx_pkt_nb_segs;\n+\t\trx_conf->rx_seg = rx_useg;\n+\t}\n+\tif (rx_conf->offloads & RTE_ETH_RX_OFFLOAD_MUL_MEMPOOL) {\n+\t\trx_conf->rx_mempool = rx_mempool;\n+\t\trx_conf->rx_npool = rx_pkt_nb_segs;\n+\t}\n \tret = rte_eth_rx_queue_setup(port_id, rx_queue_id, nb_rx_desc,\n \t\t\t\t    socket_id, rx_conf, NULL);\n \trx_conf->rx_seg = NULL;\ndiff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h\nindex ddf5e21849..15a26171e2 100644\n--- a/app/test-pmd/testpmd.h\n+++ b/app/test-pmd/testpmd.h\n@@ -82,6 +82,9 @@ extern uint8_t cl_quit;\n \n #define MIN_TOTAL_NUM_MBUFS 1024\n \n+/* Maximum number of pools supprted per Rx queue */\n+#define MAX_MEMPOOL 8\n+\n typedef uint8_t  lcoreid_t;\n typedef uint16_t portid_t;\n typedef uint16_t queueid_t;\ndiff --git a/app/test-pmd/util.c b/app/test-pmd/util.c\nindex fd98e8b51d..f9df5f69ef 100644\n--- a/app/test-pmd/util.c\n+++ b/app/test-pmd/util.c\n@@ -150,8 +150,8 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[],\n \t\tprint_ether_addr(\" - dst=\", &eth_hdr->dst_addr,\n \t\t\t\t print_buf, buf_size, &cur_len);\n \t\tMKDUMPSTR(print_buf, buf_size, cur_len,\n-\t\t\t  \" - type=0x%04x - length=%u - nb_segs=%d\",\n-\t\t\t  eth_type, (unsigned int) mb->pkt_len,\n+\t\t\t  \" - pool=%s - type=0x%04x - length=%u - nb_segs=%d\",\n+\t\t\t  mb->pool->name, eth_type, (unsigned int) mb->pkt_len,\n \t\t\t  (int)mb->nb_segs);\n \t\tol_flags = mb->ol_flags;\n \t\tif (ol_flags & RTE_MBUF_F_RX_RSS_HASH) {\n",
    "prefixes": [
        "v4",
        "2/3"
    ]
}