OpenDaylight Controller:Architectural Principles
This was last updated for the Helium release and needs to be updated. Please bear that in mind when reading the content and feel free to help update it.
- Runtime Modularity and Extensibility: Allow for a modular, extensible controller that supports installation, removal and updates of service implementations within a running controller, also known as in service software upgrade (ISSU)
- Multiprotocol Southbound: Allow for more than one protocol interface with network elements with diverse capabilities southbound from the controller.
- Service Abstraction Layer (SAL): Where possible, allow for multiple southbound protocols to present the same northbound service interfaces.
- Open Extensible Northbound API: Allow for an extensible set of application-facing APIs both across runtimes via REST (level 3 API) and within the same runtime, i.e., via function calls (level 2 API). The set of accessible functions should be the same.
- Support for Multitenancy/Slicing: Allow for the network to be logically (and/or physically) split into different slices or tenants with parts of the controller, modules, explicitly dedicated to one or a subset of these slices. This includes allowing the controller to present different views of the controller depending on which slice the caller is from.
- Consistent Clustering: Clustering that gives fine-grained redundancy and scale out while insuring network consistency.
Runtime Modularity and Extensibility
Service Abstraction Layer (SAL)
Open Extensible Northbound API
Allow for an extensible set of application-facing APIs both across runtimes via REST (level 3 API) and within the same runtime, i.e., via function calls (level 2 API). The set of accessible functions should be the same.
Here are the APIs exposed by the OpenDaylight projects:
- OpenDaylight Virtual Tenant Network - REST API
- Open DOVE - Northbound API
- OpenFlow Plugin - N/A
- Affinity Metadata Service - N/A
- YANG Tools - Available YANG models
- OVSDB - REST API
- OpenFlow Protocol Library - public API
- BGP-LS/PCEP - N/A
- Defense4All - N/A
- SNMP4SDN - (proposed) API