P4 - Language Consortium

P4 Workshop 2019
2019-05-01 08:00 - 18:30 UTC
A Presentation by the P4 Language Consortium
Held at Stanford University on Wednesday, May 1, 2019
Special Thanks to our Sponsors:

Venue
Address: Arrillaga Alumni Center, 326 Galvez St, Stanford, CA 94305
Directions below:

Agenda

8:00 – 9:00am

Registration and Breakfast

9:00 – 9:20am

Welcome and Introductions (Slides) (Video)Speakers: Nick McKeown (Stanford University), Nate Foster (Cornell University), Guru Parulkar (Open Networking Foundation)

SESSION CHAIR: Calin Cascaval (Barefoot Networks)

9:20 – 9:40am

Leveraging P4 for Fixed Function Switches (Abstract) (Slides) (Video)Speakers: Konstantin Weitz & Stefan Heule (Google)Co-authors: Konstantin Weitz, Stefan Heule, Waqar Mohsin, Lorenzo Vicisano, Amin Vahdat (Google)

9:40 – 10:00am

Building a Network Appliance using P4 and Tofino (Slides) (Video)Speaker and Author: Simon Capper (Arista)

10:00 – 10:20am

Pegasus: Load-Aware Selective Replication with an In-Network Coherence Directory (Abstract) (Slides) (Video)Speaker: Jialin Li (University of Washington)Co-authors: Authors: Jialin Li (University of Washington); Jacob Nelson (Microsoft Research); Xin Jin (Johns Hopkins University); Dan R. K. Ports (Microsoft Research)

10:20 – 10:35am

Demo Lightning Talks (1-2 min per demo, ~5 demos) (Video)

10:35 – 11:05am

Break and Demo Visits

SESSION CHAIR: Mihai Budiu (VMware Research)

11:05 – 11:25am

Event-Driven Packet Processing (Abstract) (Slides) (Video)Speaker: Stephen Ibanez (Stanford University)Co-authors: Stephen Ibanez (Stanford University); Gordon Brebner (Xilinx Labs); Gianni Antichi (Queen Mary University of London); Nick McKeown (Stanford University)

11:25 – 11:45am

Enabling Memory-intensive Network Functions on Programmable Switches (Abstract) (Slides) (Video)Speaker: Daehyeok Kim (Carnegie Mellon University)Co-authors: Daehyeok Kim, Zaoxing Liu (Carnegie Mellon University); Yibo Zhu (Bytedance); Changhoon Kim, Jeongkeun Lee, Antonin Bas (Barefoot Networks); Vyas Sekar, Srini Seshan (Carnegie Mellon University)

11:45 – 12:05pm

SwitchML: Scaling Distributed Machine Learning with In-Network Aggregation (Slides) (Video)Speaker: Jacob Nelson (Microsoft Research)Co-authors: Amedeo Sapio, Marco Canini, Chen-Yu Ho (KAUST); Jacob Nelson (Microsoft Research); Panos Kalnis (KAUST); Changhoon Kim (Barefoot Networks); Arvind Krishnamurthy (University of Washington); Masoud Moshref (Barefoot Networks); Dan R. K. Ports (Microsoft Research); Peter Richtàrik (KAUST)

12:05 – 12:25pm

Taurus: An Intelligent Data Plane (Abstract) (Slides) (Video)Speaker: Tushar Swamy (Stanford University)Co-authors: Tushar Swamy, Alexander Rucker, Muhammad Shahbaz, Neeraja Yadwadkar, Yaqi Zhang, Kunle Olukotun (Stanford University)

12:25 – 12:40pm

Demo Lightning Talks (1-2 min per demo, ~5 demos) (Video)

12:40 – 2:05pm

Lunch and Demo Visits

SESSION CHAIR: Nick McKeown (Stanford University)

2:05 – 3:20pm

KEYNOTE: The End of Moore’s Law and Faster General Purpose Processors, and a New Road Forward (Slides) (Video)Speaker and Author: John Hennessy (Stanford University)Abstract: After 40 years of remarkable progress in general-purpose processors, a variety of factors are combining to lead to a much slower rate of performance growth in the future. These limitations arise from three different areas: IC technology, architectural inefficiencies, and changing applications and usage. The end of Dennard scaling and the slowdown in Moore’s Law will require much more efficient architectural approaches than we have relied on. Although progress on general-purpose processors may hit an asymptote, domain specific architectures may be the one attractive path for important classes of problems, at least until we invent a flexible and competitive replacement for silicon.

3:20 – 3:50pm

Break and Demo Visits

SESSION CHAIR: Gordon Brebner (Xilinx)

3:50 – 4:10pm

Using Programmable Chip and Open Source Software to disaggregate Network Packet Broker (NPB) and 5G UPF (Abstract) (Slides) (Video)Speaker: Chris Sueng-Y. Park (KulCloud)Co-authors: Junho Suh (SK Telecom); SuengYong Park (KulCloud)

4:10 – 4:40pm

Trustworthy Data Plane Programming (Video)Speaker and Author: Nate Foster (Cornell University)

4:40 – 5:00pm

The Switching System Vendor Viewpoint: Opportunities and Challenges (Abstract) (Slides) (Video)Speaker and Author: Mario Baldi (Cisco Systems)

5:00 – 5:15pm

Closing Remarks (Video)

5:15 – 6:30pm

Reception

Demos to Visit

SRv6 Mobile User Plane, POC and Open Source Implementation (Toyota Motor Corporation, SoftBank, APRESIA Systems, Ltd.) (abstract)
daPIPE:DAta Plane Incremental Programming Environment (Cisco Systems, Politecnico di Torino) (abstract)
Improving Gossip Protocols with P4 (Cornell University)
Sampling on Demand using P4 Programmable Switch in Hybrid Mode (Technion University, Mellanox Technologies)
Fast String Searching on PISA (Università della Svizzera italiana, Barefoot Networks) (abstract)
Optimizing Memory Resource Allocation of P4 Match Action Tables (CESNET, Netcope Technologies)
T4P4S & PIE: Towards an AQM Evaluation Testbed with P4 and DPDK (Eötvös Loránd University) (abstract)
gRPC, P4 Runtime and Zero-Touch-Provisioning Deployment in Programmable Forwarding Planes (Noviflow)
P4 Insight: P4 visualization (Barefoot Networks)
P4-16 IPv6 Implementation of Cisco ACI Data Plane (MNK Consulting) (abstract)
Implementing the P4 Portable Switch Architecture (PSA) (Cornell University)
Event-Driven Packet Processing using P4->NetFPGA (Stanford University, Xilinx Labs) (abstract)

Technical Program Committee

Nate Foster (Chair), Cornell University
Nick McKeown (Chair), Stanford University
Anirudh Sivaraman, New York University
Gordon Brebner, Xilinx
Hongqiang Liu, Alibaba
Mihai Budiu, VMware
Mina Tahmasbi Arashloo, Princeton University
Sandesh Kumar Sodhi, Juniper Networks

P4 Developer Day 2019
2019-04-30 08:00
A Presentation by the P4 Language Consortium
Held at Stanford University on Tuesday, April 30, 2019
Special Thanks to our Sponsors:

Venue
Address: Arrillaga Alumni Center, 326 Galvez St, Stanford, CA 94305
Directions:

Developer Day Tracks
New for this year, we are offering two tracks for the developer day: a beginner track and an advanced track. Both tracks will be delivered by experienced instructors and using a software platform that will be made available shortly before the Developer Day itself.

Beginner Track
This track is for developers who are new to P4 and want a tutorial-style introduction to the languages main features. It is organized around a series of programming exercises in which participants implement conventional and novel solutions to various problems in networking including:

Basic forwarding, tunneling, and source routing
Load balancing
Monitoring and telemetry
P4Runtime

Only basic programming knowledge is required, but familiarity with Python and using a Linux virtual machines will be helpful.

Virtual Machine
We have created a VM with everything needed to work on the tutorial exercises, including the P4 Compiler, Behavioral Model, starter code, and editors. We suggest downloading the VM and executing the instructions below ahead of the tutorial.
Use the following link to download the VM image (5.2 GB).

Import and Run the VM
The VM is in .ova format and has been created using VirtualBox. To run the VM you can use any modern virtualization system, although we recommend using VirtualBox. For instructions on how to get VirtualBox and import the VM, use the following links:
VirtualBox Download
Importing a VM
Login Credentials (To access the Ubuntu system in the VM, use the following credentials with sudo privileges):

User: p4
Password: p4

System Requirements
The current configuration of the VM is 2 GB of RAM and 2 CPUs. These are the recommended minimum system requirements to complete the exercises. When imported, the VM takes approximately 8 GB of disk space. For the best experience, we recommend running the VM on a host system that has at least twice as many resources.

Agenda

Advanced Track
This track is for developers with intermediate knowledge of the P4 language. It is organized around a sequence of hands-on exercises that show how to build a leaf-spine data center fabric based on Segment Routing over IPv6 (SRv6), using the ONOS SDN controller:

Basic forwarding
Bridging
SRv6
ONOS Control Plane
Testing in Mininet

Only basic knowledge of Java is required. The track will include a brief introduction to ONOS for beginners. Participants will be provided with a skeleton implementation of the applicationq to complete, filling in the relevant parts to generate run-time table entries and other entities to implement bridging and SRv6 capabilities.

Virtual Machine
We have created a VM with everything needed to work on the tutorial exercises, including ONOS, stratum_bmv2, Mininet, P4Runtime, PTF, and code editors. We suggest downloading the VM and executing the instructions below ahead of the tutorial.
Use the following link to download the VM (5.3 GB). Please also make note of the backup link.

1.) Import and Run the VM
The VM is in .ova format and has been created using VirtualBox v6.0.6. To run the VM you can use any modern virtualization system, although we recommend using VirtualBox. For instructions on how to get VirtualBox and import the VM, use the following links:
VirtualBox Download
Importing a VM
Login Credentials (To access the Ubuntu system in the VM, use the following credentials with sudo privileges):

User: sdn
Password: [REDACTED]

* System Requirements
The current configuration of the VM is 4 GB of RAM and 4 core CPU. These are the recommended minimum system requirements to complete the exercises. When imported, the VM takes approx. 8 GB of HDD space. For a flawless experience, we recommend running the VM on a host system that has at least the double of resources.

2.) Generate SSH Keys
ONOS uses SSH key-based authentication to access its command line interface (CLI). Before using ONOS, you need to generate public/private rsa key pair using the following command inside the VM:
Command: ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘’ -q

Agenda

Instructors

Nate Foster (Cornell University)
Brian O’Connor (Open Networking Foundation)
Carmelo Cascone (Open Networking Foundation)
And others (TBA)

P4 Hackathon in Frankfurt
2019-03-29 09:00 - 18:00
An event organized by the P4 Education Working Group
Held in Frankfurt, Germany on March 29, 2019
The P4 Hackathon aims to develop novel, proof-of-concept data plane applications, and to support the open-source community through the development of tools and infrastructure.
The hackathon is intended for P4 users of all levels – from beginners to experts.
We are keen to meet new people, see new faces, and create new collaborations between (and within) academia and industry!
Venue
EASTSIDE Otto-Messmer-Strasse 1 60314 Frankfurt am Main Deutschland
The event facility is managed by Co-Work & Play GmbH
Registration
Please note that registration is closed. Please contact aaron@aagico.berlin with any questions or concerns.
Agenda

9:00 – 10:00am

Registration

9:30 – 10:00

Welcome and Introductions

10:00 – 13:00

P4 introductory course for beginners
Break into interest groups and hack!

13:00 – 14:00

Lunch!

14:00 – 14:15

Progress discussion & QA session

14:15 – 17:45

Further P4/P4Runtime tutorials
More hacking

17:55 – 18:00

Closing

Diversity and inclusivity
The P4 hackathon aims to increase the diversity and inclusivity of the P4 community. Everyone should feel welcome taking part in the event, and we will enforce a strict no-harrasement code of conduct.
Please contact aaron@aagico.berlin if you are unable to attend because of travel or accomodation costs
Organization

Noa Zilberman (chair), University of Cambridge (P4 Education Working Group)
Robert Soulé (chair), Università della Svizzera italiana (P4 Education Working Group)
Aaron A. Glenn, AAGlenn Internetworking Company

Special Thanks to our Sponsors:

Thank you to DE-CIX for sponsoring the event location in full.

P4 Hackathon at NSDI
2019-03-01 08:00 - 18:00
An event organized by the P4 Education Working Group and the Cornell-Princeton Network Programming Initiative, in conjunction with NSDI 2019
Held in Boston, MA, USA on March 1, 2019
The P4 Hackathon aims to develop novel, proof-of-concept data plane applications, and to support the open-source community through the development of tools and infrastructure.
The hackathon is intended for P4 users of all levels – from beginners to experts.
We are keen to meet new people, see new faces, and create new collaborations between (and within) academia and industry!
Venue
Sheraton Boston 39 Dalton St Boston, MA 02199 USA Public Garden Room
The event is co-located with NSDI 2019.
Registration
Click here to register.
Please note that there are a limited number of spaces.
Agenda
This agenda is tentative, please check closer to the date!

8:00 – 10:00am

Registration

8:30 – 10:00am

P4 crash course for beginners

10:00 – 10:15

Welcome and Introductions, finding common interests to work on

10:15 – 17:25

Breaking into groups, hack!

17:25 – 17:55

Project presentations

17:55 – 18:00

Closing

Diversity and inclusivity
The P4 hackathon aims to increase the diversity and inclusivity of the P4 community. Everyone should feel welcome taking part in the event, and we will enforce a strict no-harrasement code of conduct.
Participants who are attending NSDI 2019, can apply for NSDI’s student and diversity travel grants. P4 specific information is coming soon!
Organization

Noa Zilberman (chair), University of Cambridge
Robert Soulé (chair), Università della Svizzera italiana
Nate Foster, Cornell University
Jennifer Rexford, Princeton University
Changhoon Kim, Barefoot Networks
Pietro Bressana, Università della Svizzera italiana

Software
P4App

To install the Docker image:

Install Docker

Follow the instructions on the Docker website: https://docs.docker.com/install/
Alternatively, you can use a package manager. For example, on OSX, you can install Docker with Homebrew$ brew cask install docker-toolbox

Clone the repository $ git clone --branch p4app --recurse-submodules https://github.com/p4lang/tutorials
Change into an exercise directory
$ cd tutorials/p4app-exercises/basic.p4app
Run an example to start the image download
$ make run

Virtual Machine
You can either download a virtual machine image or build it from source. Note that both of these procedures can take around 45 minutes depending on the speed of your network connection.

To download the virtual machine image

Install VirtualBox
https://virtualbox.org
Download virtual machine image
P4 Tutorial 2018-06-01.ova
Import virtual machine into VirtualBox
Open VirtualBox, select “File > Import Appliance”, and navigate to the downloaded file.
Boot virtual machine
Select “P4 Tutorial 2018-06-01”, and click “Start”.

To build the virtual machine from source

Install VirtualBox
https://virtualbox.org
Install Vagrant
https://vagrantup.com
Clone the tutorial repository
$ git clone https://github.com/p4lang/tutorials
Navigate to the vm directory
$ cd tutorials/vm/
Build the virtual machine
$ vagrant up

Final steps
After the machine boots, you should have a graphical desktop with all required software pre-installed, logged in as username “p4” (with password “p4”).

Special Thanks to our Sponsors:

Contact the organizers for sponsorship opportunities.
This is not a USENIX event, but we would like to thank the support of USENIX.

P4 Tutorial at NANOG 75
2019-02-19 08:00
A presentation by the P4 Education Working Group at NANOG 75.
Held at the Hyatt Regency San Francisco on Tuesday, February 19, 2019, 4:00-6:00pm.
Instructors

Andy Fingerhut (Cisco Systems)
Antonin Bas (Barefoot Networks)

Software
We have created a Docker image that has all of the software needed to complete the tutorial exercises already installed.

To download the Docker image:

Install Dockerhttps://www.docker.comYou may also find the instructions at the following links useful:

Ubuntu 16.04
Ubuntu 18.04
Mac (dockerhub account required)

When installing on Ubuntu, make sure you do the optional step 2 (“Executing the Docker Command Without Sudo”).
Clone the p4app repository:git clone --branch p4app --recurse-submodules https://github.com/p4lang/tutorials
Change directory to the first exercise:cd tutorials/p4app-exercises/basic.p4app
Try running the first example. This will download the docker image and store it locally, so you will have it ready for the event. You should see a mininet prompt (mininet>) at the end:make run

1st P4 Workshop in Europe (P4WE)
2018-09-24 08:30 - 17:45
A presentation by the P4 Language Consortium and ONF in conjunction with ICNP 2018
Held at Cambridge, UK on September 24, 2018
P4WE 2018 is the first P4 Language Consortium event in European. It aims to bring together P4 and P4->NetFPGA researchers from Europe and from around the world, and to foster the growth of the P4 Community.
P4WE, which will run as a workshop at ICNP 2018, will have proceedings. It aims to enable researchers to publish early stage work and small scale projects.
Venue
University of Cambridge
Department of Computer Science and Technology
The Computer Laboratory
William Gates Building
15 JJ Thomson Avenue, Cambridge CB3 0FD
Agenda

8:30 – 9:00am

Registration and Breakfast

9:00 – 9:15

Welcome and Introductions

9:15 – 10:15

Keynote: Extending the range of P4 programmability (slides)Speaker: Professor Gordon Brebner (Xilinx Labs)

10:15 – 10:45

Coffee break

10:45 – 12:15

Named Data Networks using Programmable Switches. Rui Muigel (University of Lisbon), Salvatore Signorello (University of Luxembourg), Fernando M. V. Ramos (University of Lisbon) (slides)
Consensus for Non-Volatile Main Memory. Huynh Tu Dang (Università della Svizzera italiana), Jaco Hofmann (TU Darmstadt), Yang Liu (Western Digital Research), Marjan Radi (Western Digital Research), Dejan Vucinic (Western Digital Research), Fernando Pedone (Università della Svizzera italiana), Robert Soulé (Università della Svizzera italiana) (slides)
Transparent Edge Gateway for Mobile Networks. Ashkan Aghdai (NYU), Mark Huang (Huawei), David H. Dai (Huawei), Yang Xu (NYU), H. Jonathan Chao (NYU) (slides)

12:15 – 13:30

Lunch break

13:30 – 14:40

Panel: P4 Education

14:40 – 15:20

Lightning talks

15:20 – 16:15

Coffee break and Posters

16:15 – 17:30

Stateless Load-Aware Load Balancing in P4. Benoit Pit–Claudel (Cisco Systems, École Polytechnique), Yoann Desmouceaux Cisco Systems, École Polytechnique), Pierre Pfister (Cisco Systems), Marc Townsley (Cisco Systems) (slides)
P4LLVM: An LLVM based P4 Compiler. Dangeti Tharun Kumar, S Venkata Keerthy, Ramakrishna Upadrasta (IIT Hyderabad) (slides)
pcube: Primitives for network data plane programming. Rinku Shah, Aniket Shirke, Akash Trehan, Mythili Vutukuru, Purushottam Kulkarni (IIT Bombay) (slides)

17:30 – 17:45

Closing

Accepted Posters

Network Coding for Critical Infrastructure Networks. Rakesh Kumar, Vignesh Babu, David M. Nicol (University of Illinois, Urbana-Champaign) (slides)
ARP-P4: A hybrid ARP-Path/P4Runtime switch. Isaias Martinez-Yelmo, Joaquin Alvarez-Horcajo, Miguel Briso-Montiano, Diego Lopez-Pajares, Elisa Rojas (University of Alcalá) (slides)
One for All, All for One: A Heterogeneous Data Plane for Flexible P4 Processing. Jeferson Santiago da Silva, Thibaut Stimpfling, Thomas Luinaud, Bachir Fradj (Polytechnique Montréal), Bochra Boughzala (Kaloom Inc.) (slides)
Using P4 and Source Based Routing To Enable Performant Intents in Software Defined Networks. Benjamin Lewis, Lyndon Fawcett, Dr. Matthew Broadbent, Prof. Nicholas Race (Lancaster University)
Verification of Generated RTL from P4 Source Code. Radek Iša, Pavel Benáček (CESNET a.l.e.), Viktor Puš (Netcope Technologies) (slides)
A P4-Based PON Architecture for 5G. Adebanjo Haastrup, David Rincon, Sallent Sebastia, J. Ramon Piney (Universitat Politècnica de Catalunya) (slides)
Implementation of Sketch-based Entropy Estimation for Network Traffic Analysis Using P4. Ku-Yeh Shih, Yu-Kuen Lai, Theophilus Wellem, Ho-Ping Lee, Po-Yu Huang, Yu-Jau Lin (Chung Yuan Christian University) (slides)
The P4->NetFPGA Workflow, and Experience Report from the Stanford CS344 Class. Stephen Ibanez, Nick McKeown (Stanford University), Gordon Brebner (Xilinx Labs) (slides)

