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

Re: [dpdk-dev] [PATCH v1] net/ixgbe: adjust error for UDP with zero checksum

From: Wang, Haiyue <hidden>
Date: 2021-02-02 12:54:59

-----Original Message-----
From: David Marchand <redacted>
Sent: Tuesday, February 2, 2021 17:45
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];
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
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.
Looks like this workaround will make OVS performance drop a lot, since
every UDP packet needs to do checksum by SW:

            bool  hwol_good_l4_csum = dp_packet_l4_checksum_valid(pkt)
                                      || dp_packet_hwol_tx_l4_checksum(pkt);
            /* Validate the checksum only when hwol is not supported. */
            if (extract_l4(&ctx->key, l4, dp_packet_l4_size(pkt),
                           &ctx->icmp_related, l3, !hwol_good_l4_csum,
                           NULL)) {
                ctx->hash = conn_key_hash(&ctx->key, ct->hash_basis);
                return true;
            }

The lesser of the two rights, marking as good seems a little better.
--
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