IETF (Internet Engineering Task Force) završio je formiranje RFC za arhitekturu skupa uputa BPF i objavio povezanu specifikaciju pod identifikatorom RFC 9669. RFC je dobio status „Predloženog standarda“, nakon čega će započeti rad na dodjeljivanju statusa nacrtnog standarda (Draft Standard), što zapravo znači potpunu stabilizaciju i uzimanje u obzir svih iznesenih primjedbi.
Objavljena specifikacija opisuje skup instrukcija bajtkoda BPF i niskonaponsku virtualnu mašinu koja se koristi u podsustavu jezgre Linux eBPF za izvršavanje vanjskih obrada, sposobnih da u hodu promijene ponašanje sustava bez potrebe za izmjenom koda jezgre. U suštini, eBPF implementira najjednostavniji virtualni procesor sa svojim skupom registara, RISC-sličnim instrukcijama, stakom i brojačem instrukcija. BPF programe obično stvaraju na podskupu jezika C, nakon čega se prevode u bajtkod pogodan za izvođenje u virtualnoj mašini. Virtualna mašina može izvršavati BPF programe kao korištenjem interpretacije, tako i primjenom JIT-kompilacije za prevođenje bajtkoda u strojne instrukcije u hodu.
Pretpostavlja se da će standardizacija arhitekture skupa uputa BPF postati poticaj za stvaranje vanjskih implementacija koje su kompatibilne s virtualnom mašinom eBPF i sposobne izvršavati BPF programe napisane za jezgru Linux. Na stvaranju takvih virtualnih mašina rade neki proizvođači mrežnih adaptora, razvijajući sredstva za hardversko ubrzanje izvođenja BPF obradnika mrežnih paketa. Ideja je proširiti mogućnosti podsustava XDP (eXpress Data Path) za izvršavanje BPF programa ne samo na razini mrežnog drajvera, već i na strani mrežne kartice.
Na primjer, tvrtka Netronome dodala je podršku za BPF u adapter Netronome Agilio CX SmartNIC i pružila skup primjera univerzalnih BPF programa koji se mogu izvršavati ne samo uz pomoć CPU-a u jezgru s bilo kojim XDP-kompatibilnim upravljačem, već i na strani mrežne kartice, što omogućuje donošenje odluka o odbacivanju, izmjeni ili preusmjeravanju paketa bez trošenja resursa CPU-a. Odvojeno se razvija tehnologija XRP (eXpress Resubmission Path), koja omogućava korištenje BPF-a za premještanje nekih operacija s NVMe pohranama, poput rada s indeksima i agregiranja podataka, na razinu NVMe upravljača ili na vanjski uređaj.
Napominje se da su širem usvajanju sličnih mogućnosti i dalje smetali rizici povezani s kršenjem kompatibilnosti i potrebom praćenja stanja eBPF-a u jezgru. Zbog tih rizika neki proizvođači su odložili uključivanje sredstava hardverskog ubrzanja BPF-a u svoje uređaje do formiranja standarda.
Izvor: opennet.ru
