Not having checksum offload in XDP is going to get more painful once we start seeing a lot programs doing packet modifications. One nice thing we do for ILA router is pre-compute the checksum delta necessary to maintain checksum neutral property in the packet. So that after doing ILA routing in XDP the checksum complete value is still valid as is the transport layer checksum.
It's conceivable we could generalize this by having a u16 checksum delta returned from XDP program. If the checksum diff can be pre-computed in a structure for doing the translation, then there should be little cost other than making API a little more complex. On return the checksum_complete value is updated jusy by adding in the diff value. Tom