How To Redirect Logs In OpenDaylight

By default logs are written to karaf.log file in OpenDaylight. If you want to write logs from a specific plugin or a java class to a separate file i.e. a log file other than karaf.log, you need to follow below steps. Step 1: Define a new file appender Go to directory karaf/target/assembly/etc vi org.ops4j.pax.logging.cfg Add […]

Overlay & Underlay Topologies In OpenDaylight

This post is dedicated to develop an understanding of how Overlay & Underlay Topologies work in OpenDaylight. I have written a small plugin to create a working example of overlay and underlay topologies. But before we jump into what the plugin does, let’s go though some definitions. Definitions As defined in network-topology.yang, for a given […]

How To Insert Data In MD-SAL Data Store – Helium Version

Previously I wrote how to insert data in MD-SAL data store but that holds good only for OpenDaylight’s Hydrogen release. In OpenDaylight’s Helium release, data broker API’s have been changed. Here is how you can insert data in MD-SAL data store if you are using OpenDaylight’s Helium version. Note that you also have to switch […]

Notes On Config Subsystem In OpenDaylight

Notes: Considering ODL controller a network device, its management should be exposed in a standardized manner. Management of ODL is handled by the config subsystem and exposed by NETCONF and RESTCONF using YANG as data definition language. Config subsystem gets activated using OSGi Activators and there is only one instance of config subsystem per controller […]

Why Config Subsystem over OSGI Activator?

Startup Sequence / Dependency Management Since in OSGi, startup is asynchronous, it is hard to tell when the server is initialized, especially when you have to deal with dynamic bundle installing. With OSGI’s dependency management, it is difficult to figure out when a dependency has fully loaded and non-deterministic load orders can create heisenbugs. Whereas […]

How To Check If Device Supports NETCONF Monitoring

As explained in this draft on IETF NETCONF Monitoring ,  a NETCONF data model (YANG) can be used to monitor the NETCONF protocol. The monitoring data model includes information about NETCONF datastores, sessions, locks and statistics. This data facilitates the management of a NETCONF server (a NETCONF server is a device that supports NETCONF operations). […]

How to Lookup all NodeConnectors of a Node in MD-SAL

Let’s say we have a node “node_oo1″ and we want to lookup all the node connectors associated with this node in MD-SAL. First we create an instance identifier using the nodeId and nodeKey and then we lookup the node from MD-SAL. Once we get the node, we invoke getNodeConnector() api to get a list of […]

How To Look Up Topology and Links In MD-SAL

In one of our previous post, we learned how to look up data (all nodes and a specific node) in MD-SAL. In this post, we will understand: How to look up all topologies in MD-SAL How to lookup a specific topology in MD-SAL How to lookup all links in MD-SAL Code snippet given below also […]

How To Connect To Netconf Server Using OpenDaylight Netconf Plugin

The OpenDaylight’s Netconf Southbound Plugin can talk with netconf 1.0,1.1 compatible devices and supports netconf over ssh, chunking and eom framing as defined in https://tools.ietf.org/html/rfc6242#section-4.1. To connecting to an external netconf server using opendaylight netconf plugin, create “04-netconf-devices.xml” in following location: \\odl-controller\opendaylight\distribution\opendaylight\target\distribution.opendaylight-osgipackage\opendaylight\configuration\initial Note: If there is already a file with number 04, create with 05 and […]