Die Internet Engineering Task Force (IETF), die fĂŒr die Entwicklung von Internetprotokollen und -architekturen verantwortlich ist, hat den RFC fĂŒr die BPF-Befehlssatzarchitektur fertiggestellt und die zugehörige Spezifikation unter der Kennung RFC 9669 veröffentlicht. Der RFC hat den Status erhalten ein âVorgeschlagener Standardâ, wonach mit der Arbeit begonnen wird, dem RFC den Status eines Standardentwurfs zu verleihen, was eigentlich eine vollstĂ€ndige Stabilisierung und BerĂŒcksichtigung aller abgegebenen Kommentare bedeutet.
Die veröffentlichte Spezifikation beschreibt den BPF-Bytecode-Befehlssatz und die Low-Level-Virtual-Machine, die im Kernel-Subsystem verwendet wird. Linux eBPF ist ein Programm zur AusfĂŒhrung externer Handler, die das Systemverhalten dynamisch Ă€ndern können, ohne dass eine Modifikation des Kernelcodes erforderlich ist. Im Wesentlichen implementiert eBPF einen einfachen virtuellen Prozessor mit eigenem Registersatz, RISC-Ă€hnlichen Befehlen, Stack und ProgrammzĂ€hler. BPF-Programme werden typischerweise in einer Teilmenge der Programmiersprache C geschrieben und anschlieĂend in ausfĂŒhrbaren Bytecode kompiliert. virtuelle MaschineDie virtuelle Maschine kann BPF-Programme entweder mittels Interpretation oder mittels Just-in-Time-Kompilierung (JIT) ausfĂŒhren, um den Bytecode zur Laufzeit in Maschinenbefehle zu ĂŒbersetzen.
Es wird erwartet, dass die Standardisierung der BPF-Befehlssatzarchitektur die Entwicklung von Drittanbieter-Implementierungen anregen wird, die mit der eBPF-Virtual-Machine kompatibel sind und in der Lage sind, fĂŒr den Kernel geschriebene BPF-Programme auszufĂŒhren. LinuxZur Schaffung Ă€hnlicher virtuelle Maschinen Einige Hersteller von Netzwerkadaptern entwickeln Hardwarebeschleunigungswerkzeuge fĂŒr BPF-Netzwerkpaketverarbeiter. Ziel ist es, die FĂ€higkeiten des XDP-Subsystems (eXpress Data Path) zu erweitern, um BPF-Programme nicht nur auf der Ebene des Netzwerktreibers, sondern auch auf dem Netzwerkadapter auszufĂŒhren.
Netronome hat beispielsweise den Netronome Agilio CX SmartNIC-Adapter um BPF-UnterstĂŒtzung erweitert und eine Sammlung von Beispielen universeller BPF-Programme bereitgestellt, die nicht nur ĂŒber die CPU im Kernel mit jedem XDP-kompatiblen Treiber, sondern auch auf der Netzwerkkarte ausgefĂŒhrt werden können Seite, die es Ihnen ermöglicht, Entscheidungen ĂŒber das Verwerfen, Ăndern oder Umleiten von Paketen zu treffen, ohne CPU-Ressourcen zu verschwenden. Separat wird die XRP-Technologie (eXpress Resubmission Path) entwickelt, die es ermöglicht, mithilfe von BPF einige VorgĂ€nge mit NVMe-Laufwerken, wie z. B. die Arbeit mit Indizes und Datenaggregation, auf die NVMe-Treiberebene oder auf ein externes GerĂ€t zu verlagern.
Es wird darauf hingewiesen, dass eine breitere EinfĂŒhrung solcher Funktionen bisher durch Risiken im Zusammenhang mit KompatibilitĂ€tsproblemen und der Notwendigkeit, den Status von eBPF im Kernel zu ĂŒberwachen, behindert wird. Aufgrund dieser Risiken haben einige Hersteller die Integration der BPF-Hardwarebeschleunigung in ihre GerĂ€te verschoben, bis ein Standard vorhanden ist.
Source: opennet.ru
