[3/3] net/iavf: fix NAT-T payload length
Checks
Commit Message
Correct the length calculation used for NAT-T
Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")
Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
---
drivers/net/iavf/iavf_ipsec_crypto.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
Comments
> -----Original Message-----
> From: Radu Nicolau <radu.nicolau@intel.com>
> Sent: Wednesday, May 25, 2022 2:59 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Buckley, Daniel M <daniel.m.buckley@intel.com>; Zhang, Qi
> Z <qi.z.zhang@intel.com>; Nicolau, Radu <radu.nicolau@intel.com>;
> stable@dpdk.org
> Subject: [PATCH 3/3] net/iavf: fix NAT-T payload length
>
> Correct the length calculation used for NAT-T
>
> Fixes: 6bc987ecb860 ("net/iavf: support IPsec inline crypto")
> Cc: stable@dpdk.org
>
> Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
> ---
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
@@ -1118,11 +1118,14 @@ iavf_ipsec_crypto_compute_l4_payload_length(struct rte_mbuf *m,
* ipv4/6 hdr + ext hdrs
*/
- if (s->udp_encap.enabled)
+ if (s->udp_encap.enabled) {
ol4_len = sizeof(struct rte_udp_hdr);
-
- l3_len = m->l3_len;
- l4_len = m->l4_len;
+ l3_len = m->l3_len - ol4_len;
+ l4_len = l3_len;
+ } else {
+ l3_len = m->l3_len;
+ l4_len = m->l4_len;
+ }
return rte_pktmbuf_pkt_len(m) - (ol2_len + ol3_len + ol4_len +
esp_hlen + l3_len + l4_len + esp_tlen);