Architektura zestawu poleceń BPF uzyskała status proponowanego standardu

Komitet IETF (Internet Engineering Task Force), który zajmuje się rozwojem protokołów i architektury internetu, zakończył opracowywanie RFC dla architektury zestawu komend BPF i opublikował związaną z nią specyfikację pod identyfikatorem RFC 9669. RFC uzyskał status "Proponowanego standardu", po czym rozpocznie się praca nad nadaniem RFC statusu standardu roboczego (Draft Standard), co oznacza pełną stabilizację i uwzględnienie wszystkich zgłoszonych uwag.

Opublikowana specyfikacja opisuje zestaw instrukcji bajtkodowych BPF i niskopoziomową maszynę wirtualną, stosowaną w podsystemie jądra Linux eBPF do wykonywania zewnętrznych procesorów, które mogą w czasie rzeczywistym zmienić zachowanie systemu bez potrzeby zmiany kodu jądra. W rzeczywistości eBPF wdraża najprostszy wirtualny procesor z własnym zestawem rejestrów, instrukcjami podobnymi do RISC, stosem i licznikiem instrukcji. Programy BPF zwykle tworzone są w podzbiorze języka C, a następnie kompilowane do bajtkodu, nadającego się do wykonania w maszynie wirtualnej. Maszyna wirtualna może wykonywać programy BPF zarówno z użyciem interpretacji, jak i stosując kompilację JIT do tłumaczenia bajtkodu w czasie rzeczywistym na instrukcje maszynowe.

Zakłada się, że standaryzacja architektury zestawu poleceń BPF będzie bodźcem do tworzenia zewnętrznych realizacji, zgodnych z maszyną wirtualną eBPF i zdolnych do wykonywania programów BPF napisanych dla jądra Linux. N nad tworzeniem takich maszyn wirtualnych pracują niektórzy producenci adapterów sieciowych, rozwijający narzędzia do sprzętowego przyspieszania wykonywania procesorów BPF dla pakietów sieciowych. Idea polega na rozszerzeniu możliwości podsystemu XDP (eXpress Data Path) do wykonywania programów BPF nie tylko na poziomie sterownika sieciowego, ale także po stronie karty sieciowej.

Na przykład firma Netronome dodała wsparcie dla BPF w adapterze Netronome Agilio CX SmartNIC i udostępniła kolekcję przykładów uniwersalnych programów BPF, które mogą być wykonywane nie tylko za pomocą CPU w jądrze z dowolnym sterownikiem zgodnym z XDP, ale także po stronie karty sieciowej, co pozwala na podejmowanie decyzji o odrzucaniu, modyfikacji lub przekierowywaniu pakietów bez zużywania zasobów CPU. Oddzielnie rozwija się technologia XRP (eXpress Resubmission Path), pozwalająca na wykorzystanie BPF do przeniesienia niektórych operacji z dyskami NVMe, takich jak prace z indeksami i agregacja danych, na poziom sterownika NVMe lub zewnętrzne urządzenie.

Zauważono, że szerszemu wdrożeniu podobnych możliwości do tej pory przeszkadzały ryzyka związane z naruszeniem zgodności oraz koniecznością śledzenia stanu eBPF w jądrze. Z powodu tych ryzyk niektórzy producenci odłożyli wdrożenie środków sprzętowego przyspieszenia BPF w swoich urządzeniach do chwil, gdy powstanie standard.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster