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

Il Comitato IETF (Internet Engineering Task Force), che si occupa dello sviluppo di protocolli e architetture per Internet, ha completato la stesura del RFC per l'architettura del set di istruzioni BPF e ha pubblicato la relativa specifica con l'identificativo RFC 9669. Il RFC ha ottenuto lo status di "Standard proposto", dopodiché inizierà il lavoro per conferire al RFC lo status di standard bozza (Draft Standard), che di fatto significa completa stabilizzazione e considerazione di tutti i commenti espressi.

La specifica pubblicata descrive un insieme di istruzioni bytecode BPF e una macchina virtuale a basso livello, utilizzata nel sottosistema kernel Linux eBPF per eseguire gestori esterni, capaci 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 insieme di registri, istruzioni simili a RISC, uno stack e un contatore di istruzioni. I programmi BPF vengono solitamente creati su un sottoinsieme del linguaggio C e poi compilati in bytecode, pronto per essere eseguito nella macchina virtuale. La macchina virtuale può eseguire programmi BPF sia utilizzando l'interpretazione sia applicando la compilazione JIT per tradurre il bytecode al volo in istruzioni macchina.

Si prevede che la standardizzazione dell'architettura del set di istruzioni BPF stimoli la creazione di implementazioni di terze parti compatibili con la macchina virtuale eBPF e in grado di eseguire programmi BPF scritti per il kernel Linux. Alcuni produttori di schede di rete sono al lavoro per sviluppare strumenti per l'accelerazione hardware dell'esecuzione dei gestori BPF dei pacchetti di rete. L'idea è quella 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. macchine virtuali Alcuni produttori di schede di rete stanno sviluppando strumenti per l'accelerazione hardware dell'esecuzione dei gestori di pacchetti di rete BPF. L'idea è quella 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 nell'adattatore Netronome Agilio CX SmartNIC e ha fornito una raccolta di esempi di programmi BPF universali, che possono essere eseguiti non solo attraverso la CPU nel kernel con qualsiasi driver compatibile XDP, ma anche sul lato della scheda di rete, consentendo di prendere decisioni sull'analisi, modifica o reindirizzamento dei pacchetti senza utilizzare risorse della CPU. Inoltre, si sta sviluppando la tecnologia XRP (eXpress Resubmission Path), che consente di utilizzare BPF per spostare alcune operazioni sui dispositivi NVMe, come la gestione degli indici e l'aggregazione dei dati, al livello del driver NVMe o a un dispositivo esterno.

Si segnala che l'adozione più ampia di tali funzionalità è stata fino ad ora ostacolata da 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 di strumenti di accelerazione hardware BPF nei propri 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