P4: Programming Protocol-Independent Packet Processor

Post on 07-Jan-2017

88 Views

Category:

Internet

2 Downloads

Preview:

Click to see full reader

Transcript

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

top related