From patchwork Mon Apr 9 10:26:02 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: 37649 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 1C05A1B7C7; Mon, 9 Apr 2018 13:30:09 +0200 (CEST) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0089.outbound.protection.outlook.com [104.47.33.89]) by dpdk.org (Postfix) with ESMTP id 39A6A1B72B for ; Mon, 9 Apr 2018 13:30:04 +0200 (CEST) Received: from MWHPR03CA0014.namprd03.prod.outlook.com (2603:10b6:300:117::24) by BN6PR03MB2513.namprd03.prod.outlook.com (2603:10b6:404:15::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.653.12; Mon, 9 Apr 2018 11:30:02 +0000 Received: from BY2FFO11FD006.protection.gbl (2a01:111:f400:7c0c::125) 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.653.12 via Frontend Transport; Mon, 9 Apr 2018 11:30:01 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD006.mail.protection.outlook.com (10.1.14.127) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.631.7 via Frontend Transport; Mon, 9 Apr 2018 11:30:01 +0000 Received: from sunil-OptiPlex-790.ap.freescale.net (sunil-OptiPlex-790.ap.freescale.net [10.232.132.53]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id w39AR7dD012580; Mon, 9 Apr 2018 03:27:12 -0700 From: Sunil Kumar Kori To: CC: , Date: Mon, 9 Apr 2018 15:56:02 +0530 Message-ID: <20180409102602.24294-3-sunil.kori@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20180409102602.24294-1-sunil.kori@nxp.com> References: <20180409102602.24294-1-sunil.kori@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131677470018191288; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(396003)(39860400002)(39380400002)(346002)(376002)(2980300002)(1109001)(1110001)(339900001)(45074003)(189003)(199004)(50226002)(81156014)(86362001)(446003)(81166006)(105606002)(8676002)(336012)(8936002)(2351001)(97736004)(48376002)(68736007)(51416003)(50466002)(104016004)(53936002)(106466001)(305945005)(77096007)(4326008)(26005)(47776003)(6666003)(6916009)(498600001)(2906002)(2616005)(85426001)(76176011)(316002)(11346002)(54906003)(5660300001)(126002)(476003)(16586007)(36756003)(486006)(59450400001)(1076002)(356003)(357404004); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2513; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; LANG:en; PTR:InfoDomainNonexistent; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD006; 1:A120N1gU4sbeD/298Ji6xDyF9c8wlCvRB2BSDBNb43MGf/4Um5i5AfMQ5SWKk8xfaYVsn0bjMTSKxCNGelU1ZqV84RUP5xo4KBKbnoE6hco4JL3091/hZSzeat/0hlXV MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 59ac538f-82b1-4844-d34f-08d59e0d3bbc X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(5600026)(4604075)(2017052603328); SRVR:BN6PR03MB2513; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2513; 3:KAA+0xrvwHLzRXUVQI0l7dU+UMpF3qfsvday3JxSZceOlSUdQAXrK2paZRHCOjLn3h/5eKn97MTx/VSZPOXrZjlrHEavgnr3wLtniE+NPY8RwMhLMQDSnb7LdvnGHwDW0C1GF8LyWx+REBQNoIHa+fXbFknPsI2ffvwsod78hHSKj1+tcJKH3Fzbvvlb2RU1JPUeO/GQ+rZjS49hSIYJtRz5dDifd3h7H1uUBD0YiN1+W5FCbMeZ0GKcE5MHVaK7GX1OaRShlJFFrilujR6ZwJXJILJiYDw6Ot8628mEKxH3VXDo9/Igsfd/ilK05u+yyxhID/5GIF5vGNzdVoujWjIBygw+f7FQYgeVM9kicCE=; 25:2jB5QBtEZGO0NJRi2n9Ez5F2dSr2u7uUZYPjkLaI30ONJQP1GVMHKxINPe3adsqDpBEoS+QuzpWUJ1pd7FaSIgivkaU7fEObBGAU7sGqW52BuaVt91y5G+hlp8Fq09KhnJ4TWJYkF9SKW+1zVYKUiKJEOcRh1ODYeBufARK1UL9K89YCuOCanZs1IJttG1eKi2N3Z67cgQ5Zj6S4ZREaND2ByAq1qCutYh2ojg3UqgArXiZ4CW8GWysvPPUOWrnnx2/eRYtPUe4Oc+oTR1FUeLXRhR4z3CwjFRbSF3H8WdwlVBegz4XxJ6wwkDTfnVUZFI4z2SDsu84QfEnsf6Ep6Q== X-MS-TrafficTypeDiagnostic: BN6PR03MB2513: X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2513; 31:VMX3vaUAj9rBKchr6mzq+Zek/Gcr95ukw7euzzrs2lNghcw50r/GyfDMCgQy131tBlXU2tDbYRzB9DX2WYp0joODTCVv9Lo7TWttN4OlZYqhSuHxuSsKoqK7LgeBDmMmKUuarSkDMGX8HdmaD8j7UgqY2KRaPHtoLtLwRUdsTkRVHH30iVzMtk6hH41+un2vfuMeZJTQ+Gc8kGLp0C5x4YTJzzfw149QKBwaoQGgBEw=; 4:jx7x26NZAZBu2tM6+IbSk/PEXy9jqg49I8abpXwdFGOrEhHQgcNFfpYHjmlVk33M3JyZ/ixXLK7pMBGmZxhPfmBv/oLCKj06WJzB/JbRCox/PObHbc1QCVrJ1tYJAhj93oJC9FpioDYS5l3pLn5kCryZHrexHjnquV0scehcOI60GKjo3OeNAErDnuC1vy8rEo+0/SWxORlSv8ovtDAviZQ0gQy0xR/vPamqfybEFznydN9PGcAFrhJO2L7uZI4Mzau9KMQXiGPbMmzzW626XKmmkgBSZF5HpZCEYj4mqh4z2p23zKIGDqwAMZM9IcOT X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(8121501046)(5005006)(3231221)(944501327)(52105095)(10201501046)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123556025)(20161123563025)(20161123561025)(20161123559100)(20161123565025)(201703131430075)(201703131448075)(201703131433075)(201703151042153)(201708071742011); SRVR:BN6PR03MB2513; BCL:0; PCL:0; RULEID:(400006); SRVR:BN6PR03MB2513; X-Forefront-PRVS: 0637FCE711 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2513; 23:8wfOBg3ENFGQLD7BgUDTuFKObKSeawG0+tkNagfXx?= FUrKh8jOEUiDGMaSnsRI5+kEZlP+qoCdlEe8F2MUiJADRHWbSKb2ycAnlaj1H2LG7JoUUFJMM00SjKCsaCuUdDZH2AkJqqAdSHFOYlsmV+Y7Hsi7ajNuxaXtLkFNUC6ZN+xX2FeToU1j1In0fy4M7L3v6eWXzN+p9A0qo/ijaUGGORTLy7m76Cpvn2+1GlUJ7RgZVKcRWYKyN71TXwIqM2z2/2yhMz4mRq2DQHNbqBtoFITeIpEB/MhEew/QyGda5fgzWd9KjTJJNdFkuKr6zzr4kVL54S2tWgDkeTCwD4h+qBKD2SgWyfkkkdw6VtSwpg1MmEJ2Tkpuz/toOJ76mJcHHVlZ+8RhIbeJWVNCkOPYkMwg8zqgKSiK4+SI3E43wbFFoIcWBWoqu/NGKb5hNpohUr/3O6KWAaEbJ+aK8kHbUenFx3OIRKbq8ryvAwnVzrptRq6/nr+zxQnFYTUrpJPsUh3Qj5mxv54nSthWSHAkEq+KvMJbLxLflkIygoQeaYk73AnMzdp3/gOTcXoDsbYY9z+chb8HRU02yNHCn3NMk6xH+kCrBSQ9tBNSWOV69WvCIxSIbJCBOf3jJcOBl4aMSQxX7E9cXPpz/9PAEsT3uYCp2FnMVQQoT/sz0mFyMHD1pEyN/JFirvAXdYnITvDuJsiivapPZULQoJpsbb5PJrATbxWt8uGJiP3boT6Wsd/kKf/cGWA7NU2dwTEqCorypJpPe/pv1zwxUo2WXJAYeqkQt+DX+4F2dfdQBiBf7op/VyvzAHklPwiGiJUuOZ3gtPpeXUByV+palb9GYDZlLN5nCPBAOsbnMsO0ql9YpAaJn7CyN1ZtXc16rRafp2enKbZvF0D+pS7rA6TxktPkGOAzqT8eegmiOxPhMzMYMIXohQpN/+/YirTLg5E2/XBE7mmPwbhCkAZtOemkljB+SIUcIkCMGz9hHB/0eGMOyZzC1OZdBYE28xtXWfQOPzYowaGgQ7c3nT4xpOg3ClJ60Lx16ePs/iCMO7qKzaQkwlvVhDnXMRxklbFWMXtCkV/5Ud+7EcXURWMMzO6bWt4kbClQf3eVYIZ+XhmnEi8hTfU1N7q+xW1Su4s5Db6THctTA2mRJV7gONGG293egcsgcL1prerzy4IEs6Am6DlPmbSDEmy5PYLuep6+riLmFYT2oTTVDLk2ULrfZx/S6FvbrmhxeVjMFqi3NClVkJSRVQ= X-Microsoft-Antispam-Message-Info: jIfueGMk9Ny4DezMMoyir38qcy+OVeadQ0NZduua+Fb7z+FyAg6QmQQTbX1dlA8qDUcL1EYbz7AsZBNsikJKnzOP5UA+VZcFGulJM2rM0sDAqdJLkXXAiKWyh/4ol9i5aNY3aLP88ES2wbwWqwJy/yKRsELZR8W+pEQAk23hiuzVsl/+sxWJUqxaBI1W2Slc X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2513; 6:Wt0k0ckafXTK9mTYXFYTRoSiDLJY+lo1oemSoKyBW/XFDQ0G512VO6DaJd9lRjetiNBD4tPw+p0xTQTF7XRKjDihH5HelkzU9hoff747PofT/BLDxXBwtY8lN2amv1H2eDXzI1TpniPhSSRJKP73DavaXsk+gZyqOwLeQM+ETMhfQZfJnzC+BxDfmNWo9sTJD4KIjX24Ln9+EEjcy4aNCQXyMICmmCcrTsKVnjTEJ1HZNQ8mn0ZYOTHqjkmeSOVew7dbPJZAgLQWKcrytMWEE9FEx3ETp88V9mG6AWZ5k6NrVV+HW+lVKbXPtT0Xf69WP9Y7b0X/8zM7zK0kgo1AJMkekW0WjxB1QITBRsw+84kRk+uxvYOsxmlyPpQZ0xFTgZ/zMPk3H4lC0Rl/Dgt4bp6M1MPhaLctygMFfGdmn4QCnMq8B0fgePMkyvupnXO73tB2FbTtlxkoxlI3gnOmOQ==; 5:hwn0yo9Mpgbnm79xX9wyBaUxBYmHPnhanzdzZmoCkSwSDwVLJqnG2eT0+DA5YCElR6YLD82nECzQIXLPFeOy1ef8tQzxtnkd2yMyIryu6fPEkV8Tl2sC8Gp0U7ij4Ep98pz/R7qTHqLDlV2el5Sy6pTz4dg01xwv59tL5iy/Lno=; 24:3WhiAvSfLTBAmyTbWqc4OjRFHD4+jN9DYYeG+kH3HMuThEoDU5dsI2LXfZzztn8J27VO8A2Kx/+EDVlZBft036LAjwUiAANqAMrTc5HHKDo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2513; 7:7jOWiWyqUdwdtQdvXJKyp1kSinDqlX5uPrFgzEGfbiCz9qUfasyRwRvEvoCTU0Ytla3T734MyXrqyaMX9dOh7De3W91+3itFj1SIBuRoXotvRZbq0AXI8EaYqoKr1sbubUPeizDgdAlZw0ykbLQJa/Lm3W/ku5Gp6XsF8KRd6bLWLCE0FSDXraxszM1fSH7ipm86aNkbtAOy93rQy49IuI7W0r2x2SrdJe3qb8JDw2gA6rW4AmHlc6si8ic2C6Xp X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2018 11:30:01.4915 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 59ac538f-82b1-4844-d34f-08d59e0d3bbc X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB2513 Subject: [dpdk-dev] [PATCH 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 | 63 +++++++++++++++++++++++++++++++++------- drivers/net/dpaa2/dpaa2_rxtx.c | 32 +++++++------------- 2 files changed, 63 insertions(+), 32 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 281483d..acf5f1a 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -172,16 +172,24 @@ 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; + dev_info->default_rxconf.rx_drop_en = true; } static int @@ -268,12 +276,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) { + 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) { + 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 +326,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,7 +384,7 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev) } } - if (eth_conf->rxmode.hw_vlan_filter) + if (rx_offloads & DEV_RX_OFFLOAD_VLAN_FILTER) dpaa2_vlan_offload_set(dev, ETH_VLAN_FILTER_MASK); /* update the current status */ 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