Re: [dpdk-dev] [PATCH v1] net/ixgbe: adjust error for UDP with zero checksum
From: Paolo Valerio <hidden>
Date: 2021-02-02 17:42:49
"Wang, Haiyue" [off-list ref] writes:
quoted
-----Original Message----- From: Wang, Haiyue Sent: Tuesday, February 2, 2021 20:57 To: David Marchand <redacted> Cc: dev <redacted>; pvalerio@redhat.com; Aaron Conole <aconole@redhat.com>; Zhang, Qi Z [off-list ref]; Rong, Leyi [off-list ref]; Tu, Lijuan [off-list ref]; dpdk stable [off-list ref]; Guo, Jia [off-list ref]; Richardson, Bruce [off-list ref]; Ananyev, Konstantin [off-list ref]; Jerin Jacob Kollanukkaran [off-list ref]; Ruifeng Wang (Arm Technology China) [off-list ref] Subject: RE: [PATCH v1] net/ixgbe: adjust error for UDP with zero checksumquoted
-----Original Message----- From: David Marchand <redacted> Sent: Tuesday, February 2, 2021 20:54 To: Wang, Haiyue <redacted> Cc: dev <redacted>; pvalerio@redhat.com; Aaron Conole <aconole@redhat.com>; Zhang, Qi Z [off-list ref]; Rong, Leyi [off-list ref]; Tu, Lijuan [off-list ref]; dpdk stable [off-list ref]; Guo, Jia [off-list ref]; Richardson, Bruce[off-list ref];quoted
Ananyev, Konstantin [off-list ref]; Jerin Jacob Kollanukkaran [off-list ref]; Ruifeng Wang (Arm Technology China) [off-list ref] Subject: Re: [PATCH v1] net/ixgbe: adjust error for UDP with zero checksum On Tue, Feb 2, 2021 at 1:42 PM Wang, Haiyue [off-list ref] wrote:quoted
quoted
If the driver/hw can't report a valid checksum hint, it should announce it does not know if the checksum is valid (neither bad, nor good). So the workaround for udp packets (on this hw model) would be to report PKT_RX_L4_CKSUM_UNKNOWN. The sw application will then have to recompute the checksum itself if needed.Make sense, but not sure the vector path can handle this more easily. Will try.Refining this a bit. It looks like hw correctly reports "good" checksums, so maybe instead report PKT_RX_L4_CKSUM_UNKNOWN only for reports of "bad" checksums from the hw?I guess Paolo will complain about the performance drop for zero checksum UDP. ;-)
:)
Deep into OVS for detail, 'PKT_RX_L4_CKSUM_UNKNOWN' is a graceful way. ;-) Will work for this target.
yes, validation gets skipped in such case. I'll be happy to test it once posted.
/* Validation must be skipped if checksum is 0 on IPv4 packets */ return (udp->udp_csum == 0 && key->dl_type == htons(ETH_TYPE_IP)) || (validate_checksum ? checksum_valid(key, data, size, l3) : true);quoted
quoted
-- David Marchand