[v3,4/4] app/testpmd: fix obtain inner info of tunnel packet
Checks
Commit Message
l2_len for tunneling packets should contain Outer_L4_len.
Additionally, the current offset used for the inner Ethernet
header is incorrect. This patch fixes these issues.
Fixes: 76730c7b9b5a ("app/testpmd: use packet type parsing API")
Cc: stable@dpdk.org
Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
---
app/test-pmd/csumonly.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
@@ -711,11 +711,11 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
if (txp->parse_tunnel && RTE_ETH_IS_TUNNEL_PKT(ptype) != 0) {
info.is_tunnel = 1;
update_tunnel_outer(&info);
- info.l2_len = hdr_lens.inner_l2_len + hdr_lens.tunnel_len;
+ info.l2_len = hdr_lens.inner_l2_len + hdr_lens.tunnel_len + hdr_lens.l4_len;
info.l3_len = hdr_lens.inner_l3_len;
info.l4_len = hdr_lens.inner_l4_len;
- eth_hdr = (struct rte_ether_hdr *)(char *)l3_hdr +
- info.outer_l3_len + hdr_lens.tunnel_len;
+ eth_hdr = (struct rte_ether_hdr *)((char *)l3_hdr +
+ hdr_lens.l3_len + hdr_lens.l4_len + hdr_lens.tunnel_len);
info.ethertype = get_ethertype_by_ptype(eth_hdr,
ptype & RTE_PTYPE_INNER_L3_MASK);
tx_ol_flags |= get_tunnel_ol_flags_by_ptype(ptype);