A Vision for Runtime Programmable Networks

Our community has made significant progress in developing programmable network infrastructure, starting from the control plane and expanding to the data plane. As a latest trend, network devices are becoming runtime programmable while serving live traffic. This allows for reprogramming of individual device programs at fine-grained timescales to add or remove network functions. Many applications and services, however, need control over a combination of devices, including end host stacks, NICs, and switches, to accomplish their goals. We lay out our vision for runtime programmable networks, building upon device-level features to provide live, network-wide, runtime reprogramming. A whole-stack approach is needed with new programming models, compiler support, and network management abstractions. We outline a research agenda as a call to arms to the community.

[1]  David Wetherall,et al.  Towards an active network architecture , 1996, CCRV.

[2]  William A. Arbaugh,et al.  The SwitchWare active network architecture , 1998, IEEE Netw..

[3]  R. D. Rockwell,et al.  Smart Packets for active networks , 1999, 1999 IEEE Second Conference on Open Architectures and Network Programming. Proceedings. OPENARCH '99 (Cat. No.99EX252).

[4]  Jacobus Van der Merwe,et al.  Virtual routers on the move: live router migration as a network-management primitive , 2008, SIGCOMM '08.

[5]  Yi Wang,et al.  Virtual routers on the move: live router migration as a network-management primitive , 2008, SIGCOMM '08.

[6]  Xu Chen,et al.  PACMAN: a platform for automated and controlled network operations and configuration management , 2009, CoNEXT '09.

[7]  Xu Chen,et al.  Declarative configuration management for complex and dynamic networks , 2010, CoNEXT.

[8]  David Walker,et al.  Consistent updates for software-defined networks: change you can believe in! , 2011, HotNets-X.

[9]  Haoyu Song,et al.  Protocol-oblivious forwarding: unleash the power of SDN through a future-proof forwarding plane , 2013, HotSDN '13.

[10]  Srikanth Kandula,et al.  Achieving high utilization with software-driven WAN , 2013, SIGCOMM.

[11]  Nick McKeown,et al.  pFabric: minimal near-optimal datacenter transport , 2013, SIGCOMM.

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

[13]  Urs Hölzle,et al.  B4: experience with a globally-deployed software defined wan , 2013, SIGCOMM.

[14]  Min Zhu,et al.  B4: experience with a globally-deployed software defined wan , 2013, SIGCOMM.

[15]  A Network-State Management Service , 2014 .

[16]  Aditya Akella,et al.  A Highly Available Software Defined Fabric , 2014, HotNets.

[17]  Nick Feamster,et al.  The road to SDN: an intellectual history of programmable networks , 2014, CCRV.

[18]  Fernando Pedone,et al.  NetPaxos: consensus at network speed , 2015, SOSR.

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

[20]  Ramesh Govindan,et al.  Evolve or Die: High-Availability Design Principles Drawn from Googles Network Infrastructure , 2016, SIGCOMM.

[21]  Jacobus E. van der Merwe,et al.  HyPer4: Using P4 to Virtualize the Programmable Data Plane , 2016, CoNEXT.

[22]  Jennifer Rexford,et al.  HULA: Scalable Load Balancing Using Programmable Data Planes , 2016, SOSR.

[23]  Nick McKeown,et al.  PISCES: A Programmable, Protocol-Independent Software Switch , 2016, SIGCOMM.

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

[25]  Scott Shenker,et al.  SCL: Simplifying Distributed SDN Control Planes , 2017, NSDI.

[26]  Mark Handley,et al.  Re-architecting datacenter networks and stacks for low latency and high performance , 2017, SIGCOMM.

[27]  Jacob Nelson,et al.  IncBricks: Toward In-Network Computation with an In-Network Cache , 2017, ASPLOS.

[28]  Huynh Tu Dang,et al.  P4FPGA: A Rapid Prototyping Framework for P4 , 2017, SOSR.

[29]  Laurent Vanbever,et al.  Swing State: Consistent Updates for Stateful and Programmable Data Planes , 2017, SOSR.

[30]  Ariel Orda,et al.  dRMT: Disaggregated Programmable Switching , 2017, SIGCOMM.

