skb_prepare_seq_read(9)
π skb_prepare_seq_read β NAME β¨
Okay bestie, so this page is about skb_prepare_seq_read (kernel API manual, the skb_prepare_seq_read(9) one, iykyk) β and what it does is prepare a sequential read of skb data. That's the whole vibe. π¦
πΈ SYNOPSIS πΈ
Literal character-for-character, no cap:
void skb_prepare_seq_read (struct sk_buff *skb , unsigned int from ,
unsigned int to , struct skb_seq_state *st );
π ARGUMENTS π
skbβ the buffer you're reading from. the main character, literally. πfromβ the lower offset of the data you wanna read.toβ the upper offset of the data you wanna read. yes it's a range, slay. β¨stβ the state variable. she holds the state. that's her whole job. π
π¦ DESCRIPTION π¦
So what it actually does: it initializes the state variable you passed in as st. That's it. That's the function. π«Ά
β οΈ But listen β this one is non-negotiable: it must be called before invoking skb_seq_read for the first time. Like, before you even think about it. no cap. π
π SEE ALSO π
Kernel file ./net/core/skbuff.c β and here's the whole friend group, every single one, no skipping, 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_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_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)
That's the whole page, bestie β go read your skb data sequentially, you got this. π
source: ./net/core π version/date situation: October 2026 β mwah, bye, catch you in the kernel tree πβ
π¦ 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