[dpdk-dev] [PATCH 1/2] app/testpmd: fix csumonly mode when run without outer chksum
Nithin Dabilpuram
nithind1988 at gmail.com
Mon Aug 16 12:55:32 CEST 2021
On Mon, Aug 16, 2021 at 08:48:20AM +0000, Li, Xiaoyun wrote:
> Hi
>
> > -----Original Message-----
> > From: Nithin Dabilpuram <ndabilpuram at marvell.com>
> > Sent: Monday, August 16, 2021 15:10
> > To: Li, Xiaoyun <xiaoyun.li at intel.com>
> > Cc: jerinj at marvell.com; dev at dpdk.org; Nithin Dabilpuram
> > <ndabilpuram at marvell.com>; jia.guo at intel.com; stable at dpdk.org
> > Subject: [PATCH 1/2] app/testpmd: fix csumonly mode when run without outer
> > chksum
> >
> > Donot use outer metadata when neither outer ip checksum nor outer udp
> > checksum is enabled. PMD's will ignore the outer_l2_len and outer_l3_len in
> > cases where none of the outer checksum is enabled and hence only l2_len and
> > l3_len will be used to calculate the offsets for L2 or L3 header.
>
> I don't understand.
> In process_outer_chksum, only PKT_TX_OUTER_IPV6 Will be set if it's ipv6 packets.
> So PKT_TX_OUTER_IPV6 means this packet is tunnel ipv6 packet. So it actually needs outer l2 len and outer l3 len put them to hw.
> At least i40e needs outer l2 len and outer l3 len as far as I know.
Ok, do you mean m->outer_l2_len and m->outer_l3_len will be referred in i40e driver
even when both DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM and
DEV_TX_OFFLOAD_OUTER_UDP_CKSUM are not enabled in ethdev Tx offloads ?
I thought as per spec, those fields will only be used when the Outer offloads
are enabled.
>
> >
> > Fixes: 3c32113a1aac ("app/testpmd: fix IPv6 tunnel checksum")
> > Cc: jia.guo at intel.com
> > Cc: stable at dpdk.org
> >
> > Signed-off-by: Nithin Dabilpuram <ndabilpuram at marvell.com>
> > ---
> > app/test-pmd/csumonly.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index
> > 607c889..38cc256 100644
> > --- a/app/test-pmd/csumonly.c
> > +++ b/app/test-pmd/csumonly.c
> > @@ -961,8 +961,7 @@ pkt_burst_checksum_forward(struct fwd_stream *fs)
> > (tx_offloads &
> > DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM) ||
> > (tx_offloads &
> > - DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) ||
> > - (tx_ol_flags & PKT_TX_OUTER_IPV6)) {
> > + DEV_TX_OFFLOAD_OUTER_UDP_CKSUM)) {
> > m->outer_l2_len = info.outer_l2_len;
> > m->outer_l3_len = info.outer_l3_len;
> > m->l2_len = info.l2_len;
> > --
> > 2.8.4
>
More information about the dev
mailing list