An Intermediate Representation for Network Programming Languages

Network programming languages (NPLs) empower operators to program network data planes (NDPs) with unprecedented efficiency. Currently, various NPLs and NDPs coexist and no one can prevail over others in the short future. Such diversity is raising many problems including: (1) programs written with different languages can hardly interoperate in the same network, and (2) most NPLs are bound to specific NDPs, hindering their independent evolution. These problems are mostly owing to the lack of modularity in the compilers, where the missing part is an intermediate representation (IR) for NPLs. To this end, we propose Network Transaction Automaton (NTA), a highly-expressive and language-independent representation as the IR. We show that NTA can express semantics of 6 mainstream NPLs, and can be composed efficiently without any semantics loss.

[1]  Vyas Sekar,et al.  Simplifying Software-Defined Network Optimization Using SOL , 2016, NSDI.

[2]  Sujata Banerjee,et al.  Democratic Resolution of Resource Conflicts Between SDN Control Programs , 2014, CoNEXT.

[3]  Xin Jin,et al.  CoVisor: A Compositional Hypervisor for Software-Defined Networks , 2015, NSDI.

[4]  David Walker,et al.  Abstractions for network update , 2012, SIGCOMM '12.

[5]  Peng Zhang,et al.  APKeep: Realtime Verification for Real Networks , 2020, NSDI.

[6]  Kuo-Feng Hsu,et al.  Contra: A Programmable System for Performance-aware Routing , 2019, NSDI.

[7]  Fernando Pedone,et al.  Merlin: A Language for Provisioning Network Resources , 2014, CoNEXT.

[8]  Minlan Yu,et al.  SIMPLE-fying middlebox policy enforcement using SDN , 2013, SIGCOMM.

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

[10]  Shriram Krishnamurthi,et al.  Tierless Programming and Reasoning for Software-Defined Networks , 2014, NSDI.

[11]  Giuseppe Bianchi,et al.  OpenState: programming platform-independent stateful openflow applications inside the switch , 2014, CCRV.

[12]  Magnos Martinello,et al.  A Survey on SDN Programming Languages: Toward a Taxonomy , 2016, IEEE Communications Surveys & Tutorials.

[13]  Sanjay Chandrasekaran,et al.  Intent-driven composition of resource-management SDN applications , 2018, CoNEXT.

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

[15]  Thorsten Koch,et al.  Could we use a million cores to solve an integer program? , 2012, Mathematical Methods of Operations Research.

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

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

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

[19]  Yu Wang,et al.  A Comprehensive Survey of Interface Protocols for Software Defined Networks , 2019, J. Netw. Comput. Appl..

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