]> git.droids-corp.org - dpdk.git/commitdiff
net/iavf: fix NAT-T payload length
authorRadu Nicolau <radu.nicolau@intel.com>
Wed, 25 May 2022 13:59:12 +0000 (14:59 +0100)
committerAkhil Goyal <gakhil@marvell.com>
Tue, 21 Jun 2022 18:04:49 +0000 (20:04 +0200)
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>
drivers/net/iavf/iavf_ipsec_crypto.c

index fa1cecc1e1be1e40c1fd307ec963283037e103e1..75f05ee558aa4d9e75e1b6674a6d63d7e2de1e49 100644 (file)
@@ -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);