L'architettura del set di istruzioni BPF ha ottenuto lo status di standard proposto

Il Comitato IETF (Internet Engineering Task Force), che si occupa dello sviluppo di protocolli e architetture di internet, ha completato la creazione del RFC per l'architettura del set di istruzioni BPF e ha pubblicato la specifica correlata con l'identificativo RFC 9669. Il RFC ha ottenuto lo status di 'Standard Proposto', dopo di che inizierà il lavoro per attribuire al RFC lo status di standard bozza (Draft Standard), che implica la completa stabilizzazione e l'considerazione di tutti i commenti espressi.

La specifica pubblicata descrive il set di istruzioni del bytecode BPF e la macchina virtuale a basso livello utilizzata nel sottosistema del kernel Linux eBPF per eseguire gestori esterni, in grado di modificare al volo il comportamento del sistema senza la necessità di modificare il codice del kernel. In sostanza, eBPF implementa un semplice processore virtuale con il proprio set di registri, istruzioni simili a RISC, uno stack e un contatore di istruzioni. I programmi BPF sono normalmente creati utilizzando un sottoinsieme del linguaggio C, dopodiché vengono compilati in bytecode idoneo per l'esecuzione. macchina virtualeLa macchina virtuale può eseguire programmi BPF sia utilizzando l'interpretazione sia applicando la JIT compilation per tradurre il bytecode in istruzioni macchina al volo.

Si prevede che la standardizzazione dell'architettura dell'insieme di istruzioni BPF stimoli la creazione di implementazioni di terze parti compatibili con la macchina virtuale eBPF, in grado di eseguire programmi BPF scritti per il kernel Linux. Alcuni produttori di adattatori di rete stanno lavorando a di macchine virtuali strumenti per accelerare l'esecuzione degli handler BPF per i pacchetti di rete. L'idea è di estendere le capacità del sottosistema XDP (eXpress Data Path) per eseguire programmi BPF non solo a livello del driver di rete, ma anche sul lato della scheda di rete.

Ad esempio, l'azienda Netronome ha aggiunto il supporto BPF all'adattatore Netronome Agilio CX SmartNIC e ha fornito una raccolta di esempi di programmi BPF universali, che possono essere eseguiti non solo tramite CPU nel kernel con qualsiasi driver compatibile con XDP, ma anche sul lato della scheda di rete, consentendo di prendere decisioni sullo scarto, la modifica o il reindirizzamento dei pacchetti senza utilizzare risorse CPU. Inoltre, si sta sviluppando la tecnologia XRP (eXpress Resubmission Path), che permette di utilizzare BPF per spostare alcune operazioni con gli NVMe, come il lavoro con gli indici e l'aggregazione dei dati, al livello del driver NVMe o a un dispositivo esterno.

Si osserva che l'implementazione più ampia di tali funzionalità è stata ostacolata dai rischi legati alla compatibilità e alla necessità di monitorare lo stato di eBPF nel kernel. A causa di questi rischi, alcuni produttori hanno posticipato l'inclusione dei mezzi di accelerazione hardware BPF nei loro dispositivi fino alla definizione di uno standard.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster