Page tree

Have questions? Stuck? Please check our FAQ for some common questions and answers.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Work in progress

The content of this page is still work in progress


P4 is a programming language designed to allow programming of protocol-independent packet processors. Behavioral Model v2 (BMv2) is the reference P4 software switch. Support for this type of device is being integrated into ONOS with the goal of extending current network programming abstractions and providing a common groundwork to support programmable data planes in the next versions of ONOS.





BMv2 integration in ONOS


Bmv2 Device Context

  • What's a BMv2 Configuration?
  • What's a BMv2 Interpreter?
    • 1-to-1 criterion mapping
    • Treatment interpretation

"Default" Context

  • Applied at the first connection of the device to ONOS, before triggering the device connection
  • Provide minimum set of features to allow basic services to work (LLDP discovery, ARP proxy, Host tracking, Reactive forwarding)
  • Link to default.jsondefault.p4 and default interpreter implementation

Non-standard Match and Actions

  • Extension selector and treatments
  • Code sample with extension selector and treatment builder

Developers guide (WIP)

ONOS+P4 Development Environment Mininet Script

  • Command samples to run a network of bmv2 devices connected to ONOS

BMv2 Device Context Service API

  • Prototype API for device configuration management, to be promoted to core APIs in the future
  • How to set a context for a given device?
    • Configuration swap enforcement
  • Why do I need to register the interpreter's class loader?

Known issues

  • ...

Future works

ONOS-3969 - Getting issue details... STATUS

  • No labels