Programmable Switches Workshop
Registration is now closed
- University of South Carolina
- Energy Sciences Network (ESnet)
- The Engagement and Performance Operations Center (EPOC)
- Great Plains Network
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
Agenda
DAY 1: Wednesday February 16, 2022
Time | Topic | Presenter |
---|---|---|
01:00 – 01:10 | Welcome, agenda [PDF, PPT] | Jorge Crichigno [Bio] (University of SC), Jason Zurawski [Bio] (ESnet and EPOC), James Deaton (GPN) [Bio] |
01:10 – 02:00 | FABRIC, the programmable research infrastructure [PDF] | KC Wang [Bio] (Clemson), Paul Ruth [Bio] (RENCI) |
02:00 – 02:45 | Overview of P4 and programmable switches [PDF] | Vladimir Gurevich [Bio] (Barefoot Networks - Intel) |
02:45 – 03:00 | Break | |
03:00 – 03:50 | Hands on Session 1: intro to P4 and BMv2; writing, compiling, and downloading P4 code to the switch [PDF, PPT] | Elie Kfoury [Bio], Jose Gomez (University of SC) [Bio] |
03:50 – 04:00 | Break | |
04:00 – 04:50 | Hands on Session 2: parser implementation; writing a parser for IPv4 and IPv6 [PDF, PPT] | Elie Kfoury |
04:50 – 05:00 | Summary day 1 | |
Workshop | Video | Chat |
DAY 2: Wednesday February 23, 2022
Time | Topic | Presenter |
---|---|---|
01:00 – 01:05 | Day 2 agenda | Jorge Crichigno (University of SC), Jason Zurawski (ESnet and EPOC) |
01:05 – 01:45 | Routers, buffers, and other considerations for netwok performance [PDF] | Hans Addleman [Bio] and Brenna Meade [Bio] (International Networks at Indiana University) |
01:45 – 02:30 | P4 Campus [PDF] | Hyojoon Kim [Bio] (Princeton) |
02:30 – 02:45 | Break | |
02:45 – 03:00 | Tofino pods for teaching and research [PDF, PPT] | Jorge Crichigno, Elie Kfoury, Jose Gomez (University of SC) |
03:00 – 03:50 | Hands-on Session 3: introduction to match-action tables; using exact matching and longest-prefix matching [PDF, PPT] | Elie Kfoury (University of SC) |
03:50 – 04:00 | Break | |
04:00 – 04:50 | Hands-on Session 4: populating and managing match-action tables at runtime [PDF, PPT] | Elie Kfoury (University of SC) |
04:50 – 05:00 | Summary workshop event | |
Workshop | Video | Chat |
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 |