Versions Compared

Key

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

...

ONOS maintains both protocol-agnostic and protocol-specific network element and state representations. The former are constructs of the core tier, referred to as Model Objects, and the latter are constructs of the appropriate provider. For example, DeviceStore (and consequently the DeviceManager and DeviceListeners) sees a network device as a Device, whereas the OpenFlowDeviceProvider will see the device as an OpenFlowSwitch. Recall that these two representations are bridged by the intermediate transcription into a DeviceDescription.

Wherever possible, rich data types are also used instead of Java primitives for disambiguation and clarity. For example, IP Addresses are described by the IPAddress class, as opposed to an int, and MAC addresses, with MACAddress, rather than a byte[] or long.

Here, we focus on the model objects.

...

The interface definitions and implementations of these objects can be found across several packages under [org.onlab.onos.net.*]. While not formal, implicit object classifications fall out of the organization of these packages.Note that the following list is not comprehensive.

Network Topology

Many of the model objects have graph analogues, as ONOS represents networks as directed graphs.

...

Constructs for manipulating network logic, as well as their construction, are discussed further in [The Intent The Intent Framework]. Roles are explained in Clustering.

...

  • OutboundPacket - Protocol agnostic representation of a synthetic packet to be emitted on the network. This includes information about where to emit this packet.
  • InboundPacket - We may need to consider whether this abstraction should be purposefully omitted from the API to avoid scalability and security related issues. Regardless, reactive packet processing should still be available to providers to use as needed, e.g. host tracking, link detection.

Model Object Dependencies

Some entities rely on the existence of other entities, as in the case of Ports, which cannot exist without a Device. Similarly, Links, and by extension, Topologies, cannot exist without Ports serving as endpoints to the Link. We therefore consider Devices to be a first-class entity in ONOS's network representations.

...