Versions Compared

Key

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

...

DriverProvider & DriverAdminService

 

DriverProvider is an entity capable of providing device drivers and their behaviours: 

  • Set<Driver> getDrivers()

DriverAdminService is an ONOS service for tracking and managing device drivers indirectly by managing driver providers as follows: 

  • Set<DriverProvider> getProviders()

  • registerProvider(DriverProvider)

  • unregisterProvider(DriverProvider)

Note that different driver providers can contribute behaviours to the same driver. This way, drivers for support of OpenFlow table pipelines can come from one source, while support for the PoE configuration of the device can come from another.

DriverService 

Service for locating DriverService is the principal service that apps and other ONOS subsystems can use to locate appropriate drivers for the device  via the following:

  • by driver name

  • by device manufacturer, H/W version & S/W version

  • by supported Behaviour

  • by device ID

Behaviours

Different facets of behaviour for either talking about a device or for interacting with a device are modeled as derivatives of Behaviour and HandlerBehaviour interfaces, respectively. The reason for differentiating between the two lies in the slightly different context required.

Contexts

DriverData is a container for data learned about a device in prior interactions. It

  • provides Behaviours for talking about a device

  • has parent Driver

In this way, even interrogations about different aspects of a device are channeled through abstractions.

Similarly, DriverHandler is a context for interacting with a device.

 

  • provides Behaviours for interacting with a device

  • has DriverData

  • has parent Driver

So as you can see, in order to talk about a specific aspect of information learned about a device, but in the absence of a connection to the device, one requires access to at least DriverData, which represents the data learned in prior interactions with a device, whereas direct interactions with a device require a slightly more comprehensive DriverHandler context, which include DriverData for recording learned information, but also additional information required for connecting to the device and/or interacting with other ONOS services on behalf of the device.