Netfilteri paketifiltrimise ja modifitseerimise alamsüsteemi arendajad kätkeb koodiparanduste komplekti, mis kiirendab oluliselt suurte võrdlemisliste (nftables set) töötlemist, kus on vajalik alamsüsteemide, võrguportide, protokollide ja MAC-aadresside kombinatsioonide kontroll. Parandused on juba vastu võetud haru , mis pakutakse Linuxi 5.7 tuuma sisseviimiseks. Märkimisväärset kiirusetõusu on saavutatud tänu käskude rakendamisele (edasi on plaanis avaldada sarnased optimeeringud, mis põhinevad NEON käskudel ARM-i jaoks).
Optimeeringud on tehtud moodulis (PIle PAcket POlicies), mis lahendab paketi sisu vastavuse probleemide lahendamise reeglite filtreerimisega seotud valikute nagu IP ja võrgupordid (nft_set_rbtree ja nft_set_hash manipuleerivad intervallide vastavuse ja väärtuste otsese peegeldamisega). 256-bitiste AVX2 käskude abil vektoriseeritud versioon pipapo AMD Epyc 7402 protsessoriga näitas 420% tootlikuse kasvu, kui töödeldi 30 000 kirjet, mis sisaldavad port-protokolli sidemeid. Alustades võrgu alamside ja pordi numbri vastavuse määramine 1000 kirje puhul näitas 87% kasvu IPv4 puhul ja 128% IPv6 puhul.

Teine optimeerimine, mis võimaldab kasutada 8-bitiseid vastavuste gruppe 4-bitiste asemel, näitas samuti märkimisväärset tootlikuse kasvu: 66% 30 000 port-protokolli kirje töötlemisel, 43% alamside_IPv4-port ja 61% alamside_IPv6-port. Kokku, arvestades AVX2 optimeerimisi, kasvas pipapo tootlikkus antud testides vastavalt 766%, 168% ja 269%. Saadud tulemused keerukate vastavuste osas ületavad üksikute väljade kontrolli. (välja arvatud port + protokolli test), kuid jäävad siiski maha otsestest kontrollidest, mida teostatakse ja netdev'i põhistel drop-protsessoritel.

Allikas: opennet.ru
