The architecture of the BPF instruction set has received proposed standard status.

The IETF (Internet Engineering Task Force), which is involved in the development of internet protocols and architecture, has completed the formation of an RFC for the architecture of the BPF instruction set and published the associated specification under the identifier RFC 9669. The RFC has attained the status of "Proposed Standard," after which work will begin to elevate the RFC to Draft Standard status, which essentially signifies full stabilization and consideration of all expressed comments.

The published specification describes the BPF bytecode instruction set and a low-level virtual machine used in the Linux kernel eBPF subsystem to execute external handlers that can dynamically alter the system's behavior without modifying the kernel code. Essentially, eBPF implements a simple virtual processor with its own register set, RISC-like instructions, a stack, and a program counter. BPF programs are typically written in a subset of C, then compiled into bytecode suitable for execution in. virtual machineThe virtual machine can execute BPF programs using either interpretation or JIT compilation, which translates bytecode into machine instructions on the fly.

It is expected that the standardization of the BPF instruction set architecture will encourage the development of third-party implementations compatible with the eBPF virtual machine and capable of executing BPF programs written for the Linux kernel. Some manufacturers of network adapters are working on creating tools for hardware acceleration of BPF network packet handler execution. The idea is to extend the capabilities of the XDP (eXpress Data Path) subsystem to execute BPF programs not only at the network driver level but also on the network card side. of virtual machines The idea is to expand the capabilities of the XDP (eXpress Data Path) subsystem to execute BPF programs not only at the network driver level but also on the network card side.

For example, Netronome has added BPF support to the Netronome Agilio CX SmartNIC adapter and provided a collection of examples of universal BPF programs that can run not only using the CPU in the kernel with any XDP-compatible driver, but also on the network card side. This allows decisions on dropping, modifying, or redirecting packets to be made without consuming CPU resources. The XRP (eXpress Resubmission Path) technology is also being developed separately, allowing BPF to offload certain NVMe storage operations, such as working with indexes and aggregating data, to the NVMe driver level or an external device.

It is noted that the broader adoption of such capabilities has still been hindered by risks associated with compatibility issues and the need to track eBPF state in the kernel. Due to these risks, some manufacturers have postponed including BPF hardware acceleration in their devices until a standard is established.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster