netif_receive_skb_core(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… netif_receive_skb_core(9) β€” like, the Kernel API Manual edition πŸŽ€

okay bestie, so this is netif_receive_skb_core β€” it's giving "special purpose version of netif_receive_skb" and honestly? iconic but niche. she's not for everybody. read the vibes below before you call her fr fr ✨


🌸 SYNOPSIS 🌸

int netif_receive_skb_core (struct sk_buff *skb );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • skb β€” the buffer to process, bestie. that's the one. hand it over and let her cook πŸ’…

✨ DESCRIPTION ✨

So this is the more direct receive version of netif_receive_skb. Like, she skips the line and walks straight in. main character energy, no cap πŸ‘‘

She should only be used by callers that have a genuine need to skip RPS and Generic XDP β€” that's not a suggestion, that's the whole vibe check. if you don't need to skip those, why are you here? πŸ™ˆ

The caller must also take care of handling if (page_is_)pfmemalloc. yes queen, that's on you. she's not doing it for you πŸ’€

⚠️ Rule time: this function may only be called from softirq context, and interrupts should be enabled. break that and it's not cute, it's a crash 😭

Return values (which are usually ignored, ngl):

  • NET_RX_SUCCESS β€” no congestion, slay πŸŽ‰
  • NET_RX_DROP β€” packet was dropped, rip to that packet πŸͺ¦

πŸ’œ SEE ALSO πŸ’œ

okay this list is long long, but we don't skip anyone in this house. also peep the kernel file: ./net/core/dev.c 🫢


that's the whole page bestie, go forth and receive those skbs responsibly πŸŒˆπŸ‘‘

πŸ’– mwah πŸ’– β€” sourced straight from ./net/core, dated October 2026, and yes she's still filed under netif_receive_skb_core(9) πŸŽ€βœ¨

πŸ“¦ where this page comes from