cipso_v4_optptr(9)
πΈ cipso_v4_optptr(9) β the "where's the CIPSO option bestie" finder πΈ
okay so real talk, this is a page out of the Kernel API Manual (cipso_v4_optptr(9)), and it's genuinely one of the shorter ones, so we can absolutely get through this together π«Ά
β¨ NAME β¨
cipso_v4_optptr β Find the CIPSO option in the packet
like... that's the whole job. it finds things. it's giving search-and-rescue but for IP options π
π SYNOPSIS π
unsigned char * cipso_v4_optptr (const struct sk_buff *skb );
look at that signature. so clean. so unsigned char *. we love a pointer return type that could also be NULL π
π¦ ARGUMENTS π¦
skbβ the packet
that's it. that's the argument. one (1) packet, no cap. it's the const struct sk_buff * and we are not touching it, hence the const β respectful king behavior π
π DESCRIPTION π
so what it does is: parse the packet's IP header looking for a CIPSO option. πβ¨
and then β the payoff β it returns a pointer to the start of the CIPSO option on success, or NULL if one is not found. that's it! that's the entire vibe check. found it β you get a pointer to the goods; not found β NULL, go home, there's nothing for you here π
heads up: NULL here means "not found", not "something exploded". lowkey important distinction iykyk π
π SEE ALSO π
okay bestie this part is long, and i mean iconic long. it's all the CIPSO friends living in ./net/ipv4/cipso_ipv4.c, and we're listing every single one because they all deserve their moment β
cipso_v4_cache_entry_free(9)cipso_v4_map_cache_hash(9)cipso_v4_cache_init(9)cipso_v4_cache_invalidate(9)cipso_v4_cache_check(9)cipso_v4_cache_add(9)cipso_v4_doi_search(9)cipso_v4_doi_add(9)cipso_v4_doi_free(9)cipso_v4_doi_free_rcu(9)cipso_v4_doi_remove(9)cipso_v4_doi_getdef(9)cipso_v4_doi_putdef(9)cipso_v4_doi_walk(9)cipso_v4_map_lvl_valid(9)cipso_v4_map_lvl_hton(9)cipso_v4_map_lvl_ntoh(9)cipso_v4_map_cat_rbm_valid(9)cipso_v4_map_cat_rbm_hton(9)cipso_v4_map_cat_rbm_ntoh(9)cipso_v4_map_cat_enum_valid(9)cipso_v4_map_cat_enum_hton(9)cipso_v4_map_cat_enum_ntoh(9)cipso_v4_map_cat_rng_valid(9)cipso_v4_map_cat_rng_hton(9)cipso_v4_map_cat_rng_ntoh(9)cipso_v4_gentag_hdr(9)cipso_v4_gentag_rbm(9)cipso_v4_parsetag_rbm(9)cipso_v4_gentag_enum(9)cipso_v4_parsetag_enum(9)cipso_v4_gentag_rng(9)cipso_v4_parsetag_rng(9)cipso_v4_gentag_loc(9)cipso_v4_parsetag_loc(9)cipso_v4_validate(9)cipso_v4_error(9)cipso_v4_genopt(9)cipso_v4_sock_setattr(9)cipso_v4_req_setattr(9)cipso_v4_delopt(9)cipso_v4_sock_delattr(9)cipso_v4_req_delattr(9)cipso_v4_getattr(9)cipso_v4_sock_getattr(9)cipso_v4_skbuff_setattr(9)cipso_v4_skbuff_delattr(9)cipso_v4_init(9)
the way that list just goes. ate and left no crumbs π₯ all of them live in the kernel file ./net/ipv4/cipso_ipv4.c, so if you ever get lost, that's the address, bestie πΈ
that's the whole page!! short, sweet, and to the point π§π this one came out of ./net/ipv4 and it's dated October 2026 β so mark your calendar, screenshot it, frame it, whatever, it's a whole era π
β¨π
π¦ 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