[PATCH] app/test-pmd: fix L4 checksum with padding data
Stephen Hemminger
stephen at networkplumber.org
Fri Nov 17 04:28:57 CET 2023
On Fri, 17 Nov 2023 00:50:16 +0000
Ferruh Yigit <ferruh.yigit at amd.com> wrote:
> >> Hi Kaiwen,
> >>
> >> I am trying to understand the problem, what is the testcase that has
> >> checksum error?
> >>
> >> Are the received mbuf data_len & pkt_len wrong? Instead of trying to fix
> >> the mbuf during forwarding, can we fix where packet generated?
> >
> > The root cause is that get_udptcp_cksum_mbuf is using m->pkt_len
> > which maybe larger than the actual data. The real issue is there and
> > in rte_ip.h checksum code. The correct fix would be to use l3_len instead.
> >
>
> I see, you are right.
>
> In 'rte_ipv4_udptcp_cksum_mbuf()',
> as payload length "mbuf->pkt_len - l4_off" is used, which includes
> padding and if padding is not zero it will end up producing wrong checksum.
>
>
> I agree using 'l3_len' instead is correct fix.
>
> But this requires ABI/API change,
> plus do we have any reason to keep the padding, discarding it as this
> patch does is also simpler alternative.
Possibly an API version to change the args would work to fix.
More information about the dev
mailing list