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

« Previous Version 4 Current »

Label Subsystem

Overview

The label subsystem is designed to support MPLS-based applications. As a system resource, label is managed in ONOS and applications can acquire or release label resources through northbound API calls. The labels are constructed as resource pools and saved in ONOS stores. The label pool is a kind of container. Labels in the pools are defined as consecutive numbers. Depending on the type of applications and their specific requirements, two kinds of label pools are provided. The first one, device-label-pool, is provided by device itself when a device is connected to the network. The other one, global-label-pool, is created manually. User application can take the global-label-pool as a special device-label pool via a virtual device identity named “global_resource_pool_device_id”.

Device-label-pool and global-label-pool can co-exist in ONOS stores with different label ranges. So the label ranges in each pool should be carefully planned when operator starts deploying ONOS in their networks.

Two sets of corresponding APIs are provided to operate on these two types of pools in ONOS. The CLI commands are also implemented to access the label stores.

The following figure shows the label subsystem architecture.

 

                       

 

WorkFlow:

  1. When a device is connected to the network, it uploads pool information into the store.
  2. Applications can apply or release label through northbound APIs.
  3. Applications listen the label subsystem events, while the label subsystem listens the device subsystem events.
  4. When a device is vanished, the device subsystem notifies the label subsystem indicating which device is vanished and then the label subsystem destroys the corresponding device’s label pool. Any applications applied labels in vanished device will receive the notification and should release all applied labels of the vanished device.

 

Featuring:

  • A LabelResourceAdminService provides services for administrators to interact with the inventory of label resource pools.
  • A LabelResourceService provide services for applications to apply, release and query labels.
  • LabelResourceManager manages interface with multiple Providers via a LabelResourceProviderService interface and multiple listeners via a LabelResourceService interface
  • LabelResourceProviders supports their own network protocol libraries or ways to interface with the network
  • LabelResourceStore tracks LabelResourcPool model objects and generates LabelResourceEvent.
  • No labels