La société Intel a ouvert un outil permettant de créer des applications personnalisées pour le traitement des paquets dans les commutateurs Ethernet programmables de la série Tofino. Sous licence Apache 2.0, le code source du backend du compilateur p4c et des composants de l'environnement de développement Intel P4 Studio, tels que les pilotes, le modèle de simulation de commutateur, le serveur et le client pour le protocole BF Runtime, a été publié. Pour créer des applications, un langage de programmation orienté domaine, P4 (Programming Protocol-independent Packet Processors), est utilisé pour définir la logique de traitement des paquets dans les dispositifs réseau tels que les cartes réseau, les commutateurs, les routeurs et les pare-feu.
Le backend publié permet de traduire les programmes écrits en P4 dans un format qui peut être installé sur les commutateurs de la série Intel Tofino. Cela permet aux utilisateurs des commutateurs de créer des applications qui étendent la fonctionnalité standard, modifient la logique opérationnelle ou adaptent le dispositif aux spécificités de leurs réseaux.
Les programmes en P4 sont compilés en formats adaptés aux plateformes cibles, qui peuvent être matérielles (FPGA, ASIC programmables) ou logicielles (x86, BPF). Avec le code destiné à être installé sur les systèmes cibles, le compilateur génère un runtime pour gérer l'application en utilisant les protocoles Protobuf/gRPC et l'API P4Runtime.
La logique de fonctionnement typique des programmes consiste à classifier les paquets selon leurs en-têtes et à exécuter des actions sur les paquets entrants, telles que le redirection, le rejet, la modification du TTL et le remplacement des champs. Le langage n'est pas lié aux protocoles réseau et, au lieu de prendre en charge par défaut des protocoles communs comme IP, Ethernet, TCP et VxLAN, il offre aux développeurs la possibilité de définir n'importe quels protocoles en fonction des applications compilées (le développeur attache une description des formats d'en-tête et des champs de protocole).

En plus du backend publié pour les commutateurs Intel Tofino, le projet P4 propose un backend pour compiler les applications P4 en code C, qui peut ensuite être compilé dans un format exécutable au sein de une machine virtuelle eBPF dans le noyau Linux. Le projet développe également un simulateur de commutateur open source qui peut être utilisé pour effectuer des expériences dans un réseau virtuel Mininet, ainsi qu'un backend pour compiler des programmes P4 pour le simulateur.
Source : opennet.ru
