USC P4 Programmable Data Planes

Hands-on practice with a variety of applications, stateful elements, and custom packet processing using P4 Programmable Data Plane switches.

Networking NDG

About this course

These labs provide hands-on practice with a variety of applications, stateful elements, and custom packet processing using P4 Programmable Data Plane switches in a Software-defined Networking (SDN) paradigm.

The development of this lab series was supported with funding from the National Science Foundation Award 2118311, “Cybertraining on P4 Programmable Devices using an Online Scalable Platform with Physical and Virtual Switches and Real Protocol Stacks” at the University of South Carolina (UofSC).

Lab 1: Introduction to Mininet

Lab 2: Introduction to P4 and BMv2

Lab 3: P4 Program Building Blocks

Lab 4: Defining and Processing Custom Headers

Lab 5: Monitoring the Switch Queue using Standard Metadata

Lab 6: Collecting Queueing Statistics using a Header Stack

Lab 7: Measuring Flow Statistics using Direct and Indirect Counters

Lab 8: Rerouting Traffic using Meters

Lab 9: Storing Arbitrary Data using Registers

Lab 10: Calculaint Packets Interarrival Times using Hashes and Registers

Lab 11: Generating Notification Messages from the Data Plane using Digests

What's in this course

Lab Exercises