ABSTRACT
The P4 programming language [29, 16] has been recently proposed as a high-level language to program the forwarding plane of programmable packet processors, spanning the spectrum from software switches through FPGAs, NPUs and reconfigurable hardware switches. This paper presents a case study of using P4 to express the forwarding plane behavior of a datacenter switch, comparable in functionality to single-chip shared-memory switches found in many datacenters today.
This case study allows us to understand how specific P4 constructs were useful in modeling specific datacenter switch features. We also outline additional language constructs that needed to be added to P4 to support certain features of a datacenter switch. We discuss several lessons that we learned in the process and distill these into a proposal for how P4 could evolve in the future.
- Analysis of an Equal-Cost Multi-Path Algorithm. https://tools.ietf.org/html/rfc2992.Google Scholar
- Apache Thrift - Home. https://thrift.apache.org/.Google Scholar
- The Arista 7124 FX as a High Performance Trade Execution Platform. http://www.argondesign.com/media/uploads/files/P8006-R-001d_The_Arista_FX_Switch_as_an_Execution_Platform.pdf.Google Scholar
- Cisco highlights next big switch. http://www.biztechafrica.com/article/cisco-announces-next-big-switch/5448/#.VP4mCYWltVZ.Google Scholar
- Configuring ERSPAN. http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/lanswitch/configuration/xe-3s/lanswitch-xe-3s-book/lnsw-conf-erspan.html.Google Scholar
- High Capacity StrataXGS®Trident II Ethernet Switch Series. http://www.broadcom.com/products/Switching/Data-Center/BCM56850-Series.Google Scholar
- Intel FlexPipe. http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ethernet-switch-fm6000-series-brief.pdf.Google Scholar
- Intel Integrated Performance Primitives (Intel IPP) | Intel Developer Zone. https://software.intel.com/en-us/intel-ipp.Google Scholar
- IXP4XX Product Line of Network Processors. http://www.intel.com/content/www/us/en/intelligent-systems/previous-generation/intel-ixp4xx-intel-network-processor-product-line. html.Google Scholar
- Martian Address Filtering. http://tools.ietf.org/html/rfc1812#section-5.3.7.Google Scholar
- Mellanox Products: SwitchX-2 Ethernet Optimized for SDN. http://www.mellanox.com/page/products_dyn?product_family=146&mtag=switchx_2_en.Google Scholar
- Network Virtualization using Generic Routing Encapsulation. https://msdn.microsoft.com/en-us/library/windows/hardware/dn144775%28v=vs.85%29.aspx.Google Scholar
- Networking/SpecsAndDesigns. http://www.opencompute.org/wiki/Networking/SpecsAndDesigns#Switch_Abstraction_Interface.Google Scholar
- Oftest. http://www.openflowhub.org/display/OFTest/OFTest+--+Validating+OpenFlow+Swtiches.Google Scholar
- Open vSwitch. http://openvswitch.org/.Google Scholar
- P4 Specification. http://p4.org/spec/p4-latest.pdf.Google Scholar
- P4.org. http://p4.org/.Google Scholar
- POForwarding. http://www.poforwarding.org/.Google Scholar
- Sdn / OpenFlow / Message Layer / Packetin / Flowgrammable. http://flowgrammable.org/sdn/openflow/message-layer/packetin/.Google Scholar
- Switch Abstraction Interface specification v0.9. http://files.opencompute.org/oc/public.php?service=files&t=24b68e105629caf910d9b3f2834d7e6a&download.Google Scholar
- Understanding Openflow: Packet-In is a Page Fault. http://www.projectfloodlight.org/blog/2012/02/27/packet-in-is-a-page-fault/.Google Scholar
- Virtex-7 FPGA Family. http://www.xilinx.com/products/silicon-devices/fpga/virtex-7.html.Google Scholar
- Virtual Ethernet Interfaces. http://openvz.org/Virtual_Ethernet_device.Google Scholar
- Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks. https://tools.ietf.org/html/rfc7348.Google Scholar
- XPliant™Ethernet Switch Product Family. http://www.cavium.com/XPliant-Ethernet-Switch-Product-Family.html.Google Scholar
- M. Alizadeh, S. Yang, M. Sharif, S. Katti, N. McKeown, B. Prabhakar, and S. Shenker. pFabric: Minimal Near-optimal Datacenter Transport. In SIGCOMM, 2013. Google ScholarDigital Library
- W. Bai, K. Chen, H. Wang, L. Chen, D. Han, and C. Tian. Information-Agnostic Flow Scheduling for Commodity Data Centers. In NSDI, 2015. Google ScholarDigital Library
- J. Bangert and N. Zeldovich. Nail: A Practical Tool for Parsing and Generating Data Formats. In OSDI, 2014. Google ScholarDigital Library
- P. Bosshart, D. Daly, G. Gibb, M. Izzard, N. McKeown, J. Rexford, C. Schlesinger, D. Talayco, A. Vahdat, G. Varghese, and D. Walker. P4: Programming Protocol-independent Packet Processors. SIGCOMM Comput. Commun. Rev., 44(3): 87--95, July 2014. Google ScholarDigital Library
- P. Bosshart, G. Gibb, H.-S. Kim, G. Varghese, N. McKeown, M. Izzard, F. Mujica, and M. Horowitz. Forwarding Metamorphosis: Fast Programmable Match-action Processing in Hardware for SDN. In SIGCOMM, 2013. Google ScholarDigital Library
- G. Brebner and W. Jiang. High-Speed Packet Processing using Reconfigurable Computing. Micro, IEEE, 34(1): 8--18, Jan 2014.Google Scholar
- D. Clark. The Design Philosophy of the DARPA Internet Protocols. In SIGCOMM, 1988. Google ScholarDigital Library
- L. De Carli, Y. Pan, A. Kumar, C. Estan, and K. Sankaralingam. Plug: Flexible Lookup Modules for Rapid Deployment of New Protocols in High-speed Routers. In SIGCOMM, 2009. Google ScholarDigital Library
- A. Demers, S. Keshav, and S. Shenker. Analysis and Simulation of a Fair Queueing Algorithm. In SIGCOMM, 1989. Google ScholarDigital Library
- M. Dobrescu and K. Argyraki. Software Dataplane Verification. In NSDI, 2014. Google ScholarDigital Library
- R. Duncan and P. Jungck. packetC Language for High Performance Packet Processing. In 11th IEEE International Conference on High Performance Computing and Communications, 2009. Google ScholarDigital Library
- M. P. Grosvenor, M. Schwarzkopf, I. Gog, R. N. M. Watson, A. W. Moore, S. Hand, and J. Crowcroft. Queues Don't Matter When You Can JUMP Them! In NSDI, 2015. Google ScholarDigital Library
- S. Jain, A. Kumar, S. Mandal, J. Ong, L. Poutievski, A. Singh, S. Venkata, J. Wanderer, J. Zhou, M. Zhu, J. Zolla, U. Hölzle, S. Stuart, and A. Vahdat. B4: Experience with a Globally-deployed Software Defined Wan. In SIGCOMM, 2013. Google ScholarDigital Library
- V. Jeyakumar, M. Alizadeh, Y. Geng, C. Kim, and D. Mazières. Millions of Little Minions: Using Packets for Low Latency Network Programming and Visibility. In SIGCOMM, 2014. Google ScholarDigital Library
- L. Jose, L. Yan, G. Varghese, and N. McKeown. Compiling Packet Programs to Reconfigurable Switches. In NSDI, 2015. Google ScholarDigital Library
- E. Kohler, R. Morris, B. Chen, J. Jannotti, and M. F. Kaashoek. The Click Modular Router. ACM Trans. Comput. Syst., 18(3): 263--297, Aug. 2000. Google ScholarDigital Library
- B. Lantz, B. Heller, and N. McKeown. A Network in a Laptop: Rapid Prototyping for Software-defined Networks. In Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks, 2010. Google ScholarDigital Library
- N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner. OpenFlow: Enabling Innovation in Campus Networks. SIGCOMM Comput. Commun. Rev., 38(2): 69--74, Mar. 2008. Google ScholarDigital Library
- J. Perry, A. Ousterhout, H. Balakrishnan, D. Shah, and H. Fugal. Fastpass: A Centralized "Zero-queue" Datacenter Network. In SIGCOMM, 2014. Google ScholarDigital Library
- J. H. Saltzer, D. P. Reed, and D. D. Clark. End-to-end Arguments in System Design. ACM Trans. Comput. Syst., 2(4): 277--288, Nov. 1984. Google ScholarDigital Library
- A. Sivaraman, K. Winstein, S. Subramanian, and H. Balakrishnan. No Silver Bullet: Extending SDN to the Data Plane. In Proceedings of the Twelfth ACM Workshop on Hot Topics in Networks, HotNets-XII, 2013. Google ScholarDigital Library
- H. Song. Protocol-oblivious Forwarding: Unleash the Power of SDN Through a Future-proof Forwarding Plane. In HotSDN, 2013. Google ScholarDigital Library
- X. Wang, N. Zeldovich, M. F. Kaashoek, and A. Solar-Lezama. Towards Optimization-safe Systems: Analyzing the Impact of Undefined Behavior. In SOSP, 2013. Google ScholarDigital Library
Index Terms
- DC.p4: programming the forwarding plane of a data-center switch
Recommendations
Hard Virtualization of P4-based switches with VirtP4
SIGCOMM Posters and Demos '19: Proceedings of the ACM SIGCOMM 2019 Conference Posters and DemosWe present VirtP4, a conceptual architecture for hard (type-1) virtualization of P4-based switch programs in a NetFPGA SUME board. In contrast to existing (type-2) solutions like Hyper4, HyperVDP, and P4Visor, our design does not require access to ...
Languages as first-class citizens (vision paper)
SLE 2018: Proceedings of the 11th ACM SIGPLAN International Conference on Software Language EngineeringIn this paper, we introduce languages as first-class citizens as a sub-paradigm of language-oriented programming. In this approach, language definitions are in the context of a general purpose programming language with the same status as any other ...
Language Design for Program Manipulation
The design of procedural and object-oriented programming languages is considered with respect to how easily programs written in those languages can be formally manipulated. Current procedural languages such as Pascal, Modula-2 and Ada; generally support ...
Comments