ββββββββββββββββββββββββββββββββββββββββββββββββ
β headroom β packet data β tailroom β
ββββββββββββββββββββββββββββββββββββββββββββββββ
tail β
tailroom is the contiguous region after packet data in a packet buffer.
it is used to append headers or trailers without reallocating memory.
RX: [ alloc ] ββββββββββββββββββββββββββββββββ β head | data | tailroom β ββββββββββββββββββββββββββββββββ TX: push() ββββββββββββββββββββββββββββββββ β head | expanded data | tail β ββββββββββββββββββββββββββββββββ
used in linux skb, xdp, af_xdp, dpdk.
if tailroom is wrong you corrupt memory or fall off fast path.