Re: [PATCH net] igc: track rx frame boundaries independent of skbs

From: Maciej Fijalkowski

Date: Mon Oct 26 2026 - 15:47:12 EST


On Sun, Oct 25, 2026 at 06:52:06AM +0000, Paul Moses wrote:
> TSIP remains set on continuation descriptors, but the inline timestamp
> header exists only in the first buffer. Stripping it from every
> descriptor truncates split frames and can underflow short buffers.
>
> skb ownership cannot identify frame boundaries when XDP consumes the
> first buffer or AF_XDP uses zero-copy.
>
> Track rx_in_frame per ring and update it as descriptors are consumed.
> Strip timestamps only from first buffers, reject unsupported split
> frames before XDP and drain continuations. Account discarded
> descriptors against NAPI work without counting successful RX.
>
> Fixes: e1ed4f92a625 ("igc: Refactor Rx timestamp handling")
> Fixes: 26575105d6ed ("igc: Add initial XDP support")
> Fixes: fc9df2a0b520 ("igc: Enable RX via AF_XDP zero-copy")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Paul Moses <p@xxxxxxx>
> ---
> - This supersedes "igc: only strip RX timestamp header from first buffer"
> following feedback from Simon Horman, Maciej Fijalkowski and Sashiko.
>
> Changes:
> - track frame boundaries independently of skb ownership
> - guard timestamp stripping and drain unsupported split frames
> - cover the AF_XDP zero-copy RX path
> ---
> drivers/net/ethernet/intel/igc/igc.h | 1 +
> drivers/net/ethernet/intel/igc/igc_main.c | 87 ++++++++++++++++-------
> 2 files changed, 64 insertions(+), 24 deletions(-)

Hi Paul,

I think this implementation went off track. We should make sure we *never*
enter data path for XDP/AF_XDP multi-buffer scenario until we add real
support to it within this driver. Now you sorta handle fragmented packets
in data path.

I tried to argue with bot reports that it hallucinated for
igc_clean_rx_irq() content (which was concise and to the point) and agreed
the AF_XDP should *not* be exposed to any fragmented traffic, which should
be addressed on HW RX ring configuration side, not within data path.

Also this should have been a v3 with a link to previous revisions so we
could keep track what has been changing between versions.

Here's something that would address ZC fragmentation issue. Could you give
it a spin on your side as I don't currently have igc in my setup handy.