From patchwork Mon Apr 9 13:19:52 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: 37661 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 119AE1B82E; Mon, 9 Apr 2018 16:30:05 +0200 (CEST) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0059.outbound.protection.outlook.com [104.47.32.59]) by dpdk.org (Postfix) with ESMTP id 4A6851B82D for ; Mon, 9 Apr 2018 16:30:03 +0200 (CEST) Received: from MWHPR03CA0017.namprd03.prod.outlook.com (2603:10b6:300:117::27) by CY4PR03MB2520.namprd03.prod.outlook.com (2603:10b6:903:39::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.653.12; Mon, 9 Apr 2018 14:30:02 +0000 Received: from BL2FFO11OLC014.protection.gbl (2a01:111:f400:7c09::104) by MWHPR03CA0017.outlook.office365.com (2603:10b6:300:117::27) 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 14:30:02 +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 BL2FFO11OLC014.mail.protection.outlook.com (10.173.160.144) 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 14: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 w39DKv5g014812; Mon, 9 Apr 2018 06:21:00 -0700 From: Sunil Kumar Kori To: CC: , Date: Mon, 9 Apr 2018 18:49:52 +0530 Message-ID: <20180409131952.20948-2-sunil.kori@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20180409131952.20948-1-sunil.kori@nxp.com> References: <20180409102602.24294-2-sunil.kori@nxp.com> <20180409131952.20948-1-sunil.kori@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131677578019415458; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(39860400002)(346002)(396003)(39380400002)(376002)(2980300002)(1109001)(1110001)(339900001)(45074003)(199004)(189003)(48376002)(356003)(105606002)(498600001)(6916009)(68736007)(6666003)(86362001)(51416003)(1076002)(106466001)(53936002)(104016004)(85426001)(54906003)(16586007)(316002)(77096007)(47776003)(59450400001)(97736004)(50466002)(26005)(5660300001)(36756003)(81156014)(2351001)(81166006)(50226002)(336012)(8936002)(305945005)(486006)(4326008)(76176011)(2906002)(2616005)(8676002)(476003)(126002)(446003)(11346002)(357404004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB2520; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; LANG:en; PTR:InfoDomainNonexistent; A:1; MX:1; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC014; 1:d+HXe5Y+WUir4FmFV+nyDokF/lCSNTobbSvLQKA4fMYvPnGloIdUFYktEBd0Hze3tgf/UQeKNzt0rRDyvAK380C2JgxYPuW4iKCJJknQ1F/UAyfd4FJQsedKIKNJ0FAw MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 34376e84-1d78-4e30-c443-08d59e26612f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(5600026)(4604075)(2017052603328); SRVR:CY4PR03MB2520; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2520; 3:769yaeGCwQK48SQeD+an+WGdk7Jjczeusb6VvE5dRXWrTfaKG7g67Fy/MC4HO0P+6ydA0XIDbYy9S3LxnefHE3U/HeWiJ2vTBLnsmVhvGq5vnSX1+MDNnIyENgulkiuH7gf7ICTQbHK8xQBFwQH3A9MiUqi427/vCwHNodamjdmlEyspg4aFk1O6iqyWBQSdHDE6BrlMEv+9IbjSsOzOR1kBK58av45JeTmUsqOkUulxQOUOnPVdzX1PC5dzASxJLanOGlk16RYKHjMnB5N6Bvmqtc9j629a4Q9kCX2x0k1gMwmyz5WUZXeBHoczVK+0vlZLjeXC/X8MrJEOpgaGcMy6yDorq/KTAdxbB2bQ12k=; 25:65f6daWAbwCczpLuZ0aS0uMt3IZCwVg9E8EYxFu/L17MwomCv50bsKI1ENex6WjnUxMq+f9aBRLWcP06+p85pK7+xLvQOqA0/wEn9K/mrGCx2lrdcIhR9+/IxSEC8KGYZVLmGJvH0W73uz6ln5W3kDKtsU4TTnxbNnZYsXSC3HgvQHN30Sp7/Ou5FbTUvdKF/S3JjwMKdc/CYg7opVPJJ6379D0yApxGZWfzyS1COQjeLH1ouo/7Ki5X+65DjGDN3JTXiRXxSVg4kcEJ2+Pt37QNhaBOsTV9A0JSOSvdE/N42rj8O/VHdcWX2rqhcc+YeMdiR65L39ZG7Lj04Rk6xw== X-MS-TrafficTypeDiagnostic: CY4PR03MB2520: X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2520; 31:v+lUUhtpeUtadsZRA/IJh04D4rTnVTa+LgkG1mH1bl4GHuQAZV08tXqkSUN1+uR6mRoo/Zptf+j7DAra6VfiejjuEQaKT9w6fyibBlCyFMGS8sRA0tXyxZfP2BP1YIfMEprLfA0OJAtVFsw2o0OFfXkABa/K2YJJ6TXWRPqhOzegQC94lqr6u7m/BJAwcRr/rC0FPSVB/D9MNYfGd5kAu408wOSryo+UaxP5cHX4ruo=; 4:2BpsQEWiFcHJuIkdgqIKn67mHG6yhGOcY8oLqm6+DqddCEklwyr8ktXpj7VyYNAvQu2CvAKRA5mkOtfeEq7LYxQBKw1MDYLcERwDADuWCkbQJjMtlFXNBuSBjx5RzJxil16Ruw5RsTm0des6J0ZMu359ix9rHwgUddhti4nm1+73maqYSp2Ru95xRJ3ghJ8eHhoy9f51xV6Oj6ZCF6ABe2XCMMD0xWde+V4EESFC3cll4Xhu7Z6AhwYjNWsmhSdf6aMr24z09shIq+v79DFXWiQcay1GIMp5OMa2tPv9Q9DX2SiNbGwDENB29MMZPK2U X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231221)(944501327)(52105095)(3002001)(6055026)(6096035)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703151042153)(20161123561025)(20161123563025)(20161123559100)(20161123565025)(201708071742011); SRVR:CY4PR03MB2520; BCL:0; PCL:0; RULEID:(400006); SRVR:CY4PR03MB2520; X-Forefront-PRVS: 0637FCE711 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB2520; 23:HCYGGrXE3O0EX97ytGT9r3PUfx5zav1+2G+iWczOQ?= JvM+m7xOHtPBR0Y0uuYQRW62G7jsNmicc6/vp8d4nXKx5qgm/YRoS/m+Fx3oTsWIrTeq87G2OGjA3sVn58exd/hx/CbeZQNEntChHne6Vmn5Rb1I1R0hI5ER9Z5JyXWpFTSPnB2gmgTdv0Af2KAZ2l4DqG0R9Cr+KjOP7XUs9Abliz3RX0VtMDUAOmJ6Kq8l+u6sQcNXh4dMj8hJG1582hdJASAwwxx7k53a0ep5tBiK/XWXOX3qt02ivu6jZmbzB1oaEhJOdzavdxt7v0KBQU0Gfy6SeY/LlBidSdOsBP7fv9F+fnogXF6fxMyCf5dyLMXCW8xqpMFT3XfF2FlFEjYsqkO/35JjR2B0iGdC/5nfcU1OYGoXtomblhHyy7cVNSllcjMfibiolBmTIOU8Ku+jPadCh+XGTIntlJjbfzyuJ1o9CcE5WcDvLrQgnLZ34mLK8li44hRx5ir2MUc2wfLQei+lf1CV203NRmZsVsD3OHiKtt7rM/Svxp9i18h9hM7VzU1npYXxyz0F3f1kl2qlHawLTMkZLiQxwQ0UFZuQFrsPo34DhQNY8i0Sq+N7OCt4VXiz9Ngx4aAt3fItL90FlxtKwCbHjSl6oDECMwkenh5Y/pA+lV2vS0e0QuhaTm8NPHG7fH1R2Mgjzq1fk3YyGFem1rJ/Vnyo+pvre5JMbyec12WPz+V/zOcpp29W3dxFEz1qQvKx+nitHTZYq0ZLrYZ4XJa/1HLXxakn4Xxt7/CjSFgJce+tzuKeoepu6ilyjWhC4ZugnnJolj5S4U5h1sG6Xk/rJ0St2XxbWl+8tf3yKXD3ytfMcAMDMnyDOQrOSzf9HApvilAeMSFYYWvW5xePEEf/nmplx8sh5lyaqi77sYUeAgOsYm3+3qZ8s4oDoSJ+FlPSvPVwjwMaxkoc8gSlx+NysuSC2EM/3N8+JKSxJLs6TQRVmU3JrK7/daf4bUnJTcz1YjLAlGMiyiEjLbGPkzktHtCV6h5SuSpChkd2ScG1CzaA4aM42u6DYKxB1OAu6amqaV0mX47fLRXvAEup6BiaIPVo/0gDxHBfjPLtjzoXDfpuoVFi0eH5wtTM6iscsiTHG5rvxGccg8iy9CvxhDTDM/tbzovC4SBZsDaEMOcCcOzJMxykfEMdf1mEO9ltkY5mbp4rZAPK8vfEje4IC6KNnGwk86Qe3uww1nEJ4n9uWJtLfwABzeoIE4= X-Microsoft-Antispam-Message-Info: c0iOu9EN6Lm7q1yOAA/ZfSl478u73Ks7S/0fKlsnMctsnq17AOpE63SLM4iAqr+bIJ6ZIOli/7QmwMa2LERgsHEoHQTnG0//XhHolxOhZU4XX/lF+NJZ54slXe5iupCu1h0jFZdHcO5bAnFGJz65Ve37oM1gZjJD3wu8xGvyQS/qyjeXmyizR7HkWdxLxh/l X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2520; 6:OMWmoMu1uz6CHEymzULCcHJUmZiYTy5jhzHQt8x8KIh1XyNlrQagui9JSCNzic69O2LojmFkwP5wvK1VB9SYdQ4WrrNwNLMI4iY1uVC6jUbTpVOuq+ZR8p+eWBZCTIyiPAsvLPkq2sYaIrd2fCB7DzQUtr1jmeiHtBAaFVEgYWFiDtRjYMKCdZsTQSTOjY5cjLcj6H/ElzpEHmmREKHS8K2x/NBcJcHOgmXIOMnfvLY96oOvNxiwipkTa9lD1iuZe5i11OrDi/WCMBwlbfRDemxXU8jmFxBvbnJLAhLzI3YEi4GEA69wOzbSXsR+J0R4ZoQk2PJxMaGUkCYCJe22jB+Rmx9/0Oaprxoy0SEjf4gQPcPtf7ifUCeo9MsQ0NplC7h2dq7VxTavZfPX00gbFh3XMWn6b7Bfy6EVms/T05M88bcnAUxu0+qYwnaC5Pi3TfLErohgMZTId57lIZAN8Q==; 5:SfaSNAsWtE+vSGYA37kI2NhqWFIHp99BQFJ2LbSYvzWt6h7plTc7Tm1GIl0/M0djN+imm7o5EhWPSpfIhkQTxbuhLuZKwXsVXeE/cmSWfquiaZlrbPIxZXT6EUrU03PJ7EJoXsn/RylDPcMmbCYfrGkfjnMiwhuyaFxbqWZageE=; 24:qEOADajCfrRy+nfmWamvIle6JaWL+VoiDNa8ayRvLP/F9mD229zRd4lXnexXW0lK0a0IBZpW1gbMpmPLfCrUJP1TERGK9Py8VDTWJ6+1ROY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB2520; 7:yFoEXAEqJ93bGmAzKJHgRGUf0Da6+A79Z8mHNM7QMFIOd7TaHij1bG517CQ5+55dw6X0vitU9hWSUNBB5STmBlqNPD9hZfknRqYPnLCBWUPq8GK3z8D/Yc1vh7fJ48T0mvMm376hQCWos3tgJ/GRSZK7xRMj9udCVy+Ua5ySEYW41jIGoePM8Iyw+801zFYfnZkg/4hQ9o+W+7x1GMP9xfDR8s8tf/AsqHpY/yuAu+CvGoeEkUo/pDtkmv3+qUt7 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2018 14:30:01.7543 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 34376e84-1d78-4e30-c443-08d59e26612f 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: CY4PR03MB2520 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