nft_pipapo_get(9)
π nft_pipapo_get(9) β like, the Kernel API Manual page you didn't know you needed
okay so bestie, welcome to the nft_pipapo_get(9) glow-up π this is straight out of the Kernel API Manual, so grab your lil iced coffee and let's get into it β¨
πΈ NAME πΈ
nft_pipapo_get β get matching element reference given key data π
literally just: you hand it key data, it hands you back the matching element reference. that's the whole vibe. no cap.
π¦ SYNOPSIS π¦
struct nft_elem_priv * nft_pipapo_get (const struct net *net , const
struct nft_set *set , const struct nft_set_elem *elem , unsigned int
flags );
look at that signature. iconic. four args, zero drama π
β¨ ARGUMENTS β¨
netβ the network namespace, aka the little universe this whole thing lives in πsetβ the nftables API set representation. yep, the set. the whole set. πelemβ the nftables API element representation, and this one's carrying the key data you're matching on πflagsβ unused. not me giving you a parameter that does absolutely nothing π she's just there for the aesthetic.
π DESCRIPTION π
so here's the tea: this function gets called from the control plane path, and it does its thing under the RCU read lock π₯ that part matters, bestie β noted and canon.
that's the lore. short, sweet, main character energy. periodt.
β RETURN β
it gives you back the set element private pointer β or ERR_PTR(-ENOENT) if it doesn't find what you're looking for π (yes, -ENOENT, the classic "no such thing" icon).
π§ SEE ALSO π§
the friend group. the whole group chat. every single one of them π:
- Kernel file
./net/netfilter/nft_set_pipapo.cTheory of Operation(9) β read this first fr fr, it's giving lore drop pipapo_refill(9)pipapo_get_slow(9)pipapo_get(9)nft_pipapo_lookup(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)
that's 45 besties. all accounted for. none left on read π«Ά
π friendly reminder: it's a pipapo function, so if you're poking at this from the control plane, remember the RCU read lock is holding the whole situation together. respect the lock.
okay that's the page!! source is ./net/netfilter, dated October 2026, and it comes to you courtesy of the Kernel API Manual β mwah, go read some kernel source, you got this π
πβ¨
π¦ 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