Workshop on P4 Programmable Switches
Tuesday August 22, Tuesday August 29, 2023 - Online
Organizers
- University of South Carolina
Energy Sciences Network (ESnet)
The Engagement and Performance Operations Center (EPOC)
Overview
Traditionally, the data plane has been designed with fixed functions to forward packets using a small set of protocols (e.g., IP, Ethernet). This closed-design paradigm has limited the capability of the switches to proprietary implementations which are hard-coded by vendors. Recently, data plane programmability has attracted significant attention from both the research community and the industry, permitting programmers to run customized packet processing functions in the data plane. This workshop provides Information Technology (IT) professionals with a motivation and an introduction to P4 programmable data plane switches. The workshop will include sessions discussing FABRIC national cyberinfrastructure, fundamentals of P4, applications of P4 switches, and hands-on sessions with P4 switches covering: P4 building blocks, parser implementation in the data plane, populating match-action tables, and others.
Audience
IT educators, practitioners, and professionals in general (network engineers, system administrators, etc.) with basic background in networking.
Required Equipment
No specialized equipment is required. All material will be accessible via web browsing. Presentations will be conducted via Zoom. For hands-on sessions, attendees will access a virtual platform deployed for the workshop.
Outcomes
By the end of this workshop, attendees will:
- Describe the elements of the Protocol Independent Switch Architecture (PISA)
- Define protocol headers and header fields in P4
- Write simple parsers using P4
- Define match-action tables
- Populate and manage match-action tables at runtime
- Leverage stateful elements (registers) to store arbitrary data in the data plane
- Monitor queue occupancy and packets interarrival times with high granularity
Agenda
DAY 1: Tuesday August 22, 2023
Time (ET) | Topic | Presenter |
---|---|---|
01:00 - 01:10 | Welcome, agenda [PDF, PPT] | Jorge Crichigno [Bio] (University of SC), Jason Zurawski [Bio] (ESnet and EPOC) |
01:10 – 02:00 | FABRIC, the programmable research infrastructure [PDF, PPT] | Ilya Baldin [Bio] (RENCI), Paul Ruth [Bio] (RENCI) |
02:00 – 02:45 | Hands-on labs over FABRIC [PDF, PPT] | Elie Kfoury [Bio] (University of SC) |
02:45 – 03:00 | Break | |
03:00 – 03:50 | Hands on Session 1: P4 Program Building Blocks [PDF, PPT] | Jose Gomez [Bio] (University of SC) |
03:50 – 04:00 | Break | |
04:00 – 04:50 | Hands on Session 2: Parser Implementation [PDF, PPT] | Ali AlSabeh [Bio] (University of SC) |
04:50 – 05:00 | Summary day 1 | |
Day 1 | Video |
DAY 2: Tuesday August 29, 2023
Time (ET) | Topic | Presenter |
---|---|---|
01:00 – 01:10 | Day 2 agenda [PDF, PPT] | Jorge Crichigno (University of SC), Jason Zurawski (EPOC), Mariam Kiran [Bio] (Oak Ridge National Laboratory) |
01:10 – 01:45 | Science DMZ, Congestion Control and Buffer Sizing [PDF, PPT] | Doug Southworth [Bio] (Texas Advanced Computing Center (TACC)) |
01:45 – 02:30 | BBR Congestion Control - Fundamentals and Updates [PDF] | Neal Cardwell [Bio] (Google) |
02:30 – 02:45 | Break | |
02:45 – 03:30 | Hands-on Session 3: Monitoring Buffer Occupancy in P4 Switches [PDF, PPT] | Elie Kfoury (University of SC) |
03:30 – 03:45 | Break | |
03:45 – 04:30 | Hands-on Session 4: Calculating Packets Interarrival Times with P4 Switches [PDF, PPT] | Ali AlSabeh (University of SC) |
04:30 – 05:00 | Summary workshop event |
Award Information
This activity is supported by NSF award 2118311. Link to official webpage: NSF-2118311
Resources
Item | Note |
---|---|
VM for P4 Labs: Link | VM containing lab exercises |
Cybertraining Material: Link | List of virtual labs on P4, SDN, network tools and protocols, ... |
P4 Campus: Link | P4 applications for campus networks |
FABRIC: Link | A programmable research infrastructure |
Behavioral Model version 2 (BMv2): Link | Reference P4 software switch used as a tool for developing, testing and debugging P4 data planes |
Software-Defined Networks: A Systems Approach: Link | A book that explores the key principles of Software-Defined Networking (SDN) |
Mininet: Link | Virtual testbed enabling the development and testing of network tools and protocols |
Containernet: Link | Mininet fork that allows to use Docker containers as hosts in emulated networks |
Mininet Installation: Link | A guide that describes the steps to install Mininet on Linux |
Wireshark: Link | Packet analyzer used for network troubleshooting, analysis, protocol development, and education |