Top Banner
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
39

P4: Programming Protocol-Independent Packet Processor

Jan 07, 2017

Download

Internet

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: P4: Programming Protocol-Independent Packet Processor

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

Page 2: P4: Programming Protocol-Independent Packet Processor

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

Page 3: P4: Programming Protocol-Independent Packet Processor

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

Page 4: P4: Programming Protocol-Independent Packet Processor

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

Page 5: P4: Programming Protocol-Independent Packet Processor

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

Page 6: P4: Programming Protocol-Independent Packet Processor

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

Page 7: P4: Programming Protocol-Independent Packet Processor

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

Page 8: P4: Programming Protocol-Independent Packet Processor

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

Page 9: P4: Programming Protocol-Independent Packet Processor

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

Page 10: P4: Programming Protocol-Independent Packet Processor

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

Page 11: P4: Programming Protocol-Independent Packet Processor

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

Page 12: P4: Programming Protocol-Independent Packet Processor

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

Page 13: P4: Programming Protocol-Independent Packet Processor

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

Page 14: P4: Programming Protocol-Independent Packet Processor

Header & Fields

Declarer un entete avecheader.

Ajouter des champsfields.

taille des champs en bits.

M. Antitene (UPMC-LIP6) P4 Juillet 2016 5 / 13

Page 15: P4: Programming Protocol-Independent Packet Processor

Header & Fields

Declarer un entete avecheader.

Ajouter des champsfields.

taille des champs en bits.

M. Antitene (UPMC-LIP6) P4 Juillet 2016 5 / 13

Page 16: P4: Programming Protocol-Independent Packet Processor

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

Page 17: P4: Programming Protocol-Independent Packet Processor

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

Page 18: P4: Programming Protocol-Independent Packet Processor

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

Page 19: P4: Programming Protocol-Independent Packet Processor

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

Page 20: P4: Programming Protocol-Independent Packet Processor

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

Page 21: P4: Programming Protocol-Independent Packet Processor

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

Page 22: P4: Programming Protocol-Independent Packet Processor

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

Page 23: P4: Programming Protocol-Independent Packet Processor

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

Page 24: P4: Programming Protocol-Independent Packet Processor

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

Page 25: P4: Programming Protocol-Independent Packet Processor

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

Page 26: P4: Programming Protocol-Independent Packet Processor

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

Page 27: P4: Programming Protocol-Independent Packet Processor

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

Page 28: P4: Programming Protocol-Independent Packet Processor

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

Page 29: P4: Programming Protocol-Independent Packet Processor

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

Page 30: P4: Programming Protocol-Independent Packet Processor

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

Page 31: P4: Programming Protocol-Independent Packet Processor

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

Page 32: P4: Programming Protocol-Independent Packet Processor

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

Page 33: P4: Programming Protocol-Independent Packet Processor

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

Page 34: P4: Programming Protocol-Independent Packet Processor

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

Page 35: P4: Programming Protocol-Independent Packet Processor

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

Page 36: P4: Programming Protocol-Independent Packet Processor

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

Page 37: P4: Programming Protocol-Independent Packet Processor

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

Page 38: P4: Programming Protocol-Independent Packet Processor

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

Page 39: P4: Programming Protocol-Independent Packet Processor

P4

Questions ?

M. Antitene (UPMC-LIP6) P4 Juillet 2016 13 / 13