Packet Transactions: A Programming Model for Data-Plane Algorithms at Hardware Speed

Data-plane algorithms execute on every packet traversing a network switch; they encompass many schemes for congestion control, network measurement, active-queue management, and load balancing. Because these algorithms are implemented in hardware today, they cannot be changed after being built. To address this problem, recent work has proposed designs for programmable line-rate switches. However, the languages to program them closely resemble the underlying hardware, rendering them inconvenient for this purpose. This paper presents Domino, a C-like imperative language to express data-plane algorithms. Domino introduces the notion of a packet transaction, defined as a sequential code block that is atomic and isolated from other such code blocks. The Domino compiler compiles Domino code to PISA, a family of abstract machines based on emerging programmable switch chipsets. We show how Domino enables several data-plane algorithms written in C syntax to run at hardware line rates.

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

[2]  Andrei Broder,et al.  Network Applications of Bloom Filters: A Survey , 2004, Internet Math..

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

[4]  Matthias Blume,et al.  Taming the IXP network processor , 2003, PLDI.

[5]  Amin Vahdat,et al.  Less Is More: Trading a Little Bandwidth for Ultra-Low Latency in the Data Center , 2012, NSDI.

[6]  Alvin Cheung,et al.  Optimizing database-backed applications with query synthesis , 2013, PLDI.

[7]  George Varghese,et al.  CONGA: distributed congestion-aware load balancing for datacenters , 2015, SIGCOMM.

[8]  Mark Handley,et al.  Congestion control for high bandwidth-delay product networks , 2002, SIGCOMM '02.

[9]  Albert G. Greenberg,et al.  Data center TCP (DCTCP) , 2010, SIGCOMM '10.

[10]  Devavrat Shah,et al.  Fastpass: a centralized "zero-queue" datacenter network , 2015, SIGCOMM 2015.

[11]  Rastislav Bodík,et al.  Chlorophyll : Synthesis-Aided Compiler for Low-Power Spatial Architectures by Phitchaya Mangpo Phothilimthana , 2015 .

[12]  George Varghese,et al.  CONGA: distributed congestion-aware load balancing for datacenters , 2015, SIGCOMM.

[13]  George Varghese,et al.  Bitmap algorithms for counting active flows on high speed links , 2003, IMC '03.

[14]  Alex C. Snoeren,et al.  Inside the Social Network's (Datacenter) Network , 2015, Comput. Commun. Rev..

[15]  Alvin Cheung,et al.  Using program synthesis for social recommendations , 2012, CIKM.

[16]  Seth Copen Goldstein,et al.  Compiling Application-Specific Hardware , 2002, FPL.

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

[18]  Graham Cormode,et al.  An improved data stream summary: the count-min sketch and its applications , 2004, J. Algorithms.

[19]  Vijay Subramanian,et al.  PIE: A lightweight control scheme to address the bufferbloat problem , 2013, 2013 IEEE 14th International Conference on High Performance Switching and Routing (HPSR).

[20]  Van Jacobson,et al.  Controlling queue delay , 2012, Commun. ACM.

[21]  Richard Sharp,et al.  Task Partitioning for Multi-core Network Processors , 2005, CC.

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

[23]  D. Zats,et al.  DeTail: reducing the flow completion time tail in datacenter networks , 2012, CCRV.

[24]  Masahiro Fujita,et al.  Spectral Transforms for Large Boolean Functions with Applications to Technology Mapping , 1993, 30th ACM/IEEE Design Automation Conference.

[25]  Katerina J. Argyraki,et al.  RouteBricks: exploiting parallelism to scale software routers , 2009, SOSP '09.

[26]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[27]  Hong Liu,et al.  Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network , 2015, Comput. Commun. Rev..

[28]  Minlan Yu,et al.  Software Defined Traffic Measurement with OpenSketch , 2013, NSDI.

[29]  Devavrat Shah,et al.  Fastpass , 2014, SIGCOMM.

[30]  David Walker,et al.  Languages for software-defined networks , 2013, IEEE Communications Magazine.

