get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 131714,
    "url": "https://patches.dpdk.org/api/patches/131714/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20230920113454.739356-5-chaoyong.he@corigine.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": "<20230920113454.739356-5-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230920113454.739356-5-chaoyong.he@corigine.com",
    "date": "2023-09-20T11:34:45",
    "name": "[04/13] net/nfp: improve modularazation of nfdk module",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "31347f54ee45ab697e1dc4620c43fcdb9cf433cf",
    "submitter": {
        "id": 2554,
        "url": "https://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20230920113454.739356-5-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 29570,
            "url": "https://patches.dpdk.org/api/series/29570/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=29570",
            "date": "2023-09-20T11:34:42",
            "name": "improve the modularization of NFP PMD",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/29570/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/131714/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/131714/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 60450425EF;\n\tWed, 20 Sep 2023 13:35:45 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 1804F427DD;\n\tWed, 20 Sep 2023 13:35:30 +0200 (CEST)",
            "from NAM10-BN7-obe.outbound.protection.outlook.com\n (mail-bn7nam10on2112.outbound.protection.outlook.com [40.107.92.112])\n by mails.dpdk.org (Postfix) with ESMTP id BAB0A40E7C\n for <dev@dpdk.org>; Wed, 20 Sep 2023 13:35:28 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by MN2PR13MB4039.namprd13.prod.outlook.com (2603:10b6:208:269::24)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.28; Wed, 20 Sep\n 2023 11:35:25 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::7a1c:2887:348a:84bd]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::7a1c:2887:348a:84bd%6]) with mapi id 15.20.6792.026; Wed, 20 Sep 2023\n 11:35:25 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=IW/1jWnthSMfSpZuNn71Odtguw4onQYIulzm1gA6miqYBkgFbSK65CaBra2IrR9c7cQKe3Mo+AG7V1RrHTPvKa8sCvOXhZ0Xv7CIR0+8DDG/ikgSDi2W/gYaHfW78SjaTfkC2i5g3p5CAn2jt0z1hwsZSXXEHL5PVC0TXHhJmbbJxujCHxsgtuACqu1ouG97ioXnHtJx/WeXQk+12fH+9ygGZoprlXDBR4eDw7K698/s74GLuziCCmVdi2XGVwMPI1Xm7VAA6aLmP79302W52L2WB/R6xpon6oROYb/5IOCATA1eZvBldpfp8pTU/KyykVzhCuNy0GnYijTQKtxDqA==",
        "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=gxnwO3vZkMFYLN3IEkVrewnIONnA6z4ZUsQtI1LQg9M=;\n b=WNhCZQbRHcibpOIp34aqEVyYZwg6CaorcNQS7sXqyMsf+dXkFgDRkgcZ2lkAuCL8UDLZYXlTGaTFSbToCdEtEMRzS39hwAYv1bV9VbqbtvXKY9bpteQDZGE07qmiuRscsG1mp1D+BA8LM+ILMPqaPAkon0cWKKVQv0vkXGAfMQiAR17PUGxNGbINE1zPf4yezNKSKq2KLah2v0dsXAjhxWRM3u2xHEQLdfKWDCDoZ4/mMl8jRScCm7CaXnEGsKgmSITKqa0P0VXUSSRG64M6hTU4p/MKI0jmUYuA1kRZ5vTa5LRMkJzzc8HzqXEXGREmhBMHW7gjDvcqYB8dAm6vLA==",
        "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=gxnwO3vZkMFYLN3IEkVrewnIONnA6z4ZUsQtI1LQg9M=;\n b=Mh7wjsDzuyoNCTZCAUcJMXw6XsKxi9A9r3EAK3mMIesRPZ0yzPfsGA8eDUe6l6IVWmaaow/ewInJlWDzS0e7w4P5ImQEYbTkQaWdUi/BDSMq6BfJG73xmdO0O7Rlom+uziqziiZ+UrYP5coys5UdxbQCmpOy6LpG18BP9yibUoU=",
        "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,\n\tChaoyong He <chaoyong.he@corigine.com>",
        "Subject": "[PATCH 04/13] net/nfp: improve modularazation of nfdk module",
        "Date": "Wed, 20 Sep 2023 19:34:45 +0800",
        "Message-Id": "<20230920113454.739356-5-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20230920113454.739356-1-chaoyong.he@corigine.com>",
        "References": "<20230920113454.739356-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SL2P216CA0113.KORP216.PROD.OUTLOOK.COM (2603:1096:101::10)\n 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_|MN2PR13MB4039:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "45497d23-ea3b-40f2-9374-08dbb9cdaeda",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n R4lFPWJS1XOoK1QRxR/hdU85iDXrOm2QcYKt5A07Mb9/YqizJpE3E5ureKfhSY05SgEgDTv6WIBPl+3tP5gN5ti9P2rGF+0JnlB8NLKP80xxDlFXYT/BYOsUs1JpPBQuadiU2dP+UF1/BW9szofhZd742iTEWT2qnmGmX6Fw+Y5KLChQR5bHiVGi8TEP9eZsesuOeV6IylKzAKZZJpG2ogFgSFkYKDSgGldsWbtx6cgxWZl7NdfTkTsDQQyF36WHh5QMpTDnfZP5/Y5SsNNxsoPJbqEV2a1Gn/BfVqjvB37FB3jWjL0np9bP3/RfnjM7o//tot4KTxNBqQMReyKAK9yQSmR5gxq92F8XlSAXLywsthTmoHLsOX/zcsKNQsFmAHU2DTC4EUGlkjMXIcIdUbbGke2KvF9w2BEs/FhRb5rMDOUGBkO0qTod4Jym44KDdK1lHje2ZFw5JNoL9ottuY+ttGtS2+o4soD3JcV0XUzjY8nYEHBKTsRZW2PEHTx/w59sHx788VDkTjyfMn/Ak3ZvJm+XVWXCvzi9Qd+N0/+pCvAgA302ze/6S5sgbrgmnlyE3gN6J2vU3XwtN9mLHjv3ILIdvXnXTIFSTDm46vfxZMfa7E7NPCAM9bJXIpgtHG13mh8ca1AUpHQD7XhYVZwqWIpGRdc0Zf4/YR/9Vq8=",
        "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:(13230031)(376002)(346002)(396003)(366004)(136003)(39830400003)(186009)(1800799009)(451199024)(6666004)(6512007)(52116002)(6506007)(6486002)(86362001)(41300700001)(66476007)(6916009)(66946007)(66556008)(316002)(478600001)(38100700002)(38350700002)(107886003)(8676002)(1076003)(8936002)(4326008)(36756003)(26005)(5660300002)(44832011)(83380400001)(2616005)(2906002);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n lmw6ugSb6VbPyO4NUHBYTrqmfFt3+D4b+2J2ZYjvo+0fbhkByn/0HSv2o8LDrbsLgndb/coUjxNtkmF3S7IESNiqm3pl5F7UU4Nx+smpmzI7qbRSX+6uFJRi34MEpP1FIxL95v/kCZWqjjkZ7IXKgNCeOXwGBnd5p63MJxGyoOzomWgj0zXUCCmv0pLwcfmWshZW2n5mNeLv3hIDaeiGzh5LY9JSXBrxjD3lwZ8StHgFbvu2sMkM6CmgP49CEwUrAXJgYbVrKtJ5v0vyI09ZpB/kHgplRdFL6UIZ4B8uWMLKfBeIOdxYIVt1zwgjI6p2plz0C7c21MlOrR2Rs0SUQVzUcSTOTlEr05xI8EY6Qq9OIfDfj7hKAgLbdKKr1h3weJRZCxe5qgsvVOfbJQCiGAa/MrGLrmgWjBqKdmigV9Gw9iQ/xI64LLnyCOEg2NmB/UPHZcgy+mj1DbjenpADUd2CgqDcEZEJCF2+ipJyiEqTL1MQELQvAkFeL6AX0mvibCr/Jlxt4fI7/RRFCT2NgGj0JAAkq5WhE84MNGgKdHEcflZUVhvfq/KGX4m9QgWcSqjsBpA4TG63ESdnWD2TSJQ5tczHUx0uYl8YypbA/2ErdsF+ajotNc/xneWCPwLk7Mp4Imirpne4mch0X3JjKbdZerrIjhBu3nFYQNh6Kli6GgzGGdKPLASovSnxZqN61+yjLP6zbx0h1rG3iIsYRi3vdEpIYi3qMhkpG3E3qO36GGyFFNlmVMqIrc6z2AjHmobAZ1R63NDqqyTUA6YwUwnzoT7V3kjmQ6cnpWK+FrGNpEkbYJsa2k48Lay3d1k9wXnRCcdBV6rLDSl4LB4Gmn7dbeyf/qRG5T5ElkDxKF96PAW+JNog3xvz/Qb4GCLqpUOc+sEa3TnHSB4ciSL5vDHdZcoogtpmXa+Ts7CVwjOipmHuUFcSPyFLB7+cAQhbQOkaRdbvJppELuw/htOZm7GSr68zo99+VmZyb1WzI5mZraq+brcLnHk5WZM0WSL0AKzZU729Prvvu8SPC6pRbsYnmb5Wrpl1U08pt9jSf1ju73Y5Pb+s8hFNGonc1tlPG5tYBvv9yEzo4NQRlV0JdLw5a/zJiqtMxj2O/7qUovoBB+gWWiGV9bMnI3CCFMOxrYq5NP1hEqpVGUqmFoaDGXOxxWFtMKxmbHbPakBJ3jP1AsQUppgxu1WQCsLm4mclO+/JfWryc1SnnHubD79QSer4fG5cmPwoIoPQqI0/MxFJFPpoawmcSfsRPB33wHulEjTcsaKMVXmjOjiVBFq35j3b1x2F2qREXxFbJC9vHG/ekWvNkOzoeTJTkE0A0U4CXDqCF9cJM/QMS37CdIl4r6x1IOVl1VE+AYPpiqU0N+VD/K88b+GacmVrPAPolN7TFyYPCfy1hfazVRy879iG5jsChg/4FK4rbpuP6VWvgcPTOketnIEeNEKDF1kyxIHHU40j0Aksy8BpONFoU7rkaXRuzLp/AcdVvrloa1xmrYSn33qldWea4GlcLuFHa7tM9RUpracmsg0eQVxBG2B/zoVhqyJyN4SnvhZsfGdPrX5EKqAqkeQZD43cja4U2XU5An5+61VMY4xLo4I5Lw7Hlg==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 45497d23-ea3b-40f2-9374-08dbb9cdaeda",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "20 Sep 2023 11:35:25.8194 (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 xAmOrqRy28uCbWodjwfJoE2lT+kfEhz8kgP07udypDz1Wjs+iNwyik0CLtUNKlVLOCeCH0SuhOGrJzay5T8GSU1za2lXrSkz7+miq7lf1wg=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "MN2PR13MB4039",
        "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": "Make the header file self-containing by adding the correct include\nstatement.\nTry to keep the API small by move the logic which need not expose from\nheader file to source file verbatim.\nAlso remove the unneeded header file include statement of source file.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\n---\n drivers/net/nfp/nfdk/nfp_nfdk.h    | 71 +-------------------------\n drivers/net/nfp/nfdk/nfp_nfdk_dp.c | 82 ++++++++++++++++++++++++++----\n 2 files changed, 75 insertions(+), 78 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfdk/nfp_nfdk.h b/drivers/net/nfp/nfdk/nfp_nfdk.h\nindex 66f020efb0..75ecb361ee 100644\n--- a/drivers/net/nfp/nfdk/nfp_nfdk.h\n+++ b/drivers/net/nfp/nfdk/nfp_nfdk.h\n@@ -6,8 +6,9 @@\n #ifndef _NFP_NFDK_H_\n #define _NFP_NFDK_H_\n \n+#include \"../nfp_rxtx.h\"\n+\n #define NFDK_TX_DESC_PER_SIMPLE_PKT     2\n-#define NFDK_TX_DESC_GATHER_MAX         17\n \n #define NFDK_TX_MAX_DATA_PER_HEAD       0x00001000    /* 4K */\n #define NFDK_TX_MAX_DATA_PER_DESC       0x00004000    /* 16K */\n@@ -16,7 +17,6 @@\n /* The mask of 'dma_len_xx' of address descriptor */\n #define NFDK_DESC_TX_DMA_LEN_HEAD       0x0FFF        /* [0,11] */\n #define NFDK_DESC_TX_DMA_LEN            0x3FFF        /* [0,13] */\n-#define NFDK_DESC_TX_TYPE_HEAD          0xF000        /* [12,15] */\n \n /* The mask of upper 4 bit of first address descriptor */\n #define NFDK_DESC_TX_TYPE_HEAD          0xF000        /* [12,15] */\n@@ -160,73 +160,6 @@ nfp_net_nfdk_txq_full(struct nfp_net_txq *txq)\n \treturn (nfp_net_nfdk_free_tx_desc(txq) < txq->tx_free_thresh);\n }\n \n-/* nfp_net_nfdk_tx_cksum() - Set TX CSUM offload flags in TX descriptor of nfdk */\n-static inline uint64_t\n-nfp_net_nfdk_tx_cksum(struct nfp_net_txq *txq,\n-\t\tstruct rte_mbuf *mb,\n-\t\tuint64_t flags)\n-{\n-\tuint64_t ol_flags;\n-\tstruct nfp_net_hw *hw = txq->hw;\n-\n-\tif ((hw->cap & NFP_NET_CFG_CTRL_TXCSUM) == 0)\n-\t\treturn flags;\n-\n-\tol_flags = mb->ol_flags;\n-\n-\t/* Set TCP csum offload if TSO enabled. */\n-\tif ((ol_flags & RTE_MBUF_F_TX_TCP_SEG) != 0)\n-\t\tflags |= NFDK_DESC_TX_L4_CSUM;\n-\n-\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0)\n-\t\tflags |= NFDK_DESC_TX_ENCAP;\n-\n-\t/* IPv6 does not need checksum */\n-\tif ((ol_flags & RTE_MBUF_F_TX_IP_CKSUM) != 0)\n-\t\tflags |= NFDK_DESC_TX_L3_CSUM;\n-\n-\tif ((ol_flags & RTE_MBUF_F_TX_L4_MASK) != 0)\n-\t\tflags |= NFDK_DESC_TX_L4_CSUM;\n-\n-\treturn flags;\n-}\n-\n-/* nfp_net_nfdk_tx_tso() - Set TX descriptor for TSO of nfdk */\n-static inline uint64_t\n-nfp_net_nfdk_tx_tso(struct nfp_net_txq *txq,\n-\t\tstruct rte_mbuf *mb)\n-{\n-\tuint8_t outer_len;\n-\tuint64_t ol_flags;\n-\tstruct nfp_net_nfdk_tx_desc txd;\n-\tstruct nfp_net_hw *hw = txq->hw;\n-\n-\ttxd.raw = 0;\n-\n-\tif ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) == 0)\n-\t\treturn txd.raw;\n-\n-\tol_flags = mb->ol_flags;\n-\tif ((ol_flags & RTE_MBUF_F_TX_TCP_SEG) == 0)\n-\t\treturn txd.raw;\n-\n-\ttxd.l3_offset = mb->l2_len;\n-\ttxd.l4_offset = mb->l2_len + mb->l3_len;\n-\ttxd.lso_meta_res = 0;\n-\ttxd.mss = rte_cpu_to_le_16(mb->tso_segsz);\n-\ttxd.lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len;\n-\ttxd.lso_totsegs = (mb->pkt_len + mb->tso_segsz) / mb->tso_segsz;\n-\n-\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0) {\n-\t\touter_len = mb->outer_l2_len + mb->outer_l3_len;\n-\t\ttxd.l3_offset += outer_len;\n-\t\ttxd.l4_offset += outer_len;\n-\t\ttxd.lso_hdrlen += outer_len;\n-\t}\n-\n-\treturn txd.raw;\n-}\n-\n uint32_t nfp_flower_nfdk_pkt_add_metadata(struct rte_mbuf *mbuf,\n \t\tuint32_t port_id);\n uint16_t nfp_net_nfdk_xmit_pkts_common(void *tx_queue,\ndiff --git a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\nindex 97002eed23..a85734f121 100644\n--- a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n+++ b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n@@ -3,19 +3,83 @@\n  * All rights reserved.\n  */\n \n-#include <ethdev_driver.h>\n+#include \"nfp_nfdk.h\"\n+\n #include <bus_pci_driver.h>\n #include <rte_malloc.h>\n \n-#include \"../nfp_logs.h\"\n-#include \"../nfp_common.h\"\n-#include \"../nfp_rxtx.h\"\n-#include \"../nfpcore/nfp_mip.h\"\n-#include \"../nfpcore/nfp_platform.h\"\n-#include \"../nfpcore/nfp_rtsym.h\"\n #include \"../flower/nfp_flower.h\"\n-#include \"../flower/nfp_flower_cmsg.h\"\n-#include \"nfp_nfdk.h\"\n+#include \"../nfpcore/nfp_platform.h\"\n+#include \"../nfp_logs.h\"\n+\n+#define NFDK_TX_DESC_GATHER_MAX         17\n+\n+/* Set TX CSUM offload flags in TX descriptor of nfdk */\n+static uint64_t\n+nfp_net_nfdk_tx_cksum(struct nfp_net_txq *txq,\n+\t\tstruct rte_mbuf *mb,\n+\t\tuint64_t flags)\n+{\n+\tuint64_t ol_flags;\n+\tstruct nfp_net_hw *hw = txq->hw;\n+\n+\tif ((hw->cap & NFP_NET_CFG_CTRL_TXCSUM) == 0)\n+\t\treturn flags;\n+\n+\tol_flags = mb->ol_flags;\n+\n+\t/* Set TCP csum offload if TSO enabled. */\n+\tif ((ol_flags & RTE_MBUF_F_TX_TCP_SEG) != 0)\n+\t\tflags |= NFDK_DESC_TX_L4_CSUM;\n+\n+\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0)\n+\t\tflags |= NFDK_DESC_TX_ENCAP;\n+\n+\t/* IPv6 does not need checksum */\n+\tif ((ol_flags & RTE_MBUF_F_TX_IP_CKSUM) != 0)\n+\t\tflags |= NFDK_DESC_TX_L3_CSUM;\n+\n+\tif ((ol_flags & RTE_MBUF_F_TX_L4_MASK) != 0)\n+\t\tflags |= NFDK_DESC_TX_L4_CSUM;\n+\n+\treturn flags;\n+}\n+\n+/* Set TX descriptor for TSO of nfdk */\n+static uint64_t\n+nfp_net_nfdk_tx_tso(struct nfp_net_txq *txq,\n+\t\tstruct rte_mbuf *mb)\n+{\n+\tuint8_t outer_len;\n+\tuint64_t ol_flags;\n+\tstruct nfp_net_nfdk_tx_desc txd;\n+\tstruct nfp_net_hw *hw = txq->hw;\n+\n+\ttxd.raw = 0;\n+\n+\tif ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) == 0)\n+\t\treturn txd.raw;\n+\n+\tol_flags = mb->ol_flags;\n+\tif ((ol_flags & RTE_MBUF_F_TX_TCP_SEG) == 0)\n+\t\treturn txd.raw;\n+\n+\ttxd.l3_offset = mb->l2_len;\n+\ttxd.l4_offset = mb->l2_len + mb->l3_len;\n+\ttxd.lso_meta_res = 0;\n+\ttxd.mss = rte_cpu_to_le_16(mb->tso_segsz);\n+\ttxd.lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len;\n+\ttxd.lso_totsegs = (mb->pkt_len + mb->tso_segsz) / mb->tso_segsz;\n+\n+\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0) {\n+\t\touter_len = mb->outer_l2_len + mb->outer_l3_len;\n+\t\ttxd.l3_offset += outer_len;\n+\t\ttxd.l4_offset += outer_len;\n+\t\ttxd.lso_hdrlen += outer_len;\n+\t}\n+\n+\treturn txd.raw;\n+}\n \n uint32_t\n nfp_flower_nfdk_pkt_add_metadata(struct rte_mbuf *mbuf,\n",
    "prefixes": [
        "04/13"
    ]
}