skb_partial_csum_set(9)
π NAME π
okay bestie, welcome to the skb_partial_csum_set(9) page from the Kernel API Manual β¨ β this one is all about setting up and verifying partial csum values for a packet. periodt π
β¨ SYNOPSIS β¨
bool skb_partial_csum_set (struct sk_buff *skb , u16 start , u16 off );
π«Ά ARGUMENTS π«Ά
skbβ the skb to set π«Άstartβ the number of bytes afterskb->datato start checksumming β¨offβ the offset fromstartto place the checksum π
π§ DESCRIPTION π§
okay so listen: for untrusted partially-checksummed packets, we need to make sure the values for skb->csum_start and skb->csum_offset are valid so we donβt oops π. like, thatβs the whole vibe check.
This function checks and sets those values and skb->ip_summed π
. If this returns false, you should drop the packet. no cap.
π¨ bestie warning: if this returns false you should drop the packet. do not keep it around like a bad situationship π
π SEE ALSO π
Kernel file: ./net/core/skbuff.c β yes, thatβs the spot π
. And hereβs the whole extended fam, in the same order, no cap:
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_segment(9),skb_to_sgvec(9)skb_cow_data(9),skb_clone_sk(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)
okay thatβs the whole page π β source/version: ./net/core, date: October 2026, and the main character is skb_partial_csum_set(9). byeeee πβ¨
π¦ 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