nft_pipapo_avx2_lookup_slow(9)
π nft_pipapo_avx2_lookup_slow(9)
okay so bestie, welcome to the Kernel API Manual β yes we're in the kernel today, put your hair up, we're doing netfilter π
β¨ NAME β¨
nft_pipapo_avx2_lookup_slow β the fallback function for when the field sizes are being uncommon and honestly a little extra π¦
π SYNOPSIS π
int nft_pipapo_avx2_lookup_slow (const struct nft_pipapo_match *mdata ,
unsigned long *map , unsigned long *fill , const struct nft_pipapo_field
*f , const u8 *pkt , bool first , bool last );
like, look at all those parameters. she's thorough. she's committed. we love that for her π«Ά
πΈ ARGUMENTS πΈ
mdataβ the matching data, mapping table included, she comes as a package deal πmapβ the previous match result, and we're using it as our initial bitmap, so it's giving "starting from what we already know" energyfillβ the destination bitmap, the one getting filled up with the current match result, main character of the output honestly β¨fβ the field, and she's carrying both the lookup tables and the mapping tables, so many bags πpktβ the packet data, aka a pointer to the input nftables register, very "here's where the info lives" of itfirstβ so like, if this is the first field, do NOT source the previous result. that's the rule, no caplastβ last field behavior: stop at the very first match and return that bit index. early exit queen π
π¦ DESCRIPTION π¦
Okay so the tea β: this function should never be called. Like, ever. But she exists anyway, because the universe said "what if the field size doesn't match any of the known data types" and somebody had to answer the phone π
So she's here as the fallback for exactly that situation. Just know that her matching rate is substantially lower than the AVX2 routines β so she's not the fastest sister at the function party, but she shows up and she does the job π
π RETURN π
-1β no match, sorry bestie π- rule index of the match if
lastβ like if it's the last field, you get the actual rule index, iconic - otherwise, the first long word index to be checked next β which is to say, the first filled word. that's your next stop on the itinerary π
β SEE ALSO β
Kernel file ./net/netfilter/nft_set_pipapo_avx2.c β go read her, she's the source of truth π
and the whole friend group:
nft_pipapo_avx2_prepare(9)nft_pipapo_avx2_fill(9)nft_pipapo_avx2_refill(9)nft_pipapo_avx2_lookup_4b_2(9)nft_pipapo_avx2_lookup_4b_4(9)nft_pipapo_avx2_lookup_4b_8(9)nft_pipapo_avx2_lookup_4b_12(9)nft_pipapo_avx2_lookup_4b_32(9)nft_pipapo_avx2_lookup_8b_1(9)nft_pipapo_avx2_lookup_8b_2(9)nft_pipapo_avx2_lookup_8b_4(9)nft_pipapo_avx2_lookup_8b_6(9)nft_pipapo_avx2_lookup_8b_16(9)nft_pipapo_avx2_estimate(9)pipapo_resmap_init_avx2(9)pipapo_get_avx2(9)nft_pipapo_avx2_lookup(9)
lowkey the whole_4b_*and_8b_*lineup is a squad, and our girl here is the understudy who only goes on when the sizing gets weird. respect her π«‘
anyway that's the page!! mwah π sourced from ./net/netfilter, dated October 2026, and yeah β she's literally titled nft_pipapo_avx2_lookup_slow(9). catch you in the next manpage bestie πΈπβ¨
π¦ 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