On 07/21, Jakub Kicinski wrote:
> On Mon, 20 Jul 2026 12:32:55 -0700 Stanislav Fomichev wrote:
> > > > (although for gve I might be wrong, there is also gve_rx_skb_csum that
> > > > only
> > > > does UNNECESSARY).
> > > >
> > > > I'd wait for Jakub to chime in, but it feels like we should just
> > > > document
> > > > what we currently do as a recommended approach: for the drivers
> > > > that support COMPLETE, do not report it when the bpf program is
> > > > attached.
> > > > Both NONE and UNNECESSARY are ok.
> > >
> > > I am not completely sure the UNNECESSARY case is different from the
> > > COMPLETE
> > > one. What are we supposed to do if the driver reports UNNECESSARY and the
> > > ebpf
> > > program modifies some fields covered by the rx-checksum?
> >
> > For unnecessary, I think the safe expectation is that the bpf program
> > will update the value of the checksum in the packet if it touches the data?
>
> Documenting as expected behavior which no driver currently follows
> is a bit silly. I thought the ask was to sketch out the plan of
> explicitly updating/invalidating the checksum even if we don't
> implement it today?
This is about current drivers that only report UNNECESSARY with xdp: the xdp
prog has to maintain in-packet checksum if it changes the payload. I think
it's a fair assumption?
In terms of documentation, here is what I have on my side, lmk if that makes
sense, roughly:
- TODAY
- some drivers (correctly) disable reporting COMPLETE when XDP is attached
- the xdp program has to modify the packet checksum value if it
changes the payload
- some drivers (incorrectly?) report COMPLETE for xdp-to-skb path -> unsafe,
needs to be fixed
- updating the payload doesn't update skb->csum, so the safest
option right now is to only do UNNECESSARY with xdp for all drivers
- the hw test needs to make sure that the csum is either
NONE or UNNECESSARY, and will error out on COMPLETE
- TOMORROW
- if we want to properly support COMPLETE, we need a new set of kfuncs
to update skb->csum value in the skb
Does that make sense?