L'architecture du jeu d'instructions BPF reçoit le statut de norme proposée

L'Internet Engineering Task Force (IETF), responsable du développement des protocoles et de l'architecture Internet, a finalisé la RFC pour l'architecture du jeu d'instructions BPF et publié la spécification associée sous l'identifiant RFC 9669. La RFC a reçu le statut de une "Proposition de norme", après quoi les travaux commenceront pour donner à la RFC le statut de projet de norme, ce qui signifie en réalité une stabilisation complète et la prise en compte de tous les commentaires formulés.

La spécification publiée décrit un ensemble d'instructions bytecode BPF et une machine virtuelle de bas niveau utilisée dans le sous-système noyau Linux eBPF pour exécuter des gestionnaires externes capables de modifier le comportement du système à la volée sans nécessiter de modification du code du noyau. Essentiellement, eBPF implémente un processeur virtuel simple doté de son propre jeu de registres, d'instructions de type RISC, d'une pile et d'un compteur de programme. Les programmes BPF sont généralement écrits dans un sous-ensemble du langage C, puis compilés en bytecode exécutable. machine virtuelleLa machine virtuelle peut exécuter des programmes BPF en utilisant soit l'interprétation, soit la compilation juste-à-temps (JIT) pour traduire le bytecode en instructions machine à la volée.

On s'attend à ce que la normalisation de l'architecture du jeu d'instructions BPF stimule la création d'implémentations tierces compatibles avec la machine virtuelle eBPF et capables d'exécuter des programmes BPF écrits pour le noyau Linux. Des travaux sont en cours pour créer de telles implémentations. machines virtuelles Certains fabricants de cartes réseau développent des outils d'accélération matérielle pour les gestionnaires de paquets réseau BPF. L'objectif est d'étendre les capacités du sous-système XDP (eXpress Data Path) afin d'exécuter les programmes BPF non seulement au niveau du pilote réseau, mais aussi au niveau de la carte réseau.

Par exemple, Netronome a ajouté la prise en charge de BPF à l'adaptateur Netronome Agilio CX SmartNIC et a fourni une collection d'exemples de programmes BPF universels qui peuvent être exécutés non seulement en utilisant le processeur du noyau avec n'importe quel pilote compatible XDP, mais également sur la carte réseau. côté, qui vous permet de prendre des décisions concernant la suppression, la modification ou la redirection de paquets sans gaspiller les ressources du processeur. Par ailleurs, la technologie XRP (eXpress Resubmission Path) est en cours de développement, qui permet d'utiliser BPF pour déplacer certaines opérations avec les lecteurs NVMe, comme le travail avec les index et l'agrégation de données, vers le niveau du pilote NVMe ou vers un périphérique externe.

Il convient de noter que l'adoption plus large de telles capacités a jusqu'à présent été entravée par les risques associés aux problèmes de compatibilité et à la nécessité de surveiller l'état de l'eBPF dans le noyau. En raison de ces risques, certains fabricants ont retardé l’intégration de l’accélération matérielle BPF dans leurs appareils jusqu’à ce qu’une norme soit établie.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster