Page tree

Versions Compared


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


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 P4-capable devices. programmable data planes in the next versions of ONOS.





BMv2 integration in ONOSImage Added


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.json, default.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