get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 131713,
    "url": "http://patches.dpdk.org/api/patches/131713/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230920113454.739356-4-chaoyong.he@corigine.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": "<20230920113454.739356-4-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230920113454.739356-4-chaoyong.he@corigine.com",
    "date": "2023-09-20T11:34:44",
    "name": "[03/13] net/nfp: improve modularazation of nfd3 module",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "b5bd2aa35dd5c9af486c294b2c4dc68034d6d2c7",
    "submitter": {
        "id": 2554,
        "url": "http://patches.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230920113454.739356-4-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 29570,
            "url": "http://patches.dpdk.org/api/series/29570/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=29570",
            "date": "2023-09-20T11:34:42",
            "name": "improve the modularization of NFP PMD",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/29570/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/131713/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/131713/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 6DBB8425EF;\n\tWed, 20 Sep 2023 13:35:38 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 0A7EC4114B;\n\tWed, 20 Sep 2023 13:35:29 +0200 (CEST)",
            "from NAM10-BN7-obe.outbound.protection.outlook.com\n (mail-bn7nam10on2091.outbound.protection.outlook.com [40.107.92.91])\n by mails.dpdk.org (Postfix) with ESMTP id 5B741427D8\n for <dev@dpdk.org>; Wed, 20 Sep 2023 13:35:27 +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:24 +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:23 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=fmigRnr4IwubaUskEhFtNUZ9TMx9aI85A/id+iq1Yp7tlWDzJCO0DFrtmzLvz8qn1fZjAy19iUKNlyLGZcbQWZYaJGZmFMYJi8+HztsBReQQIMD6STYzJtI7gJ09mnoGn2TLmxG8XDZ63A9a7tLJPbN+36kxmgkwTcyjAgaeE4Vm3NiYsWkVlfljtWrGYRwdZded9Ax3x7848WZYMIQYXT1emQBE3r9kF3IgO6trsVVo4wu47HH5saMmXmkew7xdenMo7/Jic42JrpLe1CFwPdauuxRRPA1Bt//M3UB3/RpWrqAxP1hWVCg2xom/bYeFCiyZSnuykd/imujpsqlRew==",
        "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=Z2/ir9ZQmeFUYlZ52xpBW7FQ4eivY+88/ffAgZAdGKc=;\n b=FvWhaKol9rX9h3Q8qMscSAuiItQJ9e+Ly3YBRaq2dGqdmpgpXFztjTragDiblh5QVgiyczyMoynNL8w6cpCOp6M6oWAXg3aDtHOKVapMXHKDju8PItptd39NDJ0w5JZ8XJ26xh1Ot7gX+cyqi1GJFCinU95rqE3oTG1ahB3qzZMCRJL5B4/mvsGyqfyMAdzbk31bkwfvVFL4goZzJy/GgDtb/22K71yIFDzQlb5T14lovjiXCAhq39tAtsIJntVSewF0384xPW9KCh+359oHEe8cjvItffy/UUYmh39P55iQEadaoDap0qf5KCoPkKlRfMK/WxP24kJDPIRSD2H4rw==",
        "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=Z2/ir9ZQmeFUYlZ52xpBW7FQ4eivY+88/ffAgZAdGKc=;\n b=CJvlo4LeBof8y48oHJYbimwgYnh9Da7G+7qPxKbBR6jrf+RgKbY1V/8nFNYyapl4YU+nFGAARzW5Y9PWjya6S8fBfJnAHzomMo2+cqMo4knKtnPYtq/qPuzA9FQGIlxysa32dia9c51i9+ozNaO95rjyWkhyMPEEOYhdhW5HBgA=",
        "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 03/13] net/nfp: improve modularazation of nfd3 module",
        "Date": "Wed, 20 Sep 2023 19:34:44 +0800",
        "Message-Id": "<20230920113454.739356-4-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": "344c2988-9480-4e40-2554-08dbb9cdadba",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 74R3tWSN+FzEO5O4DILK2krbHneMdnJdJc1G+m2CURnmtG8PrGMRrVBjmTjPv+WgGVSe/vEti/PfaMM9A6uaEWI7eFKr8vPYcEiw0HySqtS2GvgOnFb/GL47JH3O61soCBLem0dNWzarrAaoYLAn0ntANpXyRLGzDgTE09e3KEow6zSrzZDN+JBAmWQuMSZQxQR7eIUCyJ9WBin5R/rw2IjwSvULpNbCKU6SK7NuYOK/6qcRUbo4z1enzydz8+oSmcPE8uZxWPZV4v5h4x0aQkNAf4zcYYL+szsUW31FtpyTlI74cicxbpYXok5XrKtmGOnG+KoIzMIHqnf8VwWBinOsRMi4y5pHpxBi2Acaxgsarh/vlko2FSl+86UVIGQeonjDArRhfaV8JFXndnon8VMLJrfDj8KYaOlZPFfkO+wYB1dQKzXj1Rrp69WjxxK7YSY3rcZnbZEjd/odTNaD+jf4Dv8J+PGFUywkUi61RL70vS+JV4ScBqtf5h6Im1EF1/YgvnnzQUGdaX+FAgI/7S+cV4CfGbGO37jU+xUZNxGsb2YkTKkAMofawRZXlF/eLa00lSehYfKkrfLZHeOrxwGeSFVWacBei1XsdZRXnHjde4Rpz3TVaBqDnWK5kThsUFWUlPXd/hOee1vUSo5Ae5ibLgRABe3dFr7giWmRQKk=",
        "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 DImFvy0rSu3nVfggH1+STmwZlWKE1t8JP1ZIiNIk8o4c2SNzewg9rIMiClI2fKGAwY3MKQnak5vb1WwPyFcGs57pxnZ3D7JyOD2bAnLHS5yy1NTXaVYFStHP0uOBAs389THzpPg1QIjI6IgvX2k/w29RKcL3ED1qzjVOJjx8Ob2RT0mvjSwI7IzAEgsrTiaDydwEzPWUOyk9zt5OxHGFY6/t0DvnMbnT/veLqxbE1xrWloaFOQXrhhkwYl8wFY6k8zHPLUSyYETLxKk4caq765JzovUBkmxzgL4pmnDbpPpyX5cTWJIwlWOjeavKjgOK1lYiDm6hdLYNK/tMIzZ5SXQz7LGHgCcFy2lKA3mYDnPHlYQnea4zCyC5IVftCuVRCkPzA3/M4jQcafCY2ZDq1AxXBR/mEJd2lzThyR4IwvNKFNY4TlMwrcNcNveeLAfVaSV+qiElYhzu8nZ/gnudXcPgP/AlrDjvCVtwISH9rackvmXp41fyUsxTxd+HBD8mqwlE8aUPGxwBN2wcPkY+7FvBeqhIRpe9VI1LzoH8zVq0dktSOVg2tIXLdJQRYNSK5t7q29r3SvCoq27SCTxhos5TDlweb+AFWi/fuMhrIY/g19l+LR/lgMjanyilR/b6mnHxxg+DJclHW5iv1FCCjZKKT9SXvv+V66Cxnmgvocd0jLNtOozPRJhMyEe/U9CpaeRrOJFapTDbpEWl6QR3aogDa8+KNASzpaHsWYAg/hyI37RK3Gr0mbI8cHBlQmE8SLVXoW6LHCh7UndjchrCJ67xwhDcSzcV8abMdrSMsLNds8SOv23lLY+hRwgFOZi3v+riAdm2P7BYowScK66ETUHseo2Rh/GfMJjyL+/FTLh+QE1HKrt7KHAtvwuD89PR799KaHdENr0o6R4fj0cMZiOGqN9VV6Hx75RIJpeEeNarE80vR1jsGsN/JXRhXUXeWOQqLszt5UhKAWKdqsMy4LedG4SoQP5BQOl7oKuV8sZH6rRdvnSLAMNtZIMjozqXJKII+y1f9q9lUFvv/wxr96GmQ8bYwmB/wqWoIcOTU4K2gBKj3EXPtAUmhUtB/dSI3DiSrvN4+dl+TIePElDOmpw324jqKDRh6mVlW+Tl4/bvx4flsf+aCh+E6LyBodLNB38dCCvUzw3N15Ujl2a5tiYSxgDZD/pzLZIBwwiMZmqXW3MG3Ro/KrWh14ZW0K8q1e9asRRU4rEGE46mvQIUb/6eOMkQRA3HNmWED85/COx6/jzQ2jl+dO4nAmxL+l2xBl2L415bwB9+/1+EMbS6EBkBzasUAegmUp8n38r82/4H7WzrZA7JGpCFnP1UWo/TQTtTNs+mJ2NZiC7PfRVDfSrYHhbCHDgaB1kGCgfQ4FTQJonD+50qtUO8XvJamlHeon8MBJFVgsqgWbPp9n/z/ksW3MWpO5zca4Gs8iH2Ek+cKcU+ZavTkyKzWo1Hg62hZTpfV1Y2+zIbFTmNOL2Q/XS146G/SQEIUnnNux9N1alaXHVB1iNFg/8AMfOactZYexQ/hl/BWIJozso1FCUIi6+snMriTaGqQ8IxArIHFOaDdiYbTzdHrf9tPChnldmKHcMFovU45uGVtpQxWbfQtg==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 344c2988-9480-4e40-2554-08dbb9cdadba",
        "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:23.9299 (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 aEwuEEDArPURCpSOglvXPlqx01sGd/IHQEwLF5j5eg827Ey0abkKAxqdIEh1yrJA1HXYEsFQgvJQfo+Rlgn+13+v6Dh047N2RcIQ72f1E1I=",
        "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/nfd3/nfp_nfd3.h    | 89 +--------------------------\n drivers/net/nfp/nfd3/nfp_nfd3_dp.c | 96 ++++++++++++++++++++++++++++--\n 2 files changed, 92 insertions(+), 93 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfd3/nfp_nfd3.h b/drivers/net/nfp/nfd3/nfp_nfd3.h\nindex 910e622fa2..7c56ca4908 100644\n--- a/drivers/net/nfp/nfd3/nfp_nfd3.h\n+++ b/drivers/net/nfp/nfd3/nfp_nfd3.h\n@@ -6,20 +6,12 @@\n #ifndef _NFP_NFD3_H_\n #define _NFP_NFD3_H_\n \n+#include \"../nfp_rxtx.h\"\n+\n /* TX descriptor format */\n #define NFD3_DESC_TX_EOP                RTE_BIT32(7)\n #define NFD3_DESC_TX_OFFSET_MASK        (0x7F)        /* [0,6] */\n \n-/* Flags in the host TX descriptor */\n-#define NFD3_DESC_TX_CSUM               RTE_BIT32(7)\n-#define NFD3_DESC_TX_IP4_CSUM           RTE_BIT32(6)\n-#define NFD3_DESC_TX_TCP_CSUM           RTE_BIT32(5)\n-#define NFD3_DESC_TX_UDP_CSUM           RTE_BIT32(4)\n-#define NFD3_DESC_TX_VLAN               RTE_BIT32(3)\n-#define NFD3_DESC_TX_LSO                RTE_BIT32(2)\n-#define NFD3_DESC_TX_ENCAP              RTE_BIT32(1)\n-#define NFD3_DESC_TX_O_IP4_CSUM         RTE_BIT32(0)\n-\n #define NFD3_TX_DESC_PER_PKT     1\n \n struct nfp_net_nfd3_tx_desc {\n@@ -76,83 +68,6 @@ nfp_net_nfd3_txq_full(struct nfp_net_txq *txq)\n \treturn (nfp_net_nfd3_free_tx_desc(txq) < txq->tx_free_thresh);\n }\n \n-/* nfp_net_nfd3_tx_tso() - Set NFD3 TX descriptor for TSO */\n-static inline void\n-nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq,\n-\t\tstruct nfp_net_nfd3_tx_desc *txd,\n-\t\tstruct rte_mbuf *mb)\n-{\n-\tuint64_t ol_flags;\n-\tstruct nfp_net_hw *hw = txq->hw;\n-\n-\tif ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) == 0)\n-\t\tgoto clean_txd;\n-\n-\tol_flags = mb->ol_flags;\n-\tif ((ol_flags & RTE_MBUF_F_TX_TCP_SEG) == 0)\n-\t\tgoto clean_txd;\n-\n-\ttxd->l3_offset = mb->l2_len;\n-\ttxd->l4_offset = mb->l2_len + mb->l3_len;\n-\ttxd->lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len;\n-\n-\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0) {\n-\t\ttxd->l3_offset += mb->outer_l2_len + mb->outer_l3_len;\n-\t\ttxd->l4_offset += mb->outer_l2_len + mb->outer_l3_len;\n-\t\ttxd->lso_hdrlen += mb->outer_l2_len + mb->outer_l3_len;\n-\t}\n-\n-\ttxd->mss = rte_cpu_to_le_16(mb->tso_segsz);\n-\ttxd->flags = NFD3_DESC_TX_LSO;\n-\n-\treturn;\n-\n-clean_txd:\n-\ttxd->flags = 0;\n-\ttxd->l3_offset = 0;\n-\ttxd->l4_offset = 0;\n-\ttxd->lso_hdrlen = 0;\n-\ttxd->mss = 0;\n-}\n-\n-/* nfp_net_nfd3_tx_cksum() - Set TX CSUM offload flags in NFD3 TX descriptor */\n-static inline void\n-nfp_net_nfd3_tx_cksum(struct nfp_net_txq *txq,\n-\t\tstruct nfp_net_nfd3_tx_desc *txd,\n-\t\tstruct rte_mbuf *mb)\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;\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\ttxd->flags |= NFD3_DESC_TX_TCP_CSUM;\n-\n-\t/* IPv6 does not need checksum */\n-\tif ((ol_flags & RTE_MBUF_F_TX_IP_CKSUM) != 0)\n-\t\ttxd->flags |= NFD3_DESC_TX_IP4_CSUM;\n-\n-\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0)\n-\t\ttxd->flags |= NFD3_DESC_TX_ENCAP;\n-\n-\tswitch (ol_flags & RTE_MBUF_F_TX_L4_MASK) {\n-\tcase RTE_MBUF_F_TX_UDP_CKSUM:\n-\t\ttxd->flags |= NFD3_DESC_TX_UDP_CSUM;\n-\t\tbreak;\n-\tcase RTE_MBUF_F_TX_TCP_CKSUM:\n-\t\ttxd->flags |= NFD3_DESC_TX_TCP_CSUM;\n-\t\tbreak;\n-\t}\n-\n-\tif ((ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_L4_MASK)) != 0)\n-\t\ttxd->flags |= NFD3_DESC_TX_CSUM;\n-}\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,\ndiff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\nindex 79e1e1041c..ab0747fc16 100644\n--- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n+++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n@@ -3,16 +3,100 @@\n  * All rights reserved.\n  */\n \n-#include <ethdev_driver.h>\n+#include \"nfp_nfd3.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 \"../flower/nfp_flower.h\"\n-#include \"../flower/nfp_flower_cmsg.h\"\n-#include \"nfp_nfd3.h\"\n+#include \"../nfp_logs.h\"\n+\n+/* Flags in the host TX descriptor */\n+#define NFD3_DESC_TX_CSUM               RTE_BIT32(7)\n+#define NFD3_DESC_TX_IP4_CSUM           RTE_BIT32(6)\n+#define NFD3_DESC_TX_TCP_CSUM           RTE_BIT32(5)\n+#define NFD3_DESC_TX_UDP_CSUM           RTE_BIT32(4)\n+#define NFD3_DESC_TX_VLAN               RTE_BIT32(3)\n+#define NFD3_DESC_TX_LSO                RTE_BIT32(2)\n+#define NFD3_DESC_TX_ENCAP              RTE_BIT32(1)\n+#define NFD3_DESC_TX_O_IP4_CSUM         RTE_BIT32(0)\n+\n+/* Set NFD3 TX descriptor for TSO */\n+static void\n+nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq,\n+\t\tstruct nfp_net_nfd3_tx_desc *txd,\n+\t\tstruct rte_mbuf *mb)\n+{\n+\tuint64_t ol_flags;\n+\tstruct nfp_net_hw *hw = txq->hw;\n+\n+\tif ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) == 0)\n+\t\tgoto clean_txd;\n+\n+\tol_flags = mb->ol_flags;\n+\tif ((ol_flags & RTE_MBUF_F_TX_TCP_SEG) == 0)\n+\t\tgoto clean_txd;\n+\n+\ttxd->l3_offset = mb->l2_len;\n+\ttxd->l4_offset = mb->l2_len + mb->l3_len;\n+\ttxd->lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len;\n+\n+\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0) {\n+\t\ttxd->l3_offset += mb->outer_l2_len + mb->outer_l3_len;\n+\t\ttxd->l4_offset += mb->outer_l2_len + mb->outer_l3_len;\n+\t\ttxd->lso_hdrlen += mb->outer_l2_len + mb->outer_l3_len;\n+\t}\n+\n+\ttxd->mss = rte_cpu_to_le_16(mb->tso_segsz);\n+\ttxd->flags = NFD3_DESC_TX_LSO;\n+\n+\treturn;\n+\n+clean_txd:\n+\ttxd->flags = 0;\n+\ttxd->l3_offset = 0;\n+\ttxd->l4_offset = 0;\n+\ttxd->lso_hdrlen = 0;\n+\ttxd->mss = 0;\n+}\n+\n+/* Set TX CSUM offload flags in NFD3 TX descriptor */\n+static void\n+nfp_net_nfd3_tx_cksum(struct nfp_net_txq *txq,\n+\t\tstruct nfp_net_nfd3_tx_desc *txd,\n+\t\tstruct rte_mbuf *mb)\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;\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\ttxd->flags |= NFD3_DESC_TX_TCP_CSUM;\n+\n+\t/* IPv6 does not need checksum */\n+\tif ((ol_flags & RTE_MBUF_F_TX_IP_CKSUM) != 0)\n+\t\ttxd->flags |= NFD3_DESC_TX_IP4_CSUM;\n+\n+\tif ((ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) != 0)\n+\t\ttxd->flags |= NFD3_DESC_TX_ENCAP;\n+\n+\tswitch (ol_flags & RTE_MBUF_F_TX_L4_MASK) {\n+\tcase RTE_MBUF_F_TX_UDP_CKSUM:\n+\t\ttxd->flags |= NFD3_DESC_TX_UDP_CSUM;\n+\t\tbreak;\n+\tcase RTE_MBUF_F_TX_TCP_CKSUM:\n+\t\ttxd->flags |= NFD3_DESC_TX_TCP_CSUM;\n+\t\tbreak;\n+\t}\n+\n+\tif ((ol_flags & (RTE_MBUF_F_TX_IP_CKSUM | RTE_MBUF_F_TX_L4_MASK)) != 0)\n+\t\ttxd->flags |= NFD3_DESC_TX_CSUM;\n+}\n \n uint32_t\n nfp_flower_nfd3_pkt_add_metadata(struct rte_mbuf *mbuf,\n",
    "prefixes": [
        "03/13"
    ]
}