Apps To Jump Start Your P4 Project

Each application is a complete package of videos, slides and code. Use this set of applications to get a jump start on development for your own project. The code in these applications includes examples which allow you to:

  • Maintain flow state with P4 and C on a per-packet basis
  • Interact with the host and virtual machines on the host
  • Capture and use metadata and timestamp information
  • Create and maintain complex data structures

P4 for Custom Identification and Flow Tagging

By Nic Viljoen

This tutorial will show the use of P4 on an Agilio CX SmartNIC to enable identification and custom tagging for the rerouting of elastic traffic within a telecoms data center for virtualized compute nodes. The identification is done using real time dynamic measurements of flows on the SmartNIC. Real time dynamic measurement of flows on the SmartNIC is critical for cloud centric service models and service automation. Enabling applications such as security, root cause analysis, big data analytics, and traffic engineering to adjust the depth and complexity of flow monitoring could enable a new wave of sophisticated features and opportunities. The purpose of the talk is to illustrate how these types of applications would benefit from a P4 framework through utilizing P4 interfaces for advanced and customized flow measurements.


P4-based VNF and Micro-VNF Chaining for Servers With SmartNICs

By David George

Commodity servers equipped with SmartNICs are being used as platforms for Network Functions Virtualization (NFV). The network traffic processing required by a specific use case is frequently expressed by forming a chain of Virtual Network Functions (VNFs). This demonstration illustrates that VNFs in the chain can be hosted on the server CPU or on the SmartNIC. It furthermore illustrates that VNFs can be decomposed into components called Micro-VNFs, with the components again being hosted on the server CPU and/or the SmartNIC. A P4 program (compiled to native code running on the SmartNIC) defines the overall semantics of the datapath within SmartNIC equipped server and expresses how VNFs and Micro-VNFs should be composed within this platform. We show how mechanisms like tunnels and service headers programmed using P4 are employed to establish the VNF service chain across multiple network nodes.


P4/C Stateful Firewall

By Jaco Joubert

The P4/C stateful firewall was developed using Netronome’s Programmer Studio 6. It demonstrates multiple match types, rule priority, dynamically adding rules, adding/removing headers, re-calculating a checksum and network address translation using the Netronome Agilio™ P4C SDK 6.0. The demonstration will show packets being dropped from an external network unless a request was made from an internal host. The request will add rules to allow traffic flow between the specific internal host and the external host.


Accelerating Networked Applications with Flexible Packet Processing

By Simon Peter

In this webinar, Simon Peter will present a number of reusable offloading mechanisms that can help data center software processing efficiency. He will show how to implement these mechanisms in the P4 programming language and discuss their efficiency using experiments run on the Netronome Agilio-CX NIC.


Consensus as a Network Service

By Huynhtu Dang

The Paxos protocol is the foundation for building many fault-tolerant distributed systems and services. Given the importance of Paxos, and performance improvements to the protocol would have a significant impact on data-center infrastructure. We argue that implementing Paxos in network devices would significantly improve its performance. This talk describes an implementation of Paxos in P4, as well as our on-going efforts to evaluate the implementation on Netronome Agilio SmartNICs. Implementing Paxos provides a critical use case for P4, and will help drive the requirements for data plane languages in general. In the long term, we imagine that consensus could someday be offered as a network service.