[31]  Martin J. Kollingbaum,et al.  Efficient Live Migration of Linux Containers , 2018, ISC Workshops.

[32]  Adam J. Aviv,et al.  Scaling Hardware Accelerated Network Monitoring to Concurrent and Dynamic Queries With *Flow , 2018, USENIX ATC.

[33]  Walter Willinger,et al.  Sonata: query-driven streaming network telemetry , 2018, SIGCOMM.

[34]  Kizheppatt Vipin,et al.  FPGA Dynamic and Partial Reconfiguration , 2018, ACM Comput. Surv..

[35]  Nan Hua,et al.  Andromeda: Performance, Isolation, and Velocity at Scale in Cloud Network Virtualization , 2018, NSDI.

[36]  Toke Høiland-Jørgensen,et al.  The eXpress data path: fast programmable packet processing in the operating system kernel , 2018, CoNEXT.

[37]  John K. Ousterhout,et al.  Homa: a receiver-driven low-latency transport protocol using network priorities , 2018, SIGCOMM.

[38]  Laurent Vanbever,et al.  NetHide: Secure and Practical Network Topology Obfuscation , 2018, USENIX Security Symposium.

[39]  David Wetherall,et al.  Retrospective on "towards an active network architecture" , 2019, CCRV.

[40]  Minlan Yu,et al.  HPCC: high precision congestion control , 2019, SIGCOMM.

[41]  Jiarong Xing,et al.  Architecting Programmable Data Plane Defenses into the Network with FastFlex , 2019, HotNets.

[42]  Fernando Pedone,et al.  The Case For In-Network Computing On Demand , 2019, EuroSys.

[43]  Mark Silberstein,et al.  SwiShmem: Distributed Shared State Abstractions for Programmable Switches , 2020, HotNets.

[44]  YoungGyoun Moon,et al.  AccelTCP: Accelerating Network Applications with Stateful TCP Offloading , 2020, NSDI.

[45]  Jiarong Xing,et al.  NetWarden: Mitigating Network Covert Channels while Preserving Performance , 2020, USENIX Security Symposium.

[46]  Vincent Liu,et al.  Mantis: Reactive Programmable Switches , 2020, SIGCOMM.

[47]  David Walker,et al.  Enabling Programmable Transport Protocols in High-Speed NICs , 2020, NSDI.

[48]  Jiarong Xing,et al.  Secure State Migration in the Data Plane , 2020, SPIN@SIGCOMM.

[49]  Nate Foster,et al.  Using deep programmability to put network owners in control , 2020, Comput. Commun. Rev..

[50]  Luiz F.M. Vieira,et al.  Fast Packet Processing with eBPF and XDP , 2020, ACM Comput. Surv..

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

[52]  Arvind Krishnamurthy,et al.  Gallium: Automated Software Middlebox Offloading to Programmable Switches , 2020, SIGCOMM.

[53]  Minlan Yu,et al.  Lyra: A Cross-Platform Language and Compiler for Data Plane Programming on Heterogeneous ASICs , 2020, SIGCOMM.

[54]  Thomas F. Wenisch,et al.  1RMA: Re-envisioning Remote Memory Access for Multi-tenant Datacenters , 2020, SIGCOMM.

[55]  Xiapu Luo,et al.  Programmable In-Network Security for Context-aware BYOD Policies , 2019, USENIX Security Symposium.

[56]  Nate Foster,et al.  Composing Dataplane Programs with μP4 , 2020, SIGCOMM.

[57]  Anirudh Sivaraman,et al.  Isolation Mechanisms for High-Speed Packet-Processing Pipelines , 2021, NSDI.

[58]  Boon Thau Loo,et al.  Flightplan: Dataplane Disaggregation and Placement for P4 Programs , 2021, NSDI.

[59]  Jiarong Xing,et al.  Ripple: A Programmable, Decentralized Link-Flooding Defense Against Adaptive Adversaries , 2021, USENIX Security Symposium.

[60]  A. Krishnamurthy,et al.  Runtime Programmable Switches , 2022, NSDI.

[61]  Walter Willinger,et al.  DynamiQ: Planning for Dynamics in Network Streaming Analytics Systems , 2021, ArXiv.