[31]  Richard Sharp,et al.  Linear Types for Packet Processing , 2004, ESOP.

[32]  Amin Vahdat,et al.  Chimpp: A Click-based programming and simulation environment for reconfigurable networking hardware , 2010, 2010 ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS).

[33]  Jiang Zhu,et al.  Making Large Scale Deployment of RCP Practical for Real Networks , 2008, IEEE INFOCOM 2008 - The 27th Conference on Computer Communications.

[34]  Long Li,et al.  Automatically partitioning packet processing applications for pipelined architectures , 2005, PLDI '05.

[35]  James C. Hoe,et al.  Automatic Pipelining From Transactional Datapath Specifications , 2010, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[36]  Armando Solar-Lezama,et al.  Programming by sketching for bit-streaming programs , 2005, PLDI '05.

[37]  Srikanth Kandula,et al.  Harnessing TCPs Burstiness using Flowlet Switching , 2004 .

[38]  Kang G. Shin,et al.  The BLUE active queue management algorithms , 2002, TNET.

[39]  Sanjit A. Seshia,et al.  Combinatorial sketching for finite programs , 2006, ASPLOS XII.

[40]  Antony I. T. Rowstron,et al.  Better never than late: meeting deadlines in datacenter networks , 2011, SIGCOMM.

[41]  Ken Kennedy,et al.  Conversion of control dependence to data dependence , 1983, POPL '83.

[42]  Brighten Godfrey,et al.  Finishing flows quickly with preemptive scheduling , 2012, CCRV.

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

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

[45]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[46]  Ralph Duncan,et al.  packetC Language for High Performance Packet Processing , 2009, 2009 11th IEEE International Conference on High Performance Computing and Communications.

[47]  Frank E. Heart Papers presented at the December 1-3, 1959, eastern joint IRE-AIEE-ACM computer conference , 1959 .

[48]  Eddie Kohler,et al.  The Click modular router , 1999, SOSP.

[49]  Van Jacobson,et al.  Controlling Queue Delay , 2012, ACM Queue.

[50]  Mark Handley,et al.  Congestion control for high bandwidth-delay product networks , 2002, SIGCOMM.

[51]  Hari Balakrishnan,et al.  No silver bullet: extending SDN to the data plane , 2013, HotNets.

[52]  Christo Wilson,et al.  Better never than late , 2011, SIGCOMM 2011.

[53]  Glen Gibb,et al.  NetFPGA--An Open Platform for Gigabit-Rate Network Switching and Routing , 2007, 2007 IEEE International Conference on Microelectronic Systems Education (MSE'07).

[54]  QUTdN QeO,et al.  Random early detection gateways for congestion avoidance , 1993, TNET.

[55]  Rishiyur S. Nikhil,et al.  Bluespec System Verilog: efficient, correct RTL from high level specifications , 2004, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE '04..

[56]  Albert G. Greenberg,et al.  VL2: a scalable and flexible data center network , 2009, SIGCOMM '09.

[57]  Nick Feamster,et al.  The case for an intermediate representation for programmable data planes , 2015, SOSR.

[58]  R. Srikant,et al.  An adaptive virtual queue (AVQ) algorithm for active queue management , 2004, IEEE/ACM Transactions on Networking.

[59]  George Varghese,et al.  New directions in traffic measurement and accounting: Focusing on the elephants, ignoring the mice , 2003, TOCS.

[60]  Scott Shenker,et al.  Core-stateless fair queueing: a scalable architecture to approximate fair bandwidth allocations in high-speed networks , 2003, TNET.

[61]  Jason Cong,et al.  FlowMap: an optimal technology mapping algorithm for delay optimization in lookup-table based FPGA designs , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[62]  David L. Tennenhouse,et al.  Towards an active network architecture , 2007, Comput. Commun. Rev..

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

[64]  Nick Feamster,et al.  SwitchBlade: a platform for rapid deployment of network protocols on programmable hardware , 2010, SIGCOMM '10.