__skb_ext_set(9)
π
__skb_ext_set β the Kernel API Manual, but make it make sense
okay bestie, so this is a page straight out of the Kernel API Manual, and it's genuinely short and sweet β a little three-argument function that glues extension storage onto an skb. Let's get into it π
β¨ NAME β¨
__skb_ext_set β literally "attach the specified extension storage to this skb" π that's the whole job, no cap.
π¦ SYNOPSIS π¦
void * __skb_ext_set (struct sk_buff *skb , enum skb_ext_id id , struct skb_ext *ext );
look at her, she's serving void * realness β she gives you back a pointer, icon behaviour β¨
π ARGUMENTS π
skbβ the buffer. yeah, that one. the whole reason we're here π«Άidβ the extension id, aka which slot on the extension shelf you're pointing at πextβ the extension storage itself, and hear me out: it has to be storage that was previously allocated via__skb_ext_allocπ no DIY storage, no vibes-based pointers, okay?
π DESCRIPTION π
so here's the tea β β existing extensions, if any, are cleared. like, gone. wiped. don't come crying to me if you had something in there π
and then, bestie, she returns the pointer to the extension πΈ that's it, that's the function, main character energy fr fr.
π SEE ALSO π
kernel file ./net/core/skbuff.c β plus a whole friend group of skb function girlies, iykyk β¨
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)alloc_skb_with_frags(9),skb_condense(9),__skb_ext_alloc(9),skb_ext_add(9),skb_attempt_defer_free(9),skb_splice_from_iter(9)
π tiny reminder bestie: thatextargument isn't a free-for-all β it's gotta be the storage that came from__skb_ext_alloc. your own random storage will not slay here, it will just break.
π§ sign-off π§
and that's the page!! brought to you from ./net/core, dated October 2026, filed under __skb_ext_set(9) β go forth and attach those extensions, bestie, you're gonna do amazing πβ¨π
π¦ 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