Have questions? Stuck? Please check our FAQ for some common questions and answers.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This section describes the Intent Framework and the subsystems associated with it.

Overview

The Intent Framework is a subsystem that allows applications to specify their network control desires in form of policy rather than mechanism. We refer to these policy-based directives as intents. The ONOS core accepts the intent specifications and translates them, via intent compilation, into installable intents, which are essentially actionable operations on the network environment. These actions are carried out by intent installation process, which results in some changes to the environment, such as tunnel links being provisioned, flow rules being installed on the data-plane, or optical lambdas (wavelengths) being reserved.

Although the ONOS core provides a suite of built-in intents and their compilers and installers, the intent framework is designed to be extensible. It allows additional intents and their compilers or installers to be added to ONOS dynamically at run-time. This allows others to enhance the initial arsenal of connectivity and policy-based intents available in ONOS by default.

Intents

An Intent is an immutable model object that describes an application's request to the ONOS core to alter the network's behavior. At the lowest levels, Intents may be described in terms of:

  • Network Resource : A set of object models, such as links, that tie back to the parts of the network affected by an intent.
  • Constraints : Weights applied to a set of network resources, such as bandwidth, optical frequency, and link type.
  • Criteria : Packet header fields or patterns that describe a slice of traffic. An Intent's TrafficSelector carries criteria as a set of objects that implement the Criterion interface.
  • Instructions : Actions to apply to a slice of traffic, such as header field modifications, or outputting through specific ports. An Intent's TrafficTreatment carries instructions as a set of objects that implement the Instruction interface.

In addition, Intents are always identified by both the ApplicationId of the application that submitted it, and a unique IntentId, generated at creation. 

Intent Compilation

State Machine

The following diagram depicts the state transition diagram for the compilation process of each top-level intent:

The states depicted in orange are transitional and are expected to last only a brief amount of time. The rest of the states are parking states where the Intent may spent some time. The exception is the Submitted state, where the intent may pause briefly while:

  • the system determines where to perform the compilation, or
  • it performs global recomputation/optimization across all prior intents.

Compilers and Installers

 

 

  • No labels