Dezvoltatorii subsistemului de filtrare și modificare a pachetelor de rețea Netfilter o serie de patch-uri care accelerează semnificativ procesarea listelor mari de potrivire (seturi nftables), în care este necesară verificarea combinației de subrețele, porturi de rețea, protocoale și adrese MAC. Patch-urile au fost deja acceptate în ramura , care va fi propusă pentru includerea în nucleul Linux 5.7. Cea mai notabilă accelerare a fost obținută datorită instrucțiunilor AVX2 (în continuare se planifică publicarea unor optimizări similare bazate pe instrucțiunile NEON pentru ARM).
Optimizările au fost integrate în modulul (PIle PAcket POlicies), care abordează problema potrivirii conținutului pachetului cu intervalele de stare aplicate în reguli de filtrare, cum ar fi intervalele IP și porturile de rețea (nft_set_rbtree și nft_set_hash manipulează potrivirea intervalelor și reflectarea directă a valorilor). Versiunea pipapo vectorizată cu ajutorul instrucțiunilor AVX2 pe un sistem cu procesor AMD Epyc 7402 a arătat un câștig de performanță de 420% la analiza a 30 de mii de înregistrări, incluzând combinații port-protocol. Câștigul la potrivirea unei combinații din subrețea și număr de port la analiza a 1000 de înregistrări a fost de 87% pentru IPv4 și 128% pentru IPv6.

O altă optimizare, care permite utilizarea grupurilor de potrivire de 8 biți în loc de cele de 4 biți, a arătat de asemenea o îmbunătățire semnificativă a performanței: 66% la analiza a 30 de mii de înregistrări port-protocol, 43% - subrețea_IPv4-port și 61% - subrețea_IPv6-port. În total, având în vedere optimizările AVX2, performanța pipapo a crescut în testele menționate cu 766%, 168% și 269% respectiv. Caracteristicile obținute pentru potriviri complexe depășesc verificările de câmpuri unice în (cu excepția testului combinației port+protocol), dar deocamdată rămân în urmă față de verificările directe utilizând și gestionarea drop bazată pe netdev.

Sursa: opennet.ro
