The network configuration subsystem allows applications to inject attribute and configuration information for various network components into the models used for network representation. Examples include (but are not limited to):

The configurations may refer to a component that may or may not already exist in the network representation (i.e., the system may/may not have discovered it in the network). This implies that an application can offer hints about a yet-discovered component, as well as modify a known component’s attributes.

This subsystem likewise serves as a shim between the system’s network representation, and the means to configure it. Currently, JSON is the preferred means to describe component configurations.

 

Terminology

Components

Configuration Syntax

The relationship between the subject, config, subject key, and config key are summarized by the following JSON tree:

{
    subject key 1 : {
        subject 1 : {
            config key 1 : {
                attr1 : value1,
                attr2 : value2,
                ...
            },
            config key 2 : {
                ...
            }
        },
        subject 2 : {
          ...
    },
    subject key 2 {
    ...
}

For example, a configuration for the device identified by the ID (subject) of:0000ffffffffff0a might look like the following:

{
   "devices" : {
      "of:0000ffffffffff0a" : {
          "basic": {
              "driver": "linc-oe",
              "type": "ROADM",
              "latitude": 33.8,
              "name": "ATL-S10",
              "longitude": -84.1
          }
      }
   }
}

Indeed, if you were to take a look at BasicDeviceConfig and its superclass, you will find all of the fields within the “basic” clause above defined in those two classes.

Using Network Configuration Services

Making objects configurable

The network configuration subsystem can be used to configure arbitrary network objects. For an object to be configurable through this subsystem, you must implement the components described in Components. Some things to note are:

Using the service from applications

As with other services, the two primary ways that an application can use the network configuration subsystem are: