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.
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:
Only basic programming knowledge is required, but familiarity with Python and using a Linux virtual machines will be helpful.
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).
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:
Login Credentials (To access the Ubuntu system in the VM, use the following credentials with sudo privileges):
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.
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:
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.
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.
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:
Login Credentials (To access the Ubuntu system in the VM, use the following credentials with sudo privileges):
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.
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