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
P4Programing Protocol-Independent Packet Processor
M. Antitene
Laboratoire Informatique Paris VI (LIP6)Universite de Pierre et Marie Curie
Juillet 2016
M. Antitene (UPMC-LIP6) P4 Juillet 2016 1 / 13
Motivations
Un Plan de controle programmable pour SDN.
Integration de nouvelles technologies a SDN.
Abstraction du plan de contole par rapport aux specifications dumateriel.
Offrir un mecanisme pour automatiser le traitement de tout sorte dedonnee.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
Motivations
Un Plan de controle programmable pour SDN.
Integration de nouvelles technologies a SDN.
Abstraction du plan de contole par rapport aux specifications dumateriel.
Offrir un mecanisme pour automatiser le traitement de tout sorte dedonnee.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
Motivations
Un Plan de controle programmable pour SDN.
Integration de nouvelles technologies a SDN.
Abstraction du plan de contole par rapport aux specifications dumateriel.
Offrir un mecanisme pour automatiser le traitement de tout sorte dedonnee.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
Motivations
Un Plan de controle programmable pour SDN.
Integration de nouvelles technologies a SDN.
Abstraction du plan de contole par rapport aux specifications dumateriel.
Offrir un mecanisme pour automatiser le traitement de tout sorte dedonnee.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 2 / 13
Introduction
P4 un langage open source, specifie comment les paquets doivent etretraites independamment.
Base sur un modele utilisant des tables type match+action.
Automatisation des traitements des donnees sans avoir a specifierquel protocole est supporte par le switch.
Une interface flexible entre le plan de controle et de donnee.
Reconfiguration, Independance des protocoles, Independances desequipements.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
Introduction
P4 un langage open source, specifie comment les paquets doivent etretraites independamment.
Base sur un modele utilisant des tables type match+action.
Automatisation des traitements des donnees sans avoir a specifierquel protocole est supporte par le switch.
Une interface flexible entre le plan de controle et de donnee.
Reconfiguration, Independance des protocoles, Independances desequipements.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
Introduction
P4 un langage open source, specifie comment les paquets doivent etretraites independamment.
Base sur un modele utilisant des tables type match+action.
Automatisation des traitements des donnees sans avoir a specifierquel protocole est supporte par le switch.
Une interface flexible entre le plan de controle et de donnee.
Reconfiguration, Independance des protocoles, Independances desequipements.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
Introduction
P4 un langage open source, specifie comment les paquets doivent etretraites independamment.
Base sur un modele utilisant des tables type match+action.
Automatisation des traitements des donnees sans avoir a specifierquel protocole est supporte par le switch.
Une interface flexible entre le plan de controle et de donnee.
Reconfiguration, Independance des protocoles, Independances desequipements.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
Introduction
P4 un langage open source, specifie comment les paquets doivent etretraites independamment.
Base sur un modele utilisant des tables type match+action.
Automatisation des traitements des donnees sans avoir a specifierquel protocole est supporte par le switch.
Une interface flexible entre le plan de controle et de donnee.
Reconfiguration, Independance des protocoles, Independances desequipements.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 3 / 13
Modele pour l’acheminements des paquets
Un parseur pour analyser les paquets entrants, extraire les champsHeader fields et ordonnancer les tables match+action.
Tables match+action contiennent les informations des paquetscorrespondant et les protocoles pris en compte pour leuracheminement.
Ingresse & Egrees: Manipuler les tables match+action, ajout demetadata.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 4 / 13
Modele pour l’acheminements des paquets
Un parseur pour analyser les paquets entrants, extraire les champsHeader fields et ordonnancer les tables match+action.
Tables match+action contiennent les informations des paquetscorrespondant et les protocoles pris en compte pour leuracheminement.
Ingresse & Egrees: Manipuler les tables match+action, ajout demetadata.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 4 / 13
Modele pour l’acheminements des paquets
Un parseur pour analyser les paquets entrants, extraire les champsHeader fields et ordonnancer les tables match+action.
Tables match+action contiennent les informations des paquetscorrespondant et les protocoles pris en compte pour leuracheminement.
Ingresse & Egrees: Manipuler les tables match+action, ajout demetadata.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 4 / 13
Header & Fields
Declarer un entete avecheader.
Ajouter des champsfields.
taille des champs en bits.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 5 / 13
Header & Fields
Declarer un entete avecheader.
Ajouter des champsfields.
taille des champs en bits.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 5 / 13
The packet parser
Les headers sont manipulepar les tablesmatch+action.
selectionner le prochaintraitement.
Machine a etat avectransitions.
Commence avec l’etatstart et fini avec end.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 6 / 13
The packet parser
Les headers sont manipulepar les tablesmatch+action.
selectionner le prochaintraitement.
Machine a etat avectransitions.
Commence avec l’etatstart et fini avec end.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 6 / 13
Packet Processing
Le processus de traitement des paquets comporte les points suivant :
Specification des tables.
Specification des actions.
Programme ou flux de controle.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 7 / 13
Packet Processing
Le processus de traitement des paquets comporte les points suivant :
Specification des tables.
Specification des actions.
Programme ou flux de controle.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 7 / 13
Packet Processing
Le processus de traitement des paquets comporte les points suivant :
Specification des tables.
Specification des actions.
Programme ou flux de controle.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 7 / 13
Table specifications
Tables match+action.
Specifier sur quels champsfaire la correspondance(reads)
Specifier les actions aexecuter pour les paquetscorrespondants.
Specifier la taille destables.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 8 / 13
Table specifications
Tables match+action.
Specifier sur quels champsfaire la correspondance(reads)
Specifier les actions aexecuter pour les paquetscorrespondants.
Specifier la taille destables.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 8 / 13
Table specifications
Tables match+action.
Specifier sur quels champsfaire la correspondance(reads)
Specifier les actions aexecuter pour les paquetscorrespondants.
Specifier la taille destables.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 8 / 13
Table specifications
Tables match+action.
Specifier sur quels champsfaire la correspondance(reads)
Specifier les actions aexecuter pour les paquetscorrespondants.
Specifier la taille destables.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 8 / 13
Table specifications
Tables match+action.
Specifier sur quels champsfaire la correspondance(reads)
Specifier les actions aexecuter pour les paquetscorrespondants.
Specifier la taille destables.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 8 / 13
Action specifications
Actions composees de primitives.
Add/remove/copy fields, modify header.
Peuvent etre executees en parallele.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 9 / 13
Action specifications
Actions composees de primitives.
Add/remove/copy fields, modify header.
Peuvent etre executees en parallele.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 9 / 13
Action specifications
Actions composees de primitives.
Add/remove/copy fields, modify header.
Peuvent etre executees en parallele.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 9 / 13
Action specifications
Actions composees de primitives.
Add/remove/copy fields, modify header.
Peuvent etre executees en parallele.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 9 / 13
Control Flow
Determine le plan a suivreau long du processus detraitement des paquets.
Appliquer des procedures.
Controle au niveauIngress & Egress.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 10 / 13
Control Flow
Determine le plan a suivreau long du processus detraitement des paquets.
Appliquer des procedures.
Controle au niveauIngress & Egress.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 10 / 13
Control Flow
Determine le plan a suivreau long du processus detraitement des paquets.
Appliquer des procedures.
Controle au niveauIngress & Egress.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 10 / 13
Control Flow
Determine le plan a suivreau long du processus detraitement des paquets.
Appliquer des procedures.
Controle au niveauIngress & Egress.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 10 / 13
Compiling Control Program
Analyser les dependances entre les tables .
Analyser le plan de controle et determiner les operations a executer enparallele.
Deux etapes de compilation :
Convertir le plan de controle en un graphe de dependance (TDG: TableDependency Graph).Convertir ce graphe en des ressources pouvant etre executees par leswitch.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 11 / 13
Compiling Control Program
Analyser les dependances entre les tables .
Analyser le plan de controle et determiner les operations a executer enparallele.
Deux etapes de compilation :
Convertir le plan de controle en un graphe de dependance (TDG: TableDependency Graph).Convertir ce graphe en des ressources pouvant etre executees par leswitch.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 11 / 13
Compiling Control Program
Analyser les dependances entre les tables .
Analyser le plan de controle et determiner les operations a executer enparallele.
Deux etapes de compilation :
Convertir le plan de controle en un graphe de dependance (TDG: TableDependency Graph).Convertir ce graphe en des ressources pouvant etre executees par leswitch.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 11 / 13
Compiling Control Program
Analyser les dependances entre les tables .
Analyser le plan de controle et determiner les operations a executer enparallele.
Deux etapes de compilation :
Convertir le plan de controle en un graphe de dependance (TDG: TableDependency Graph).Convertir ce graphe en des ressources pouvant etre executees par leswitch.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 11 / 13
Conclusion
P4 langage simple avec un modele de traitement efficace.
P4 offre une interface dynamique.
Rend OpenFlow plus flexible.
Determine la facon dont les paquets seront achemine dans le reseausans se soucier des contraintes de l’infrastructure.
M. Antitene (UPMC-LIP6) P4 Juillet 2016 12 / 13
P4
Questions ?
M. Antitene (UPMC-LIP6) P4 Juillet 2016 13 / 13