Posted by Mukesh Hira and Jeongkeun Lee on November 3, 2017
With the maturing language and architecture support, plus the recent innovation of P4 Runtime from the API working group, writing new applications using P4 and running them in production networks has become a reality. This is backed by a set of programmable forwarding-planes ranging from software switches, SmartNICs, FPGAs, NPUs, to high-speed switching ASICs.
These new P4 applications are changing the way people design, build and run not just their networks, but their compute and storage infrastructure as well; these transformations are occurring without being limited by current standards or the implementation of today’s fixed-function network devices. Some applications of interest in the community are:
- Forwarding-plane telemetry (e.g., In-band Network Telemetry [1])
- Flow monitoring using sketches [2]
- Heavy-hitter detection in the data plane [3]
- Low latency congestion control (e.g., NDP [4])
- Big data aggregation inside the network [5]
- Middlebox functions (e.g., layer-4 connection load balancing [6])
- Fast in-network cache for distributed services [7]
- Consensus protocol at network speed [8]
While some aspects of these applications will remain proprietary, many applications work across multiple devices, layers and domain boundaries. To ensure that the P4 ecosystem is well aligned with the needs of various applications, we are launching P4 Applications Working Group (Apps WG in short), a new working group within P4.org focused on novel forwarding plane applications enabled by P4. This new working group will be a forum where participants can quickly and efficiently share ideas and designs, hence facilitating wider adoption and deployment of P4 applications.
In particular, Apps WG aims to produce the following deliverables:
- The design and implementation of open-source systems
- Specifications of standard applications, which are needed to ensure interoperability between implementations by different organizations — e.g. telemetry report formats
- Suggestions to the P4 design, architecture, language, and API working groups to facilitate the creation of new applications.
A non-goal of the working group is to become a standardization body that defines fixed-function application protocols. We aim to deliver designs, specs, and their revisions at the speed of software development, as an open-source project utilizing the power of programmable forwarding planes. We will upload specifications and code to a GitHub repo (soon-to-be-updated) so that the community can
- Access reference code and building blocks
- Download and compile packet formats expressed in P4 for interoperability
- Run test cases to verify their implementation of application semantics
If this activity is of interest to you or can benefit your P4 application developments, we encourage you to get involved with the Working Group. Join the conversation by subscribing to our mailing list. We welcome all feedback and contributions! If you are not already a member of P4.org, please join us!
- [1] C. Kim, et al., “In-band network telemetry (INT)”.
- [2] Z. Liu, et al., “One Sketch to Rule Them All: Rethinking Network Flow Monitoring with UnivMon,” SIGCOMM 2016.
- [3] V. Sivaraman, et al., “Heavy-Hitter Detection Entirely in the Data Plane,” SOSR 2017.
- [4] M. Handley, et al., “Re-architecting datacenter networks and stacks for low latency and high performance,” SIGCOMM 2017.
- [5] A. Sapio, et al., “DAIET: A System for Data Aggregation Inside the Network,” SOCC 2017.
- [6] R. Miao, et al., “SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs,” SIGCOMM 2017.
- [7] X. Jin, et al., “NetCache: Balancing Key-Value Stores with Fast In-Network Caching.” SOSP 2017.
- [8] H. T. Dang, et al., “NetPaxos: Consensus at network speed,” SOSR 2015.