Komiteti IETF (Internet Engineering Task Force), i cili merret me zhvillimin e protokolleve dhe arkitekturës së internetit, ka përfunduar formimin e RFC për arkitekturën e grupit të komandeve BPF dhe ka publikuar specifikimin përkatës me identifikuesin RFC 9669. RFC mori statusin "Standard i Propozimit", pas të cilit do të fillojë puna për t'i dhënë RFC statusin e standardit të draftit (Draft Standard), që nënkupton stabilizimin e plotë dhe marrjen në konsideratë të të gjitha vërejtjeve të shprehura.
Specifikimi i publikuar përshkruan një grup instruksionesh të kodit të bajtëve BPF dhe një makinë virtuale të nivelit të ulët, e cila aplikohet në nën-sistemin e bërthamës Linux eBPF për të ekzekutuar përpunues të jashtëm, të aftë të ndryshojnë sjelljen e sistemit në fluturim pa nevojën e ndryshimit të kodit të bërthamës. Në thelb, eBPF implementon një procesor virtual të thjeshtë me grupin e tij të regjistrave, instruksione të ngjashme me RISC, një stek dhe një numërator komande. Programet BPF zakonisht krijohen në një nëndegë të gjuhës C, pas së cilës kompilohen në kod bajti, të përshtatshëm për ekzekutim në makinën virtuale. Makina virtuale mund të ekzekutojë programet BPF si duke përdorur interpretimin ashtu edhe duke aplikuar JIT-kompilimin për të përkthyer kodin e bajtëve në fluturim në instruksione makinerie.
Pritet që standardizimi i arkitekturës së grupit të komandeve BPF të jetë një stimul për krijimin e implementimeve të treta, të pajtueshme me makinën virtuale eBPF dhe të afta të ekzekutojnë programet BPF, të shkruara për bërthamën Linux. Disa prodhues të adaptuesve të rrjetit po punojnë për krijimin e mjeteve për përshpejtimin e ekzekutimit të përpunuesve BPF të paketave rrjet. makinat virtuale Ideja është të zgjerohen mundësitë e nën-sistemit XDP (eXpress Data Path) për të ekzekutuar programet BPF jo vetëm në nivelin e drejtueseve të rrjetit, por gjithashtu nga ana e kartës së rrjetit.
Për shembull, kompania Netronome shtoi mbështetje për BPF në adapterin Netronome Agilio CX SmartNIC dhe ofroi një koleksion shembujsh të programeve universale BPF, të cilat mund të ekzekutohen jo vetëm përmes CPU në bërthamë me çdo drejtues në përputhje me XDP, por edhe në anën e kartës rrjetë, duke lejuar marrjen e vendimeve për heqjen, ndryshimin ose ridrejtimin e paketave pa shpenzuar burimet e CPU. Veçmas zhvillohet teknologjia XRP (eXpress Resubmission Path), e cila mundëson përdorimin e BPF për të larguar disa operacione me regjistrat NVMe, si puna me indekset dhe agregimin e të dhënave, në nivelin e drejtuesit NVMe ose në një pajisje të jashtme.
Vërehet se një përhapje më e gjerë e mundësive të tilla ende pengohet nga rreziqet e lidhura me shkeljen e përputhshmërisë dhe nevojën për të ndjekur gjendjen e eBPF në bërthamë. Për shkak të këtyre rreziqeve, disa prodhues e kanë shtyrë aktivizimin e mjeteve të përshpejtimit të hardware BPF në pajisjet e tyre derisa të formohet një standard.
Burimi: opennet.ru
