Internet Engineering Task Force (IETF), koja je odgovorna za razvoj internetskih protokola i arhitekture, dovršila je RFC za arhitekturu skupa instrukcija BPF i objavila pridruženu specifikaciju pod identifikatorom RFC 9669. RFC je dobio status „Proposed Standard“, nakon čega će se krenuti s radom na tome da RFC dobije status nacrta standarda, što zapravo znači potpunu stabilizaciju i uvažavanje svih iznesenih komentara.
Objavljena specifikacija opisuje skup BPF bajtkod instrukcija i virtualni stroj niske razine koji se koristi u Linux kernel podsustavu eBPF za izvršavanje vanjskih rukovatelja sposobnih za promjenu ponašanja sustava u hodu bez potrebe za modifikacijom kernel koda. U osnovi, eBPF implementira jednostavan virtualni procesor s vlastitim skupom registara, RISC-sličnim instrukcijama, stogom i programskim brojačem. BPF programi se obično pišu u podskupu C jezika, a zatim se kompajliraju u bajtkod pogodan za izvršavanje u virtualni strojVirtualni stroj može izvršavati BPF programe koristeći interpretaciju ili JIT (just-in-time) kompilaciju za prevođenje bajtkoda u strojne instrukcije u hodu.
Očekuje se da će standardizacija arhitekture skupa instrukcija BPF-a potaknuti stvaranje implementacija trećih strana kompatibilnih s virtualnim strojem eBPF-a i sposobnih za pokretanje BPF programa napisanih za Linux kernel. U tijeku je rad na stvaranju takvih... virtualni strojevi Neki proizvođači mrežnih adaptera razvijaju alate za hardversko ubrzanje za BPF rukovatelje mrežnim paketima. Ideja je proširiti mogućnosti XDP (eXpress Data Path) podsustava za pokretanje BPF programa ne samo na razini mrežnog upravljačkog programa, već i na mrežnom adapteru.
Na primjer, Netronome je dodao BPF podršku Netronome Agilio CX SmartNIC adapteru i pružio zbirku primjera univerzalnih BPF programa koji se mogu izvršiti ne samo pomoću CPU-a u kernelu s bilo kojim XDP-kompatibilnim upravljačkim programom, već i na mrežnoj kartici strani, što vam omogućuje donošenje odluka o ispuštanju, modificiranju ili preusmjeravanju paketa bez trošenja CPU resursa. Zasebno se razvija tehnologija XRP (eXpress Resubmission Path) koja omogućuje korištenje BPF-a za premještanje nekih operacija s NVMe pogonima, poput rada s indeksima i agregacije podataka, na razinu NVMe upravljačkog programa ili na vanjski uređaj.
Napominje se da je šire usvajanje takvih mogućnosti do sada bilo ometano rizicima povezanim s problemima kompatibilnosti i potrebom za praćenjem stanja eBPF-a u kernelu. Zbog tih rizika neki su proizvođači odgodili ugradnju BPF hardverskog ubrzanja u svoje uređaje dok se ne uspostavi standard.
Izvor: opennet.ru
