Session

P4 Compatible Control Plane Driver for Linux Kernel

Speakers

Anjali Singhai
Neha Singh
James Choi
Namrata Limaye
Sridhar Samudrala
Mahesh Shirshyad
Vipin Jain

Label

Moonshot

Session Type

Talk

Contents

Description

P4 is a domain specific language to express data plane for network devices. P4-TC is a new classifier that helps to create a data plane as described by a P4 program in the Linux kernel. In this talk, we will focus on detailing device driver interfaces/APIs to support P4-TC.

The main goal of a P4-TC enabled device driver is to program underlying hardware pipeline using abstractions provided by P4-TC. To be able to achieve this, we propose changes to existing TC runtime interfaces to be more P4 friendly and as well as extend support to multiple P4 pipelines. We will also elaborate on the association of a P4 dataplane initialization on to a P4 compliant device using a newly proposed P4-TC extension to devlink interface.

The device driver can support a mode called “p4-tc”. This mode will enable shimming of legacy kernel events such as tc-flower on to P4-TC interfaces. This removes the overhead of supporting both tc-flower and p4-tc as separate entities in each driver and instead all drivers can opt in or out of the p4-tc mode. Additionally, we will talk about interfaces to support legacy hooks (switchdev ops, FDB ops) and coexistence of these with P4-TC compatible driver.

We will make a reference code available at https://github.com/p4tc-dev intime for the conference to showcase the driver hooks from the kernel.