alloc_skb_with_frags(9)
π NAME π
alloc_skb_with_frags β allocate skb with page frags
okay so this page is straight outta the Kernel API Manual, bestie, and it's all about alloc_skb_with_frags β the function that allocates an skb with page frags. it's giving kernel networking realness, no cap. π
β¨ SYNOPSIS β¨
struct sk_buff * alloc_skb_with_frags (unsigned long header_len ,
unsigned long data_len , int order , int *errcode , gfp_t gfp_mask );
yes queen, that's the whole signature. keep it cute, keep it exact. π
πΈ ARGUMENTS πΈ
header_lenβ size of the linear part. that's the linear bit, bestie. β¨data_lenβ needed length in frags. so this is the length you need living in the frags. π§orderβ max page order desired. the highest page order you're asking for, periodt. πerrcodeβ pointer to error code if any. if something goes sideways, this pointer is where an error code can show up. πgfp_maskβ allocation mask. the allocation mask, exactly as advertised. π
π¦ DESCRIPTION π¦
so basically: this can be used to allocate a paged skb, given a maximal order for frags. that's the whole vibe. it's not doing extra lore β it's just handing you that paged skb situation when you've picked your maximal order for the frags. π
π₯ SEE ALSO π₯
Kernel file: ./net/core/skbuff.c β and the whole bestie squad is here:
drop_reasons_register_subsys(9)drop_reasons_unregister_subsys(9)skb_panic(9)napi_skb_cache_get_bulk(9)__build_skb(9)build_skb_around(9)__napi_build_skb(9)napi_build_skb(9)__alloc_skb(9)__netdev_alloc_skb(9)napi_alloc_skb(9)skb_pp_cow_data(9)skb_pp_frag_ref(9)__kfree_skb(9)sk_skb_reason_drop(9)skb_tx_error(9)consume_skb(9)__consume_stateless_skb(9)napi_consume_skb(9)alloc_skb_for_msg(9)skb_morph(9)skb_copy_ubufs(9)skb_clone(9)skb_copy(9)__pskb_copy_fclone(9)pskb_expand_head(9)skb_expand_head(9)skb_copy_expand(9)__skb_pad(9)pskb_put(9)skb_put(9)skb_push(9)skb_pull(9)skb_pull_data(9)skb_trim(9)__pskb_pull_tail(9)skb_copy_bits(9)skb_store_bits(9)skb_zerocopy(9)skb_dequeue(9)skb_dequeue_tail(9)skb_queue_purge_reason(9)skb_rbtree_purge(9)skb_queue_head(9)skb_queue_tail(9)skb_unlink(9)skb_append(9)skb_split(9)skb_shift(9)skb_prepare_seq_read(9)skb_seq_read(9)skb_abort_seq_read(9)skb_copy_seq_read(9)skb_find_text(9)skb_pull_rcsum(9)skb_segment(9)skb_to_sgvec(9)skb_cow_data(9)skb_clone_sk(9)skb_partial_csum_set(9)skb_checksum_setup(9)skb_checksum_maybe_trim(9)skb_checksum_trimmed(9)skb_try_coalesce(9)skb_scrub_packet(9)skb_eth_pop(9)skb_eth_push(9)skb_mpls_push(9)skb_mpls_pop(9)skb_mpls_update_lse(9)skb_mpls_dec_ttl(9)skb_condense(9)__skb_ext_alloc(9)__skb_ext_set(9)skb_ext_add(9)skb_attempt_defer_free(9)skb_splice_from_iter(9)
okay that's the page, bestie. source/version corner: ./net/core; date on the page: October 2026; title energy: alloc_skb_with_frags(9). mwah ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms