Vývojári podsystemu filtrovania a modifikácie sieťových paketov Netfilter súbor záplat, ktoré významne urýchľujú spracovanie veľkých zoznamov porovnania (nftables set), v ktorých sa vyžaduje kontrola kombinácie podsietí, sieťových portov, protokolu a MAC adries. Záplaty už boli prijaté do vetvy , ktorá bude navrhnutá na zaradenie do jadra Linux 5.7. Najvýraznejšieho zrýchlenia sa podarilo dosiahnuť vďaka inštrukcií AVX2 (v budúcnosti je plánované zverejniť podobné optimalizácie založené na inštrukciách NEON pre ARM).
Optimalizácie boli zavedené do modulu (PIle PAcket POlicies), ktorý rieši úlohu porovnania obsahu paketu s používanými pravidlami filtrovania na základe akýchkoľvek rozsahov stavových polí, ako sú rozsahy IP a sieťových portov (nft_set_rbtree a nft_set_hash manipulujú s porovnávaním intervalov a priamym zrkadlením hodnôt). Vektorovaná pomocou 256-bitových inštrukcií AVX2 verzia pipapo na systéme s procesorom AMD Epyc 7402 vykázala nárast výkonu o 420% pri analýze 30 tisíc záznamov, vrátane dvojíc port-protokol. Nárast pri porovnaní dvojice z podsiete a čísla portu pri analýze 1000 záznamov dosiahol 87% pre IPv4 a 128% pre IPv6.

Ďalšia optimalizácia, ktorá umožňuje používať 8-bitové skupiny porovnávania namiesto 4-bitových, tiež vykázala zjavný nárast výkonu: 66% pri analýze 30 tisíc záznamov port-protokol, 43% — podsieť_IPv4-port a 61% — podsieť_IPv6-port. Celkovo, z ohľadom na optimalizácie AVX2, sa výkon pipapo zvýšil v uvedených testoch o 766%, 168% a 269% v poriadku. Výsledné vlastnosti pre zložené porovnania predčia kontroly jednotlivých polí v (s výnimkou testu dvojice port+protokol), ale zatiaľ zaostávajú za priamymi kontrolami pomocou a drop-spracovateľov na báze netdev.

Zdroj: opennet.ru
