Page tree

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 FPGA-based NICs, or it can be used to formally specify the behavior of a fixed-function switch. P4 Runtime is a protocol to control at runtime the behavior of a P4-enabled data plane devicedefined pipeline, for example, to install entries in a table defined in the P4 program. This page presents the support for P4 and P4 Runtime in ONOS, moreover, we provide steps to set up an environment to try ONOS with the Behavioral Model v2 (BMv2) (the reference P4 software switch). Support for P4 Runtime has been included in ONOS starting from the 1.11 (Loon) release.

This document assumes you are already familiar with ONOS, P4, P4 Runtime and BMv2. In other words, we assume you already know how to build and run ONOS, write a P4 program, build and run BMv2 with P4 Runtime support. If this is not the case, here's a list of pointers to get started:


Table of Contents

Table of Contents


This section is still work in progress. For an overview of P4 and P4 Runtime support in ONOS please refer to this presentation:

P4 Support in ONOS (ONOS Build, September 2017)

Features at a Glance

By using ONOS, you'll be able to program and control a network of comprising P4Runtime-enabled devices with all the benefits of a logically centralized SDN platform. The following features are currently supported:


titleVM login credentials

The VM comes with one user with sudo privileges. Use these credentials to log in:

Username: sdn

Password: rocks