Komiteti IETF (Internet Engineering Task Force), që merret me zhvillimin e protokolleve dhe arkitekturës së internetit, e përfundoi formimin e RFC për arkitekturën e grupit të komandeve BPF dhe publikoi specifikimin e lidhur me identifikuesin RFC 9669. RFC fitoi statusin "Standart i Propozuar", pas së cilës do të fillojë puna për t'i dhënë RFC statusin e standartit të draftit (Draft Standard), që në fakt do të thotë stabilizim të plotë dhe marrjen parasysh të të gjitha vërejtjeve të shprehura.
Specifikimi i publikuar përshkruan një grup instruksionesh të kodit të bytes BPF dhe një makinë virtuale me nivel të ulët, e cila përdoret në nën-sistemin e bërthamës Linux eBPF për të ekzekutuar përpunues të jashtëm, të aftë të ndryshojnë në mënyrë dinamike sjelljen e sistemit pa nevojën për të ndryshuar kodin e bërthamës. Në thelb, eBPF implementon një procesor virtual të thjeshtë me grupin e tij të regjistrave, instrukcione të ngjashme me RISC, një grumbull dhe një numërues instruksionesh. Programet BPF zakonisht krijohen në një nënset të gjuhës C, pastaj përpunohen në kodin e bytes, i cili është i përshtatshëm për ekzekutimin në makinën virtuale. Makina virtuale mund të ekzekutojë programe BPF duke përdorur si interpretimin ashtu edhe duke aplikuar JIT-kompilimin për të përkthyer kodin bajt në instruksione makinerie në kohë reale.
Pranohet se standardizimi i arkitekturës së grupit të komandave BPF do të shërbejë si një nxitje për krijimin e implementimeve të palëve të treta, të cilat janë të pajtueshme me makinën virtuale eBPF dhe që janë të afta të ekzekutojnë programet BPF të shkruara për bërthamën Linux. Disa prodhues të adaptuesve rrjetërore po punojnë në zhvillimin e mjeteve për përshpejtimin harduerik të ekzekutimit të përpunuesve BPF të paketave rrjetësore. makinave virtuale Ideja është të zgjerohet funksionaliteti i nënsistemit XDP (eXpress Data Path) për të ekzekutuar programet BPF jo vetëm në nivelin e drejtuesve të rrjetit, por edhe në anën e kartës rrjetësore.
Për shembull, kompania Netronome ka shtuar mbështetje për BPF në adapterin Netronome Agilio CX SmartNIC dhe ka ofruar një koleksion shembujsh të programeve universale BPF, të cilat mund të ekzekutohen jo vetëm me CPU në bërthamë me çdo driver të pajtueshëm me XDP, por edhe në anën e kartës rrjetë, duke lejuar marrjen e vendimeve për hedhjen, modifikimin ose ridrejtimin e paketave pa shpenzuar burime CPU. Veçmas po zhvillohet teknologjia XRP (eXpress Resubmission Path), e cila lejon përdorimin e BPF për të nxjerrë disa operacione me disqet NVMe, të tilla si puna me indeksat dhe agregimin e të dhënave, në nivelin e driverit NVMe ose në një pajisje të jashtme.
Vërehet se implementimi më i gjerë i mundësive të tilla ende pengohet nga rreziqet e lidhura me shkeljen e pajtueshmërisë dhe nevojës për të ndjekur gjendjen e eBPF në bërthamë. Për shkak të këtyre rreziqeve, disa prodhues kanë shtyrë përfshirjen e mjeteve për përshpejtimin e BPF në pajisjet e tyre deri në krijimin e një standardi.
Burimi: opennet.ru
