On Mon Apr 12 2021, Jesper Dangaard Brouer wrote: > On Mon, 12 Apr 2021 12:17:13 +0200 > Kurt Kanzenbach <kurt@xxxxxxxxxxxxx> wrote: > >> When using native XDP with the igb driver, the XDP frame data doesn't point to >> the beginning of the packet. It's off by 16 bytes. Everything works as expected >> with XDP skb mode. >> >> Actually these 16 bytes are used to store the packet timestamps. Therefore, pull >> the timestamp before executing any XDP operations and adjust all other code >> accordingly. The igc driver does it like that as well. > > (Cc. Alexander Duyck) Thanks. > > Do we have enough room for the packet page-split tricks when these 16 > bytes are added? I think so. AFAICT the timestamp header is accounted. There is IGB_2K_TOO_SMALL_WITH_PADDING. If 2k isn't sufficient, then 3k buffers are used. The only thing this patch does, is adjusting the xdp->data pointer before executing igb_run_xdp() instead of doing it afterwards. So, that in the eBPF program `data' points to the packet data, and not to the timestamp. Thanks, Kurt
Attachment:
signature.asc
Description: PGP signature