SwitchBlade: a platform for rapid deployment of network protocols on programmable hardware

We present SwitchBlade, a platform for rapidly deploying custom protocols on programmable hardware. SwitchBlade uses a pipeline-based design that allows individual hardware modules to be enabled or disabled on the fly, integrates software exception handling, and provides support for forwarding based on custom header fields. SwitchBlade's ease of programmability and wire-speed performance enables rapid prototyping of custom data-plane functions that can be directly deployed in a production network. SwitchBlade integrates common packet-processing functions as hardware modules, enabling different protocols to use these functions without having to resynthesize hardware. SwitchBlade's customizable forwarding engine supports both longest-prefix matching in the packet header and exact matching on a hash value. SwitchBlade's software exceptions can be invoked based on either packet or flow-based rules and updated quickly at runtime, thus making it easy to integrate more flexible forwarding function into the pipeline. SwitchBlade also allows multiple custom data planes to operate in parallel on the same physical hardware, while providing complete isolation for protocols running in parallel. We implemented SwitchBlade using NetFPGA board, but SwitchBlade can be implemented with any FPGA. To demonstrate SwitchBlade's flexibility, we use SwitchBlade to implement and evaluate a variety of custom network protocols: we present instances of IPv4, IPv6, Path Splicing, and an OpenFlow switch, all running in parallel while forwarding packets at line rate.

[1]  Hosting Virtual Networks on Commodity Hardware , 2007 .

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

[3]  Martín Casado,et al.  Rethinking Packet Forwarding Hardware , 2008, HotNets.

[4]  Nick Feamster,et al.  Accountable internet protocol (aip) , 2008, SIGCOMM '08.

[5]  Yi Pan,et al.  PLUG: flexible lookup modules for rapid deployment of new protocols in high-speed routers , 2009, SIGCOMM '09.

[6]  Nick Feamster,et al.  Building a fast, virtualized data plane with programmable hardware , 2009, CCRV.

[7]  Glen Gibb,et al.  A Packet Generator on the NetFPGA Platform , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[8]  Santosh S. Vempala,et al.  Path splicing , 2008, SIGCOMM '08.

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

[10]  Stephen E. Deering,et al.  Internet Protocol, Version 6 (IPv6) Specification , 1995, RFC.

[11]  Fred Kuhns,et al.  Supercharging planetlab: a high performance, multi-application, overlay network platform , 2007, SIGCOMM '07.

[12]  Giovanni Schembra,et al.  Comparative Analysis of SMP Click Scheduling Techniques , 2005, QoS-IP.

[13]  Xiaowei Yang,et al.  Source selectable path diversity via routing deflections , 2006, SIGCOMM.

[14]  Brighten Godfrey,et al.  Pathlet routing , 2009, SIGCOMM '09.

[15]  Jennifer Rexford,et al.  Floodless in seattle: a scalable ethernet architecture for large enterprises , 2008, SIGCOMM '08.

[16]  Amin Vahdat,et al.  PortLand: a scalable fault-tolerant layer 2 data center network fabric , 2009, SIGCOMM '09.