skb_morph(9)
π skb_morph β a Kernel API Manual moment (section 9, kernel land, slay)
okay so bestie, welcome to skb_morph(9) β¨ literally the glow-up page for one very specific kernel function. no cap, it's short, it's cute, it's giving "small but mighty." let's get into it π
πΈ NAME πΈ
skb_morph β morph one skb into another π¦
like. it literally morphs. the name ate and left no crumbs.
β¨ SYNOPSIS β¨
struct sk_buff * skb_morph (struct sk_buff *dst , struct sk_buff *src );
that signature is the whole vibe check: you hand it two pointers to struct sk_buff and it hands one back π«Ά
π ARGUMENTS π
dstβ the skb that receives the contents. she's the destination, the main character, the one getting the makeover πsrcβ the skb that supplies the contents. she's the source, the provider, the one lending out the lore π
π₯ DESCRIPTION π₯
so here's the tea, bestie: this is identical to skb_clone β like, same energy, same behaviour β except that the target skb is supplied by the user. you're not getting a fresh target handed to you; you're bringing your own dst to the party π
and then: the target skb is returned upon exit. that's it. that's the whole function. she comes back to you. periodt π
ngl, this one is short β but that's not a red flag, that's just a focused icon doing exactly one job and doing it well β¨
π SEE ALSO π
Kernel file: ./net/core/skbuff.c β and the whole friend group chat of related functions, all present and accounted for, fr fr:
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_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_set(9)skb_ext_add(9)skb_attempt_defer_free(9)skb_splice_from_iter(9)
iykyk π that's a lot of cousins at the family reunion, but every single one showed up πΈ
π§ sign-off π§
this page lives in the source dir ./net/core and it's dated October 2026 β so bookmark it, screenshot it, send it to the group chat π stay morphed, 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