<  Retour au portail Polytechnique Montréal

Extension du langage P4 pour faciliter l'utilisation de structures à états

Florent Jean Xavier Allard

Mémoire de maîtrise (2024)

Document en libre accès dans PolyPublie
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Conditions d'utilisation: Tous droits réservés
Télécharger (1MB)
Afficher le résumé
Cacher le résumé

Résumé

Depuis les années 2010, la modernisation des réseaux de données comme Internet a introduit les concepts de séparation des plans de réseaux, et notamment de programmabilité du plan de données. Il est à cet effet apparu le langage de programmation P4, qui permet de programmer l’intégralité des fonctionnalités d’équipements réseaux comme des commutateurs. Ce langage reste de bas niveau, et bien que ses possibilités soient très vastes, il n’en demeure pas moins qu’il n’est pas toujours intuitif de les programmer pour des applications courantes, comme les applications à états. Nous démontrons qu’il y a un intérêt à proposer dans le langage P4 une structure de hautniveau permettant de programmer aisément des machines à états pour le traitement de paquets. Cette structure permet notamment de programmer un équilibreur de charge par agrégats de paquets ou un pare-feu par combinaison de ports. En nous basant sur le projet FlowBlaze.p4, nous montrons les avantages qualitatifs de notre approche, qui permet une intégration dans l’écosystème de développement P4 grâce à la modification directe du compilateur P4 de référence p4c. Pour ce qui est des gains quantitatifs, la conversion vers notre syntaxe n’affecte pas les performances des applications par rapport à FlowBlaze.p4. Mais nous explorons dans la deuxième partie de ce mémoire des optimisations de la compilation pour améliorer les conditions d’exécution des applications. Cela permet dans l’exemple de l’équilibreur de charge de diminuer le nombre de lignes de P4 nécessaires à son exécution de 66 % tandis que les performances en termes de débit augmentent de leur côté de 62 %. La généralisation de ces optimisations permet d’obtenir un gain en débit de 27 % pour le cas du pare-feu par combinaison de ports, et de 75 % pour un pare-feu à états.

Abstract

The current evolution of data networks such as the Internet has led to the concept of software-defined networking (SDN) and, more specifically, data plane programmability. This is correlated with the advent of the P4 programming language, which can be used to program network devices such as switches at a fine-grained level. However, despite its potential, P4’s low-level nature poses challenges for developers, particularly when creating stateful applications. In response to this challenge, we demonstrate that there is interest in proposing a high-level structure in the P4 language that allows state machines to be easily programmed for packet processing. In particular, this structure makes it possible to program a flowlet load balancer, or a port-knocking firewall. Based on the FlowBlaze.p4 project, we demonstrate the qualitative advantages of our approach, which enables tight integration into the P4 development ecosystem through direct modification of the P4 reference compiler p4c. As for quantitative gains, conversion to our syntax does not affect performance compared with FlowBlaze.p4. Moreover, in the second part of this report, we identify compilation optimizations that, on the load balancer example, reduce the number of P4 lines required for execution by 66%, while throughput performance increases by 62%. The generalization of these optimizations results in a throughput gain of 27% for the port-knocking firewall, and 75% for a stateful firewall. Overall, our work highlights the potential of higher-level abstractions in P4 to simplify network application development without compromising performance

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Tarek Ould-Bachir et Yvon Savaria
URL de PolyPublie: https://publications.polymtl.ca/58323/
Université/École: Polytechnique Montréal
Date du dépôt: 11 oct. 2024 13:18
Dernière modification: 12 oct. 2025 18:48
Citer en APA 7: Allard, F. J. X. (2024). Extension du langage P4 pour faciliter l'utilisation de structures à états [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/58323/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document