__pskb_pull_tail(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

Okay bestie, welcome to __pskb_pull_tail(9) from the Kernel API Manual β€” yes, we're in kernel API land, stay close πŸ’…

The name is literally the job: advance tail of skb header. That's it. That's the whole assignment. ✨


✨ SYNOPSIS ✨

void * __pskb_pull_tail (struct sk_buff *skb , int delta );

πŸŽ€ ARGUMENTS πŸŽ€

  • skb β€” the buffer to reallocate, bestie. That's the one we're working on.
  • delta β€” the number of bytes to advance the tail by. Yes, exactly that many. πŸ”₯

πŸ’… DESCRIPTION πŸ’…

Okay so this function only makes sense on a fragmented sk_buff β€” like, if it's not fragmented, this is not the vibe. It expands the header by moving its tail forward and copying the necessary data over from the fragmented part. Very β€œmake it fit” energy. 🫢

⚠️ HUGE caveat, no cap: the sk_buff MUST have a reference count of 1. Not 2, not β€œbasically 1,” not β€œit's fine probably.” 1. Periodt. πŸ‘‘

If the pull failed, it returns NULL β€” and sk_buff does not change. If it succeeded, you get the value of the new tail of skb. Slay. πŸ’–

🚨 Another important one: all the pointers pointing into the skb header may change, and they must be reloaded after you call this function. Do not reuse stale pointers, bestie, I am begging. 😭

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./net/core/skbuff.c β€” here's the whole iconic friend group:


Signed, sealed, delivered from ./net/core, October 2026 β€” page __pskb_pull_tail(9) out πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from