Versions Compared

Key

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

WORK IN PROGRESS

In this tutorial, you will learn how to run an emulated Mininet network of BMv2 devices (i.e., the P4 reference software switch) and how to use ONOS to control such network. Some exercises also require writing code for ONOS and P4.

...

The goal of exercise 1 is to introduce P4 and P4Runtime support in ONOS.  This integration allows existing applications in ONOS to communicate to and program P4 devices on the network and operate in a pipeline agnostic manner.  This exercise illustrates how existing applications such as reactive forwarding, proxy-arp, and link discovery via LLDP can still be done on devices supporting P4 and P4Runtime.

Start ONOS

Start ONOS with a small subset of the applications by executing the following command:

Code Block
languagebash
ONOS_APPS=fwd,proxyarp,hostprovider,lldpprovider onos-buck run onos-local —- clean debug

Activate the BMv2 driver

...

and pipeconf via the ONOS CLI

  1. Use the following command to access the ONOS CLI:

    Code Block
    languagebash
    onos localhost
  2. Enter the following command to activate the BMv2 driver:

    Code Block
    languagebash
    onos localhost
  3. Enter the following command to active the pipeconf:

    Code Block
    languagebash
    app activate org.onosproject.p4tutorial.pipeconf
  4. To verify that you have activated all the required apps, run the following command:

    Code Block
    languagebash
    apps -s -a
  5. Make sure you see the following list of applications displayed:

    • org.onosproject.generaldeviceprovider (General Device Provider)

    • org.onosproject.drivers (Default Drivers)

    • org.onosproject.proxyarp (Proxy ARP/NDP)

    • org.onosproject.lldpprovider (LLDP Link Provider)

    • org.onosproject.protocols.grpc (gRPC Protocol Subsystem)

    • org.onosproject.protocols.p4runtime (P4Runtime Protocol Subsystem)

    • org.onosproject.p4runtime (P4Runtime Provider)

    • org.onosproject.drivers.p4runtime (P4Runtime Drivers)

    • org.onosproject.hostprovider (Host Location Provider)

    • org.onosproject.fwd (Reactive Forwarding)

    • org.onosproject.drivers.bmv2 (BMv2 Drivers)

    • org.onosproject.p4tutorial.pipeconf (P4 Tutorial Pipeconf) Run mininet to set up a topology of BMv2 devices.