Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Deprecated in favor of ngsdn tutorial
Warning
titleDEPRECATED

The content of this page is outdated. Please check the NG-SDN Tutorial for a reference ONOS+P4 development environment:

https://github.com/opennetworkinglab/ngsdn-tutorial


P4 is a programming language to define the behavior of the data plane, it can be used to program targets such as software switches, reconfigurable ASICs or FPGAs, or it can be used to formally specify the behavior of a fixed-function switch. P4Runtime is a protocol to control at runtime a P4-defined pipeline, for example, to install entries in a match+action table defined in the P4 program. This page provides steps to set up an environment to try ONOS with the Behavioral Model v2 (BMv2) (the reference P4 software switch). Support for P4Runtime has been included in ONOS starting from the 1.11 (Loon) release.

...

Click here to download the ONOS+P4 Developer VM (approx. 12.5 GB) (last updated 2019-05-16)

Alternatively, you can use these instructions to build a VM locally using Vagrant.

...

The VM is based on Ubuntu 1618.04 (servercloud image) and contains the following software pre-installed:

  • ONOS
  • BMv2 simple_switch_grpc (P4 software switch with P4Runtime support)
  • p4c (P4 compiler)
  • Mininet (network emulator)

...

Important 2
Without trying to tell you how to live your life, we do recommend for your convenience to set up SSH access to the VM (e.g. copying SSH keys for faster access), as you will need to use multiple terminal shells at the same time. The Ubuntu system in the VM comes already equipped with an SSH server on port 22.

Known issues

  • VirtualBox shared folders are not mounted on startup on Ubuntu 18.04 even if "auto-mount" flag is set. To fix it 

    Code Block
    languagebash
    $ sudo systemctl edit --full vboxadd-service

    and remove systemd-timesync.service from the Conflicts= line, then reboot (source)

Walkthrough

This walkthrough demonstrates the necessary steps and commands to run a network of BMv2 devices in Mininet, controlled by ONOS using P4Runtime.

...