idpf_rx_hsplit_wa(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… idpf_rx_hsplit_wa β€” handle header buffer overflows and split errors

okay so bestie, welcome to the kernel API manual (section 9) page for idpf_rx_hsplit_wa, and yes it's as niche as it sounds but we're gonna slay it together 🫢


✨ SYNOPSIS ✨

u32 idpf_rx_hsplit_wa (const struct libeth_fqe *hdr , struct libeth_fqe *buf , u32 data_len );

πŸŽ€ ARGUMENTS πŸŽ€

  • hdr β€” the Rx buffer that's holding the headers πŸ’–
  • buf β€” the Rx buffer that's holding the payload
  • data_len β€” how many bytes got received into the payload buffer

🌸 DESCRIPTION 🌸

So here's the vibe check: when a header buffer overflow happens, or the HW literally could not parse the packet type to do the header split, the whole frame ends up dumped into the payload buffer. Not ideal, but here we are 😭

And we can't build a valid skb around a payload buffer while the header split is active β€” because that buffer doesn't reserve any head- or tailroom. Zero. None. It's giving empty.

So in that case we copy either the whole frame (when it's short) or just the Ethernet header over to the header buffer, so we can actually build an skb, and then adjust the data offset in the payload buffer. IOW: we emulate the header split. Fake it till you make it, periodt πŸ’…


πŸ”₯ RETURN πŸ”₯

The number of bytes copied to the header buffer. That's it, that's the whole return value 🧚


πŸ‘‘ SEE ALSO πŸ‘‘

The kernel file this lives in, no cap:

./drivers/net/ethernet/intel/idpf/idpf_txrx.c

And now the iconic extended universe of siblings (they're all (9) pages, every single one, don't come for me):


and that's the whole page, bestie β€” no gatekeeping πŸ’œ this one lives under ./drivers/net/ethernet/intel/idpf and it's dated October 2026, so go forth and emulate those header splits βœ¨πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from