skb_append(9)
π skb_append(9) β from the Kernel API Manual, bestie π«Ά
okay so this one is called skb_append, and yes it lives in the Kernel API Manual. it's short, it's sweet, and it's doing exactly one (1) thing. let's get into it β¨
πΈ NAME πΈ
skb_append β append a buffer π
like, literally just put a buffer after another buffer. that's the whole job. iconic behaviour, no notes.
β¨ SYNOPSIS β¨
void skb_append (struct sk_buff *old , struct sk_buff *newsk , struct
sk_buff_head *list );
returns nothing (void), takes three things, does not miss. π
π ARGUMENTS π
oldβ the buffer you wanna insert after. she's the anchor, the reference point, the main character in this scenario πnewskβ the buffer you're actually inserting. this is the one getting slotted in π¦listβ the list to use. the venue. the group chat. the place where all this goes down π
π₯ DESCRIPTION π₯
okay so here's the vibe: this function places a packet after a given packet in a list. that's it, that's the whole thing π
the list locks are taken β so yeah, it handles that for you, no need to stress about it yourself π«Ά β and because of that, this function is atomic with respect to other list locked calls. so like, while she's doing her little insertion, nobody else's locked calls are gonna slide in and mess with the same list. no cap, that's the guarantee β¨
β οΈ one (1) buffer cannot be placed on two lists at the same time. that's a hard no, bestie. pick a list. commit. π
π SEE ALSO π
the kernel file in question is ./net/core/skbuff.c β that's where the magic lives π§ and here's the whole extended friend group, in order, all of them, yes every single one:
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_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_set(9)skb_ext_add(9)skb_attempt_defer_free(9)skb_splice_from_iter(9)
π¦ sign-off π¦
this page is from ./net/core, dated October 2026, and it's serving skb_append(9) energy from the Kernel API Manual. mwah. go append responsibly, bestie π
ππΈ
π¦ 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