[dpdk-stable] patch 'app/testpmd: fix L4 length for UDP checksum' has been queued to LTS release 17.11.5

Yongseok Koh yskoh at mellanox.com
Fri Nov 30 00:11:44 CET 2018


Hi,

FYI, your patch has been queued to LTS release 17.11.5

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Yongseok

---
>From f081f8c65088f7fab4b1071230ca723bc817c980 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland at mellanox.com>
Date: Sun, 11 Nov 2018 15:31:37 +0000
Subject: [PATCH] app/testpmd: fix L4 length for UDP checksum

[ upstream commit 2b5651c026d8d1a687a8f7a210b1b8f13f906911 ]

testpmd only sets the L4 len in case of TCP packets.
some PMD's like tap rely on mbuf meta data to calculate csum

This will set the L4 len for UDP packets same as TCP

Fixes: 160c3dc9458c ("app/testpmd: introduce IP parsing functions in csum fwd engine")

Signed-off-by: Raslan Darawsheh <rasland at mellanox.com>
Signed-off-by: Ophir Munk <ophirmu at mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>
---
 app/test-pmd/csumonly.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index aa29f5fc1..4800e74e5 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -135,7 +135,9 @@ parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct testpmd_offload_info *info)
 	if (info->l4_proto == IPPROTO_TCP) {
 		tcp_hdr = (struct tcp_hdr *)((char *)ipv4_hdr + info->l3_len);
 		info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
-	} else
+	} else if (info->l4_proto == IPPROTO_UDP)
+		info->l4_len = sizeof(struct udp_hdr);
+	else
 		info->l4_len = 0;
 }
 
@@ -152,7 +154,9 @@ parse_ipv6(struct ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)
 	if (info->l4_proto == IPPROTO_TCP) {
 		tcp_hdr = (struct tcp_hdr *)((char *)ipv6_hdr + info->l3_len);
 		info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
-	} else
+	} else if (info->l4_proto == IPPROTO_UDP)
+		info->l4_len = sizeof(struct udp_hdr);
+	else
 		info->l4_len = 0;
 }
 
-- 
2.11.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2018-11-29 15:01:50.002712297 -0800
+++ 0110-app-testpmd-fix-L4-length-for-UDP-checksum.patch	2018-11-29 15:01:45.287957000 -0800
@@ -1,15 +1,16 @@
-From 2b5651c026d8d1a687a8f7a210b1b8f13f906911 Mon Sep 17 00:00:00 2001
+From f081f8c65088f7fab4b1071230ca723bc817c980 Mon Sep 17 00:00:00 2001
 From: Raslan Darawsheh <rasland at mellanox.com>
 Date: Sun, 11 Nov 2018 15:31:37 +0000
 Subject: [PATCH] app/testpmd: fix L4 length for UDP checksum
 
+[ upstream commit 2b5651c026d8d1a687a8f7a210b1b8f13f906911 ]
+
 testpmd only sets the L4 len in case of TCP packets.
 some PMD's like tap rely on mbuf meta data to calculate csum
 
 This will set the L4 len for UDP packets same as TCP
 
 Fixes: 160c3dc9458c ("app/testpmd: introduce IP parsing functions in csum fwd engine")
-CC: stable at dpdk.org
 
 Signed-off-by: Raslan Darawsheh <rasland at mellanox.com>
 Signed-off-by: Ophir Munk <ophirmu at mellanox.com>
@@ -19,10 +20,10 @@
  1 file changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
-index dce4b9be7..ffeee2051 100644
+index aa29f5fc1..4800e74e5 100644
 --- a/app/test-pmd/csumonly.c
 +++ b/app/test-pmd/csumonly.c
-@@ -111,7 +111,9 @@ parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct testpmd_offload_info *info)
+@@ -135,7 +135,9 @@ parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct testpmd_offload_info *info)
  	if (info->l4_proto == IPPROTO_TCP) {
  		tcp_hdr = (struct tcp_hdr *)((char *)ipv4_hdr + info->l3_len);
  		info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
@@ -33,7 +34,7 @@
  		info->l4_len = 0;
  }
  
-@@ -128,7 +130,9 @@ parse_ipv6(struct ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)
+@@ -152,7 +154,9 @@ parse_ipv6(struct ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)
  	if (info->l4_proto == IPPROTO_TCP) {
  		tcp_hdr = (struct tcp_hdr *)((char *)ipv6_hdr + info->l3_len);
  		info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;


More information about the stable mailing list