P 5 : Policy-driven optimization of P 4 pipeline

The physical pipeline of flexible network switches is usually programmed using packet-level programs, such as P4 programs. However, those programs are low level and leave room for further optimization. We propose P5 (Policy-driven optimization of P4 Pipeline), a system that exploits knowledge of application deployments embedded in a high-level policy abstraction to: 1) detect features that are used by applications in a mutually-exclusive way and thereby remove inter-feature dependencies between the tables implementing these features in a network switch. This improves the pipeline concurrency of switches and hence its pipeline efficiency. 2) detect and remove the features that are not used by any application/traffic on the switch in a given topology. This reduces the number of tables and the resource consumed by switches, which also improves its pipeline efficiency. Our experiments on real P4 switch programs show that the resulting switch pipelines are up to 50% more efficient as compared to the cases that do not exploit this information.

[1]  Minlan Yu,et al.  Profiling Network Performance for Multi-tier Data Center Applications , 2011, NSDI.

[2]  David Walker,et al.  Frenetic: a network programming language , 2011, ICFP.

[3]  David Walker,et al.  A compiler and run-time system for network programming languages , 2012, POPL '12.

[4]  Paul Hudak,et al.  Maple: simplifying SDN programming using algorithmic policies , 2013, SIGCOMM.

[5]  David Walker,et al.  Optimizing the "one big switch" abstraction in software-defined networks , 2013, CoNEXT.

[6]  David Walker,et al.  Composing Software Defined Networks , 2013, NSDI.

[7]  George Varghese,et al.  Forwarding metamorphosis: fast programmable match-action processing in hardware for SDN , 2013, SIGCOMM.

[8]  Minlan Yu,et al.  NOSIX: a lightweight portability layer for the SDN OS , 2014, CCRV.

[9]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[10]  Amin Vahdat,et al.  DREAM: dynamic resource allocation for software-defined measurement , 2015, SIGCOMM.

[11]  Alexandra Silva,et al.  A Coalgebraic Decision Procedure for NetKAT , 2015, POPL.

[12]  Xin Jin,et al.  Dynamic scheduling of network updates , 2014, SIGCOMM.

[13]  Nate Foster,et al.  NetKAT: semantic foundations for networks , 2014, POPL.

[14]  David Walker,et al.  Concurrent NetCore: from policies to pipelines , 2014, ICFP 2014.

[15]  M. Budiu,et al.  DC.p4: programming the forwarding plane of a data-center switch , 2015, SOSR.

[16]  George Varghese,et al.  Compiling Packet Programs to Reconfigurable Switches , 2015, NSDI.

[17]  Ying Zhang,et al.  PGA: Using Graphs to Express and Automatically Reconcile Network Policies , 2015, Comput. Commun. Rev..

[18]  Russell J. Clark,et al.  Kinetic: Verifiable Dynamic Network Control , 2015, NSDI.

[19]  David Walker,et al.  SNAP: Stateful Network-Wide Abstractions for Packet Processing , 2015, SIGCOMM.

[20]  Sujata Banerjee,et al.  LMS: Label Management Service for intent-driven Cloud Management , 2017, 2017 IFIP/IEEE Symposium on Integrated Network and Service Management (IM).

[21]  Isaac Keslassy,et al.  Minimizing Delay in Network Function Virtualization with Shared Pipelines , 2017, IEEE Transactions on Parallel and Distributed Systems.