On 5/28/21 3:18 PM, Tom Herbert wrote: > On Fri, May 28, 2021 at 10:44 AM Lorenzo Bianconi <lorenzo@xxxxxxxxxx> wrote: >> >> Introduce flag field in xdp_buff and xdp_frame data structure in order >> to report xdp_buffer metadata. For the moment just hw checksum hints >> are defined but flags field will be reused for xdp multi-buffer >> For the moment just CHECKSUM_UNNECESSARY is supported. >> CHECKSUM_COMPLETE will need to set csum value in metada space. >> > Lorenzo, > > This isn't sufficient for the checksum-unnecessary interface, we'd > also need ability to set csum_level for cases the device validated > more than one checksum. That's on me. The original patch was for XDP_REDIRECT to VMs and the VIRTIO_NET_HDR_ API does not support csum_level. VIRTIO_NET_HDR_F_DATA_VALID means CHECKSUM_UNNECESSARY, an API implemented 10 years ago. > > IMO, we shouldn't support CHECKSUM_UNNECESSARY for new uses like this. > For years now, the Linux community has been pleading with vendors to > provide CHECKSUM_COMPLETE which is far more useful and robust than > CHECSUM_UNNECESSARY, and yet some still haven't got with the program > even though we see more and more instances where CHECKSUM_UNNECESSARY > doesn't even work at all (e.g. cases with SRv6, new encaps device > doesn't understand). I believe it's time to take a stand! :-) > There is no new hardware or new feature at play here. This about XDP frames getting the checksum validation setting that an skb enjoys today. You are taking a stand against S/W equivalency with the existing NICs? That basically penalizes XDP, continuing to limit its usefulness with very well established use cases that could benefit from it.