skb_split(9)
π 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 forskb. 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
- 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