Network Programmability with P4
Programme switches with P4: parsers, tables, control flow, P4Runtime, and network functions like routing and NAT.
Intermediate30 lessons
written lessons≈ 15 h
High-Performance Networking & Cloud-Native · 30 illustrated lessons (text/HTML)
Outcomes
- Write P4 programs for parsers, tables and control flow
- Control a switch at runtime with P4Runtime
- Implement a router, firewall or load balancer in P4
Where we teach this
- PDP-220 · Network Programmability with P4 guided, self-paced
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Network programmability overview
- 2SDN fundamentals explained
- 3Introduction to the P4 language
- 4P4 use cases explained
- 5Setting up a P4 development environment
- 6Structure of a P4 program
- 7P4 basic syntax, part 1
- 8P4 basic syntax, part 2: parser state machines, transitions, value sets and error handling
- 9P4 basic syntax, part 3: actions explained
- 10P4 basic syntax, part 4: tables
- 11P4 basic syntax, part 5: control flow
- 12P4 basic syntax, part 6: the deparser
- 13Your first P4 program in practice: a simple layer-2 switch
- 14Advanced P4, part 1: metadata
- 15Advanced P4, part 2
- 16Advanced P4, part 3: direct counters and meters
- 17Advanced P4, part 4: random numbers and hash algorithms
- 18Advanced P4: packet replication
- 19The P4 architecture model
- 20The P4Runtime interface
- 21Programming with P4Runtime
- 22Network functions, part 1: a simple IP router
- 23Network functions, part 2: a firewall
- 24Network functions, part 3: network address translation (NAT)
- 25Network functions, part 4: a simple load balancer
- 26Network functions, part 5: in-band network telemetry (INT) data collection
- 27P4 debugging and testing
- 28P4 and hardware: programmable switch chips overview
- 29The P4 community and ecosystem
- 30Course summary and outlook
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.