[dpdk-dev] examples/ipsec-secgw: fix incorrect IPv4 checksum at TX

Message ID 1528286641-27668-1-git-send-email-konstantin.ananyev@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Pablo de Lara Guarch
Headers
Series [dpdk-dev] examples/ipsec-secgw: fix incorrect IPv4 checksum at TX |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Ananyev, Konstantin June 6, 2018, 12:04 p.m. UTC
  For ESP transport and BYPASS mode the app might generate output
packets with invalid IPv4 header checksum.
At least such behavior was observed on few Intel NICs.
The reason is that the app didn't set ipv4 header checksum to zero
before passing it to the HW.

Fixes: 906257e965b7 ("examples/ipsec-secgw: support IPv6")

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
 examples/ipsec-secgw/ipsec-secgw.c | 1 +
 1 file changed, 1 insertion(+)
  

Comments

Radu Nicolau June 6, 2018, 1:32 p.m. UTC | #1
On 6/6/2018 1:04 PM, Konstantin Ananyev wrote:
> For ESP transport and BYPASS mode the app might generate output
> packets with invalid IPv4 header checksum.
> At least such behavior was observed on few Intel NICs.
> The reason is that the app didn't set ipv4 header checksum to zero
> before passing it to the HW.
>
> Fixes: 906257e965b7 ("examples/ipsec-secgw: support IPv6")
>
> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> ---
>
Acked-by: Radu Nicolau <radu.nicolau@intel.com> 
<mailto:radu.nicolau@intel.com>
  
De Lara Guarch, Pablo July 13, 2018, 2:41 p.m. UTC | #2
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Radu Nicolau
> Sent: Wednesday, June 6, 2018 2:33 PM
> To: Ananyev, Konstantin <konstantin.ananyev@intel.com>; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] examples/ipsec-secgw: fix incorrect IPv4
> checksum at TX
> 
> 
> On 6/6/2018 1:04 PM, Konstantin Ananyev wrote:
> > For ESP transport and BYPASS mode the app might generate output
> > packets with invalid IPv4 header checksum.
> > At least such behavior was observed on few Intel NICs.
> > The reason is that the app didn't set ipv4 header checksum to zero
> > before passing it to the HW.
> >
> > Fixes: 906257e965b7 ("examples/ipsec-secgw: support IPv6")
> >
> > Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
> > ---
> >
> Acked-by: Radu Nicolau <radu.nicolau@intel.com>
> <mailto:radu.nicolau@intel.com>

Added Cc: stable@dpdk.org

Applied to dpdk-next-crypto.
Thanks,

Pablo
  

Patch

diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c
index 5d7071657..38933341b 100644
--- a/examples/ipsec-secgw/ipsec-secgw.c
+++ b/examples/ipsec-secgw/ipsec-secgw.c
@@ -331,6 +331,7 @@  prepare_tx_pkt(struct rte_mbuf *pkt, uint16_t port)
 		pkt->l3_len = sizeof(struct ip);
 		pkt->l2_len = ETHER_HDR_LEN;
 
+		ip->ip_sum = 0;
 		ethhdr->ether_type = rte_cpu_to_be_16(ETHER_TYPE_IPv4);
 	} else {
 		pkt->ol_flags |= PKT_TX_IPV6;