OpenStack is ( in a nutshell ) a cloud operating system that manage different types of resources. The main one are compute, storage, and networking. Openstack can use OpenDaylight as its network manager using the ML2 plugin.

I’ll explain how to integrate between OpenStack and Opendaylight using centos/rhel 7 as the operating system of the nodes. Most of this taken from odl official docs. The only problem with those at the moment is that you need to collect different pieces of information scattered in several pages. This supposed to make your life little bit easier.

Please note the following information on the releases and environment I’m using since I’m expecting this process (integrating between openstack and odl)  to change dramatically in next releases

  • Openstack release: Kilo
  • Red Hat Enterprise Linux 7.1
  • Topology: all in one ( odl controller on separate node)

Run OpenDaylight

There are several ways to install and run opendaylight controller.

I’m going to cover one way, but it really doesn’t matter which method you will choose as long as you install the relevant features at the end. Also, note that it’s common to install it on separate node.

Start with filling’~/.m2/settings.xml’ with the following content:

This is needed since opendaylight isn’t managed in Maven central. So for maven to resolve its inter-dependencies, it uses the settings.xml

Clone ovsdb repo

Install maven (make sure its > 3.1.0)

Run karaf


Install  features

Clean Openstack environment

For already operational openstack environment,  you should run the following commands:

Configure OVS to use OpenDaylight

Install OpenDaylight Driver

On your openstack node:

Configure Neutron to use OpenDaylight Driver

Reset Neutron’s ML2 database

Start Neutron

Final step is to start neutron-server and verify the integration is working:

Verify Integration

congrats! you made it. Just know I’m proud of you.

Now let’s verify it’s working. First create network.

Now check if the network you just created, is seen through opendaylight instance with the following command (or using web browser):



Q: running ‘ovs-vsctl show’ I don’t see that br-int created and I’m sure I didn’t miss any step. What should I do?

A: make sure opendaylight controller listening on port 6640. use ‘netstat -tnlp | grep 6640’