[dpdk-stable] patch 'app/testpmd: add parsing for QinQ VLAN headers' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Tue May 19 15:04:23 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/21/20. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From aecc7782a68c56948d8173f44a2c388d6c1a4240 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland at mellanox.com>
Date: Thu, 23 Apr 2020 12:05:26 +0300
Subject: [PATCH] app/testpmd: add parsing for QinQ VLAN headers

[ upstream commit f16d377150a0ab406d1e845ae1c96a4519f9c0ee ]

When having QinQ VLAN headers in the packet, parse_ethernet
is capable of parsing only the first VLAN.

Add parsing for QinQ VLAN headers in the packet.

Fixes: 51f694dd40f5 ("app/testpmd: rework checksum forward engine")

Signed-off-by: Raslan Darawsheh <rasland at mellanox.com>
Acked-by: Ori Kam <orika at mellanox.com>
Acked-by: Bernard Iremonger <bernard.iremonger at intel.com>
---
 app/test-pmd/csumonly.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index 25091de881..7b92ab1195 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -139,22 +139,23 @@ parse_ipv6(struct rte_ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)
 
 /*
  * Parse an ethernet header to fill the ethertype, l2_len, l3_len and
- * ipproto. This function is able to recognize IPv4/IPv6 with one optional vlan
- * header. The l4_len argument is only set in case of TCP (useful for TSO).
+ * ipproto. This function is able to recognize IPv4/IPv6 with optional VLAN
+ * headers. The l4_len argument is only set in case of TCP (useful for TSO).
  */
 static void
 parse_ethernet(struct rte_ether_hdr *eth_hdr, struct testpmd_offload_info *info)
 {
 	struct rte_ipv4_hdr *ipv4_hdr;
 	struct rte_ipv6_hdr *ipv6_hdr;
+	struct rte_vlan_hdr *vlan_hdr;
 
 	info->l2_len = sizeof(struct rte_ether_hdr);
 	info->ethertype = eth_hdr->ether_type;
 
-	if (info->ethertype == _htons(RTE_ETHER_TYPE_VLAN)) {
-		struct rte_vlan_hdr *vlan_hdr = (
-			struct rte_vlan_hdr *)(eth_hdr + 1);
-
+	while (info->ethertype == _htons(RTE_ETHER_TYPE_VLAN) ||
+	       info->ethertype == _htons(RTE_ETHER_TYPE_QINQ)) {
+		vlan_hdr = (struct rte_vlan_hdr *)
+			((char *)eth_hdr + info->l2_len);
 		info->l2_len  += sizeof(struct rte_vlan_hdr);
 		info->ethertype = vlan_hdr->eth_proto;
 	}
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-19 14:04:49.696266225 +0100
+++ 0128-app-testpmd-add-parsing-for-QinQ-VLAN-headers.patch	2020-05-19 14:04:44.440652433 +0100
@@ -1,15 +1,16 @@
-From f16d377150a0ab406d1e845ae1c96a4519f9c0ee Mon Sep 17 00:00:00 2001
+From aecc7782a68c56948d8173f44a2c388d6c1a4240 Mon Sep 17 00:00:00 2001
 From: Raslan Darawsheh <rasland at mellanox.com>
 Date: Thu, 23 Apr 2020 12:05:26 +0300
 Subject: [PATCH] app/testpmd: add parsing for QinQ VLAN headers
 
+[ upstream commit f16d377150a0ab406d1e845ae1c96a4519f9c0ee ]
+
 When having QinQ VLAN headers in the packet, parse_ethernet
 is capable of parsing only the first VLAN.
 
 Add parsing for QinQ VLAN headers in the packet.
 
 Fixes: 51f694dd40f5 ("app/testpmd: rework checksum forward engine")
-Cc: stable at dpdk.org
 
 Signed-off-by: Raslan Darawsheh <rasland at mellanox.com>
 Acked-by: Ori Kam <orika at mellanox.com>
@@ -19,7 +20,7 @@
  1 file changed, 7 insertions(+), 6 deletions(-)
 
 diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
-index fe19615b14..8626223793 100644
+index 25091de881..7b92ab1195 100644
 --- a/app/test-pmd/csumonly.c
 +++ b/app/test-pmd/csumonly.c
 @@ -139,22 +139,23 @@ parse_ipv6(struct rte_ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)


More information about the stable mailing list