OpenDaylight
OpenDaylight (ODL) is an open-source platform for building programmable network control and automation solutions. Originally developed as an SDN controller, OpenDaylight helped establish the idea that network control could be separated from individual hardware platforms and exposed through software-driven APIs.
Today, OpenDaylight is best understood as a modular network-control framework rather than simply a traditional OpenFlow controller. Its architecture supports model-driven management, network service abstraction, topology information, policy, automation, and integration with heterogeneous infrastructure.
A key principle is the separation between the applications that express network intent or operational requirements and the mechanisms used to communicate with network devices. OpenDaylight can integrate with southbound technologies such as NETCONF, RESTCONF and other device or platform interfaces, while exposing APIs and services that higher-level applications can consume.
One of the important technologies in this model is YANG. YANG provides structured data models for representing configuration and operational state. Protocols such as NETCONF and RESTCONF can then use these models to retrieve state and apply configuration in a consistent, machine-readable way. This model-driven approach is significantly more scalable than relying on device-specific CLI automation alone.
OpenDaylight also provides a framework for representing network topology and state. Applications can use this information to understand relationships between nodes, interfaces and links and then build higher-level automation or network services around that information. Depending on the deployment, this can support use cases such as service provisioning, traffic engineering, policy enforcement and operational automation.
Its modular architecture is another important characteristic. OpenDaylight functionality is divided into components that can be combined according to the requirements of a deployment. This allows the platform to act as a foundation for specialised network applications rather than forcing every environment to use the same controller functionality.
The distinction between control and data planes is also important. OpenDaylight does not normally forward every packet itself. Instead, it provides control, management, topology, policy or orchestration functions while the actual forwarding remains on network devices or other data-plane components. This makes the controller part of a larger programmable networking architecture.
OpenDaylight can therefore be integrated into broader automation environments. A higher-level application, orchestration system or automation workflow can express a desired network state, while OpenDaylight and its southbound integrations can translate that requirement into device-level operations. This creates a useful abstraction between applications and the underlying network infrastructure.
Operational design remains critical. A controller introduces another distributed software system that must be secured, monitored and operated reliably. Authentication, authorization, encrypted management protocols, API security, controller clustering, state consistency, logging and telemetry all need to be considered. A programmable control plane is only useful when it can be trusted and operated reliably.
OpenDaylight is also part of the wider evolution from manually configured networks toward model-driven automation. The same architectural principles can be seen across modern network management platforms: structured data models, APIs, telemetry, intent or policy, automated configuration, and integration with orchestration systems.
The most useful way to view OpenDaylight today is therefore not simply as an “SDN controller”. It is a programmable network-control framework that can connect applications and automation workflows with network infrastructure through models, APIs and southbound integrations.
For network engineers, OpenDaylight provides an important example of how networking has evolved from device-by-device configuration toward software-defined, model-driven and automated infrastructure.
Matt Conran
How OpenDaylight Connects Intent to the Network
Explore the controller abstraction model: applications express intent through northbound interfaces, the controller translates that intent, and southbound mechanisms interact with network infrastructure.
Highlights: OpenDaylight
Understanding OpenDaylight
– OpenDaylight, often abbreviated as ODL, is a collaborative project hosted by the Linux Foundation. It provides a flexible and modular open-source platform for SDN controllers. With its robust architecture, OpenDaylight enables seamless network programmability and automation, empowering network administrators to efficiently manage and control their networks.
– OpenDaylight boasts an impressive array of features that make it a popular choice for network management. Some of its notable features include a centralized and programmable control plane, support for multiple protocols, scalability, and adaptability. These features allow network administrators to streamline their operations, enhance security, and optimize network performance.
– The adoption of OpenDaylight brings numerous benefits to organizations. By leveraging the power of SDN, OpenDaylight simplifies network management, reduces operational costs, and improves network agility. It enables network administrators to dynamically adjust network configurations, allocate resources efficiently, and respond swiftly to changing business requirements. Additionally, the open-source nature of OpenDaylight fosters innovation and collaboration within the networking community.
– OpenDaylight finds applications in various networking scenarios. It is utilized in data centers, service provider networks, and even in Internet of Things (IoT) deployments. Its flexibility allows for the creation of custom applications and services tailored to specific network requirements. OpenDaylight has proven to be a valuable tool in managing complex and dynamic networks efficiently.
**Key Features of OpenDaylight**
OpenDaylight boasts a wide range of features that empower network administrators and developers. Some of the notable features include:
– Centralized Network Control: OpenDaylight offers a centralized controller that simplifies network management and configuration, leading to improved efficiency and reduced operational costs.
– Enhanced Programmability: With OpenDaylight, networks become programmable, allowing developers to write applications that can control and manage network resources dynamically.
– Support for Multiple Protocols: OpenDaylight supports various protocols such as OpenFlow, NETCONF, and RESTCONF, making it interoperable with diverse networking devices and technologies.
– Rich Ecosystem: OpenDaylight has a vibrant ecosystem comprising a vast array of plugins and applications developed by a thriving community, enabling users to extend and customize the platform according to their specific needs.
Open-source SDN
OpenDaylight, or ODL, is one of the most popular open-source SDN controllers. Controllers like ODL are platforms, not products. As a result of the applications on top of the controller platform, this platform can provide specialized applications, including network virtualization, network monitoring, visibility, tap aggregation, and many other functions. Controllers can offer so much more than fabrics, network virtualization, and SD-WAN because of this.
In addition to ODL, there are other open-source controllers. The Open Network Foundation offers ONOS, and ETSI offers TeraFlow. Each solution has a different focus and feature set depending on the use case.
The Role of Abstraction
What is the purpose of the service abstraction layer in the OpenDaylight SDN controller? Traditional networking involves physical boxes that are physically connected. Each device has a data and control plane function. The data plane is elementary and forwards packets as quickly as possible. The control plane acts as the point of intelligence and sets the controls necessary for data plane functionality.
SDN Controller
With the OpenDaylight SDN controller, we drag the control plane out of the box and centralize it on a standard x86 server. What happens in the data plane does not change; we still forward packets. It still consists of tables that look at packets and perform some action. What changes are the mechanisms for how and where tables get populated? All of which share similarities with the OpenStack SDN controller.
OpenDaylight
OpenDaylight is the central control panel that helps populate these tables and move data through the network as you see fit. It consists of an open API that allows the control of network objects as applications. So, to start the core answers, what is the purpose of the service abstraction layer in the OpenDaylight SDN controller? Let’s look at the OpenDaylight and OpenStack SDN controller integrations.
**A key point: Ansible and OpenDaylight**
The Ansible architecture is simple, flexible, and powerful, with a vast community behind it. Ansible is capable of automating systems, storage, and of course, networking. However, Ansible is stateless, and a stateful view of the network topology is needed from the network engineer’s standpoint. This is where OpenDaylight joins the game.
As an open-source SDN controller and network platform, OpenDaylight translates business APIs into resource APIs, and Ansible networking performs its magic in the network. The Ansible architecture, specifically the Ansible Galaxy tool that ships with Ansible, can be used to install OpenDaylight. To install OpenDaylight on your system, you can use an Ansible playbook.
How Does OpenDaylight Translate Intent?
Experiment with the relationship between an application request, controller state, model-driven abstraction and a southbound mechanism. Change the conditions and see how the simulated controller decision changes.
A controller can provide an abstraction between applications and network devices. The application expresses a goal while the controller determines how that goal can be represented and communicated to the network.
OpenDaylight
OpenDaylight Integration: OpenStack SDN Controller
The single API is used to configure heterogeneous hardware. OpenDaylight integrates tightly with the OpenStack SDN controller, providing the central controller element for many open-source clouds. It was born shortly after Neutron, and the two projects married as soon as the ML2 plugin was available in Neutron. OpenDaylight is not intended to replace the Neutron Networks but adds and provides better functionality and network management. OpenDaylight Beryllium offers a Base, Virtualized, and Service Provider edition.
OpenDaylight (ODL) understands the network at a high level, running multiple applications on top of managing network objects. It consists of a Northbound interface, Middle tier, and Southbound interface. The northbound interface offers the network’s abstraction. It exposes interfaces to those writing applications to the controller, and it’s here that you make requests with high-level instructions.
The middle tier interprets and compiles the request, enabling the southbound interface to action the network. The type of southbound protocol is irrelevant to the northbound API. It’s wholly abstracted and could be OpenFlow, OVSDB, or BGP-LS. The following screen displays generic information for the OpenDaylight Lithium release.
**Key Features and Capabilities**
1. OpenDaylight Controller: At the core of OpenDaylight is its controller, which acts as the brain of the network. The controller provides a centralized network view, enabling administrators to manage resources, define network policies, and dynamically adapt to changing network conditions.
2. Northbound and Southbound Interfaces: OpenDaylight offers northbound and southbound interfaces that facilitate communication between the controller and network devices. The northbound interface enables applications and services to interact with the controller, while the southbound interface allows the controller to communicate with network devices, such as switches and routers.
3. Modular Architecture: OpenDaylight’s modular architecture provides flexibility and extensibility. It allows developers to add or remove modules based on specific network requirements, ensuring the platform remains lightweight and adaptable to various network environments.
4. Comprehensive Set of Protocols: OpenDaylight supports various industry-standard protocols, including OpenFlow, NETCONF, and BGP. This compatibility ensures seamless integration with existing network infrastructure, making adopting OpenDaylight in diverse network environments easier.
**Benefits of OpenDaylight**
1. Network Automation: OpenDaylight simplifies network management by automating repetitive tasks like provisioning and configuration. This automation significantly reduces the time and effort required to manage complex networks, allowing network engineers to focus on more strategic initiatives.
2. Enhanced Network Visibility: With its centralized control and management capabilities, OpenDaylight provides real-time visibility into network performance and traffic patterns. This visibility allows administrators to promptly identify and troubleshoot network issues, improving reliability and performance.
3. Scalability and Flexibility: OpenDaylight’s modular architecture and support for industry-standard protocols enable seamless scalability and flexibility. Network administrators can quickly scale their networks to accommodate growing demands and integrate new technologies without disrupting existing infrastructure.
4. Innovation and Collaboration: Being an open-source platform, OpenDaylight encourages collaboration and innovation within the networking community. Developers can contribute to the project, share ideas, and leverage their collective expertise to build cutting-edge solutions that address evolving network challenges.
Complications with Neutron Network
Initially, OpenStack networking was built into Nova ( nova-network ) and offered little network flexibility. It was rigid and significant if you only wanted a flat Layer 2 network. Flat networks are fine for small designs with single application environments, but anything at scale will reach CAM table limits. VLANs also have theoretical hard stops.
Nova networking was represented as a second-class citizen in the compute stack. Even OpenStack Neutron Security Groups were dragged to another device and not implemented at a hypervisor level. This was later resolved by putting IPtables in the hypervisor, but we still needed to be on the same layer 2 domain.
Limitation of Nova networking
Nova networking represented limited network functionality and did not allow tenants to have advanced control over network topologies. There was no load balancing, firewalling, or support for multi-tenancy with VXLAN. These were some pretty big blocking points.
Suppose you had application-specific requirements, such as a vendor-specific firewall or load balancer, and you wanted OpenStack to be the cloud management platform. In that case, you couldn’t do this with Nova. OpenStack Neutron solves all these challenges with its decoupled Layer 3 model.
A key point: Networking with Neutron
Networking with Neutron offers better network functionality. It provides an API allowing the interaction of network constructs ( router, ports, and networks ), enabling advanced network functionality with features such as DVR, VLXAN, Lbass, and FWass.
It is pluggable, enabling integration with proprietary and open-source vendors. Neutron offers more power and choices for OpenStack networking, but it’s just a tenant-facing cloud API. It does not provide a complete network management experience or SDN controller capability.
The Neutron networking model
The Neutron networking model consists of several agents and databases. The neutron server receives API calls and sends the message to the Message Queue to reach one of the agents. Agents on each compute node are local, actioning, and managing the flow table. They are the ones that carry out the orders.
The Neutron server receives a response from the agents and records the new network state in the database. Everything connects to the integration bridge ( br-int ), where traffic is tagged with VLAN ID and handed off to the other bridges, such as br-tun, for tunneling traffic.
Each network/router uses a Linux namespace for isolation and overlapping IP addresses. The complex architecture comprises many agents on all compute, network, and controller nodes. It has scaling and robustness issues you will only notice when your system goes down.
Neutron is not an API for managing your network. If something is not working, you need to check many components individually. There is no specific way to look at the network in its entirety. This would be the job of an OpenDaylight SDN controller or an OpenStack SDN controller.
OpenDaylight Project Components
OpenDaylight is used in conjunction with Neutron. It represents the controller that sits on top and offers abstraction to the user. It bridges the gap between the user’s instructions and the actions on the compute nodes, providing the layer that handles all the complexities. The Neutron doesn’t go away and works together with the controller.
Neutron gets an ODL driver installed that communicates with a Northbound interface that sits on the controller. The MD-SAL (inventory YANG model) in the controller acts as the heart and communicates to both the controller OpenFlow and OVSDB components.
OpenFlow and OVSDB are the southbound protocols that configure and program local compute nodes. The OpenDaylight OVSDB project is the network virtualization project for OpenStack. The following displays OpenvSwtich connection to OpenDaylight. Notice the connection status is “true.” For this setup, the controller and switch are on the same node.

