ODL controller

The ODL controller is a highly available, modular, extensible, scalable, and multi-protocol controller infrastructure built for SDN deployment on modern heterogeneous multi-vendor networks. The model-driven Service Abstraction Layer (SAL) provides the needed abstractions to support multiple southbound protocols (for example, OpenFlow) via plugins. The application-oriented extensible northbound architecture provides a rich set of northbound APIs via RESTful web services for loosely coupled applications and OSGi services for colocated applications.

The OSGi framework, upon which the controller platform is built, is responsible for the modular and extensible nature of the controller and also provides versioning and life-cycle management for OSGi modules and services. The ODL controller supports not only the OpenFlow protocol, but also other open protocols to allow communication with devices that have OpenFlow and/or respective agents. It also includes a northbound API to allow customer applications (software), which will work with the controller in controlling the network.

ODL is developed using Java and as a JVM it can run on any hardware platform and OS, provided it supports Java JVM 1.7 and higher. The architecture of ODL is shown in the following screenshot:

Architecture of ODL Controller

The southbound ODL controller can support multiple protocols as plugins (OpenFlow 1.0, PCE, BGP-LS, and so on). It currently supports OpenFlow 1.0. Other ODL contributors may add to those as part of their contributions/projects. These modules are dynamically linked into an SAL. The SAL exposes services which the modules in the higher layer serve. The SAL figures out how to fulfill the requested service irrespective of the underlying protocol used between the controller and the network elements (OpenFlow switch).

This provides investment protection to the applications as OpenFlow and other protocols evolve over time. The information regarding capabilities and reachability of the network devices is stored and managed by the topology manager. The other components (for example, ARP handler, host tracker, device manager, and switch manager) help in generating the topology database for the topology manager. The switch manager API holds the details of the network element.

As a network element is discovered, its attributes (what switch/router it is, SW version, capabilities, and so on) are stored in the database by the switch manager. The controller exposes open northbound APIs, which are used by the applications. The ODL controller supports the OSGi framework and bidirectional REST for the northbound API. The OSGi framework is used for applications that will run in the same address space as the controller, while the REST (web-based) API is used for apps that do not run in the same address space (or even the same hardware/software platform) as the controller.

The business logic and algorithms reside in the Net Apps. These Net Apps use the controller to gather network intelligence, run its algorithm to perform analytics, and then use the controller to orchestrate the new rules throughout the network. The ODL controller supports a cluster-based high-availability model. There are several instances of the ODL controller, which logically act as one logical controller. This not only gives fine-grained redundancy, but also allows a scale-out model for linear scalability. The ODL controller has a built-in GUI. The GUI is implemented as an application using the same northbound API as would be available for any other user application.

For more information about the architecture, development infrastructure, library description, and API references, refer to the ODL controller wiki page, which is located at http://wiki.opendaylight.org/view/OpenDaylight_Controller:Programmer_Guide.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset