Versions Compared

Key

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

...

  • Device Subsystem - Manages the inventory of infrastructure devices.
  • Link Subsystem - Manages the inventory of infrastructure links.
  • Host Subsystem - Manages the inventory of end-station hosts and their locations on the network.
  • Topology Subsystem - Manages time-ordered snapshots of network graph views.
  • PathService - Computes/finds paths between infrastructure devices or between end-station hosts using the most recent topology graph snapshot.
  • FlowRule Subsystem - Manages inventory of the match/action flow rules installed on infrastructure devices and provides flow metrics.
  • Packet Subsystem - Allows applications to listen for data packets received from network devices and to emit data packets out onto the network via one or more network devices. 

The following figure illustrates the various subsystems that are part of ONOS today and a few that are planned in the near future:

Image Added

Subsystem Structure

Each of a subsystem's components resides in one of the three main tiers, and can be identified by one or more Java Interfaces that they implement. 

The figure below summarizes the relationships of the subsystem components. The top and bottom dotted lines in the figure represent the inter-tier boundaries created by the northbound and southbound APIs, respectively.

 

Image Modified

Provider

The lowest tier of the ONOS stack, Providers interface with the network via protocol-specific libraries, and with the core via the ProviderService interface. 

...

A component residing in the core, the Manager receives information from Providers and serves it to applications and other services. It exposes several interfaces :

  • A northbound Service interface through which applications or other core components can learn about a particular aspect of the network state
  • An AdminService interface for taking administrative commands and applying them onto the network state or the system
  • A southbound ProviderRegistry interface through which Providers can register with the manager, so that it may interact with it
  • A southbound ProviderService interface presented to a registered Provider, through which it may send and receive information to and from the manager

The consumers of a Manager's service interface may receive information both synchronously by querying the service, and asynchronously as an event listener (e.g. by using a ListenerService interface that is part of each Service interface to register for events and implementing an EventListener interface for receiving the events).

Store

Also within the core and associated closely with the Manager, Stores have the task of indexing, persisting, and synchronizing the information received by the Manager. This includes ensuring consistency and robustness of information across multiple ONOS instances by directly communicating with stores on other ONOS instances. Further discussion of Stores in distributed settings is found in Cluster Coordination.

...

Applications consume and manipulate information aggregated by the managers via the AdminService and Service interfaces. Applications have a wide range of functionality, ranging from displaying network topologies in a web browser to setting up paths for network traffic.

...

Events are used by Managers to notify its listeners about changes in the network, and by Stores to notify their peers of events in a distributed setting. An Event is comprised of a an event type and a subject built of model objects. For example, a DeviceEvent can be used to notify DeviceListeners that a device (the subject) has been detected (DEVICE_ADDED), lost (DEVICE_REMOVED), or some aspect of it has changed (DEVICE_UPDATED), among others. 

...

Events are generated by the Store, based on input from the Manager. Once generated, an Event is dispatched to interested listeners via the StoreDelegate interface, which ultimately invokes the EventDeliveryService. Essentially, the StoreDelegate moves the event out of the store, and the EventDevliveryService EventDeliveryService ensures that the event only reaches interested listeners. Due to how they interact, these two components reside in the Manager, where the manager provides the implementation class of the StoreDelegate to the store.

...