Accepted Demos

Hardware-Accelerated Firewall for 5G Mobile Networks. Ruben Ricart-Sanchez (University of the West of Scotland), Pedro Malagon (Universidad Politecnica de Madrid), Jose M. Alcaraz-Calero (University of the West of Scotland), Qi Wang (University of the West of Scotland) (slides)
Switch ASIC Programmability in Hybrid Mode. Matty Kadosh, Alan Lo, Yonatan Piasetzky, Omer Shabtai, Marian Pritsak (Mellanox Technologies), Guohan Lu (Microsoft) (slides)
RAYMAX P4-Enabled SmartNIC: Providing Service-Driven Data Center Networking. Yan Yan, Shen Tan (Raymax Technology), Reza Nejabati, Dimitra Simeonidou (University of Bristol) (slides)
VNF offloading on a multi-vendor P4 fabric controlled by ONOS via P4Runtime. Andrea Campanella, Carmelo Cascone (Open Networking Foundation) (slides)
Network-assisted sorting. Petar Penkov, Hristo Stoyanov (Stanford University)

Technical Program Committee

Noa Zilberman (chair), University of Cambridge
Robert Soulé (chair), Università della Svizzera italiana
Gianni Antichi, University of Cambridge
Mario Baldi, Cisco
Gordon Brebner, Xilinx Labs
Paolo Costa, Microsoft Research
Andy Fingerhut, Cisco Systems
Nate Foster, Cornell University
Timothy Griffin, University of Cambridge
Mukesh Hira, VMWare
Masoud Moshref, Barefoot Networks
Fernando Ramos, University of Lisbon
Christian Esteve Rothenberg, University of Campinas

Special Thanks to our Sponsors:

Gold Level:

Silver Level:

Bronze Level:

ACM SIGCOMM 2018 Full-Day Tutorial on Programming the Network Data Plane
2018-08-20 09:00 - 17:30
A presentation by the P4 Language Consortium
Held at InterContinental Budapest on Monday, August 20, 2018
Virtual Machine
We have created a virtual machine that has all of the software needed to complete the developer day exercises already installed. You can either download a virtual machine image or build it from source. Note that both of these procedures can take around 45 minutes depending on the speed of your network connection.

To download the virtual machine image

Install VirtualBox
https://virtualbox.org
Download virtual machine image
P4 Tutorial 2018-06-01.ova
Import virtual machine into VirtualBox
Open VirtualBox, select “File > Import Appliance”, and navigate to the downloaded file.
Boot virtual machine
Select “P4 Tutorial 2018-06-01”, and click “Start”.

To build the virtual machine from source

Install VirtualBox
https://virtualbox.org
Install Vagrant
https://vagrantup.com
Clone the tutorial repository
$ git clone https://github.com/p4lang/tutorials
Navigate to the vm directory
$ cd tutorials/vm/
Build the virtual machine
$ vagrant up

Final steps
After the machine boots, you should have a graphical desktop with all required software pre-installed, logged in as username “p4” (with password “p4”).

Agenda

9:00 – 10:30am

Introduction to P4 and Overview of New Language Features

10:30 – 11:00am

Break

11:00 – 12:40

P4 Development Tools and Control Plane Interface

12:40 – 2:00pm

Lunch

2:00 – 3:15pm

Collaborative Lab Exercises

3:15 – 3:45pm

Break

3:45-5:30

Mini Research Workshop, Conclusion

P4 Developer Day
2018-06-06 08:00 - 18:30
A presentation by the P4 Language Consortium
Held at Stanford University on Wednesday, June 6, 2018
Special Thanks to our Sponsors:

Virtual Machine
We have created a virtual machine that has all of the software needed to complete the developer day exercises already installed. You can either download a virtual machine image or build it from source. Note that both of these procedures can take around 45 minutes depending on the speed of your network connection.

To download the virtual machine image

Install VirtualBox
https://virtualbox.org
Download virtual machine image
P4 Tutorial 2018-06-01.ova
Import virtual machine into VirtualBox
Open VirtualBox, select “File > Import Appliance”, and navigate to the downloaded file.
Boot virtual machine
Select “P4 Tutorial 2018-06-01”, and click “Start”.

To build the virtual machine from source

Install VirtualBox
https://virtualbox.org
Install Vagrant
https://vagrantup.com
Clone the tutorial repository
$ git clone https://github.com/p4lang/tutorials
Navigate to the vm directory
$ cd tutorials/vm/
Build the virtual machine
$ vagrant up

Final steps
After the machine boots, you should have a graphical desktop with all required software pre-installed, logged in as username “p4” (with password “p4”).

Slack
We will use Slack to make it easy for participants to ask the TAs questions.

Register at bit.ly/join-p4-lang-slack
Join the #d2-2018-spring channel

Pigeonhole
We will use Pigeonhole to manage questions during the panel.

Register at pigenhole.at
Enter the event code P4D2

Slides
The slides presented by the instructors at the developer day can be accessed here.
P4 Cheat Sheet
The P4 cheat sheet that was distribtued to attendees at the developer day can be accessed here.
Agenda

8:00 – 8:30am

Registration and Breakfast

8:30 – 9:00am

Technical Set-up for Hands-on LabIn order to complete the Developer Day exercises, we will distribute a virtual machine with all required software installed.

9:00 – 9:10am

Welcome and IntroductionsSpeaker: Nate Foster (Cornell University)

9:10 – 10:30am

Introduction to Data Plane ProgrammingInstructor: Stephen Ibanez (Stanford University)
Language BasicsInstructor: Stephen Ibanez (Stanford University)Session 1 will provide a hand-on introduction to P4. Students will start by implementing a “Hello World”-style application to gain an understanding of P4 concepts. The lesson will progressively introduce core language features, such as header/metadata types, packet parsers, and controls. By the end of this session, students will be able to implement a basic IP router.

10:30 – 11:00am

Break

11:00 – 12:30

P4 RuntimeInstructor: Brian O’Connor (ONF) Session 2 will cover software tools that are essential to developing P4 applications. Students will learn how to invoke the the P4 compiler, run the debugger, and start a P4 software switch. This session will also introduce the control-plane interfaces via P4 Runtime, a protocol-independent API auto-generated from the definition of a packet processing pipeline written in P4.

