P4 Developer Day 2019

A Presentation by the P4 Language Consortium

Held at Stanford University on Tuesday, April 30, 2019

Special Thanks to our Sponsors:

cisco logo png barefoot logo png

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: rocks

* 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