P4 language extensions for stateful packet processing

Angelo Tulumello · 2021

The P4 language is the de facto standard to define how programmable switches must process packets. P4 is extensively employed in datacenter scenarios as it permits to support a wide set of network applications. However, P4 does not provide a clear description of stateful processing, especially on handling per-flow states. This paper extends both the P4 language and the P4 software switch (bmv2) with novel stateful primitives with a clear representation of per-flow states. Furthermore, we exploit these new functionalities by implementing a datacenter network function that implements a scalable tunneling mechanism. The developed network function differentiates the top talker flows directly handled by the switch and the other flows that are instead managed in a slow path involving specific network devices with large connection tables.

Read the paper · More papers on PaperTik