The goal of this tutorial is to teach you the basics of P4, P4Runtime, and ONOS. It is targetted to beginners who have little or no knowledge of the P4 language and would like to learn more using ONOS as the control plane. It includes hands-on exercises where you will learn how to create an emulated network of P4 devices using Mininet and BMv2 (the reference P4 software switch) controlled by ONOS via P4Runtime, while using a simple P4 program implementing a custom tunneling protocol named "MyTunnel".
Advanced ONOS+P4 Tutorial
If you already have intermediate knowledge of the P4 language and you would like to learn more about using ONOS for more realistic networking applications, we suggest you use this tutorial:
Advanced ONOS+P4 Tutorial: Building an SRv6-enabled fabric with P4 and ONOS
Download the tutorial VM
While you go through the slides, it is a good idea to start downloading the VM (~4 GB):
Instructions to download the ONOS+P4 Tutorial VM
Tutorial slides
Click here to download/open the slides in a new browser window (via Google Slides)
I want more!
Here are some pointers for you to learn more about P4 and ONOS:
- Basic ONOS Tutorial: learn more about ONOS
- Official P4 language tutorials: learn more about the P4 language
- Advanced ONOS+P4 Tutorial: use ONOS and P4 for more realistic networking applications while building an SRv6-enabled leaf-fabric from scratch
- Trellis+P4 tutorial: use Trellis, the built-in set of fabric apps in ONOS, with an existing P4 program (fabric.p4) and learn more about advanced use-cases such as VNF offloading of mobile S/PGW