get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 128243,
    "url": "http://patchwork.dpdk.org/api/patches/128243/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230607015709.336420-9-chaoyong.he@corigine.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": "<20230607015709.336420-9-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230607015709.336420-9-chaoyong.he@corigine.com",
    "date": "2023-06-07T01:57:07",
    "name": "[08/10] net/nfp: merge the xmit function of NFD3",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "ab6b61af222ef6fde573ffc140e87debf56b8284",
    "submitter": {
        "id": 2554,
        "url": "http://patchwork.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.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/20230607015709.336420-9-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 28380,
            "url": "http://patchwork.dpdk.org/api/series/28380/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=28380",
            "date": "2023-06-07T01:56:59",
            "name": "support rte_flow for flower firmware with NFDk",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/28380/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/128243/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/128243/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 1764842C45;\n\tWed,  7 Jun 2023 03:58:51 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 9EEF842D64;\n\tWed,  7 Jun 2023 03:58:10 +0200 (CEST)",
            "from NAM11-CO1-obe.outbound.protection.outlook.com\n (mail-co1nam11on2090.outbound.protection.outlook.com [40.107.220.90])\n by mails.dpdk.org (Postfix) with ESMTP id 8BC8D42D61\n for <dev@dpdk.org>; Wed,  7 Jun 2023 03:58:09 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by PH7PR13MB5453.namprd13.prod.outlook.com (2603:10b6:510:138::5)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Wed, 7 Jun\n 2023 01:58:08 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::d2cb:a650:e1ce:2174]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::d2cb:a650:e1ce:2174%3]) with mapi id 15.20.6455.030; Wed, 7 Jun 2023\n 01:58:08 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Lm10Uvn+J2YqLHNGFDUGyKVa7lJGANfruzqZKekuvO1iA2ENDQfX4hE0N+x76TZUVBKS8y4R61OoeEBUVIlQZ6Wp/zaq3Cn5Df8JzcjGDI9jL65kD+9JihZOF18Y6PqQsyQfDQ4EOYCsv2ZVuVNboHme6OagY3efB/0ImZylvfXUeY5ZZw+Ct8WMsPcG5DZoVk7dW1yiEvTk35RjrK+AKR2N2Mn+1rGMT6sjE1CvKLc1s2dka8U2x/igsWBdfedl8PLYCDiA3+9rtzb3pejewinwTx89tIkQ287JEivXYoDypci1RxNh52mhJNDo2QoQt+PpmtBWHZ4cUTy+0dkBuQ==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=ywlwfF3mMuLKz2U0RLDU0OB6tukCp8M10f86ViOvpYc=;\n b=biryt9XR892lVB+PIjmfLW78yKb2mPuPvlEhrNuvrCAJk9T5S601/zlZ+XFXkCqDBN9OpDaFMsFtb8jb/f/g+QO41DwFMep/tBObj3P70AyBHnV5ckl4474hgs2H9sZHJZhIhn8btVSPR17Vz6q9wzpOShj30zObAX6/oywB7BuhSr9Co7E7FMrse813pmxCU+JaB8kHoCWy6WYvWUauD4yvoKEfry5vOh7w+whVqVzrExHlLi+w76cvvqfEqXBRuN5UCCDatGT//tGaIjq0PJBapG3kIzrcRe//cCadSq3TGw1bMG/UaIO3sWPDRLosMz4yOufB5KxrDoBxtfPIag==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=ywlwfF3mMuLKz2U0RLDU0OB6tukCp8M10f86ViOvpYc=;\n b=jIuMPHUjJ+m1gSgWidgDrZLB1F7G1We1ro6rlKPNU/OsG42h2cdu13yUzNCV7U5rTYz1QRaXw7+PRUMUi1NcmS0717tfNAoUkJ2fTOduVAUxANZI5D0pXWMznySKCt67llB/wtXZqIj0pvSeEcfdAqiAGOiPELm1/Uz1bzIPXYs=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Chaoyong He <chaoyong.he@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "oss-drivers@corigine.com, niklas.soderlund@corigine.com,\n Chaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH 08/10] net/nfp: merge the xmit function of NFD3",
        "Date": "Wed,  7 Jun 2023 09:57:07 +0800",
        "Message-Id": "<20230607015709.336420-9-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20230607015709.336420-1-chaoyong.he@corigine.com>",
        "References": "<20230607015709.336420-1-chaoyong.he@corigine.com>",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "X-ClientProxiedBy": "SG2PR02CA0131.apcprd02.prod.outlook.com\n (2603:1096:4:188::6) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|PH7PR13MB5453:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "ff2ee9fe-14af-4c0e-88c9-08db66faa3b8",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n Su4DtlSalWHRWazp6vvff+qZV4DBUb0EHipOIhmVgvK5BTYUQrIZROva9gxL1fOdKVwT1zDJnhwIrmmgQ4FjCL0oPpY3eyk8ZgngtwULxWgYU8oujmawop0h3gati00/nfY7qktxsoM87OslgYl/dApC/efNIs17VAFFEBM8qChfY225ZGYoDXLp3frZHFJTr/+OGlNgcFnqS1a9vg0PYhHEfYZEqwgFUEbOut/ZJK35cfXKHD5xi/1Nb2IpEeQZe2H9SZhLnNCQdlHKOiInEcOfmsaf/X7ADYDNi6958UevRREcxgkxKvElrPV16F3VVjCwnhoTQlx/Z/tC9HgJfD96XvehxOkPWjkhf1YqG6VJnlBqofnmPL+onuygEu8WQ1httLT55cZHf8LWbDVJPWSHK2MNH2jZ7g6CFMxsyWR3aF/blqLE2ctD5TC5wnOtDS+stYxnJbpA060Ui9ev7PmluW+uQ/04+rlJLywO2NPYTCu6gd+1XAQarPcXbu/cyKtkwHvuwQJl2mUFKWk79Pm68nVgAOBpYzQHP00kS4QZpPwe1ht2zZASYlWxw8ZfkaVNIizVSN+NfnuWUfvoB/ZbWzMAPPZcn7Sd7iSt4ACACvEPr/j0rUcFxEmF4a8S",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230028)(4636009)(346002)(396003)(376002)(136003)(366004)(39840400004)(451199021)(107886003)(1076003)(6506007)(26005)(6512007)(36756003)(83380400001)(38350700002)(86362001)(38100700002)(186003)(2616005)(8676002)(4326008)(41300700001)(44832011)(6916009)(478600001)(66946007)(66476007)(2906002)(316002)(8936002)(5660300002)(6486002)(52116002)(66556008);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "=?utf-8?q?ogZkznVacaCVbpyne5vGwS+i7tar?=\n\t=?utf-8?q?g5B8ZSeZdnnxtwdJTr+gz9VPqv5196EIXbRhX2auhYoooI4IPUf4YMxeHF4soOh6o?=\n\t=?utf-8?q?IMprmYbGFg/b2IoIRnktBRe05v41f1Xu/cbHk7kaHCqxpumtbeHMCuo1yLBdmBhsa?=\n\t=?utf-8?q?nGYb17FvpNxrP4E6lk3jW+YSpK61p7bZ+ESWewu0j89qdZ86R6J60boJZ7VB6WyIZ?=\n\t=?utf-8?q?Y+D+a+oBsVemtvebDt1HNsoRb2kIJD5fyl+fnJYxxHH4OV6AvmEnt+B6YGG63Q0w3?=\n\t=?utf-8?q?mSC6HCClVe0j/o8BFIoO7w2P3PTtsjH6tVIoYRVYXFJ9k/w+sAbpGrB6Sw4AnfJAo?=\n\t=?utf-8?q?UL0vp4i+JdKEOz7alRVL3uCQQxmJRmLqsmxzoSgbRsO8XuyIBZg5kYcvvn1VHfa2B?=\n\t=?utf-8?q?I+nMPm6ZTvDtRqljpuhdhJMbBqgS8z5Wh5hlLgWsBsk387Zi3Gm+HnQgVn/MdReob?=\n\t=?utf-8?q?0Od6/VZ0GqnoMb+QWjcSgRBXdOL+WZtUko0dyywJQhP2sNgUhCRlu+eeCg2JK/dAH?=\n\t=?utf-8?q?thZkxx0AVW9BrCM9Zd58vtbi0mb66j+iFaU0clnwgD6cDyYKTl1y8XDwJL8x11337?=\n\t=?utf-8?q?jzX7WJskFUmZvViMMqUbEkixJXJtCulBgic/555bEa/zmWdCXvEeHJSbx4FUMFArS?=\n\t=?utf-8?q?fhn1xuDS5qNIoU9H55Yo/y0ub6rOMolZpSNWWRzOsJhmRg8SeY7vRy3QlNbGVqCaP?=\n\t=?utf-8?q?UYtYHKG/oqvLW2LkYWBKMJRFzbnhZuDgPBrf9MWjj2fqbu4JYft2WxsLJWR2BRUwd?=\n\t=?utf-8?q?QqteEW0wXRb5E2NF5ubVgMzoz2i33TVZc3Hx0Dh9a1UIMNK6LgjHwZ8c21ycsgyAY?=\n\t=?utf-8?q?IOWs6/75mD1nT/IRmpVNWhcv4frgMsJtGtco7FZ67v5CtyW1go7S6nZTtWWSiZ+VY?=\n\t=?utf-8?q?DYCi2uDbIsk2MwNiUWTlM7VTEb72vO6GGO6Vq9SeoqGX/jN0+3y4sqntPkC2s3ZMB?=\n\t=?utf-8?q?Jk7p9Dp2mDV4vkDqGbiY57vkJL9OMU0GjnkYeB8na9sXXffGHhzJne6KCOTJxkTa7?=\n\t=?utf-8?q?ABnVb0qsLy7Kbuc/0+scu9ioxVaWd6kDRTdb8mQ6c6QdB8YoiAir9sAw5ROseFFsE?=\n\t=?utf-8?q?LIOnL4wHC0xJeN94sYzI5/gae9I9IyBJOfFQe2LInmzGcptabpcooPlFJnYAVt0lL?=\n\t=?utf-8?q?gVSuhAsNNSHmeRVsDld2gc9GNaSriq628seuRJ2kFgtKLrzEnLWpHUjGAXExg00zS?=\n\t=?utf-8?q?5YwnYLvhPgK4JLiRZ1lrxRGvm/9EtjGWAchfK9LwRxiKsAIFUyY7EAfGLpOc1b/3R?=\n\t=?utf-8?q?V31A9uZTCm3fMZxVEs6e7bWddME6x6YiGRSFswiujCncL50K/8SY1qvT8zrv50gRF?=\n\t=?utf-8?q?eAbdrE3Q3TqfEKZ+VJ2uE+7crDn7Ds/EuTEaw9Ak/LK/LMjOKDwPjBlEy26Te7JwY?=\n\t=?utf-8?q?cHpwQbnx4lqmfefz89fisAcduexhXrzMYqW3zMUEZpQOTuBoYEhG5rWgiSXrJvByu?=\n\t=?utf-8?q?nCtT/mkfCjZx8130ZoYL+pU8i/ROjQgGb7l3aSAe4Ep0qu3VICIU1QO337SzegY7q?=\n\t=?utf-8?q?BOScftjHcZwP2ve7W9Do1e8+7e+gxPjB1g=3D=3D?=",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ff2ee9fe-14af-4c0e-88c9-08db66faa3b8",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Jun 2023 01:58:07.9663 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "fe128f2c-073b-4c20-818e-7246a585940c",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n CygnORoXag72rX2bmfnSo2AnGr1MqX61BpTKZqKkHW04L6J6+YLiersji8YSUtnArz2l5PFr/Jw2b3jwpZKGU8L2RleH1+LLZlKCZKCwdvA=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PH7PR13MB5453",
        "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 only different logic between the NFD3 xmit function of PF representor\nport and PF is if the logic about metadata exists. So squash the NFD3\nxmit function and use a parameter to distinguish them.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Niklas Söderlund <niklas.soderlund@corigine.com>\n---\n drivers/net/nfp/flower/nfp_flower.c | 124 +---------------------------\n drivers/net/nfp/nfd3/nfp_nfd3.h     |   4 +\n drivers/net/nfp/nfd3/nfp_nfd3_dp.c  |  23 +++++-\n 3 files changed, 24 insertions(+), 127 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c\nindex 748b45b9ad..3bc863b9f1 100644\n--- a/drivers/net/nfp/flower/nfp_flower.c\n+++ b/drivers/net/nfp/flower/nfp_flower.c\n@@ -490,129 +490,7 @@ nfp_flower_pf_nfd3_xmit_pkts(void *tx_queue,\n \t\tstruct rte_mbuf **tx_pkts,\n \t\tuint16_t nb_pkts)\n {\n-\tint i;\n-\tint pkt_size;\n-\tint dma_size;\n-\tuint64_t dma_addr;\n-\tuint16_t free_descs;\n-\tuint16_t issued_descs;\n-\tstruct rte_mbuf *pkt;\n-\tstruct nfp_net_hw *hw;\n-\tstruct rte_mbuf **lmbuf;\n-\tstruct nfp_net_txq *txq;\n-\tstruct nfp_net_nfd3_tx_desc txd;\n-\tstruct nfp_net_nfd3_tx_desc *txds;\n-\n-\ttxq = tx_queue;\n-\thw = txq->hw;\n-\ttxds = &txq->txds[txq->wr_p];\n-\n-\tPMD_TX_LOG(DEBUG, \"working for queue %hu at pos %u and %hu packets\",\n-\t\t\ttxq->qidx, txq->wr_p, nb_pkts);\n-\n-\tif ((nfp_net_nfd3_free_tx_desc(txq) < nb_pkts) || (nfp_net_nfd3_txq_full(txq)))\n-\t\tnfp_net_tx_free_bufs(txq);\n-\n-\tfree_descs = (uint16_t)nfp_net_nfd3_free_tx_desc(txq);\n-\tif (unlikely(free_descs == 0))\n-\t\treturn 0;\n-\n-\tpkt = *tx_pkts;\n-\tissued_descs = 0;\n-\n-\t/* Sending packets */\n-\tfor (i = 0; i < nb_pkts && free_descs > 0; i++) {\n-\t\t/* Grabbing the mbuf linked to the current descriptor */\n-\t\tlmbuf = &txq->txbufs[txq->wr_p].mbuf;\n-\t\t/* Warming the cache for releasing the mbuf later on */\n-\t\tRTE_MBUF_PREFETCH_TO_FREE(*lmbuf);\n-\n-\t\tpkt = *(tx_pkts + i);\n-\n-\t\tif (unlikely(pkt->nb_segs > 1 &&\n-\t\t\t\t!(hw->cap & NFP_NET_CFG_CTRL_GATHER))) {\n-\t\t\tPMD_INIT_LOG(ERR, \"Multisegment packet not supported\");\n-\t\t\tgoto xmit_end;\n-\t\t}\n-\n-\t\t/* Checking if we have enough descriptors */\n-\t\tif (unlikely(pkt->nb_segs > free_descs))\n-\t\t\tgoto xmit_end;\n-\n-\t\t/*\n-\t\t * Checksum and VLAN flags just in the first descriptor for a\n-\t\t * multisegment packet, but TSO info needs to be in all of them.\n-\t\t */\n-\t\ttxd.data_len = pkt->pkt_len;\n-\t\tnfp_net_nfd3_tx_tso(txq, &txd, pkt);\n-\t\tnfp_net_nfd3_tx_cksum(txq, &txd, pkt);\n-\n-\t\tif ((pkt->ol_flags & RTE_MBUF_F_TX_VLAN) &&\n-\t\t\t\t(hw->cap & NFP_NET_CFG_CTRL_TXVLAN)) {\n-\t\t\ttxd.flags |= NFD3_DESC_TX_VLAN;\n-\t\t\ttxd.vlan = pkt->vlan_tci;\n-\t\t}\n-\n-\t\t/*\n-\t\t * mbuf data_len is the data in one segment and pkt_len data\n-\t\t * in the whole packet. When the packet is just one segment,\n-\t\t * then data_len = pkt_len\n-\t\t */\n-\t\tpkt_size = pkt->pkt_len;\n-\n-\t\twhile (pkt != NULL && free_descs > 0) {\n-\t\t\t/* Copying TSO, VLAN and cksum info */\n-\t\t\t*txds = txd;\n-\n-\t\t\t/* Releasing mbuf used by this descriptor previously*/\n-\t\t\tif (*lmbuf != NULL)\n-\t\t\t\trte_pktmbuf_free_seg(*lmbuf);\n-\n-\t\t\t/*\n-\t\t\t * Linking mbuf with descriptor for being released\n-\t\t\t * next time descriptor is used\n-\t\t\t */\n-\t\t\t*lmbuf = pkt;\n-\n-\t\t\tdma_size = pkt->data_len;\n-\t\t\tdma_addr = rte_mbuf_data_iova(pkt);\n-\n-\t\t\t/* Filling descriptors fields */\n-\t\t\ttxds->dma_len = dma_size;\n-\t\t\ttxds->data_len = txd.data_len;\n-\t\t\ttxds->dma_addr_hi = (dma_addr >> 32) & 0xff;\n-\t\t\ttxds->dma_addr_lo = (dma_addr & 0xffffffff);\n-\t\t\tfree_descs--;\n-\n-\t\t\ttxq->wr_p++;\n-\t\t\tif (unlikely(txq->wr_p == txq->tx_count)) /* wrapping?*/\n-\t\t\t\ttxq->wr_p = 0;\n-\n-\t\t\tpkt_size -= dma_size;\n-\n-\t\t\t/*\n-\t\t\t * Making the EOP, packets with just one segment\n-\t\t\t * the priority\n-\t\t\t */\n-\t\t\tif (likely(pkt_size == 0))\n-\t\t\t\ttxds->offset_eop = NFD3_DESC_TX_EOP | FLOWER_PKT_DATA_OFFSET;\n-\t\t\telse\n-\t\t\t\ttxds->offset_eop = 0;\n-\n-\t\t\tpkt = pkt->next;\n-\t\t\t/* Referencing next free TX descriptor */\n-\t\t\ttxds = &txq->txds[txq->wr_p];\n-\t\t\tlmbuf = &txq->txbufs[txq->wr_p].mbuf;\n-\t\t\tissued_descs++;\n-\t\t}\n-\t}\n-\n-xmit_end:\n-\t/* Increment write pointers. Force memory write before we let HW know */\n-\trte_wmb();\n-\tnfp_qcp_ptr_add(txq->qcp_q, NFP_QCP_WRITE_PTR, issued_descs);\n-\n-\treturn i;\n+\treturn nfp_net_nfd3_xmit_pkts_common(tx_queue, tx_pkts, nb_pkts, true);\n }\n \n static void\ndiff --git a/drivers/net/nfp/nfd3/nfp_nfd3.h b/drivers/net/nfp/nfd3/nfp_nfd3.h\nindex 5bf89868fc..910e622fa2 100644\n--- a/drivers/net/nfp/nfd3/nfp_nfd3.h\n+++ b/drivers/net/nfp/nfd3/nfp_nfd3.h\n@@ -155,6 +155,10 @@ nfp_net_nfd3_tx_cksum(struct nfp_net_txq *txq,\n \n uint32_t nfp_flower_nfd3_pkt_add_metadata(struct rte_mbuf *mbuf,\n \t\tuint32_t port_id);\n+uint16_t nfp_net_nfd3_xmit_pkts_common(void *tx_queue,\n+\t\tstruct rte_mbuf **tx_pkts,\n+\t\tuint16_t nb_pkts,\n+\t\tbool repr_flag);\n uint16_t nfp_net_nfd3_xmit_pkts(void *tx_queue,\n \t\tstruct rte_mbuf **tx_pkts,\n \t\tuint16_t nb_pkts);\ndiff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\nindex 2ad098a699..ee39686329 100644\n--- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n+++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n@@ -109,10 +109,20 @@ uint16_t\n nfp_net_nfd3_xmit_pkts(void *tx_queue,\n \t\tstruct rte_mbuf **tx_pkts,\n \t\tuint16_t nb_pkts)\n+{\n+\treturn nfp_net_nfd3_xmit_pkts_common(tx_queue, tx_pkts, nb_pkts, false);\n+}\n+\n+uint16_t\n+nfp_net_nfd3_xmit_pkts_common(void *tx_queue,\n+\t\tstruct rte_mbuf **tx_pkts,\n+\t\tuint16_t nb_pkts,\n+\t\tbool repr_flag)\n {\n \tint i;\n \tint pkt_size;\n \tint dma_size;\n+\tuint8_t offset;\n \tuint64_t dma_addr;\n \tuint16_t free_descs;\n \tuint16_t issued_descs;\n@@ -122,7 +132,6 @@ nfp_net_nfd3_xmit_pkts(void *tx_queue,\n \tstruct nfp_net_txq *txq;\n \tstruct nfp_net_nfd3_tx_desc txd;\n \tstruct nfp_net_nfd3_tx_desc *txds;\n-\tstruct nfp_net_meta_raw meta_data;\n \n \ttxq = tx_queue;\n \thw = txq->hw;\n@@ -146,7 +155,6 @@ nfp_net_nfd3_xmit_pkts(void *tx_queue,\n \n \t/* Sending packets */\n \tfor (i = 0; i < nb_pkts && free_descs > 0; i++) {\n-\t\tmemset(&meta_data, 0, sizeof(meta_data));\n \t\t/* Grabbing the mbuf linked to the current descriptor */\n \t\tlmbuf = &txq->txbufs[txq->wr_p].mbuf;\n \t\t/* Warming the cache for releasing the mbuf later on */\n@@ -154,7 +162,14 @@ nfp_net_nfd3_xmit_pkts(void *tx_queue,\n \n \t\tpkt = *(tx_pkts + i);\n \n-\t\tnfp_net_nfd3_set_meta_data(&meta_data, txq, pkt);\n+\t\tif (!repr_flag) {\n+\t\t\tstruct nfp_net_meta_raw meta_data;\n+\t\t\tmemset(&meta_data, 0, sizeof(meta_data));\n+\t\t\tnfp_net_nfd3_set_meta_data(&meta_data, txq, pkt);\n+\t\t\toffset = meta_data.length;\n+\t\t} else {\n+\t\t\toffset = FLOWER_PKT_DATA_OFFSET;\n+\t\t}\n \n \t\tif (unlikely(pkt->nb_segs > 1 &&\n \t\t\t\t(hw->cap & NFP_NET_CFG_CTRL_GATHER) == 0)) {\n@@ -222,7 +237,7 @@ nfp_net_nfd3_xmit_pkts(void *tx_queue,\n \t\t\t\ttxds->offset_eop = 0;\n \n \t\t\t/* Set the meta_len */\n-\t\t\ttxds->offset_eop |= meta_data.length;\n+\t\t\ttxds->offset_eop |= offset;\n \n \t\t\tpkt = pkt->next;\n \t\t\t/* Referencing next free TX descriptor */\n",
    "prefixes": [
        "08/10"
    ]
}