skb_split(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… skb_split(9) β€” Kernel API Manual, but make it make sense ✨

okay so bestie, welcome to the skb_split(9) page πŸ’– this one lives in the Kernel API Manual and it's honestly so short you could read it in the time it takes to refresh the group chat. still iconic though. let's get into it 🫢


🌸 NAME 🌸

skb_split β€” split a fragmented skb into two parts at length len. periodt βœ‚οΈπŸ’«


⭐ SYNOPSIS ⭐

void skb_split (struct sk_buff *skb , struct sk_buff *skb1 , const u32
len );

like, that's the whole signature. no cap, she's tidy πŸŽ€


πŸ¦‹ ARGUMENTS πŸ¦‹

  • skb β€” the buffer you're splitting. this is the main character of the operation πŸ‘‘
  • skb1 β€” the buffer that receives the second part. the designated bestie holding the other half 🫢
  • len β€” the new length for skb. yep, that's the number deciding where the cut happens βœ‚οΈ

🌈 SEE ALSO 🌈

k, this part is a lot. but every single one of these deserves its mention okay, i'm not skipping anyone πŸ’€

Kernel file ./net/core/skbuff.c β€” plus all of these lovely little cross-references:

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_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)

see? all of them. every single one. ate and left no crumbs πŸ’…βœ¨


πŸŽ€ tiny reminder: this page is exactly what it says it is β€” split a fragmented skb to two parts at length len. don't go adding lore that isn't on the page, bestie, iykyk 🧚

k that's the whole page, short and sweet like a good text back 🌸 this one came from the manual source ./net/core, dated October 2026, and it's filed under skb_split(9) β€” mwah, bye bestie πŸ’œπŸ¦‹

πŸ“¦ where this page comes from