12:30 – 1:30pm

Lunch

1:30 – 2:00pm

Keynote: “Revisiting In-Network Control” Arvind Krishnamurthy (Washington)Abstract: Emerging programmable switches allow for flexible and reconfigurable packet processing at line rate. These emerging technologies address a key limitation with traditional SDN solutions that allow for only custom-plane customization but not data-plane customization needed by traffic management protocols that perform “in-network” control and per-packet processing.Despite their promising new functionality, reconfigurable switches are not all-powerful; they have limited state, support limited types of operations, and limit per-packet computation in order to be able to operate at line rate. In this talk, I describe how we can address these limitations by using novel approximation techniques and implement previously unrealized protocols that require in-network control. Our work thus represents a modest step towards enabling a “software defined data plane” that provides greater performance and isolation for datacenter applications.

2:00-3:00

Monitoring and DebuggingInstructor: Mina Tahmasbi Arashloo (Princeton University)Session 3 will focus on a set of labs related to network monitoring and debugging. In this session, students will gain a deeper understanding of P4 language concepts, including custom headers and intrinsic metadata. In the first exercise, students will implement Explicit Congestion Notification (ECN) to set a congestion bit in a packet header when the queue depth exceeds a threshold. In the second exercise, MRI, students will implement a simplified version of In-Band Network Telemetry to track the path that packets travel through the network.

3:00 – 3:30pm

Break

3:30 – 4:30pm

Advanced Data StructuresInstructor: Nate Foster (Cornell University)Session 4 covers advanced data structures. In this session, students will implement two data-plane applications. In the first, source routing, end-hosts specify paths through the network by using a stack of labels in the packet header. The switch must “pop” each label and forward out the appropriate interface. In the second, students will implement a network calculator. Packets containing arithmetic expressions are sent to a switch. The switch will evaluate the expressions, and return the results back to the sender.

4:30-5:30

Panel DiscussionModerator: Ben Pfaff (VMware)Panelists:

Bochra Boughzala (Kaloom)
Uyen Chau (ON.Lab)
Chris Sommers (Keysight)

5:30-6:30

Reception

5th P4 Workshop
2018-06-05 08:00 - 18:30
A Presentation by the P4 Language Consortium
Held at Stanford University on Tuesday, June 5, 2018
Special Thanks to our Sponsors:

Agenda

8:00 – 9:00am

Registration and Breakfast

9:00 – 9:20am

Welcome and Introductions Speaker: Nate Foster (Cornell University) (slides)

9:20 – 9:50am

Updates from the P4.org Working Groups

Architecture Working Group Speaker: Andy Fingerhut (Cisco Systems) (slides)
API Working Working Group Speakers: Lorenzo Vicisano (Google) and Antonin Bas (Barefoot Networks) (slides)
Applications Working Group Speakers: JK Lee (Barefoot Networks) and Mukesh Hira (VMware) (slides)

9:50 – 10:10am

Exposing Data Plane Programmability on Turn-key Network Devices Speaker and Author: Mario Baldi (Cisco Systems) (slides)

10:10 – 10:25am

Demo Lightning Talks During this session, 1-minute, 1-slide lightning talks will be presented by: Google, Netcope Technologies, University of Campinas, Eötvös Loránd University, and Open Networking Foundation (lightning talk slides found below)

10:25 – 10:55am

Break and Demo Visits

SESSION CHAIR: Mina Tahmasbi Arashloo (Princeton University)

10:55 – 11:15am

Stratum: Enabling the Next Generation of SDN Interfaces Speaker and Author: Brian O’Connor (Open Networking Foundation) (slides)

11:15 – 11:35am

A Framework for Network Intelligence Speaker and Author: Ken Duell (AT&T) (slides)

11:35 – 11:55am

Automated Test Case Generation from P4 Programs Speaker: Chris Sommers (Keysight Technologies) (slides) Co-Authors: Prasenjit Adhikary, Rudrarup Naskar, Kinshuk Mandal, Chris Sommers (Keysight Technologies)

11:55 – 12:15pm

P4C-XDP: Programming Linux Kernel Forwarding Plane Using P4 Speaker: William Tu (VMware NSBU) (slides) Co-Authors: William Tu (VMware NSBU), Mihai Bidiu (VMware Research)

12:15 – 12:30pm

Demo Lightning Talks During this session, 1-minute, 1-slide lightning talks will be presented by: Cisco Systems, Mellanox Technologies, Stanford University, Juniper Networks, Barefoot Networks, and POSTECH (lightning talk slides found below)

12:30 – 2:00pm

Lunch and Demo Visits

SESSION CHAIR: Cole Schlesinger (Barefoot Networks)

2:00 – 2:40pm

