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 (ET)TopicPresenter
01:00 – 01:10Welcome, agenda [PDF, PPT] Jorge Crichigno [Bio] (University of SC), Jason Zurawski [Bio] (ESnet and EPOC), James Deaton (GPN) [Bio]
01:10 – 02:00FABRIC, the programmable research infrastructure [PDF]KC Wang [Bio] (Clemson), Paul Ruth [Bio] (RENCI)
02:00 – 02:45Overview of P4 and programmable switches [PDF] Vladimir Gurevich [Bio] (Barefoot Networks - Intel)
02:45 – 03:00Break
03:00 – 03:50Hands 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:00Break
04:00 – 04:50Hands on Session 2: parser implementation; writing a parser for IPv4 and IPv6 [PDF, PPT]Elie Kfoury
04:50 – 05:00Summary day 1
WorkshopVideo Chat
 DAY 2: Wednesday February 23, 2022 
Time (ET)TopicPresenter
01:00 – 01:05Day 2 agenda Jorge Crichigno (University of SC), Jason Zurawski (ESnet and EPOC)
01:05 – 01:45Routers, buffers, and other considerations for netwok performance [PDF] Hans Addleman [Bio] and Brenna Meade [Bio] (International Networks at Indiana University)
01:45 – 02:30P4 Campus [PDF]Hyojoon Kim [Bio] (Princeton)
02:30 – 02:45Break
02:45 – 03:00Tofino pods for teaching and research [PDF, PPT] Jorge Crichigno, Elie Kfoury, Jose Gomez (University of SC)
03:00 – 03:50Hands-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:00Break
04:00 – 04:50Hands-on Session 4: populating and managing match-action tables at runtime [PDF, PPT]Elie Kfoury (University of SC)
04:50 – 05:00Summary workshop event
WorkshopVideo Chat


Award Information

This activity is supported by NSF award 2118311. Link to official webpage: NSF-2118311


Resources

ItemNote
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: LinkA guide that describes the steps to install Mininet on Linux
Wireshark: Link Packet analyzer used for network troubleshooting, analysis, protocol development, and education