USC Introduction to P4

This lab series introduces programmable data plane switches and their role in the Software-defined Networking (SDN) paradigm.

Networking NDG

About this course

This lab series introduces programmable data plane switches and their role in the Software-defined Networking (SDN) paradigm. The labs provide a hands-on introduction to the Programming Protocol-independent Packet Processors (P4), the de facto programming language used to describe the behavior of the data planes of programmable switches.

Lab 1: Introduction to Mininet

Exercise 1: Building a Basic Topology

Lab 2: Introduction to P4 and BMv2

Exercise 2: Compiling and Running a P4 Program

Lab 3: P4 Program Building Blocks

Lab 4: Parser Implementation

Exercise 3: Parsing UDP and RTP

Lab 5: Introduction to Match-action Tables (Part 1)

Lab 6: Introduction to Match-action Tables (Part 2)

Exercise 4: Implementing NAT using Match-action Tables

Lab 7: Populating and Managing Match-action Tables at Runtime

Exercise 5: Configuring Match-action Tables at Runtime

Lab 8: Checksum Recalculation and Packet Deparsing

Exercise 6: Building a Packet Reflector

What's in this course

Lab Exercises