Keynote: NetChain and NetCache Speaker: Xin Jin (Johns Hopkins University) (slides) Co-Authors: Xin Jin (Johns Hopkins University, Xiaozhou Li (Barefoot Networks), Haoyu Zhang (Princeton University), Nate Foster (Cornell University), Jeongkeun Lee (Barefoot Networks), Robert Soule (USI), Changhoon Kim (Barefoot Networks), Ion Stoica (UC Berkeley)

2:40 – 3:00pm

Camus: High-Throughput Publish-Subscribe in the Forwarding Plane Speaker: Theo Jepsen (Università della Svizzera Italiana) (slides) Co-Authors: Theo Jepsen (USI), Masoud Moshref (Barefoot Networks), Antonio Carzaniga (USI), Nate Foster (Cornell University), Xiaozhou Li (Barefoot Networks), Milad Sharif (Barefoot Networks), Robert Soule (USI)

3:00 – 3:20pm

Fast Reroute in P4: Keep Calm and Enjoy Programmability Speaker: Marco Chiesa (KTH Royal Institute of Technology) (slides) Co-Authors: Roshan Sedar (Universite catholique de Louvain), Michael Borokhovich (Independent Researcher), Gianni Antichi (University of Cambridge), Marco Chiesa (KTH Royal Institute of Technology), Stefan Schmid (University of Vienna)

3:20 – 3:55pm

Break and Demo Visits

SESSION CHAIR: Sujata Banerjee (VMware)

3:55 – 4:15pm

Enabling Event Triggered Monitoring of Traffic Clusters Speaker: Gianni Antichi (University of Cambridge) (slides) Co-Authors: Jan Kucera (CESNET), Diana Popescu (University of Cambridge), Gianni Antichi, Jan Korenek (Brno University of Technology), Andrew Moore (University of Cambridge)

4:15 – 4:35pm

What P4 can Learn from Linux Traffic Control Speaker and Author: Jamal Hadi Salim (Mojatatu Networks) (slides)

4:35 – 4:55pm

Rapid Prototyping of Avionic Applications Using P4 Speaker: Dominik Scholz (Technical University of Munich) (slides) Co-Authors: Dominik Scholz, Fabien Geyer, Sebastian Gallenmuller, Georg Carle (Technical University of Munich)

4:55 – 5:15pm

Using P4 for Converged and Programmable XHaul in Mobile RAN Speakers and Co-Authors: James Yu (Nokia) & Gordon Brebner (Xilinx) (slides)

5:15 – 5:30pm

Closing RemarksSpeaker: Gordon Brebner (Xilinx)

5:30 – 6:30pm

Reception

Demos to Visit

Stratum: Enabling the Next Generation of SDN Interfaces (Google, Open Networking Foundation) (abstract) (demo_slide)
Segment Routing at 100G Using FPGA Smart NIC and P4 (CESNET, Netcope Technologies) (abstract) (demo_slide)
Switch ASIC Programmability in Hybrid Mode (Microsoft, Mellanox) (abstract) (demo_slide)
BB-Gen: A Packet Crafter for Performance Evaluation of P4 Data Planes (University of Campinas, Ericsson Research) (abstract) (demo_slide)
Towards Programmable Scheduling: PIFO Implementation on NetFPGA (New York University, Stanford University, Xilinx Labs) (abstract) (demo_slide)
P4 meets 5G (ELTE Eötvös Loránd University, Ericsson Research) (abstract) (demo_slide)
VNF offloading on a multi-vendor P4 fabric controlled by ONOS via P4Runtime (Open Networking Foundation) (abstract) (demo_slide)
In-band Network Telemetry Management Architecture: ONOS INT Service and XDP (POSTECH) (abstract) (demo_slide)
In-Network Deduplication for Packet Broker Deployments (Cisco Systems) (abstract) (demo_slide)
Barefoot Deep Insight (Barefoot Networks) (abstract) (demo_slide)
p4pktgen: Automated Test Case Generation for P4 Programs (Cisco Systems, Stanford University, Virginia Tech) (abstract) (demo_slide)
AFI Sandboxes: An adaptation of P4 on Trio3D (Juniper Networks) (abstract) (demo_slide)
Flexible OVS acceleration with P4 and low profile FPGA card (CESNET, Netcope Technologies) (abstract) (demo_slide)
MACSAD: An Exemplar Realization of Multi-Architecture P4 Pipelines (University of Campinas, Ericsson Research) (abstract) (demo_slide)

Technical Program Committee

Andy Fingerhut (Chair), Cisco Systems
Mina Arashloo, Princeton University
Sujata Banerjee, VMware
Tom Rodeheffer, Google
Cole Schlesinger, Barefoot Networks
Anirudh Sivaraman, New York University
Noa Zilberman, University of Cambridge

East Coast P4 Developer Day, Spring 2018
2018-03-09 08:00 - 17:30
A presentation by the P4 Language Consortium
Held at Cornell Tech on Friday, March 9, 2018
Virtual Machine
We have created a virtual machine that has all of the software needed to complete the developer day exercises already installed. You can either download a virtual machine image or build it from source. Note that both of these procedures can take around 45 minutes depending on the speed of your network connection.

To download the virtual machine image

Install VirtualBox
https://virtualbox.org
Download virtual machine image
P4 Tutorial 2018-03-05.ova
Import virtual machine into VirtualBox
Open VirtualBox, select “File > Import Appliance”, and navigate to the downloaded file.
Boot virtual machine
Select “P4 Tutorial 2018-03-05”, and click “Start”.

To build the virtual machine from source

Install VirtualBox
https://virtualbox.org
Install Vagrant
https://vagrantup.com
Clone the tutorial repository
$ git clone https://github.com/p4lang/tutorials
Navigate to the vm directory
$ cd tutorials/P4D2_2018_East/vm/
Build the virtual machine
$ vagrant up

Final steps
After the machine boots, you should have a graphical desktop with all required software pre-installed, logged in as username “p4” (with password “p4”). You may want to install the VirtualBox Guest Additions to optimize the graphics and clipboard interaction with your host OS. See the VirtualBox manual for more details.

Agenda

8:00 – 8:30am

Registration and Breakfast

8:30 – 9:00am

Technical Set-up for Hands-on LabIn order to complete the Developer Day exercises, we will distribute a virtual machine with all required software installed.

9:00 – 9:10am

Welcome and Introductions Speaker: Nate Foster (Cornell University)

9:10 – 10:45am

Introduction to Data Plane Programming Instructor: Stephen Ibanez (Stanford University)
Language Basics Instructor: Stephen Ibanez (Stanford University)Session 1 will provide a hand-on introduction to P4. Students will start by implementing a “Hello World”-style application to gain an understanding of P4 concepts. The lesson will progressively introduce core language features, such as header/metadata types, packet parsers, and controls. By the end of this session, students will be able to implement a basic IP router.

10:45 – 11:15am

Break

11:15 – 11:50

Software Tools Instructor: Praveen Kumar (Cornell University)Session 2 will cover software tools that are essential to developing P4 applications. Students will learn how to invoke the the P4 compiler, run the debugger, and start a P4 software switch. This session will also introduce the control-plane interfaces via P4 Runtime, a protocol-independent API auto-generated from the definition of a packet processing pipeline written in P4.

12:10 – 1:30pm

Lunch

1:30 – 3:00pm

Monitoring and Debugging Instructor: Mina Tahmasbi Arashloo (Princeton University)Session 3 will focus on a set of labs related to network monitoring and debugging. In this session, students will gain a deeper understanding of P4 language concepts, including custom headers and intrinsic metadata. In the first exercise, students will implement Explicit Congestion Notification (ECN) to set a congestion bit in a packet header when the queue depth exceeds a threshold. In the second exercise, MRI, students will implement a simplified version of In-Band Network Telemetry to track the path that packets travel through the network.

3:00 – 3:30pm

Break

3:30 – 3:50

Keynote: Toward Self-Driving Networks Speaker: Jennifer Rexford (Princeton University)

3:50 – 5:00pm

Advanced Data Structures Instructor: Sean Choi (Stanford University)Session 4 covers advanced data structures. In this session, students will implement two data-plane applications. In the first, source routing, end-hosts specify paths through the network by using a stack of labels in the packet header. The switch must “pop” each label and forward out the appropriate interface. In the second, students will implement a network calculator. Packets containing arithmetic expressions are sent to a switch. The switch will evaluate the expressions, and return the results back to the sender.

5:00 – 5:45

Panel DiscussionModerator: Nate Foster (Cornell University)Panelists:

Mina Tahmasbi Arashloo (Princeton University)
Anthony Dalleggio (JP Morgan Chase & Co.)
Sandesh Kumar Sodhi (Juniper Networks)

5:45-5:55

Closing Remarks
Speaker: Nate Foster (Cornell University)

6:00-7:30

Reception
Riverwalk Bar & Grille (425 Main St., Roosevelt Island)

P4 Developer Day Fall 2017
2017-11-10 08:00 - 19:00
A joint presentation by Stanford University and P4 Language Consortium.

Held at Arrillaga Alumni Center, Stanford University on Friday, November 10, 2017.

We would like to thank our sponsors for their support:

Agenda

8:00 – 8:30am

Registration and Breakfast

8:30 – 9:00am

Technical Set-up for Hands-on Lab

In order to complete the exercises at the Fall 2017 P4 Developer Day, we have created a virtual machine that has all of the required software installed. Note that this download and setup can take around 45 minutes.
To build the virtual machine:

Step 1: Install VirtualBox https://virtualbox.org/
Step 2: Install Vagrant: https://vagrantup.com/
Step 3: Clone the tutorial repository:
$ git clone https://github.com/p4lang/tutorials

Step 4: Go to the vm directory:
$ cd tutorials/P4D2_2017_Fall/vm/

Step 5: Build the virtual machine:
$ vagrant up

Step 6: Login and restart: Log in with username p4 and password p4 and issue the command
sudo shutdown -r now
When the machine reboots, you should have a graphical desktop machine with the required software pre-installed.

9:00 – 9:10am

Welcome and Introductions

Robert Soulé, Università della Svizzera Italiana (USI)

Video for this session is available here.

9:10 – 10:45am

Introduction to Data Plane Programming
Language Basics

by Stephen Ibanez, Stanford University

Session 1 will provide a hand-on introduction to P4. Students will start by implementing a “Hello World”-style application to gain an understanding of P4 concepts. The lesson will progressively introduce core language features, such as header/metadata types, packet parsers, and controls. By the end of this session, students will be able to implement a basic IP router.

Slides for this session are available here.
Video for this session is available here.

10:45 – 11:15am

Break

11:15 – 12:00pm

Software Tools and P4 Runtime

by Carmelo Cascone and Brian O’Connor, Open Networking Foundation (ONF)

Session 2 will cover software tools that are essential to developing P4 applications. Students will learn how to invoke the the P4 compiler, run the debugger, and start a P4 software switch. This session will also introduce the control-plane interfaces via P4 Runtime, a protocol-independent API auto-generated from the definition of a packet processing pipeline written in P4.

Slides for this session are available here.
Video for this session is available here.

12:00 – 1:30pm

Lunch

1:30 – 3:00pm

Monitoring and Debugging

by Mina Tahmasbi (Princeton University)

Session 3 will focus on a set of labs related to network monitoring and debugging. In this session, students will gain a deeper understanding of P4 language concepts, including custom headers and intrinsic metadata. In the first exercise, students will implement Explicit Congestion Notification (ECN) to set a congestion bit in a packet header when the queue depth exceeds a threshold. In the second exercise, MRI, students will implement a simplified version of In-Band Network Telemetry to track the path that packets travel through the network.

Slides for this session are available here.
Video for this session is available here.

3:00 – 3:30pm

Break

3:30 – 4:50pm

Advanced Data Structures

by Samar Abdi (Google)

Session 4 covers advanced data structures. In this session, students will implement two data-plane applications. In the first, source routing, end-hosts specify paths through the network by using a stack of labels in the packet header. The switch must “pop” each label and forward out the appropriate interface. In the second, students will implement a network calculator. Packets containing arithmetic expressions are sent to a switch. The switch will evaluate the expressions, and return the results back to the sender.

Slides for this session are available here.
Video for this session is available here.

4:50 – 5:00pm

Break

5:00 – 5:10pm

Closing Remarks

by Robert Soulé, Università della Svizzera Italiana (USI)

Slides for this session is available here.

5:10 – 6:00pm

Panel Discussion

Dejan Vucinic, Western Digital
Mario Baldi, Cisco Systems
Anirudh Sivaraman, NYU
Anurag Agrawal, Barefoot Networks

Video for this session is available here.

6:00 – 7:00pm

Reception

4th P4 Workshop
2017-05-17 08:00 - 18:30
A joint presentation by Stanford University and P4 Language Consortium.

Held at Arrillaga Alumni Center, Stanford University on Wednesday, May 17, 2017.
Agenda

8:00 – 9:00

Registration and Breakfast

9:00 – 9:15

Welcome and Introductions

Professor Nick McKeown (Stanford) (slides) and Professor Nate Foster (Cornell) (slides)

9:15 – 9:45

Updates from the P4.org Working Groups

Language Design (slides)
Architecture (slides)
API (slides)

9:45 – 10:05

P4 Program-dependent Controller Interface for SDN Applications

Samar Abdi, Waqar Mohsin, Yavuz Yetim (Google) (slides)

10:05 – 10:20

Demo Lightning Talks

High-Fidelity Validation of P4 Networks with SONiC-P4 Software Switch and CrystalNet (slide)

Tool release: P4 to Wireshark packet dissector (slide)

SAI behavioral model soft switch (slide)

DAIET: Data Aggregation In nETwork (slide)

Language-Directed Hardware Design for Network Performance Monitoring (slide)

P4-NetFPGA Toolchain: Writing Stateful P4 Programs (slide)

10:20 – 10:55

Break and Demo Visits

10:55 – 11:15

Making the Switch: Coast to Coast Production P4 White Box Trial

Ken Duell (AT&T)

11:15 – 11:35

High-Fidelity Validation of P4 Networks with SONiC-P4 Software Switch and CrystalNet

Hongqiang Liu, Yibo Zhu (Microsoft Research); Jiaxin Cao, Jitendra Padhye, Guohan Lu, Lihua Yuan (Microsoft) (slides)

11:35 – 11:55

dRMT: Disaggregated Programmable Switching

Sharad Chole, Andrew Fingerhut, Sha Ma (Cisco Systems);Anirudh Sivaraman (Massachusetts Institute of Technology); Shay Vargaftik (Technion);Alon Berger, Gal Mendelson (Technion); Mohammad Alizadeh (Massachusetts Institute of Technology); Shang-Tse Chuang, Isaac Keslassy (Technion/VMware); Ariel Orda (Technion); Tom Edsall (Cisco Systems); (slides)

11:55 – 12:15

NetCache: Fast In-Network Caching for Key-Value Stores

Xin Jin (UC Berkeley and JHU); Xiaozhou Li (Barefoot Networks); Haoyu Zhang (Princeton University); Robert Soulé (Barefoot Networks and Università della Svizzera italiana); Jeongkeun Lee (Barefoot Networks); Nate Foster (Barefoot Networks and Cornell University); Changhoon Kim (Barefoot Networks); Ion Stoica (UC Berkeley) (slides)

12:15 – 12:30

Demo Lightning Talks

Piggybacking Network Functions on SDN with P4 support (slide)

100G In-Band Network Telemetry with P4 and FPGA (slide)

Proposal for a PPPoE Demo (slide)

T4P4S: A P4 compiler for a wide variety of targets (slide)

Uniform Timestamping in P4 (slide)

Track every congestion at any queue in your network (slide)

Performant Stateful Security Functions in P4 and C (slide)

12:30 – 2:00

Lunch and Demo Visits

2:00 – 2:20

The Software Architecture of the P4-16 Reference Compiler

Mihai Budiu (VMware Research); Chris Dodd (Barefoot Networks) (slides)

2:20 – 2:40

Language-Directed Hardware Design for Network Performance Monitoring

Srinivas Narayana, Anirudh Sivaraman, Vikram Nathan, Prateesh Goyal (MIT); Venkat Arun (IIT Guwahati); Mohammad Alizadeh (MIT); Vimalkumar Jeyakumar (Cisco Tetration analytics); Changhoon Kim (Barefoot networks) (slides)

2:40 – 3:00

Executable Formal Semantics of P4 and Applications

Ali Kheradmand, Grigore Rosu (University of Illinois at Urbana Champaign) (slides)

3:00 – 3:20

A Program Logic for Automated P4 Verification

Nate Foster (Barefoot Networks/Cornell University); Cole Schlesinger (Barefoot Networks); Robert Soulé (Barefoot Networks/Universita della Svizzera italiana); Han Wang (Barefoot Networks) (slides)

3:20 – 3:55

Break and Demo Visits

3:55 – 4:15

The Extensible Network – Evolution in Protocol and Data Plane Agility

Daniel Bernier (Bell Canada); Milad Sharif (Barefoot Networks) (slides)

4:15 – 4:35

Hybrid P4 Switch

Ashkan Aghdai, Yang Xu, H. Jonathan Chao (New York University) (slides)

4:35 – 4:55

Deploying P4 Applications in Server-Based Networks

Abhijeet Prabhbune, Bapi Vinnakota (Netronome); Huynh Tu Dang, Fernando Pedone, Robert Soulé (Università della Svizzera italiana) (slides)

4:55 – 5:15

Sonata: Scalable Streaming Analytics for Network Telemetry

Arpit Gupta (Princeton University); Ankita Pawar (Unaffiliated); Rob Harrison (Princeton University); Rüdiger Birkner (ETH Zürich); Marco Canini (KAUST); Nick Feamster, Jennifer Rexford (Princeton University); Walter Willinger (NIKSUN Inc.) (slides)

5:15 – 5:30

Closing Remarks

5:30 – 6:30

Reception

Demos:
The following demos will be running in Fischer Conference Center and can be visited during breaks.

Piggybacking Network Functions on SDN with P4 support

Chang Liu, Arun Raghuramu, Chen-Nee Chuah (University of California Davis); Balachander Krishnamurthy (AT&T Labs-Research) (slide)

Proposal for a PPPoE Demo

Shabbir Khan, Ashok Malani (XFLOW RESEARCH INC.) (slide)

Tool release: P4 to Wireshark packet dissector

Georgios Nikolaidis (Barefoot Networks) (slide)

SAI behavioral model soft switch

Yonatan Piasetzky (Mellanox); Guohan Lu (Microsoft) (slide)

Language-Directed Hardware Design for Network Performance Monitoring

Srinivas Narayana, Anirudh Sivaraman, Vikram Nathan, Prateesh Goyal (MIT); Venkat Arun (IIT Guwahati); Mohammad Alizadeh (MIT); Vimalkumar Jeyakumar (Cisco Tetration analytics); Changhoon Kim (Barefoot networks) (slide)

P4-NetFPGA Toolchain: Writing Stateful P4 Programs

Stephen Ibanez (Stanford University); Gordon Brebner (Xilinx Labs) (slide)

100G In-Band Network Telemetry with P4 and FPGA

Pavel Benáček, Viktor Puš (CESNET, a.l.e.); Michal Kekely, Lukáš Richter (Netcope Technologies a.s.); Pavel Minařík, Jan Pazdera (Flowmon Networks a.s.) (slide)

T4P4S: A P4 compiler for a wide variety of targets

Sandor Laki (Eötvös Loránd University) (slide)

Uniform Timestamping in P4

Hakim Weatherspoon, Dhruv Singhal, Jingbo Wang (Cornell University) (slide)

Track every congestion at any queue in your network

Jeongkeun Lee, Jithin Thomas (Barefoot Networks) (slide)

High-Fidelity Validation of P4 Networks with SONiC-P4 Software Switch and CrystalNet

Yibo Zhu, Hongqiang Liu (Microsoft Research); Jiaxin Cao, Jitendra Padhye, Guohan Lu, Lihua Yuan (Microsoft) (slide)

Performant Stateful Security Functions in P4 and C

Jaco Joubert, David George, Bapi Vinnakota (Netronome) (slide)

DAIET: Data Aggregation In nETwork

Amedeo Sapio, Ibrahim Abdelaziz, Marco Canini, Panos Kalnis (KAUST) (slide)

Sponsors:
AT&T Barefoot Networks Cisco Google Netronome Xilinx

P4 Developer Day Spring 2017
2017-05-16 08:00 - 18:30
A joint presentation by Stanford University and P4 Language Consortium.

Held at Arrillaga Alumni Center, Stanford University on Tuesday, May 16, 2017.

Agenda

8:00 – 9:00

Registration and Breakfast

9:00 – 9:10

Welcome and Introductions

Professor Nick McKeown (Stanford) and Professor Nate Foster (Cornell)

9:10 – 10:40

P4_16 Tutorial (Part 1)

by P4.org

The full set of slides for P4_16 tutorial are available here.

10:40 – 11:00

Break

11:00 – 12:30

P4_16 Tutorial (Part 2)

by P4.org

12:30 – 1:30

Lunch

1:30 – 4:00

Hands-on Lab (Parallel Track – McCaw Hall)

P4_16 BMv2

by P4.org

Please follow the following instructions to get setup for the BMv2 Lab:

Download and install the latest version of Virtual Box, version 5.1.22, for your platform here.
Download the P4 D2 2017 virtual appliance (.ova) file here. This is a large(~3GB) file and can take a while to download depending on your download speed.
Double click the virtual appliance (.ova) file downloaded in step 1 or Import it using instructions here.
The minimum system requirements are 8GB (16GB preferred) and ~32GB free space on hard-drive.
Here are login credentials for the VM – username/password p4/p4
The presentation used for giving instructions for getting setup and an overview of the exercises is available here.

1:30 – 4:00

Hands-on Lab (Parallel Track – Fisher Room)

P4_16 NetFPGA

by NetFPGA
Slides used in this session are available here.

4:00 – 4:20

Break

4:20 – 5:20

Talk (Parallel Track – McCaw Hall)

P4 mapping to Barefoot Tofino

by Barefoot Networks
Slides used in this session are available here.

4:20 – 5:20

Talk (Parallel Track – Fisher Room)

P4 mapping to Netronome SmartNIC

by Netronome
Slides used in this session are available here.

5:20 – 5:30

Closing Remarks

5:30 – 6:30

Reception

Sponsors:

AT&T Barefoot Networks Cisco Google
