Hi

> -----Original Message-----
> From: Nithin Dabilpuram <[email protected]>
> Sent: Monday, August 16, 2021 15:10
> To: Li, Xiaoyun <[email protected]>
> Cc: [email protected]; [email protected]; Nithin Dabilpuram
> <[email protected]>; [email protected]; [email protected]
> 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.

> 
> Fixes: 3c32113a1aac ("app/testpmd: fix IPv6 tunnel checksum")
> Cc: [email protected]
> Cc: [email protected]
> 
> Signed-off-by: Nithin Dabilpuram <[email protected]>
> ---
>  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

Reply via email to