1. P4
Programing Protocol-Independent Packet Processor
M. Antitene
Laboratoire Informatique Paris VI (LIP6)
Universit´e de Pierre et Marie Curie
Juillet 2016
M. Antitene (UPMC-LIP6) P4 Juillet 2016 1 / 13
2. Motivations
Un Plan de contrˆole programmable pour SDN.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
3. Motivations
Un Plan de contrˆole programmable pour SDN.
Int´egration de nouvelles technologies `a SDN.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
4. Motivations
Un Plan de contrˆole programmable pour SDN.
Int´egration de nouvelles technologies `a SDN.
Abstraction du plan de contˆole par rapport aux sp´ecifications du
materiel.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
5. Motivations
Un Plan de contrˆole programmable pour SDN.
Int´egration de nouvelles technologies `a SDN.
Abstraction du plan de contˆole par rapport aux sp´ecifications du
materiel.
Offrir un m´ecanisme pour automatiser le traitement de tout sorte de
donn´ee.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
6. Introduction
P4 un langage open source, sp´ecifie comment les paquets doivent ˆetre
trait´es ind´ependamment.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
7. Introduction
P4 un langage open source, sp´ecifie comment les paquets doivent ˆetre
trait´es ind´ependamment.
Bas´e sur un mod`ele utilisant des tables type match+action.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
8. Introduction
P4 un langage open source, sp´ecifie comment les paquets doivent ˆetre
trait´es ind´ependamment.
Bas´e sur un mod`ele utilisant des tables type match+action.
Automatisation des traitements des donn´ees sans avoir `a sp´ecifier
quel protocole est support´e par le switch.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
9. Introduction
P4 un langage open source, sp´ecifie comment les paquets doivent ˆetre
trait´es ind´ependamment.
Bas´e sur un mod`ele utilisant des tables type match+action.
Automatisation des traitements des donn´ees sans avoir `a sp´ecifier
quel protocole est support´e par le switch.
Une interface flexible entre le plan de contrˆole et de donn´ee.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
10. Introduction
P4 un langage open source, sp´ecifie comment les paquets doivent ˆetre
trait´es ind´ependamment.
Bas´e sur un mod`ele utilisant des tables type match+action.
Automatisation des traitements des donn´ees sans avoir `a sp´ecifier
quel protocole est support´e par le switch.
Une interface flexible entre le plan de contrˆole et de donn´ee.
Reconfiguration, Ind´ependance des protocoles, Ind´ependances des
´equipements.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
11. Mod`ele pour l’acheminements des paquets
Un parseur pour analyser les paquets entrants, extraire les champs
Header fields et ordonnancer les tables match+action.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 4 / 13
12. Mod`ele pour l’acheminements des paquets
Un parseur pour analyser les paquets entrants, extraire les champs
Header fields et ordonnancer les tables match+action.
Tables match+action contiennent les informations des paquets
correspondant et les protocoles pris en compte pour leur
acheminement.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 4 / 13
13. Mod`ele pour l’acheminements des paquets
Un parseur pour analyser les paquets entrants, extraire les champs
Header fields et ordonnancer les tables match+action.
Tables match+action contiennent les informations des paquets
correspondant et les protocoles pris en compte pour leur
acheminement.
Ingresse & Egrees: Manipuler les tables match+action, ajout de
metadata.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 4 / 13
15. Header & Fields
D´eclarer un entˆete avec
header.
Ajouter des champs
fields.
taille des champs en bits.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 5 / 13
17. The packet parser
Les headers sont manipul´e
par les tables
match+action.
s´electionner le prochain
traitement.
Machine `a ´etat avec
transitions.
Commence avec l’´etat
start et fini avec end.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 6 / 13
18. Packet Processing
Le processus de traitement des paquets comporte les points suivant :
Sp´ecification des tables.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 7 / 13
19. Packet Processing
Le processus de traitement des paquets comporte les points suivant :
Sp´ecification des tables.
Sp´ecification des actions.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 7 / 13
20. Packet Processing
Le processus de traitement des paquets comporte les points suivant :
Sp´ecification des tables.
Sp´ecification des actions.
Programme ou flux de contrˆole.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 7 / 13
24. Table specifications
Tables match+action.
Sp´ecifier sur quels champs
faire la correspondance
(reads)
Sp´ecifier les actions `a
ex´ecuter pour les paquets
correspondants.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 8 / 13
25. Table specifications
Tables match+action.
Sp´ecifier sur quels champs
faire la correspondance
(reads)
Sp´ecifier les actions `a
ex´ecuter pour les paquets
correspondants.
Sp´ecifier la taille des
tables.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 8 / 13
29. Action specifications
Actions compos´ees de primitives.
Add/remove/copy fields, modify header.
Peuvent ˆetre ex´ecut´ees en parall`ele.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 9 / 13
31. Control Flow
D´etermine le plan `a suivre
au long du processus de
traitement des paquets.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 10 / 13
32. Control Flow
D´etermine le plan `a suivre
au long du processus de
traitement des paquets.
Appliquer des proc´edures.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 10 / 13
33. Control Flow
D´etermine le plan `a suivre
au long du processus de
traitement des paquets.
Appliquer des proc´edures.
Contrˆole au niveau
Ingress & Egress.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 10 / 13
35. Compiling Control Program
Analyser les d´ependances entre les tables .
Analyser le plan de contrˆole et d´eterminer les op´erations `a ex´ecuter en
parall`ele.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 11 / 13
36. Compiling Control Program
Analyser les d´ependances entre les tables .
Analyser le plan de contrˆole et d´eterminer les op´erations `a ex´ecuter en
parall`ele.
Deux ´etapes de compilation :
M. Antitene (UPMC-LIP6) P4 Juillet 2016 11 / 13
37. Compiling Control Program
Analyser les d´ependances entre les tables .
Analyser le plan de contrˆole et d´eterminer les op´erations `a ex´ecuter en
parall`ele.
Deux ´etapes de compilation :
Convertir le plan de contrˆole en un graphe de d´ependance (TDG: Table
Dependency Graph).
Convertir ce graphe en des ressources pouvant ˆetre ex´ecut´ees par le
switch.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 11 / 13
38. Conclusion
P4 langage simple avec un mod`ele de traitement efficace.
P4 offre une interface dynamique.
Rend OpenFlow plus flexible.
D´etermine la fa¸con dont les paquets seront achemin´e dans le r´eseau
sans se soucier des contraintes de l’infrastructure.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 12 / 13