From patchwork Wed Aug 23 14:12:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 27808 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 8A7CD9A0D; Wed, 23 Aug 2017 16:03:42 +0200 (CEST) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0062.outbound.protection.outlook.com [104.47.38.62]) by dpdk.org (Postfix) with ESMTP id 0446799F5 for ; Wed, 23 Aug 2017 16:03:38 +0200 (CEST) Received: from BN6PR03CA0071.namprd03.prod.outlook.com (10.173.137.33) by CY1PR03MB2268.namprd03.prod.outlook.com (10.166.207.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1362.18; Wed, 23 Aug 2017 14:03:37 +0000 Received: from BL2FFO11OLC009.protection.gbl (2a01:111:f400:7c09::115) by BN6PR03CA0071.outlook.office365.com (2603:10b6:404:4c::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1362.18 via Frontend Transport; Wed, 23 Aug 2017 14:03:37 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) 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.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 BL2FFO11OLC009.mail.protection.outlook.com (10.173.160.145) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1341.15 via Frontend Transport; Wed, 23 Aug 2017 14:03:37 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.39]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v7NE2Q3M004389; Wed, 23 Aug 2017 07:03:34 -0700 From: Shreyansh Jain To: CC: , Date: Wed, 23 Aug 2017 19:42:09 +0530 Message-ID: <20170823141213.25476-37-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170823141213.25476-1-shreyansh.jain@nxp.com> References: <1499179471-19145-1-git-send-email-shreyansh.jain@nxp.com> <20170823141213.25476-1-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131479706174261000; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(39380400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(4326008)(97736004)(48376002)(189998001)(50466002)(305945005)(8656003)(626005)(77096006)(85426001)(47776003)(5660300001)(50226002)(36756003)(53936002)(54906002)(110136004)(6666003)(2906002)(5003940100001)(68736007)(356003)(2950100002)(2351001)(106466001)(6916009)(33646002)(105606002)(76176999)(50986999)(8676002)(498600001)(104016004)(86362001)(81156014)(8936002)(81166006)(1076002)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2268; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC009; 1:jP82gu1Ygrv6x0Zg2eSq2OyzC9aKOp5j7Kd4Fyj3AF7seU+UkDTrrG1egYXhSjDoVVJxKwXAU2qCRG36X6OtdFAFTdxGkaOpOJblx8amDSGyGVpwoeRPWXkyNM8PrA9z MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8ff32801-8a5f-4b12-25ae-08d4ea2fc025 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603185)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR03MB2268; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2268; 3:sWoYXuZzvxaNw7rBs18qOHIFHt51JanKXKuxjOoxzPrrVlmHLvk4TNbDBnIBnZ+Y6Q7HQOO7SYpi3oa3b2PZtKJr3uKLrizH7b5vjm1uLPdJyaRnO8zKSpSEDYPa8qw9VBagURk5B/gQf0ZK4Dv0k5ganwaf7QUSy+izrR08HwAtejDTmGLfizc2OFaD+WJijzxx6jd64s5bPk1iqm4K8mGa317xeNYD3QvsZ3/+eiXtkihbQgSwx5E0ObQj4ZfahrGKW7SUdocFK7Qc+ChMgxozMa8k0oc1k4sfOBGDH1umLhDs8DaxPRRKujnOsMZfRQKU5q5qQLtWgrDlyGeM5wnx5H9smFcRjiL0w+3R4N4=; 25:dCC9EkGGH0yfGyaEPrtVAUQ6ydikBuegp2awXfzF2RsTLN6jenVVqKdpQ3C3ZCAkhJfj4rtwbbuLC0HYR7TwCvX6kkEUwnsVJwvemiO2LD9/dajvZxQfIu/WxlkplpEoz+ISz7MmiP9pepPSTYVXLs11AZVihpNKWxP5VtLzUbhancshKfdTLm65VqQHShkobUbqreB42XexJcD2SawcGVj4QonCdmTvbXvbtyxtyY68eyFo4756BB5gh4/4qAQk9U8/cwXkXKMtWsXAqLzUvfdyQLK3aepLpNTwvHk3B5r4+uSYQ1ThqlmD5okeVRpBBb/dNFx6C5DcrKuL2h7rTw== X-MS-TrafficTypeDiagnostic: CY1PR03MB2268: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2268; 31:nAcuddTb08Y1CwUGE3txuQ6TtVMlIbqqDzfLPpiZTIqt96ULTVzLRDaMq7Xw6AM1Hbq0QmoRtKx+NB4SYEbR8Bn4/1AEp7BdbpztVAZmARDgOUryenxoo5HGx4OInI/pJwYJaeMvq7GNrDRaGtsIYVaJNjtrgfcAwL86fVQ257y+9p1iIuV9h2WWmpN9VU0wYheU1v7jKew5+5mrfofnZTaIm8WnE2IKYyRVUwiWrHw=; 4:4jbv8TF3DWrb1vMgEooqap8043jLI0JmZZuT0YX5xRSNWP6Cgs8KZqr5aG1KhKCOkyjqzltAvCD60BLNLljoRVao4Sg0bZVjeCH2AdAdr3HJH1x8CMjZfkDFH+GlEhiOPmv0oIywHjE3kfFQ6L9/yLjDeDbDs6QG3Xxc5R4i3IIXDwuyGimf3KbVG69UbjkuP/breS9Na9tzptQqC3bbKNu2j20+faqyJQKcU90gexZDqAi7JVy8KLIx8RNovjM6lcukrvU6KuJAUtVPF3i/Y72fetvC/Le+V1yOpfWWhkA= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(8121501046)(13016025)(5005006)(13018025)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6096035)(20161123561025)(20161123563025)(20161123556025)(20161123559100)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123565025)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR03MB2268; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR03MB2268; X-Forefront-PRVS: 040866B734 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR03MB2268; 23:Cz3IZWSxr1R6d5580HmM2yYTJZK4AzoSCdFQ5jOJq?= N0sQvpBFTnUub2bvQ9lGORgjlgtRbJSbm8xI9ZUNBcfzPpSZ6TnlbKnuUOHHrFZDWHK0+oq/neHK9st43YPaLu4VfIvJYlMJIxghIyHQS4S5i5BiJT3j1zIVDoCjx1hXkTvltGvsObXyN020CZAKIZLrmHf2MAAvf579hognEo76HHctc6Q1Azz3gK8y+p4MZo7Pt+pW7Z8yfm4dB6rKrSz2V9Zd5utTtJ3JoCDFov1oGZQXhux69OzmO2nebGKQHU2s64jq8E7DB6/WKWVsLITHlt6gncF4IlKYcIsAlnn23pD31uU5KZ/jdVqGCiX30ZfkJrXTbY55XuTNhgNjhfXlQsw56L0WNDOOgIPcS8Oadavu1ye2crgkXESPfiVbjBhNGmZb3VnHVEXeFJZrMq6Mk65TNcI92QfoCWVJk10zG/6i6vAZs16BRcZt2VaAjdIW6HsqDOiTEwS1xXejWNerwD+ySiv/vBQ0O9oEcedQz8gbYmbMN/WOy2dBObeGoqJc6vCUEbYNnGcd6ZQnLkwPdMDozhmjrFcnWiWlK4mNLSCf1TbT5KZ9xHjjt5NvpwWeukK7UqzOJjM7mhdgKGqfzF2lXoqe6mvI1lXwRDl35pcU46rGW8Ps7LiW2n+2XFo8jAwogjLfeuNJsq4L84wdhz+jMqPHDWJjClU8TwS/2sGI/a8CxdVmWf8/woIjl6jEon+rtllDYW2FdYruj7MZsO9qu4Wm88KQ1qa890S8lVOVk9kloEpZrl/Od/98CgInt0H6/6mKaQAmSZd0+5bZey0fEcYTs3LT+s+7IHUZAuLDuaN+8kPEfmtKNauQrNWQMG50YNluT+riFzqWGTNujmYqMgMOVvo645U2ei3dyepggd7m2hHg+rmANaNDCyTLvHZT0MwITFzYvwO/4Ru/gTZyltTPnt5Wfd861ALlxZvC9v/qfVWKpcRTC94/Z5eJb1tCUW2pEtmlc1B06gW42GMAYhCP18BDqs/DZHVwJGBRAXxrEJba8Pfci/WOSCMDMx5PUU9+goW8eLJ4ZDPSmDER0o2klm+qPTHbEYs0UOKypFSFYs+0+RJargRjZ4t5CBJLCgwja2Cyjs6TUyjSpaxY/JJ+WM3ZJ4U2AxiIA== X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2268; 6:nIhUodprhcbl4G2zJIIX8R2oVp5933+SvWcAJdk786t+weu9tGK7aNw/2gmbS02UDXbiyjtrr5EFZQ3/qSRY2hHyCXH2BxFMGePJMTzSt5kL+qXxjvevXKXQevTfs+HxKKBPS1QNKqBKV0jZtBLGBtF+LavilzmPnx7PRqMyQD2adDM7fbeizAYaIZtPW5geORRDcfOgTK3CZ8XDNhQMhq3Z8Ni7VtOlRLkBG4SSPxluY9PBk4odrvAC352SBEPO/qaG/O9CcUDs+p30X4WSbqyp1I5mU0uUVUoRc1KIGlhV+JNgB8Lsr4vtO7llCg4Lm5WYp03RfVdNV1eliotoLQ==; 5:3r/F+ZyIuz71+efLT6WmJLisfMUwMfMFZ3BkTrWVfyRKFJ9/gKkNMmjGEenN/W7yEOHqUrSnedSgiNgMZAw7dnl0pJDr0rPr4B4yH8xn6xIo06rVHYfoIUat13pFwxlQFh0IQX9W5i+P8xjqBR8r1A==; 24:WuS8ebVsDREZd77zBrcsmwZxdKt94V+uFVIIYC6GjjuBMiQXRDwhZOhe8r/T4GLf2W+c7aM1tGmEa3myxZksTh8BM8B35c/+X9H/Cne4OEE=; 7:ixMGAOZfnQDMLmH3UPZcuI3d8ZYeh8aqpynYOkjEm7loLf3MJ9ogE5JArqAZFtfTfl5AnG1E9GVn0xGUesebeUw1Jtx1SfMXLF4Tp+6+5FiVBw/FyzsWQS+mgTsefvp0j3FvNvIWCS2rMe6lLA5kCnTV2TwcqposOaiE9/WhLBzhB6fFf9B3JPH1Cd3TFtJOWVrrAdUAczTavzMjzgZVKmfinkFLDmIuZ5NDY7EEEBw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2017 14:03:37.0361 (UTC) 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: CY1PR03MB2268 Subject: [dpdk-dev] [PATCH v3 36/40] net/dpaa: add support for packet type parsing 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" Add support for parsing the packet type and L2/L3 checksum offload capability information. Signed-off-by: Hemant Agrawal Signed-off-by: Shreyansh Jain --- doc/guides/nics/features/dpaa.ini | 2 + drivers/net/dpaa/dpaa_ethdev.c | 27 +++++ drivers/net/dpaa/dpaa_rxtx.c | 116 +++++++++++++++++++++ drivers/net/dpaa/dpaa_rxtx.h | 206 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 351 insertions(+) diff --git a/doc/guides/nics/features/dpaa.ini b/doc/guides/nics/features/dpaa.ini index 1ba6b11..2ef1b56 100644 --- a/doc/guides/nics/features/dpaa.ini +++ b/doc/guides/nics/features/dpaa.ini @@ -11,7 +11,9 @@ MTU update = Y Promiscuous mode = Y Allmulticast mode = Y Unicast MAC filter = Y +RSS hash = Y Flow control = Y +Packet type parsing = Y Basic stats = Y ARMv8 = Y Usage doc = Y diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index 55adc04..bcb69ad 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -112,6 +112,28 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev __rte_unused) return 0; } +static const uint32_t * +dpaa_supported_ptypes_get(struct rte_eth_dev *dev) +{ + static const uint32_t ptypes[] = { + /*todo -= add more types */ + RTE_PTYPE_L2_ETHER, + RTE_PTYPE_L3_IPV4, + RTE_PTYPE_L3_IPV4_EXT, + RTE_PTYPE_L3_IPV6, + RTE_PTYPE_L3_IPV6_EXT, + RTE_PTYPE_L4_TCP, + RTE_PTYPE_L4_UDP, + RTE_PTYPE_L4_SCTP + }; + + PMD_INIT_FUNC_TRACE(); + + if (dev->rx_pkt_burst == dpaa_eth_queue_rx) + return ptypes; + return NULL; +} + static int dpaa_eth_dev_start(struct rte_eth_dev *dev) { struct dpaa_if *dpaa_intf = dev->data->dev_private; @@ -160,6 +182,10 @@ static void dpaa_eth_dev_info(struct rte_eth_dev *dev, dev_info->flow_type_rss_offloads = DPAA_RSS_OFFLOAD_ALL; dev_info->speed_capa = (ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G); + dev_info->rx_offload_capa = + (DEV_RX_OFFLOAD_IPV4_CKSUM | + DEV_RX_OFFLOAD_UDP_CKSUM | + DEV_RX_OFFLOAD_TCP_CKSUM); } static int dpaa_eth_link_update(struct rte_eth_dev *dev, @@ -465,6 +491,7 @@ static struct eth_dev_ops dpaa_devops = { .dev_stop = dpaa_eth_dev_stop, .dev_close = dpaa_eth_dev_close, .dev_infos_get = dpaa_eth_dev_info, + .dev_supported_ptypes_get = dpaa_supported_ptypes_get, .rx_queue_setup = dpaa_eth_rx_queue_setup, .tx_queue_setup = dpaa_eth_tx_queue_setup, diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c index 80adf9c..90be40d 100644 --- a/drivers/net/dpaa/dpaa_rxtx.c +++ b/drivers/net/dpaa/dpaa_rxtx.c @@ -85,6 +85,121 @@ (_fd)->bpid = _bpid; \ } while (0) +static inline void dpaa_slow_parsing(struct rte_mbuf *m __rte_unused, + uint64_t prs __rte_unused) +{ + DPAA_RX_LOG(DEBUG, "Slow parsing"); + /*TBD:XXX: to be implemented*/ +} + +static inline void dpaa_eth_packet_info(struct rte_mbuf *m, + uint64_t fd_virt_addr) +{ + struct annotations_t *annot = GET_ANNOTATIONS(fd_virt_addr); + uint64_t prs = *((uint64_t *)(&annot->parse)) & DPAA_PARSE_MASK; + + DPAA_RX_LOG(DEBUG, " Parsing mbuf: %p with annotations: %p", m, annot); + + switch (prs) { + case DPAA_PKT_TYPE_NONE: + m->packet_type = 0; + break; + case DPAA_PKT_TYPE_ETHER: + m->packet_type = RTE_PTYPE_L2_ETHER; + break; + case DPAA_PKT_TYPE_IPV4: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4; + break; + case DPAA_PKT_TYPE_IPV6: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6; + break; + case DPAA_PKT_TYPE_IPV4_FRAG: + case DPAA_PKT_TYPE_IPV4_FRAG_UDP: + case DPAA_PKT_TYPE_IPV4_FRAG_TCP: + case DPAA_PKT_TYPE_IPV4_FRAG_SCTP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_FRAG; + break; + case DPAA_PKT_TYPE_IPV6_FRAG: + case DPAA_PKT_TYPE_IPV6_FRAG_UDP: + case DPAA_PKT_TYPE_IPV6_FRAG_TCP: + case DPAA_PKT_TYPE_IPV6_FRAG_SCTP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_FRAG; + break; + case DPAA_PKT_TYPE_IPV4_EXT: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4_EXT; + break; + case DPAA_PKT_TYPE_IPV6_EXT: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6_EXT; + break; + case DPAA_PKT_TYPE_IPV4_TCP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_TCP; + break; + case DPAA_PKT_TYPE_IPV6_TCP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_TCP; + break; + case DPAA_PKT_TYPE_IPV4_UDP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_UDP; + break; + case DPAA_PKT_TYPE_IPV6_UDP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_UDP; + break; + case DPAA_PKT_TYPE_IPV4_EXT_UDP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_UDP; + break; + case DPAA_PKT_TYPE_IPV6_EXT_UDP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_UDP; + break; + case DPAA_PKT_TYPE_IPV4_EXT_TCP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4_EXT | RTE_PTYPE_L4_TCP; + break; + case DPAA_PKT_TYPE_IPV6_EXT_TCP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6_EXT | RTE_PTYPE_L4_TCP; + break; + case DPAA_PKT_TYPE_IPV4_SCTP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_SCTP; + break; + case DPAA_PKT_TYPE_IPV6_SCTP: + m->packet_type = RTE_PTYPE_L2_ETHER | + RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_SCTP; + break; + /* More switch cases can be added */ + default: + dpaa_slow_parsing(m, prs); + } + + m->tx_offload = annot->parse.ip_off[0]; + m->tx_offload |= (annot->parse.l4_off - annot->parse.ip_off[0]) + << DPAA_PKT_L3_LEN_SHIFT; + + /* Set the hash values */ + m->hash.rss = (uint32_t)(rte_be_to_cpu_64(annot->hash)); + m->ol_flags = PKT_RX_RSS_HASH; + /* All packets with Bad checksum are dropped by interface (and + * corresponding notification issued to RX error queues). + */ + m->ol_flags |= PKT_RX_IP_CKSUM_GOOD; + + /* Check if Vlan is present */ + if (prs & DPAA_PARSE_VLAN_MASK) + m->ol_flags |= PKT_RX_VLAN_PKT; + /* Packet received without stripping the vlan */ +} + static inline struct rte_mbuf *dpaa_eth_fd_to_mbuf(struct qm_fd *fd, uint32_t ifid) { @@ -117,6 +232,7 @@ static inline struct rte_mbuf *dpaa_eth_fd_to_mbuf(struct qm_fd *fd, mbuf->ol_flags = 0; mbuf->next = NULL; rte_mbuf_refcnt_set(mbuf, 1); + dpaa_eth_packet_info(mbuf, (uint64_t)mbuf->buf_addr); return mbuf; } diff --git a/drivers/net/dpaa/dpaa_rxtx.h b/drivers/net/dpaa/dpaa_rxtx.h index 45bfae8..68d2c41 100644 --- a/drivers/net/dpaa/dpaa_rxtx.h +++ b/drivers/net/dpaa/dpaa_rxtx.h @@ -44,6 +44,7 @@ #define DPAA_MAX_DEQUEUE_NUM_FRAMES 63 /**