NDG Online Courses and Labs
Partner Logo

USC Introduction to P4

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

Lab Details

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.

Features

Module List

Labs
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