skb_segment(9)
π skb_segment(9) β a Kernel API Manual moment π
okay so bestie, welcome to the glow-up of skb_segment, brought to you by the Kernel API Manual. it's not deep lore, it's just the function for doing protocol segmentation on an skb, and honestly? she's iconic. let's get into it β¨
πΈ NAME πΈ
skb_segment β Perform protocol segmentation on skb. that's the whole vibe. that's the assignment. π
π¦ SYNOPSIS π¦
like, here's the signature, exactly as it is, no notes:
struct sk_buff * skb_segment (struct sk_buff *head_skb ,
netdev_features_t features );
β¨ ARGUMENTS β¨
head_skbβ the buffer to segment. this is the main character, she's getting chopped up π«Άfeaturesβ features for the output path (seedev->features). yeah, checkdev->featuresfor the deets, iykyk π
π DESCRIPTION π
so this function performs segmentation on the given skb. that's it, that's the job, and she does it so well π
she returns a pointer to the first in a list of new skbs for the segments β like handing you a whole friend group and going "here, first one's right there" π
and in case of error it returns ERR_PTR(err). so please, please, check for that, okay? don't just start dereferencing it and expecting a slay. that's not giving what you think it's giving ππ
π SEE ALSO π
she comes with a whole entourage, fr fr. all of these are hanging out in the Kernel file ./net/core/skbuff.c:
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_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)
like i said. an entourage. go say hi to all of them π
that's the whole page bestie, no cap, nothing skipped. now go segment some skbs and be iconic about it π§ββοΈβ¨
and finally, the cute lil sign-off: this page lives in ./net/core, dated October 2026, and it's filed under skb_segment(9) πππ¦ ngl, she ate.
π¦ 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