onos-config

module
v0.0.0-...-24c7f32 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 16, 2019 License: Apache-2.0

README

onos-config

ONOS Configuration subsystem built using the µONOS architecture

Design Objectives

gNMI provides transactionality with respect to a single device; all configuration operations specified as part of a single batch are all applied or none of them are. The core capability of the configuration platform should build on this gNMI feature to:

  • Provide ability to apply a batch of operations (via NB gNMI API) targeted at multiple devices to be performed as a transaction; either all changes are applied to all devices or none of the changes are applied to any of the devices.
  • Track configuration change transactions applied to a set of devices over time and allow rollback (via NB admin API) to previous configuration checkpoints demarcated by the transactions.

The above features are the principal objectives for the configuration management platform. Second order objectives are as follows:

  • Support high-availability and distributed operation, including rolling upgrades
  • Support networks comprising of ~50 devices, ~5000 ports and rate of ~10K incremental configuration transactions per day
Additional Features (to be integrated with the above)

The following set of features will be required to support the real-world use-cases, but may not necessarily be part of the code configuration subsystem and instead can be provided as additional layers:

  • Ability to preload initial configuration about devices that have not yet been discovered - or even deployed
  • Dry run capability - validate configuration with respect to model, but also with respect to existing business constraints or policies
  • Import existing device configuration
  • Configuration Intents - ability to translate high-level (possibly network-wide) configuration specifications into lower-level (device-specific) operations

Key Tenets

  • Principal northbound API for the subsystem will be gNMI and gNOI.
    • These interfaces are already accepted standards and are well-defined, low-profile interfaces with support for transaction semantics.
    • YANG models that will be exposed as part of the NB API are yet to be determined (or defined).
  • Enhanced northbound API will be a gRPC service providing access to enhanced functionality.
    • Applications can navigate the change-log and roll-back various changes as they were previously submitted via gNMI
    • This interface is not subject to backward compatibility constraints.
  • Southbound API for the subsystem will be gNMI and gNOI.
    • This will allow direct use with Stratum-compliant switches without requiring an adaptation layer.
    • Adapters can be created for devices that do not directly support gNMI/gNOI interfaces. Such adapters can be deployed either as proxy agents or potentially can be hosted on the devices themselves.
  • Diagnostic gRPC service will allow for inspection of internal state using various remote tools.
  • The subsystem will be designed as a separate entity to allow its use with the existing ONOS 2.0 architecture and to fit with the NG ONOS architecture.

High-Level Design

design

Additional Documentation

Directories

Path Synopsis
cmd
admin/net-changes
Package main of cmd/admin/net-changes is a command line client for inspecting network changes.
Package main of cmd/admin/net-changes is a command line client for inspecting network changes.
diags/changes
Package main of cmd/diags/changes is a command line client to list Changes.
Package main of cmd/diags/changes is a command line client to list Changes.
diags/configs
Package main of cmd/diags/configs is a command line client to list Configs.
Package main of cmd/diags/configs is a command line client to list Configs.
diags/devicetree
Package main of cmd/diags/devicetree is a command line client to list devices and their configuration in tree format.
Package main of cmd/diags/devicetree is a command line client to list devices and their configuration in tree format.
onos-config-manager
Package main of cmd/onos-config-manager is the main entry point to the system.
Package main of cmd/onos-config-manager is the main entry point to the system.
profiling
Package main of cmd/profiling is for profiling some key functions.
Package main of cmd/profiling is for profiling some key functions.
pkg
certs
Package certs is set of default certificates serialized in to string format.
Package certs is set of default certificates serialized in to string format.
events
Package events is a general definition of an event type to be passed through channels.
Package events is a general definition of an event type to be passed through channels.
listener
Package listener is a channel for handling Configuration Events.
Package listener is a channel for handling Configuration Events.
southbound/synchronizer
Package synchronizer synchronizes configurations down to devices
Package synchronizer synchronizes configurations down to devices
southbound/topocache
Package topocache is a mechanism for holding a cache of Devices.
Package topocache is a mechanism for holding a cache of Devices.
store
Package store contains the the Config Store API.
Package store contains the the Config Store API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL