From patchwork Wed Apr 11 11:05:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunil Kumar Kori X-Patchwork-Id: 37870 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 30F3D1BB42; Wed, 11 Apr 2018 13:07:00 +0200 (CEST) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0096.outbound.protection.outlook.com [104.47.40.96]) by dpdk.org (Postfix) with ESMTP id 4CCED1BACA for ; Wed, 11 Apr 2018 13:06:56 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freescale.onmicrosoft.com; s=selector1-freescale-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=LtTodzx8tQ6xGiH0YS2BRRrY/+JZ821uTsncPZeFEbI=; b=KwBJKAi3cKhbQVrfNilrRXuiAFGYyjqRhahK5T47a5I/a04TmKoOdcYjMX2hSS8w2S31AxaSo6zYVScQxaZKYd5/PsVIYXrpdb9gxbWmvFaE/T7tErYMnulklZxX0jb9hOXH42RpsxNI26ghgvalOmMC7s0rU0EBmW4srvH8qyU= Received: from MWHPR03CA0014.namprd03.prod.outlook.com (2603:10b6:300:117::24) by BN3PR03MB2177.namprd03.prod.outlook.com (2a01:111:e400:7bb9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.675.10; Wed, 11 Apr 2018 11:06:54 +0000 Received: from BL2FFO11FD011.protection.gbl (2a01:111:f400:7c09::146) by MWHPR03CA0014.outlook.office365.com (2603:10b6:300:117::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.675.10 via Frontend Transport; Wed, 11 Apr 2018 11:06:53 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11FD011.mail.protection.outlook.com (10.173.161.17) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.653.14 via Frontend Transport; Wed, 11 Apr 2018 11:06:53 +0000 Received: from sunil-OptiPlex-790.ap.freescale.net (sunil-OptiPlex-790.ap.freescale.net [10.232.132.53]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id w3BB6k4T029346; Wed, 11 Apr 2018 04:06:51 -0700 From: Sunil Kumar Kori To: CC: , Date: Wed, 11 Apr 2018 16:35:40 +0530 Message-ID: <20180411110540.30071-3-sunil.kori@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20180411110540.30071-1-sunil.kori@nxp.com> References: <20180409102602.24294-1-sunil.kori@nxp.com> <20180411110540.30071-1-sunil.kori@nxp.com> X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(346002)(396003)(39380400002)(376002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(189003)(199004)(45074003)(316002)(53936002)(5660300001)(59450400001)(97736004)(4326008)(126002)(498600001)(336012)(81166006)(106466001)(50226002)(81156014)(47776003)(8676002)(26005)(8936002)(50466002)(48376002)(69596002)(356003)(86362001)(305945005)(77096007)(85426001)(1076002)(51416003)(8656006)(36756003)(104016004)(68736007)(2351001)(486006)(446003)(16586007)(105606002)(476003)(76176011)(2616005)(6916009)(54906003)(11346002)(2906002)(6666003)(357404004); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR03MB2177; H:az84smr01.freescale.net; FPR:; SPF:Fail; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD011; 1:CzxQOORIHNvGU0WsqW3DOIIzwuI8ea2hjwAHwUSEBtLKvMeKqNBH1+YrV1Ws46Q9GWZtJU1t3WSCjdvb0BUmBasf53aIx2efj4TOSfkX8ocmapiabrfRAGId8CtQrmQk MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(8559017)(2017052603328)(7153060); SRVR:BN3PR03MB2177; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2177; 3:K/qxUXTsT9xpBrNoKWQr5be/SZVnw5RyygvsqcylVTMRyY28d6Nwq/7yXUnxnxrroxjjien1SP84Is9dhvz3EhpZk61KJy1WlseIRUC1lr3W0B9s2zCUwVMFDyOYmaJE/QOUflB68IL4jVlwx1PpUYtUNqVg7IZW2QKwx88xdsFGwsVquh9ymA3UT0iSGVwMVnjf3Q0uzvNrOP4Zf/CgFLKmQkZgxWagzQ5+iY9SBoQasQhCWnF8YOsJNPmWvV7cbbJ5jTbnzp7vhrKZW/bViYxRlkixmVd7s+ulhNkFe8aCc+9FayrNFiluncEIabytFNOP4BIiJO9xVFpavxewnz5oLddgLAuDCVhVuATh1xY=; 25:XXU9gGtmQrU2F5FmtixybmxoMdqpMa4D/UEay+ogmd2djIxW2XYcKm5eLga/Ozyd1o2b1Vo0WSCcTsgwAqjyb249X6br3Ctfyd+QUflja3zqErHY4nLc/hRXLx6PlWoCcWVF4IMB/0x3BPhGCgx59nCmFai3vZKADZQK219tQnSW2+RX8izg5L+ARGFQGzWs3szeH0AeXHAJhNxtpAu+GN9weZQL32BNnAn69TCcxpfiqknUz6mSeCF6KoRwRRwQTo7fa9zoqQw9FB+XGf9azWhnXMkZNjXaUfDJTynkcT/+psHYneY/UgsU0/YsWNpOhHBo4NwThnNSLH5yrdo8vg== X-MS-TrafficTypeDiagnostic: BN3PR03MB2177: X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2177; 31:r+oyi3tz7m25luYjRT2sCsyI6cPgPdZM4WgRyehaNIwhS7ddJKj6/hUIneil9+XxL1BP3Th1E9kAP+cijUP1LkGXT13L9f1rzRhWbfhtdj8x1HA5F9G67zDSVc9ud5xuhlHBgAjfp+yBDtOawLHAgkEuElcRo/XKMqBliQRHVlnqlkM7hrskddsPKTCGX8++MEegCxpSMj2MGEUndhAfA0vgdHuIOX4jvCsnKtR/3+g=; 20:OsGleCncKugDFS4LBawAvdYILcPbPC8ZJBCngXCRexzIbm8NhkEXW7AWJvYg/pFnZQqObm/5ktc8vNJtHTfFqktAqDptOTEhW859gSFStyvzhFzajPJVFkCYa3BWMz+i4mYmIjxR0wbU9L9McWa9qdVFGsyTPXFlwv07g5FjSyOQG9z1I/64tdei907R4aUkb1rrZZ7RE88wz3moLX/SDJxtLcgVWJXnZ6+a4+nzscWS2xfZd1ZFcam5bjigBJ/6UOMH7Sm/DhQfOBxRhOjQP3PBkeUV/in0QL/rIFV8f/0x7GTYQbYNcjuDp7zmWZyfAa53e1QsYrmBOPdpHOrdSG2l9JXbrp1cXRU0Ou9OioD29a2Kyn7XVLuQ3PUdw1Q1cYN/WAghGViG5ZoM47iAJUy+9e9sdzlzb3fufKU4vdD2Q0HpkNjHD/ehZ6DwzgLRt0iTh6y7kYYQW5gALwQk7QtdCXJnvkOTbOCJcW9gYrKPoRyZ+nzrt0TRtWlvoVMhspGytycX4pb9fvt60/Xgbe98XfV476NvVrZtbd3ZEKQYLeWgN7UYMFUZONbwYz4E3NgGE7HkEZqoYel1FxjIWxQp4iXn7pOPqwguYQFaU7w= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93003095)(3231221)(944501327)(52105095)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061750153)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:BN3PR03MB2177; BCL:0; PCL:0; RULEID:; SRVR:BN3PR03MB2177; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2177; 4:2xy1XQ+pDP+5PKkkjSoeQcZkkAZ5kT4lZ32FSdOTBgidOjzZHw01scuPPWAIVERe3T9rKRC3iUrzCImNnG/e+J9kGBAOc+0fXFztRzY+ANnRywNUiFLnRbrn0D7YYhsIwqe7yjhaWcEosP96KNz3+Gr2t4Oi1OiyJc78CN2MNz60oDM78h9aD4zPfdUCa+hDX90/+bRKxCVtRSylKhx6vM2EPe325bQYf/sRUc11BLvF/uER5PxbXMgR2uKNADFl2ncBsOkhnln6esC9yWd4TXTSjktPWGhUkqdHnkzd2S2XStTfLoc9+5wj9MQabxhv X-Forefront-PRVS: 0639027A9E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR03MB2177; 23:wHOp6/FPcFeaRj+wuWvl8KcjQlUYmZc5uGKN5yyYs?= Xu0b7Sms0FxXoALZgL5hq7SregjUecj1Z2B5Y8nWcS0MmIMAKKStTpsfw16uCseNML0HzaJpLRr3sCyiK191OsPVCk/nAaWSSZVCsXs/MKvHDcGnTLGbXpIBTFPNZ48SCyx8lcUSeYLHLww5/fYLdu0WdJ7nB0OkNNCUKmZPVxNKIeUrPQInUhGxWEHlceC5ASL4e+DYS7xrUqCn4hLOyYLnADiVuoxkUOzw9yskXQcizbsa9Xp7nXpLD+DXBjVDGABlH916DKodENuyd05c2le8x2JrFST2kFvE07HAZpWfr2fkz0Isho9Ht240OFMcwSfjMLFxuYSB4eDfDJ8NPTmri3Ygcwyol+peJQBWMNaM3nMPvvUPRAOEi/JeseIksC7x0sEawPFmRjkOPZZ9lPjwctsouYCQVdWUY0/79wcoZ4Zetmh8i70evZ1eNBpx7j2SGoWdmDg3tPriflHVhpRPHd7n1CnJwD6DeKxkmHYT+OsECTsoZvaRCdB34Hr5MPR9NFOwKoucY+07CcZVbWDI/8/dLHB1cJHJUakzONM3Yf0jOBpxp11BJnN7NNKPycU9FxCbRXSbYEL5GInm1kAQEhU85EV3ETFMVsKiP+gj9ukpzPqDvOz6uNsGQtKJV/HcDEK1GTM2ygPxURdgTWmJKw6Evf0ppXD2RNvarGyk0FRmLQbgLHS/TaqMr9QKTho+H/hnxpmrQIeqCZIeWESqF5pvRWXPjbJ6DI+Rh8t4D9Vl4jWLeFxMe/9otmGQpRJQ1eAywgT1xh4HpUfpWDYtnNO/Ep/QMQpI7dUnGsmKSB7INEP9Niux48PtK4DDyniPBIK1JQRv54nEwqucy3hMdm1GXmE3a2abWMaaxB0eZZ7AvoCu3jWHDi+CQrHyHUejIO0RIANLXO+ZMw+x2RNJN5coUm2endVrZmF+/mhq0iy6akhAM2/l99rNCYzbvNU2Lj5Hwuyb3P2CfPwnbHEw7PjinUl06YYlKSAKCcN1m8JpBCpytUUTXPZFd2nK10ddfJjPK8KXwNqoQOaMkAFNK01dAEQgrApu8Xd5Bws6JEP5GDhXOhsbtIlwX0ajJWpnCJRzYBtuQTheYhWq2VjL+o2amcu6Mq4XMfrWkcDSmxR3sahWMFCqMiUmW5H8musjRKKugg6bwyvG8/u1GwBQv/10FCJgvC0VmJz7cNIMUcR+nhp5+cgQl5XBqCIalrdAYrDuV0oCNGw9QitfUEiqNaf3pFMkLpvj0QBuXNYag== X-Microsoft-Antispam-Message-Info: oRNBIfLgTP6f1mfIVFH3iG5TiISkfYbWjZE6KXcQq9p39D8BiuDn1BTRJ6iBIJO952zJZQKmeFHKpJAK949cdSkS5uaV1aoJfSTrF+14SucsrgNNhUo6FaLSL1I9JW5PG97vwSGQC7FnC6P42c5+0Hq5ftqlmf++SvjgaHz7q/PEFjIo1cZraJ1q2DoTyNVj X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2177; 6:4h+uydCdUIt/SfcLnK59eTSbmJuhNtDG2pEJG8e26/dYBVPweKZu5xtG8/xfXD2nEAqCtNf1vn6QezY1OAQrx7pUVCyqZRpKZayzOkdbVajrahb9hjBL/4cEsbE57u8Me44ky85A1BMjC/jIiswkshXEzwG8S0/V0xwWPFniCHnypN2CYox8iwQmz3MkzShyWjSl7sMmbs5kYr7tgBg/G/BzHAQeW57eYZMywlN9d715eebfu7JSgKOb3y3tDaIu02BWmoyq3NG80WmkiDuR5kDEsVUGSLWyojZ/+dHmYTWgI1quEG/JXaeTom6T07NVb9ReHNDCKCGFDYkwLm2TylMVIKNzG52C3taBRRB1pG6OPvUaMRLOsELWhR3uaOqH3z+KLDXlYDo8dTHNgi4qmk+yc8blEO6qoDCOz8R3sEnY/axXKk8Ous0JP6hEt56Y82WZCmpt7lGR8mBhpCSiag==; 5:rNRR3EH3Ikj7rNCt8BPYc+w9dIcK2GQ7frZ1ddahmxqccWMS44hR9fFHRHiJgv1VWEh1qxN1DHFjwGMTLWwRoCjRaTgHjs3/OVi3W5HQAqBlzK9FpN43RssykBTnAbSw6bGF+CHY0HoRKTrxCjVR6iWM0UbNpn7b/mNVh72delw=; 24:QH2FjOtYJeyhdgsGadGDGltGD1lDBx0X8DxlzW8bUV6hvv2+Abxwwe6Uk/7AfBKAiMPw9KLDbDK0du+SOSHQUU9HFvMElYx2NxFvG/tww1s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2177; 7:0lyskQ3JjvX/Y34pOcOmGUftqvoiytztp3bNgMjGzUYysIp0JWiSAzrQ1zBQpeFLOoAzyve4rvxSedINink4A6p+USX+HrUXKjp9+LECiAo2RlOZnnsLOpHXKbkgt/ZYByjYsrRAThvMvnyrystyf2ZWBtXAJ2xldStFTuBH6WNTnhhGNURFTbU4FRm0+5VIyjxIOnTE10vetcByDeF3DrSapGpNMFJrxwZ0R8YfKLTc5SNx4b5gP87YLoVcEcMC X-MS-Office365-Filtering-Correlation-Id: d35d418d-ec22-4f38-1f26-08d59f9c550d X-OriginatorOrg: freescale.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2018 11:06:53.1247 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d35d418d-ec22-4f38-1f26-08d59f9c550d X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB2177 Subject: [dpdk-dev] [PATCH v2 2/2] net/dpaa2: Changes to support ethdev offload APIs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Sunil Kumar Kori --- drivers/net/dpaa2/dpaa2_ethdev.c | 75 +++++++++++++++++++++++++++++++--------- drivers/net/dpaa2/dpaa2_rxtx.c | 32 ++++++----------- 2 files changed, 70 insertions(+), 37 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 281483d..538ac1a 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -103,7 +103,8 @@ dpaa2_vlan_offload_set(struct rte_eth_dev *dev, int mask) goto next_mask; } - if (dev->data->dev_conf.rxmode.hw_vlan_filter) + if (dev->data->dev_conf.rxmode.offloads & + DEV_RX_OFFLOAD_VLAN_FILTER) ret = dpni_enable_vlan_filter(dpni, CMD_PRI_LOW, priv->token, true); else @@ -114,7 +115,8 @@ dpaa2_vlan_offload_set(struct rte_eth_dev *dev, int mask) } next_mask: if (mask & ETH_VLAN_EXTEND_MASK) { - if (dev->data->dev_conf.rxmode.hw_vlan_extend) + if (dev->data->dev_conf.rxmode.offloads & + DEV_RX_OFFLOAD_VLAN_EXTEND) DPAA2_PMD_INFO("VLAN extend offload not supported"); } @@ -172,13 +174,20 @@ dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM; + DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | + DEV_RX_OFFLOAD_VLAN_FILTER | + DEV_RX_OFFLOAD_VLAN_STRIP | + DEV_RX_OFFLOAD_JUMBO_FRAME | + DEV_RX_OFFLOAD_SCATTER; dev_info->tx_offload_capa = DEV_TX_OFFLOAD_IPV4_CKSUM | DEV_TX_OFFLOAD_UDP_CKSUM | DEV_TX_OFFLOAD_TCP_CKSUM | DEV_TX_OFFLOAD_SCTP_CKSUM | - DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM; + DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM | + DEV_TX_OFFLOAD_VLAN_INSERT | + DEV_TX_OFFLOAD_MBUF_FAST_FREE | + DEV_TX_OFFLOAD_MULTI_SEGS; dev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_2_5G | ETH_LINK_SPEED_10G; @@ -268,12 +277,33 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev) struct dpaa2_dev_priv *priv = dev->data->dev_private; struct fsl_mc_io *dpni = priv->hw; struct rte_eth_conf *eth_conf = &dev->data->dev_conf; - int rx_ip_csum_offload = false; + struct rte_eth_dev_info dev_info; + uint64_t rx_offloads = eth_conf->rxmode.offloads; + uint64_t tx_offloads = eth_conf->txmode.offloads; + int rx_l3_csum_offload = false; + int rx_l4_csum_offload = false; + int tx_l3_csum_offload = false; + int tx_l4_csum_offload = false; int ret; PMD_INIT_FUNC_TRACE(); - if (eth_conf->rxmode.jumbo_frame == 1) { + dpaa2_dev_info_get(dev, &dev_info); + if ((~(dev_info.rx_offload_capa) & rx_offloads) != 0) { + DPAA2_PMD_ERR("Some Rx offloads are not supported " + "requested 0x%" PRIx64 " supported 0x%" PRIx64, + rx_offloads, dev_info.rx_offload_capa); + return -ENOTSUP; + } + + if ((~(dev_info.tx_offload_capa) & tx_offloads) != 0) { + DPAA2_PMD_ERR("Some Tx offloads are not supported " + "requested 0x%" PRIx64 " supported 0x%" PRIx64, + tx_offloads, dev_info.tx_offload_capa); + return -ENOTSUP; + } + + if (rx_offloads & DEV_RX_OFFLOAD_JUMBO_FRAME) { if (eth_conf->rxmode.max_rx_pkt_len <= DPAA2_MAX_RX_PKT_LEN) { ret = dpni_set_max_frame_length(dpni, CMD_PRI_LOW, priv->token, eth_conf->rxmode.max_rx_pkt_len); @@ -297,32 +327,44 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev) } } - if (eth_conf->rxmode.hw_ip_checksum) - rx_ip_csum_offload = true; + if (rx_offloads & DEV_RX_OFFLOAD_IPV4_CKSUM) + rx_l3_csum_offload = true; + + if ((rx_offloads & DEV_RX_OFFLOAD_UDP_CKSUM) || + (rx_offloads & DEV_RX_OFFLOAD_TCP_CKSUM)) + rx_l4_csum_offload = true; ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, - DPNI_OFF_RX_L3_CSUM, rx_ip_csum_offload); + DPNI_OFF_RX_L3_CSUM, rx_l3_csum_offload); if (ret) { DPAA2_PMD_ERR("Error to set RX l3 csum:Error = %d", ret); return ret; } ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, - DPNI_OFF_RX_L4_CSUM, rx_ip_csum_offload); + DPNI_OFF_RX_L4_CSUM, rx_l4_csum_offload); if (ret) { DPAA2_PMD_ERR("Error to get RX l4 csum:Error = %d", ret); return ret; } + if (tx_offloads & DEV_TX_OFFLOAD_IPV4_CKSUM) + tx_l3_csum_offload = true; + + if ((tx_offloads & DEV_TX_OFFLOAD_UDP_CKSUM) || + (tx_offloads & DEV_TX_OFFLOAD_TCP_CKSUM) || + (tx_offloads & DEV_TX_OFFLOAD_SCTP_CKSUM)) + tx_l4_csum_offload = true; + ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, - DPNI_OFF_TX_L3_CSUM, true); + DPNI_OFF_TX_L3_CSUM, tx_l3_csum_offload); if (ret) { DPAA2_PMD_ERR("Error to set TX l3 csum:Error = %d", ret); return ret; } ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token, - DPNI_OFF_TX_L4_CSUM, true); + DPNI_OFF_TX_L4_CSUM, tx_l4_csum_offload); if (ret) { DPAA2_PMD_ERR("Error to get TX l4 csum:Error = %d", ret); return ret; @@ -343,8 +385,7 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev) } } - if (eth_conf->rxmode.hw_vlan_filter) - dpaa2_vlan_offload_set(dev, ETH_VLAN_FILTER_MASK); + dpaa2_vlan_offload_set(dev, ETH_VLAN_FILTER_MASK); /* update the current status */ dpaa2_dev_link_update(dev, 0); @@ -949,9 +990,11 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) return -EINVAL; if (frame_size > ETHER_MAX_LEN) - dev->data->dev_conf.rxmode.jumbo_frame = 1; + dev->data->dev_conf.rxmode.offloads &= + DEV_RX_OFFLOAD_JUMBO_FRAME; else - dev->data->dev_conf.rxmode.jumbo_frame = 0; + dev->data->dev_conf.rxmode.offloads &= + ~DEV_RX_OFFLOAD_JUMBO_FRAME; dev->data->dev_conf.rxmode.max_rx_pkt_len = frame_size; diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c index 532de94..deadf1a 100644 --- a/drivers/net/dpaa2/dpaa2_rxtx.c +++ b/drivers/net/dpaa2/dpaa2_rxtx.c @@ -317,12 +317,6 @@ eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf, struct qbman_sge *sgt, *sge = NULL; int i; - if (unlikely(mbuf->ol_flags & PKT_TX_VLAN_PKT)) { - int ret = rte_vlan_insert(&mbuf); - if (ret) - return ret; - } - temp = rte_pktmbuf_alloc(mbuf->pool); if (temp == NULL) { DPAA2_PMD_DP_DEBUG("No memory to allocate S/G table\n"); @@ -389,13 +383,6 @@ static void __attribute__ ((noinline)) __attribute__((hot)) eth_mbuf_to_fd(struct rte_mbuf *mbuf, struct qbman_fd *fd, uint16_t bpid) { - if (unlikely(mbuf->ol_flags & PKT_TX_VLAN_PKT)) { - if (rte_vlan_insert(&mbuf)) { - rte_pktmbuf_free(mbuf); - return; - } - } - DPAA2_MBUF_TO_CONTIG_FD(mbuf, fd, bpid); DPAA2_PMD_DP_DEBUG("mbuf =%p, mbuf->buf_addr =%p, off = %d," @@ -428,12 +415,6 @@ eth_copy_mbuf_to_fd(struct rte_mbuf *mbuf, struct rte_mbuf *m; void *mb = NULL; - if (unlikely(mbuf->ol_flags & PKT_TX_VLAN_PKT)) { - int ret = rte_vlan_insert(&mbuf); - if (ret) - return ret; - } - if (rte_dpaa2_mbuf_alloc_bulk( rte_dpaa2_bpid_info[bpid].bp_list->mp, &mb, 1)) { DPAA2_PMD_DP_DEBUG("Unable to allocated DPAA2 buffer\n"); @@ -734,8 +715,10 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) priv->bp_list->dpaa2_ops_index && (*bufs)->nb_segs == 1 && rte_mbuf_refcnt_read((*bufs)) == 1)) { - if (unlikely((*bufs)->ol_flags - & PKT_TX_VLAN_PKT)) { + if (unlikely(((*bufs)->ol_flags + & PKT_TX_VLAN_PKT) || + (dev->data->dev_conf.txmode.offloads + & DEV_TX_OFFLOAD_VLAN_INSERT))) { ret = rte_vlan_insert(bufs); if (ret) goto send_n_return; @@ -755,6 +738,13 @@ dpaa2_dev_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) goto send_n_return; } + if (unlikely(((*bufs)->ol_flags & PKT_TX_VLAN_PKT) || + (dev->data->dev_conf.txmode.offloads + & DEV_TX_OFFLOAD_VLAN_INSERT))) { + int ret = rte_vlan_insert(bufs); + if (ret) + goto send_n_return; + } if (mp->ops_index != priv->bp_list->dpaa2_ops_index) { DPAA2_PMD_WARN("Non DPAA2 buffer pool"); /* alloc should be from the default buffer pool