Radna grupa za internet inženjering (IETF), koja je odgovorna za razvoj internet protokola i arhitekture, finalizirala je RFC za arhitekturu skupa instrukcija BPF i objavila pridruženu specifikaciju pod identifikatorom RFC 9669. RFC je dobio status „Predloženi standard“, nakon čega će početi rad na davanju RFC statusa nacrta standarda, što zapravo znači potpunu stabilizaciju i uzimanje u obzir svih iznesenih komentara.
Objavljena specifikacija opisuje skup BPF bajtkod instrukcija i virtuelnu mašinu niskog nivoa koja se koristi u Linux kernel podsistemu eBPF za izvršavanje eksternih rukovalaca sposobnih za promjenu ponašanja sistema u hodu bez potrebe za modifikacijom kernel koda. U suštini, eBPF implementira jednostavan virtuelni procesor sa vlastitim skupom registara, RISC-sličnim instrukcijama, stekom i programskim brojačem. BPF programi se obično pišu u podskupu C jezika, a zatim kompajliraju u bajtkod pogodan za izvršavanje u... virtuelna mašinaVirtuelna mašina može izvršavati BPF programe koristeći interpretaciju ili JIT (just-in-time) kompilaciju kako bi u hodu prevela bajtkod u mašinske instrukcije.
Očekuje se da će standardizacija arhitekture skupa instrukcija BPF-a stimulirati stvaranje implementacija trećih strana kompatibilnih s virtualnom mašinom eBPF i sposobnih za pokretanje BPF programa napisanih za Linux kernel. Rad na stvaranju takvih je u toku. virtuelne mašine Neki proizvođači mrežnih adaptera razvijaju alate za hardversko ubrzanje za BPF rukovaoce mrežnim paketima. Ideja je proširiti mogućnosti XDP (eXpress Data Path) podsistema za pokretanje BPF programa ne samo na nivou mrežnog drajvera, već i na mrežnom adapteru.
Na primjer, Netronome je dodao BPF podršku Netronome Agilio CX SmartNIC adapteru i pružio kolekciju primjera univerzalnih BPF programa koji se mogu izvršavati ne samo koristeći CPU u kernelu sa bilo kojim upravljačkim programom kompatibilnim s XDP, već i na mrežnoj kartici strani, koja vam omogućava da donosite odluke o izbacivanju, modificiranju ili preusmjeravanju paketa bez trošenja CPU resursa. Odvojeno, razvija se tehnologija XRP (eXpress Resubmission Path), koja omogućava korištenje BPF-a za premještanje nekih operacija sa NVMe diskovima, kao što je rad sa indeksima i agregacijom podataka, na nivo NVMe drajvera ili na eksterni uređaj.
Primjećuje se da je šire usvajanje takvih mogućnosti do sada otežano rizicima povezanim s problemima kompatibilnosti i potrebom da se prati stanje eBPF-a u kernelu. Zbog ovih rizika, neki proizvođači su odgodili ugrađivanje BPF hardverskog ubrzanja u svoje uređaje dok se ne uspostavi standard.
izvor: opennet.ru
