Architektúra príkazovej sady BPF získala status navrhovaného štandardu

Výbor IETF (Internet Engineering Task Force), ktorý sa zaoberá rozvojom protokolov a architektúry internetu, dokončil vytvorenie RFC pre architektúru sady inštrukcií BPF a zverejnil s tým súvisiacu špecifikáciu pod identifikátorom RFC 9669. RFC získalo status "Návrhového štandardu", po ktorom začne práca na získaní statusu čiarového štandardu (Draft Standard), čo v podstate znamená úplnú stabilizáciu a zohľadnenie všetkých vznesených pripomienok.

Zverejnená špecifikácia popisuje súbor inštrukcií bajtkódu BPF a nízkoúrovňovú virtuálnu stroj, používanú v subsystéme jadra Linux eBPF na vykonávanie externých spracovateľov, schopných na лету meniť správanie systému bez nutnosti zmeny kódu jadra. V podstate eBPF implementuje najjednoduchší virtuálny procesor so svojou sadou registrov, inštrukciami podobnými RISC, zásobníkom a čítačom inštrukcií. Programy BPF sa zvyčajne vytvárajú v poddsahe jazyka C a potom sa kompilujú do bajtkódu vhodného na vykonávanie v virtuálnom stroji. Virtuálna stroj môže vykonávať BPF-programy buď s použitím interpretácie, alebo pomocou JIT-kompilácie na prenášanie bajtkódu na лету do strojových inštrukcií.

Predpokladá sa, že štandardizácia architektúry sady inštrukcií BPF sa stane stimulom na vytváranie externých implementácií, kompatibilných s virtuálnou strojom eBPF, a schopných vykonávať BPF-programy napísané pre jadro Linux. Na vytváraní takých virtuálních strojů pracujú niektorí výrobcovia sieťových adaptérov, ktorí vyvíjajú prostriedky na hardvérové urýchlenie vykonávania BPF-spracovateľov sieťových paketov. Myšlienka je rozšíriť možnosti subsystému XDP (eXpress Data Path) na vykonávanie BPF-programov nielen na úrovni sieťového ovládača, ale aj na strane sieťovej karty.

Napríklad, spoločnosť Netronome pridala podporu BPF do adaptéra Netronome Agilio CX SmartNIC a poskytla kolekciu príkladov univerzálnych BPF programov, ktoré môžu byť vykonávané nielen pomocou CPU v jadre s akýmkoľvek XDP kompatibilným ovládačom, ale aj na strane sieťovej karty, čo umožňuje prijímanie rozhodnutí o odmietaní, zmene alebo preposielaní paketov bez spotreby CPU zdrojov. Osobitne sa vyvíja technológia XRP (eXpress Resubmission Path), ktorá umožňuje používať BPF na presunutie niektorých operácií so zariadeniami NVMe, ako je práca s indexami a agregácia údajov, na úroveň ovládača NVMe alebo na externé zariadenie.

Je zaznamenané, že širšiemu nasadeniu takýchto možností doteraz bránili riziká spojené s porušovaním kompatibility a potrebou sledovania stavu eBPF v jadre. V dôsledku týchto rizík niektorí výrobcovia odložili aktiváciu prostriedkov hardvérovej akcelerácie BPF vo svojich zariadeniach až do formulovania štandardu.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster