P4TC Workshop




Nuts and Bolts

Session Type




This workshop will constitute discussions on the current kernel
effort to get P4 over TC. The first code release will happen at
the workshop.

Current WAG agenda:

1) Code Release and high level overview

2) P4C compiler Interaction

3) Control-user introspection

4) The test infrastructure being used to test P4TC

5) Driver interfaces Discussion

6) Any other discussions..

P4 has gained industry-wide acceptance as a datapath language
and has been a subject of many discussions in the community over
the last few years, see [1], [2], [3], [4], [5], [6]:

Due to the industry takeoff of P4 we are putting resources to make it real
for the Linux kernel.
Effort to write code has been going on for a few months and we hope
to release the code in this workshop.

Some of the stated P4TC goals are:

 1) Offloading entirely to P4-capable hardware with skip_sw.
 2) Running entirely in software infrastructures (VMs, baremetal, containers)
    with skip_hw.
 3) Split setup - where some of the P4 program control and pipeline is in
    software and some is in hardware (using a mix of skip_sw and skip_hw).
 4) Running multiple independent P4 programs across multiple independent
    hardware and/or software (using tc filter infrastructure).
 5) Independence from changing any kernel code with introduction of a
    new P4 program (achieved via "scriptability").


[1] Matty Kadosh, "P4 Offload", TC Workshop, Netdev conference 2.2, 2017

[2] Prem Jonnalagadda, "Mapping tc to P4", TC Workshop, Netdev conference 2.2, 2017

[3]Jamal Hadi Salim, "What P4 Can Learn From Linux Traffic Control",
proceedings of ONF 5th P4 Workshop, 2018

[4] Many speakers, TC P4 workshop, Intel, Santa Clara, 2018

[5] Antonin Bas and R. Krishnamoorthy. "Instrumenting P4 in the Kernel",
TC Workshop, Netdev conference 0x12, 2018

[6] Marian Pritsak and Matty Kadosh, "P4 Compiler Backend for TC",
Netdev conference 0x13, 2019