From patchwork Thu Sep 28 11:33:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shreyansh Jain X-Patchwork-Id: 29283 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 50EA61B294; Thu, 28 Sep 2017 13:24:45 +0200 (CEST) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0072.outbound.protection.outlook.com [104.47.38.72]) by dpdk.org (Postfix) with ESMTP id 832B32B99 for ; Thu, 28 Sep 2017 13:24:16 +0200 (CEST) Received: from MWHPR03CA0005.namprd03.prod.outlook.com (2603:10b6:300:117::15) by SN2PR03MB2366.namprd03.prod.outlook.com (2603:10b6:804:e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Thu, 28 Sep 2017 11:24:13 +0000 Received: from BL2FFO11FD037.protection.gbl (2a01:111:f400:7c09::125) by MWHPR03CA0005.outlook.office365.com (2603:10b6:300:117::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.8 via Frontend Transport; Thu, 28 Sep 2017 11:24:13 +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 BL2FFO11FD037.mail.protection.outlook.com (10.173.161.133) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.56.11 via Frontend Transport; Thu, 28 Sep 2017 11:24:12 +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 v8SBMpGB016035; Thu, 28 Sep 2017 04:24:10 -0700 From: Shreyansh Jain To: CC: , Date: Thu, 28 Sep 2017 17:03:39 +0530 Message-ID: <20170928113344.12248-36-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170928113344.12248-1-shreyansh.jain@nxp.com> References: <20170909112132.13936-1-shreyansh.jain@nxp.com> <20170928113344.12248-1-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131510714530618081; (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)(7966004)(39380400002)(39860400002)(376002)(346002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(50466002)(54906003)(53936002)(16586007)(36756003)(47776003)(1076002)(498600001)(316002)(48376002)(77096006)(76176999)(8936002)(5003940100001)(85426001)(50226002)(50986999)(97736004)(189998001)(6666003)(105606002)(305945005)(6916009)(575784001)(81156014)(2950100002)(104016004)(81166006)(86362001)(2906002)(2351001)(68736007)(356003)(106466001)(8656003)(5660300001)(4326008)(8676002)(33646002)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2366; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD037; 1:QztKAfoaaeKxwQi8GzoB7RJBa0RBlmz5uTnal4CgLa01l3i5NT4MH7om4217izhRsSCqAt5LO9WhFCgGbWVaw3+SHx8e3uhbXFh5xJ+qayxNV2YSDcYXQ+ufJ/3NkHR6 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7a8c5cb4-4fd0-4fbf-f980-08d506637235 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017052603199)(201703131430075)(201703131517081); SRVR:SN2PR03MB2366; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 3:ldrelwcIA8KdWD8yRJnFRJ1NgCITntMiLMSN11Lr/Weum2LIwTEWEv8aGmtdx0JYxgUEDRZFf/8psOz3Fpc5cEpetvVhsMKFZ9jh5Og/lmtW/lpT4+Lj7B3YpmQa/cqZgfXh0oDdnBuwkvLVEY67WSZhlb03+JhY2JIbCH/lr/yApVPfVQfWiMl3xpatVjJiabCGfSTL5pgwus5Lt1MgomQTL3dBN6xeE3XIUhNBGYJ3e4oTUtk3WXRgB6VoSt8VdYxjFGPSa7pDMs33S9JoDDcZVmk1M72eoOCc8fxu1WxDZ9hKf2mpkN+NO0V7oSZm4C1Qn8BfOAuUyouNRQUMb+SUiuFPdfgcJbsYv0DXwWw=; 25:1EHVlbCiBvt2mThIonHQ33rDny8K0cnnCEFTg+YTOjvv/BAA2Ugty+BH9YDgIM6SbQercNQbCJF8TBhBTe3QUW80xFDMAqGwwdApIN3s0VVXIR9bUaA59kvGQXvsjofdK+HkTRlCg6kfxLkdYkFBcKMZxtFAU0yEgy7KxXCTbelTezuOvD9Iqvi6Vtmx9ATMYuH3WfmBS8jHo+9zfPTvkFlEATjXpDQ17BBI5w2hL/7xcgoxgibvX2sXX58Zu9ze0MW+bsiK1V8HGf1Vv5LYJxHG1vR/JdLfgo23LPd7iYicpmMEI5nMCYD4DnC5G/jr97pHWSFFjuJWVloVE3S5Pg== X-MS-TrafficTypeDiagnostic: SN2PR03MB2366: X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 31:XEQ5wVfEflSOpwk8gS0Z6GFtiTz6+3K7dx9kFR8Si0uUaILlX7Iz43yWh3sdJvrQRIFEIZV4+ufg0cw5AOOBpggv1B162xHIvjeehBFy0gqD/EbYNXS48OmQNMBisslyuQdPj0h8xdh57QlLGmkTBa6gGfGXMlniY2YHe4l372aCJZ5dh/1WYHAy9yz3kSMoO6S0UPrZU0JLpza+ljXGWyVy6h7h0tHz8a5TDobMDZA=; 4:Sn+Tyhit0QXzVl7nTJwA6iSlRS5zZz6sOfaR8WRa4QP79p+EvmuEKJi9OIaUJrj5PV0mPOKw07RpiRl5EYJeiwRPYpfywCX5nqQehENaCzq5tFduDAXPlw7nijDQL90MXkWd0WvEoS8dhyt6SDiWh/zztGzwk7SeAYjR+0+JuJGSxeR8b09cyZxq0xFIE/fPey1vd9REYYAgHckIcQvaOaIxy6muTjhVhSwcFxIWPWGI4CGqqnKT/N5Yr6g7zc6RXhu4vLzAuOiqxzBWisYA9qwNiRP2Hx8Hz9w+2KTSLDQ= 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)(2401047)(8121501046)(5005006)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6055026)(6096035)(20161123563025)(20161123561025)(20161123556025)(20161123565025)(20161123559100)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR03MB2366; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR03MB2366; X-Forefront-PRVS: 0444EB1997 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR03MB2366; 23:IxgqG04KWjLy7F8wzi7nnJ6a7ct1/o03qNdvME7O2?= f3Y2X4rucs/yvM+JzXr5hvSedcA+NYRAyPJd9BbcZVu5+UOg3cclyGARksVTYkNyhez7e9wd7GwJogiY4/KHE7OV/32K2EL6LtqMcXBUCK1TPIgDsH2KAA6YUIyv4a+6VJe52c4fMRM52we7/9p/q+oKf5BFLFb1j1kAkDeq9eF3Glw+8R/eG3gCaOVSSPUeedg5ut7P6m2NteEkC+JElpBwyWlFFIU8wVdyBhPwTABCaL+MvMgFqIZ3i1azIpyU2mroBN6nnTmX8KxHooZ9O4gYP7hidta0iYlH9c3MgafP1sikrW5P6He4Q6VMfY7Gcqs+MnSKDwbDe3Pn7l6OpEFLjT4PuJb/0UB8JJoacBpL0hCw544LNV3ncl3eqzwaqJPahMTbH+KQTbCpwbC+bV6UXaSvm/C7jdt+YNru+DnW7sQZvjQBwwzTpj6kJ5UTaQ7zzRzlatmKtRc6UvGDZcsqNiZ2k7SNDDgpyNJTng2uHRurZwRXk29d9oZcJS0wgrOPvIWzpKn05PQ43w6E1fOdjjOEwqA5UboCrh8MZInqB228uoW9H2JNEFYAP1+IRg0tAtSajPdHW+B7U594oncwFK8nRskeomnsIFJuROaO1RWysFF7cuyiOV8VnsB1I57Vkvl7y+oIXwx7oZPXhinvO5YRhhWLRwYqH6ecA6bEl5j1nvS3PWTO+sWI8kChS9xYb56+EU/gZSCDmL1trBwL5dBsZz+K7qZNG4jdML+1OH4+tIje7d3vCLVd78zFEDQvZrroKi4WXvh+CfrdM0siCLQ2nl2YRFqmepYbeeb9DbjjgxxX9iv9GwGn/uKlyDpHdUEfck7/K+NeFy7JLOhKDCy0LWuUdrjCDmohm9gAqOcdFEQFZQo0yotT5JFdItW01wfMDxcMJ9Uxl3MFITzuTw3dQKpBOlJNFBtONvS+ZmZBmHfjDEQ0qSX1VxFVNcFtHtc8qvRwQxMNWxh+pDkPNZdeRgYPLj0Ju5OhBZWh9dyh8yNWuDM6k/GUz3+Yo74zYaP9g//PgCTOanWvON577yQF9EYW8wTyvBa7nt9QUZNX1eIJM8C/1v6t0CzYRXWfG4Oo+29vW5hebmMnxEMMpd3CzvClDc17Yuh90ocmCHYe0F8vlax6zyh4QpPzNMLqrzE/Q7HbjDwY0Sl7/riVkn+RbkRUUa49YaTOfgwKTjFsiqnjq3KTO+8u7S5zOs= X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2366; 6:QVmBa/ZD2MMfuCZD+aCN+d55ydKgA7khVoPOQSGwjAjQFpY+avWX2DHwlELEPFbCild9rrJmPtgMhPu2VS+0YjZo448astlhy+eFUaxAIZUkXikff2IBxKk1y/X8IGgk55VBs//kFGfAz7WoVHuDxTqoRSN0c5A/ZGfVoZg6LiTLCecYrZ7iw9yEGc6qR4d/Iiq3/4KdUWE0B1pu9BGW8zbbBByr0Xc8MhkL0pLXuQl9aUnOFNj/ORfTwm79IeUigLIzOYhKyu95VTnrwjMXh7G3H+zkZpaUT6W8XnYG5Jns7G6N9fRZB6vgDd2EVPXdIS3uUxQfeOt1pJZUJ+t/qw==; 5:QI0hi1C3KEFNssIJM6m0p6WMTDy/pvgM2OiIaDlkjsc2WWtgnE7IPrObsM3hlkL7t6h2AsZ+JroKBlfNF+uifVC/aKmdNXEFzEvHImunr5SF7tliRUvAJLjD/4e4/zB/mpu4JF09+rFp2WRVofYTGw==; 24:erZHZ4P6zlJs9G6bY3qK8EY3+1xCu+kfy/pAf+3QDNSBKF+KZOAdM+dQOSiV1uD/hMW8kupbJyr0g1JoQsPaAConZDv2fl25Rbyx7r3P+G8=; 7:ZOLUuhSgtYveldXqiFYRA9EQPM6UyHEOxWXpdkjW4JpWewsWZn6n9mQeCQd/xuMO+XwYGgSZ+OoeCTB1pmTleLe/AyMzniDiVkDGyKs8pNyYRLcCFp4ccfPNisl46+uVZcTjKNSrlGIvcFOmvOH/gCk6Ps9OAP99cjs71gqjbzIH4Puq3Y0s+M0zM3xekvsS4BtIbw3QFUKk7hFVljIMneNz2k1p0DS3YVz9NJIMZS4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2017 11:24:12.8746 (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: SN2PR03MB2366 Subject: [dpdk-dev] [PATCH v5 35/40] net/dpaa: support 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 5860dfa..cf2c0c7 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, @@ -458,6 +484,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 c4e67f5..f8ac711 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_DP_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_DP_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 /**