The role of OpenvSwitch
OpenvSwitch is viewed as the workhorse forOpenDaylight. It is programmable and offers advanced features such as NetFlow, sFlow, IPFIX, and mirroring. It has extensive flow matching capabilities – Layer 1 ( QoS priority, Tunnel ID), Layer 2 ( MAC, VLAN ID, Ethernet type), Layer 3 (IPv4/v6 fields, ARP), Layer 4 ( TCP/UDP, ICMP, ND) with many chains of action such as output to port, discard and packet modification. The two main userspace components are the ovsdb-server and the ovs-vswitchd.
The ODL OVSDB manager interacts with the ovsdb-server, and the ODL OpenFlow controller interacts with the ovs-vswitchd process. The OVSDB southbound plugin plugs into the ovsdb-server. All the configuration of OpenvSwitch is done with OVSDB, and all the flow adding/removing is done with OpenFlow.
OpenDaylight OpenFlow forwarding
OpenStack traditional Layer 2 and Layer 3 agents use Linux namespaces. The entire separation functionality is based on namespaces. OpenDaylight doesn’t use namespaces; you only have a namespace for the DHCP agent. It also does not have a router or operate with a network stack—the following displays flow entries for br0. OpenFlow ver1.3 is in use.
OpenFlow rules are implemented to do the same job as a router. For example, MAC is changing or TTL decrementation. ODL can be used to manipulate packets, and the Service Function Chain (SFC) feature is available for advanced forwarding. Then, you can use service function chaining with service classifier and service path for path manipulation.
OpenDaylight service chaining has several components. The job of the Service Function Forwarder (SFF) is to get the flow to the service appliance; this can be accomplished with a Network Service Header (NSH) or using some tunnel with GRE or VXLAN.
Closing Points on OpenDaylight
OpenDaylight is a collaborative open-source project hosted by the Linux Foundation. Its primary goal is to facilitate progress and innovation in SDN and NFV, making networks more adaptable and scalable. As a software platform, it provides a controller that allows for centralized management of network resources, which is essential for handling the complexities of modern networks.
One of the standout features of OpenDaylight is its modular architecture. This flexibility allows developers to tailor the platform to their specific needs, integrating various modules to expand its capabilities. Additionally, OpenDaylight supports a wide range of networking protocols, making it a versatile choice for diverse network environments.
The benefits of using OpenDaylight are numerous. It offers enhanced network automation, which reduces the need for manual configuration and minimizes human error. Furthermore, its open-source nature means continuous development and community support, ensuring the platform remains on the cutting edge of network technology.
OpenDaylight is being adopted across industries for its ability to simplify network management and optimize performance. Telecommunications companies, for instance, utilize OpenDaylight to manage large-scale networks efficiently. Enterprises benefit from its automation capabilities, which streamline operations and reduce costs. Additionally, OpenDaylight’s adaptability makes it ideal for research institutions exploring new networking paradigms.
For those interested in exploring OpenDaylight, the journey begins with understanding its architecture and components. The OpenDaylight project provides extensive documentation and community support to help newcomers navigate the platform. Setting up a test environment is an excellent way to experiment with its features and understand its potential impact on your network management strategy.
Why Didn't the Network Change?
An application has successfully submitted a network intent, but the expected device state has not changed. Use the evidence to identify where the SDN control path is actually failing.
Application request accepted — network state unchanged
The operations team submits a request through the northbound interface. OpenDaylight is running and the application receives a successful response, but the target switch still has its previous configuration. The question is: which part of the control path should be investigated first?
When an application request succeeds but the physical or virtual network does not change, do not automatically blame the application. Follow the request through the controller and then verify the southbound relationship with the target device.












