P4 Talks


Feature Rich Flow Monitoring with P4

By John Sonchack, University Of Pennsylvania

Flow records provide a detailed and compact view of network traffic. But grouping packets into flow records is complex. It is challenging to leverage high performance P4 hardware without sacrificing record quality. We introduce a new approach that offers both performance and quality by tightly coupling P4 hardware with CPUs.


Software Techniques for Programmable Data Plane Virtualization

By David Hancock, University Of Utah

Programmable data planes, enabled by languages like P4, present intriguing possibilities for virtualization. Our virtualization solution for P4 devices allows them to simultaneously host multiple network functions for dynamic slices, compositions, and snapshots. We present applications as well as the tools and techniques supporting this exciting form of networking.


Design and Implementation of the Hybrid Modular Switch (HyMoS)

By Ashkan Aghdai, New York University

HyMoS is a P4-compatible switch that uses Netronome SmartNICs, PCI Express and CPUs to function as line cards, switch fabric, and fabric controller respectively. Compared to commodity switches, HyMoS offers modularity in hardware and software as well as a higher degree of programmability at a fraction of the cost.


Scalable and Robust DDoS Detection Via Universal Monitoring

By Vyas Sekar, Carnegie Mellon University

Over the last few years, we have seen a substantial increase in the type, scale and sophistication of Distributed Denial of Service (DDoS) attacks. A first step to any DDoS mitigation strategy is the need for an accurate and robust detection mechanism. Traditional techniques have either relied on Netflow-style sampling or the use of a custom sketching-based monitoring algorithm, but this results in undesirable tradeoffs between fidelity and generality. In this webinar, we will describe our early experiences in using an alternative approach building on the recent promise of Universal Sketching and implementing this using P4 and the Netronome Agilio SmartNIC platform.


P4, eBPF and Linux TC offload

By Dinan Gunawardena, Netronome

In this talk we discuss the mechanisms of utilizing the eBPF language to perform hardware accelerated network packet manipulation and filtering. P4 programs can be compiled into eBPF scripts for offload in the Linux kernel using the Traffic Classifier (TC) subsystem. We demonstrate how, using eBPF as an intermediate language, it has been possible to extend the TC to either Just In Time (JIT) compile eBPF code to x86 assembler for software offload or to IXP byte code for execution in a trusted hardware environment within the Netronome Agilio intelligent server adapter. We finish by encouraging the audience to experiment with their own eBPF applications within the TC hardware accelerated system. The TC kernel patches are available on the Linux Kernel Networking mailing list as a Request For Comment (RFC) contribution.


Protecting the Privacy of the Network – Using P4 to Prototype and Extend Network Protocols

By Mark Matties, Johns Hopkins University

To protect the privacy of sensitive application data, we encrypt it before sending it over networks. However, we do not treat sensitive information about the network in the same way. Instead, headers are sent in plain text and leak sensitive information about the network – especially valid host addresses, type of service markings. In our research, we are developing a protocol to also encrypt Layer 3 headers. Using P4, we are able to rapidly stand up and prototype our proposed solution in real code running across real devices. In this webinar, I will introduce our approach and how we used and extended P4 functionality to stand up a prototype.


P4/C Stateful Firewall

By Jaco Joubert, Netronome

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.


Stateless ICN Forwarding with P4 towards Netronome NFP-based SmartNIC Implementation

By Aytac Azgin, Huawei Research Center

This presentation will discuss the highly parallelized processing capabilities, flexible storage options, and the integration of P4 and C.  When demonstrating ICN capabilities Netronome’s NFP allows for more realistic implementations with better features.


P4 and C Development Tool Chain

By Behdad Besharat, Netronome

The presentation/lecture will be about Software Development Kit (SDK) from Netronome. In this session I will be covering different components of SDK such as P4 and Micro-C compiler, assembler, linker/loader, Programmer Studio (PS) IDE and debugging support of SDK.


SmartNIC Programming Models Overview

By Johann Tönsing, Netronome

This SmartNIC overview will cover the hardware, firmware, programming and offload models, SmartNIC performance, TCO, silicon and datapath software architectures and example code.

Stacks and Layers: Integrating P4, C, OVS and OpenStack

By Johann Tönsing, Netronome

SmartNICs are being deployed in cloud data centers to offload inline network processing tasks from server CPUs while freeing up server CPU cycles. The match/action and tunnel handling semantics of SmartNIC datapaths can be either expressed directly in the P4, be defined by virtual switching software like Open vSwitch, etc. This presentation compares these approaches, considering aspects like the expressiveness and performance of the resulting datapath as well how these datapath variants can be integrated into existing cloud management systems.

P4: A Hands-on Introduction

By Bapi Vinnakota, Mary Pham, Jici Gao, Netronome

To get started with P4, an introduction to significant features and development in P4 is necessary. This presentation touches base on P4 concepts including software-defined networking (SDN), OpenFlow, match/action tables, programmable network data planes, BPF and a simple NIC in P4.