pipapo_refill(9)
π NAME π
okay so this is pipapo_refill(9), straight out of the Kernel API Manual, and bestie, it's a whole little bitmap-refill situation. β¨
pipapo_refill β for each set bit, set bits from the selected mapping table item. Yes, that's the summary, and yes, it's doing exactly what it says. π
β¨ SYNOPSIS β¨
here's the signature, character-for-character, because we do not mess with literal C, periodt:
int pipapo_refill (unsigned long *map , unsigned int len , unsigned int rules , unsigned long *dst , const union nft_pipapo_map_bucket *mt , bool match_only );
π ARGUMENTS π
six args, no skips, let's go π«Ά
mapβ the bitmap that gets scanned for set bits.lenβ length of the bitmap in longs.rulesβ number of rules in the field.dstβ the destination bitmap.mtβ mapping table containing the bit set specifiers.match_onlyβ find a single bit and return; don't fill.
π¦ DESCRIPTION π¦
first, credit where it's due: the iteration over set bits with __builtin_ctzl comes from Daniel Lemire, public domain. π«Ά
then the actual bit magic: for each bit set in map, it selects the bucket from the mapping table with the index corresponding to the position of that set bit. then it uses the start bit and the amount of bits specified in that bucket to fill the region in dst. π¦
πΈ RETURN πΈ
the return situation is simple:
-1on no match.- the bit position on
match_only. 0otherwise.
that's the whole menu β no secret extra returns, no mystery bonus value. π
π SEE ALSO π
you want the extended universe? say less. here's the whole reading list, exactly in order:
- Kernel file
./net/netfilter/nft_set_pipapo.candTheory of Operation(9)β thenpipapo_get_slow(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).
mwah π β that's the whole page, bestie. source/version is ./net/netfilter, date is October 2026, and the page is pipapo_refill(9). πβ¨
π¦ 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