pipapo_get_slow(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… pipapo_get_slow(9)

okay so this is from the Kernel API Manual bestie, and it's the ~slow~ lookup girlie of the pipapo family. she's not in a hurry, she's just thorough πŸ’–


✨ NAME ✨

pipapo_get_slow β€” get the matching element reference when you hand her the key data πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct nft_pipapo_elem * pipapo_get_slow (const struct nft_pipapo_match
*m , const u8 *data , u8 genmask , u64 tstamp );

🌸 ARGUMENTS 🌸

  • m β€” the storage holding all the set elements. it's literally where everybody lives πŸ’…
  • data β€” the key data we're matching against the existing elements. this is the thing we're looking for, no cap πŸ”
  • genmask β€” if it's set, we check that the element is actually active in that given genmask. like a vibe check but for generations ✨
  • tstamp β€” the timestamp we use to check for expired elements. grandma elements get caught here ⏰

🧚 DESCRIPTION 🧚

For more details, see DOC: Theory of Operation. (iykyk πŸ‘€)

So this is the main lookup function, main character energy fr fr. She matches your key data against either the working match set or the uncommitted copy β€” it all depends on what the caller passed in to her. She's flexible like that 🫢

  • nft_pipapo_get (that's the lookup from userspace/control plane) and nft_pipapo_lookup (the datapath lookup) β€” both of them pass the active copy ✨
  • the insertion path is gonna pass the uncommitted working copy πŸ› οΈ

periodt. that's the whole vibe check.


πŸ’€ RETURN πŸ’€

A pointer to struct nft_pipapo_elem when there's a match, and NULL otherwise 😭

ngl, NULL is the "she's not here" of return values. don't panic, it's just not a match πŸ’…

🌈 SEE ALSO 🌈

Kernel file ./net/netfilter/nft_set_pipapo.c Theory of Operation(9), pipapo_refill(9), pipapo_get(9), nft_pipapo_lookup(9), nft_pipapo_get(9), pipapo_realloc_mt(9), lt_calculate_size(9), pipapo_resize(9), pipapo_bucket_set(9), pipapo_lt_4b_to_8b(9), pipapo_lt_8b_to_4b(9), pipapo_lt_bits_adjust(9), pipapo_insert(9), pipapo_step_diff(9), pipapo_step_after_end(9), pipapo_base_sum(9), pipapo_expand(9), pipapo_map(9), pipapo_free_scratch(9), pipapo_realloc_scratch(9), pipapo_maybe_clone(9), nft_pipapo_insert(9), pipapo_clone(9), pipapo_rules_same_key(9), pipapo_unmap(9), pipapo_drop(9), pipapo_gc_scan(9), pipapo_gc_queue(9), pipapo_free_fields(9), pipapo_reclaim_match(9), nft_pipapo_commit(9), nft_pipapo_activate(9), nft_pipapo_deactivate(9), nft_pipapo_flush(9), pipapo_get_boundaries(9), pipapo_match_field(9), nft_pipapo_remove(9), nft_pipapo_do_walk(9), nft_pipapo_walk(9), nft_pipapo_privsize(9), nft_pipapo_estimate(9), nft_pipapo_init(9), nft_set_pipapo_match_destroy(9), nft_pipapo_destroy(9), nft_pipapo_gc_init(9)

like, that's the whole group chat, everyone's invited πŸŽ‰


mwah πŸ’‹ this page came from ./net/netfilter and it's dated October 2026 β€” screenshot it, bookmark it, tattoo it, idc, just remember the date bestie 🫢✨

πŸ“¦ where this page comes from