> -----Original Message-----
> From: David Marchand <[email protected]>
> Sent: Tuesday, February 2, 2021 17:45
> To: Wang, Haiyue <[email protected]>
> Cc: dev <[email protected]>; [email protected]; Aaron Conole
> <[email protected]>; Zhang, Qi Z
> <[email protected]>; Rong, Leyi <[email protected]>; Tu, Lijuan
> <[email protected]>; dpdk
> stable <[email protected]>; Guo, Jia <[email protected]>; Richardson, Bruce
> <[email protected]>;
> Ananyev, Konstantin <[email protected]>; Jerin Jacob Kollanukkaran
> <[email protected]>;
> Ruifeng Wang (Arm Technology China) <[email protected]>
> 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