From patchwork Fri Feb 3 07:05:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 122999 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 83FC941BB9; Fri, 3 Feb 2023 08:06:41 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0AE9741148; Fri, 3 Feb 2023 08:06:37 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2112.outbound.protection.outlook.com [40.107.223.112]) by mails.dpdk.org (Postfix) with ESMTP id 1B1E242BD9 for ; Fri, 3 Feb 2023 08:06:35 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MzBJVIuQYCeVG1la4YEMJvGaD3ha4yjtsDqEkSDgGRWyP6XQf5o+7NFbIbEEn9IdMQxIin58tqwpCDzOh2XJTwE7zjCNQSw0A2DTOOpjRfm2zcFo7kPyLC6p1J8QYFWAx2ba/UW1DnHw1LQl1kOpCe12t9uNWpj/xDq8ddkGmOZ2RiQFuZM8bCHvpZDZSbkLksmM2aKeQA9WlOVRlJMLRukTYQ2qWfnQLeueqdp30De4Do4heWkI3TEIghfGwxzzRSJ8qyRgO2Zel93x+B2FXX0b9ctgIhBKER5qZWhud3bk51WtGYoKyZ3iZxc2YgyqHdaX9ewrfpRokOISLlEK7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=rsVmbIcstydiuRg9CouSGW2TSrfuwGpaaD9uNljW4pA=; b=ifVSmuuuzKgXW93f6pdfu6Lnuza6qSvKZovAcwtPjaC+J66LiTTxxVJiYnwXLAmG7vmGZu/Ja3+xswd62gjKEp7HWIHeuxA7GlmZF5ZiFlwQ1jtwR38r0y8nMq2aK8EdscwOj9mJ12HXzTlpm1TzTarG/ie6yuaBd18sGvRFT7f1xZqzJ5GnWcEXJxtzsOir7tgStVHbkmZCjZBtgrveQvEWo1fcvzPj675klKEBLTNAlU8hj9lkf9nQyCM+DPcUPOYdBKYLhpT5QLomn7Dz+F7IcdQ61PgX/PRASHoc8DVwyHLCh8gKMduPhx9mPX2e2ujG4++Sp9B32xdFl1lNhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rsVmbIcstydiuRg9CouSGW2TSrfuwGpaaD9uNljW4pA=; b=XtBBnyE2Lj284vJ6edRZNamtLsxOUApcFqaaYjhTyT6W8+mSoihtJPnTjMJgWqYkXqQHnD1BBcQu9Gvt16y4uG/4BaZdahwFhjYqgB5ibXo9Qs70CMjA/mUwtzubm2ckWPfgsEAidvDbvjqzFm7GZk8klHygdW8+QS239z+CkXI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by BY5PR13MB3762.namprd13.prod.outlook.com (2603:10b6:a03:229::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6064.24; Fri, 3 Feb 2023 07:06:29 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::7ea4:e421:5dd5:9f4d]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::7ea4:e421:5dd5:9f4d%4]) with mapi id 15.20.6064.027; Fri, 3 Feb 2023 07:06:29 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, niklas.soderlund@corigine.com, Fei Qin , Chaoyong He Subject: [PATCH 2/2] net/nfp: add support for VXLAN inner TSO with noudpcsum Date: Fri, 3 Feb 2023 15:05:55 +0800 Message-Id: <20230203070555.36199-3-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.29.3 In-Reply-To: <20230203070555.36199-1-chaoyong.he@corigine.com> References: <20230203070555.36199-1-chaoyong.he@corigine.com> X-ClientProxiedBy: SGXP274CA0011.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b8::23) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|BY5PR13MB3762:EE_ X-MS-Office365-Filtering-Correlation-Id: bfefcdc5-b4a7-4988-dddb-08db05b52c18 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Cjs0klLN3QIMvnl+QIyRmQ2HDpALmEk6WcjX+40QE743zbwi1f6KgfqW/efh9h+Yv5Sr+UIjVNcCiQ0eAYtsaWh1hl3uJq47gTZ4NdjwRajj1w814g9UWn4JdHnyeKfOTnVPaNnHtXzBGYBkQXvyYU/dcveXbdXuZ2WenPIvaQVNUNeT0nzZCc9h4RYAZUDQ1RTXgk2eyc4NX01d3zxN3G+UlAX1VeGE/FfqGZFQVzQC5Eawq73+C9eqN7ubbf7Fgp2Jtbsq72eIhfbj8IgEJmTDj4FCl860J89lEtJkLcBlCnfjobf0V6fGuq9jMA+qcF99sh9coEgT9romYQs6T0vgT+BznAOzMTBXWZ/A7YKhFTP8h+vJM4cxnsmHDMUfAKOiAz8sMY9AIITVtlZOfpwHZpjSFgZidOQ4EOPRQbX8mXNfCDKGzADRDTDgAfWansuml4Jv2yOQfBBTg8Sw1ZBJSJFAH9rTkqLekdRcm65Cr4stUKNtjSe6B2PCz1hvBZu3ArSrzrUnPk3B0LT/wKFKqex5Ct/mdPU7A0AwIO7SUh0cJeHD5qrIjSDtzvzh+5mD1Azqa8wzFcgqhFVEm132YqPTmRIq3swO+ODEc6mkUaAt1mg7TlVoFnNQu6ish2NfDAOlQViRnZ1HK0FdZRzzmCjVTvFiz5kQK0DnnnQd0bHijJj4xZdntYhv9gYydFLzJSP0DLtuvrxeenX68w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(39830400003)(396003)(346002)(136003)(366004)(376002)(451199018)(36756003)(52116002)(44832011)(6666004)(8676002)(107886003)(478600001)(316002)(6486002)(6506007)(54906003)(66476007)(5660300002)(2906002)(66556008)(4326008)(66946007)(6916009)(41300700001)(8936002)(38350700002)(38100700002)(86362001)(6512007)(83380400001)(1076003)(66574015)(186003)(26005)(2616005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?xDVYpS0zcRUDBHGdvh7eh9/Y2e8T?= =?utf-8?q?JnUsM8hAq38CVbJrX1dKzv+4qXOFT8R58tWK6on5X/+9qAK0ysY6NPEaHMtN/oeAv?= =?utf-8?q?9SwfcZYO6ThRNUAs0u7hBUxp81eDiwbPuY4rpDvbev9906Bt7m5E0osfagDx5cOrc?= =?utf-8?q?X6izHehuKpG9GMTJYMXO8QKB6iZFrbBjpH9lhd3ffGFBFW04ljZLuYss6SN3yA3JV?= =?utf-8?q?wom2+z8p5OOsbDTqFa1+GaHf6qZvBT0NrnzbnxKhgThkqvs6SEkwi2Bs+nOpYlzrt?= =?utf-8?q?QrkFYHXyiZQrYzLmpECQxjh7eItb15+NuxAe85wnbNQR3Qes5NKE6apIKRtuE0Fq9?= =?utf-8?q?KcNgo6ezXd21kioAqhuWjkoudOZQCS8MKrUI7OPsM2fzNU5oJ/Bib3KC4yMt7pYLH?= =?utf-8?q?f0s2yPB+kaeGpdX0M4aFtFHo0JUZawkDqKAuC14lRexDY17ovEtkt6KFZWHxxEkmH?= =?utf-8?q?fpfw079NlxDkVTRLcpUyD0iG0jGAL5v4u4Ex+S7Bne/nCBnKaj4mlDHa+QLDeVKkl?= =?utf-8?q?wNJIvi/6icu/+3fvMbd9M3/Gel2y2HsSCfjQ9NQ2VvAXjjQv6SNT68r1I3VJmz5Jl?= =?utf-8?q?waavtNw80jOFgp3FyNLo1IUC3sZ34OUwCnzUBeCcsFgi07/08GRBy/AHaQlrJpmSJ?= =?utf-8?q?kKG0wYUiOQU+3HY4O4PzUji+7jpNe8i9h3yNDFgoUf+llJJRYmtLgMTGIOTYSy2Bj?= =?utf-8?q?qrYQoSG7wEfhfSk+zNcnnfG0hNO9+EASJ3kpPBdgXgsUZbFWR9+BoCKvFaRA47nsG?= =?utf-8?q?PiURotYx40ExyCxsyddfxtKKOJiN8xCg9cVpgEE9s1YsBlUT7Ocf76VaKHm1knTyY?= =?utf-8?q?YrU2lOdUKYYsZL2/bCDZX+Ovv403KZn3osz21WzFz9a4eHDnVx3sXAQ7rMfWJ6/tE?= =?utf-8?q?wCG4UdblSnl+YwhmgiIy3tuf/lqea+FVYaIfiQVNDArlK2LJI/OIiTwlthn603R4N?= =?utf-8?q?vebYZsT8wIbItlWIuqYxqDSblrOejA0c+ljPzgbgcAsp+JeezWsCWbX6wGCTT/JDx?= =?utf-8?q?7VG4B8YgLJaK5LoOeW5l6WHW/5bqYOuxa30K8lPcyIaPjAGUhvSOnqLaSComzp4es?= =?utf-8?q?a62fgq8aeQnd3Bmhr9q5MnAollz0NIe+st+XetbqXUDi9FmAG3Xbh62smnmHN3vKO?= =?utf-8?q?FGkeg9R+FgPdiGx7qGMh4IwcbZQueLxLT9U8fjlYuJRNBFBlRaKaQOe4VXM6mLrgB?= =?utf-8?q?SGeGYosXKAlU9snSzaPeE9IRS3oQwTpmFUYdJny54eZor6ohUlD6U1CNTiY8QXxhH?= =?utf-8?q?ErHVCelba1fMaHCDuuV5sTeUo32nRQi1XUiEB7O1fenlmooZ16YtyBFRbT99czzvk?= =?utf-8?q?GKmOa2k1u/F5g1k67+MweWDtr7tVkOCs8Qqmdyd51DMkDlS52ErMBjZ8JsX7zVrpq?= =?utf-8?q?fof+j3f9K6NyCYcEM7JObezP0G2P31q7LCr1jEddOIZ/uHT3izyJ3G10l0S4vlNxS?= =?utf-8?q?FesSrMAXP2vSci8lEYnKajxyTBdjpO5LZGMA45g2bI4dycbE8RqxQFKoiXWtaTpsV?= =?utf-8?q?pxSweoLs6KrXZnzEsl1A/MLnk2gfYDo1sg=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfefcdc5-b4a7-4988-dddb-08db05b52c18 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2023 07:06:29.1977 (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: KbrteDRwecJxeLj/w1As9wC/+8N9YiI2D155ufroDn1LSXz250hILxW5AIdCrgKd7oir8URV3Zi5dYBrOXK9jdJf+5eyGRFV0+Tl4jLSjCU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR13MB3762 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Fei Qin The device doesn't support outer udp csum offload. Add the support for VXLAN inner TSO with noudpcsum. Signed-off-by: Fei Qin Reviewed-by: Chaoyong He Reviewed-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.c | 8 ++++++-- drivers/net/nfp/nfp_ethdev.c | 6 ++++-- drivers/net/nfp/nfp_rxtx.c | 13 +++++++++++++ drivers/net/nfp/nfp_rxtx.h | 15 +++++++++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 4f21d9978d..ddf5f131dd 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -440,7 +440,8 @@ nfp_check_offloads(struct rte_eth_dev *dev) ctrl |= NFP_NET_CFG_CTRL_TXCSUM; /* LSO offload */ - if (txmode->offloads & RTE_ETH_TX_OFFLOAD_TCP_TSO) { + if (txmode->offloads & RTE_ETH_TX_OFFLOAD_TCP_TSO || + txmode->offloads & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO) { if (hw->cap & NFP_NET_CFG_CTRL_LSO) ctrl |= NFP_NET_CFG_CTRL_LSO; else @@ -881,8 +882,11 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) RTE_ETH_TX_OFFLOAD_UDP_CKSUM | RTE_ETH_TX_OFFLOAD_TCP_CKSUM; - if (hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) + if (hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) { dev_info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_TCP_TSO; + if (hw->cap & NFP_NET_CFG_CTRL_VXLAN) + dev_info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO; + } if (hw->cap & NFP_NET_CFG_CTRL_GATHER) dev_info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_MULTI_SEGS; diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 31201c0197..a0d12600a3 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -146,8 +146,10 @@ nfp_net_start(struct rte_eth_dev *dev) update |= NFP_NET_CFG_UPDATE_GEN | NFP_NET_CFG_UPDATE_RING; /* Enable vxlan */ - new_ctrl |= NFP_NET_CFG_CTRL_VXLAN; - update |= NFP_NET_CFG_UPDATE_VXLAN; + if (hw->cap & NFP_NET_CFG_CTRL_VXLAN) { + new_ctrl |= NFP_NET_CFG_CTRL_VXLAN; + update |= NFP_NET_CFG_UPDATE_VXLAN; + } if (hw->cap & NFP_NET_CFG_CTRL_RINGCFG) new_ctrl |= NFP_NET_CFG_CTRL_RINGCFG; diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 4a7574fd65..ca146d5cfe 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -1368,6 +1368,13 @@ nfp_net_nfdk_tx_cksum(struct nfp_net_txq *txq, struct rte_mbuf *mb, ol_flags = mb->ol_flags; + /* Set TCP csum offload if TSO enabled. */ + if (ol_flags & RTE_MBUF_F_TX_TCP_SEG) + flags |= NFDK_DESC_TX_L4_CSUM; + + if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) + flags |= NFDK_DESC_TX_ENCAP; + /* IPv6 does not need checksum */ if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) flags |= NFDK_DESC_TX_L3_CSUM; @@ -1400,6 +1407,12 @@ nfp_net_nfdk_tx_tso(struct nfp_net_txq *txq, struct rte_mbuf *mb) txd.lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len; txd.lso_totsegs = (mb->pkt_len + mb->tso_segsz) / mb->tso_segsz; + if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) { + txd.l3_offset += mb->outer_l2_len + mb->outer_l3_len; + txd.l4_offset += mb->outer_l2_len + mb->outer_l3_len; + txd.lso_hdrlen += mb->outer_l2_len + mb->outer_l3_len; + } + return txd.raw; clean_txd: diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index f9223b8912..c90bd13267 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -122,6 +122,7 @@ struct nfp_meta_parsed { #define NFDK_DESC_TX_TYPE_GATHER 1 #define NFDK_DESC_TX_EOP BIT(14) #define NFDK_DESC_TX_CHAIN_META BIT(3) +#define NFDK_DESC_TX_ENCAP BIT(2) #define NFDK_DESC_TX_L4_CSUM BIT(1) #define NFDK_DESC_TX_L3_CSUM BIT(0) @@ -468,6 +469,13 @@ nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq, txd->l3_offset = mb->l2_len; txd->l4_offset = mb->l2_len + mb->l3_len; txd->lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len; + + if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) { + txd->l3_offset += mb->outer_l2_len + mb->outer_l3_len; + txd->l4_offset += mb->outer_l2_len + mb->outer_l3_len; + txd->lso_hdrlen += mb->outer_l2_len + mb->outer_l3_len; + } + txd->mss = rte_cpu_to_le_16(mb->tso_segsz); txd->flags = PCIE_DESC_TX_LSO; return; @@ -493,10 +501,17 @@ nfp_net_nfd3_tx_cksum(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd, ol_flags = mb->ol_flags; + /* Set TCP csum offload if TSO enabled. */ + if (ol_flags & RTE_MBUF_F_TX_TCP_SEG) + txd->flags |= PCIE_DESC_TX_TCP_CSUM; + /* IPv6 does not need checksum */ if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) txd->flags |= PCIE_DESC_TX_IP4_CSUM; + if (ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) + txd->flags |= PCIE_DESC_TX_ENCAP; + switch (ol_flags & RTE_MBUF_F_TX_L4_MASK) { case RTE_MBUF_F_TX_UDP_CKSUM: txd->flags |= PCIE_DESC_TX_UDP_CSUM;