This section describes the major subsystems found in ONOS.
Overview
System Tiers
As mentioned in the previous section, ONOS is architected with tiers of functionality. We present the following figure as a summary of the discussions in the next few sections :
Services and Subsystems
A service is a unit of functionality that is comprised of multiple components that create a vertical slice through the tiers as a software stack. We refer to the collection of components making up the service as a subsystem. We may use the terms 'service' and 'subsystem' interchangeably.
ONOS defines several primary services:
- 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.
Subsystem Structure
Provider:
Manager:
Store:
Application:
Not all subsystems possess all of these components, and not all components strictly adhere to these functions. For example, the Topology Subsystem is protocol agnostic; therefore its Provider is purely acts upon the system core's representations of devices and links, and never interact with the infrastructure directly.