Thread (20 messages) flat view 20 messages, 5 authors, 2021-04-08

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 checksum
quoted
-----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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help