# ODL/Openstack integration

I have a 3-node (Control/Network/Compute) Icehouse setup that is working with vxlan/openvswitch. I swapped out openvswitch with ODL (Helium SR3). I also stopped neutron-openvswitch-agent on both network and compute nodes. However, that means there is NO process running on network/compute nodes that will be using ml2_conf.ini file (this file is still used by neutron-server on the control node). Without ml2.conf.ini, how could neutron form vxlan network? (It doesn't know the src/dst IPs). I think this is the reason why "ovs-vsctl show" doesn't show port vxlan*.

edit retag close merge delete

Sort by » oldest newest most voted
Moderators

Hi Yaolin,

When OpenDaylight controller is used as a backend network service provider, you don't really need the neutron-openvswtich-agent to do your configuration. OpenDaylight controller does that job, given that you will have to explicitly set-manager for the ovs instance to the controller. Once switch connects to the controller, it does all the required configuration (like creating integration bridge etc). Once you create network/subnet in OpenStack and attach VM to it, all of these details will be passed from OpenStack neutron server to OpenDaylight controller through REST APIs ( given that you did the required configuration in ml2conf.ini/ml2odl.ini files) and then ODL controller will create the tunnel interface on the integration bridge and install all the flow rules for enabling the routing between VMs.

did you use devstack to build your openstack compute/network node or you use some other deployment tools (or manually)? If you did manual installation of compute/network node, then you will have to do following two manual configuration at the ovs running on compute/network node.

1) Set localip config for openvswitch table in ovsdb database. Fire following command on all the network/compute nodes

OVSUUID=$(ovs-vsctl get Open_vSwitch ._uuid); ovs-vsctl set Open_vSwitch$OVSUUID other_config:local_ip=<network/compute node's local ip address>


2) ovs-vsctl set-manager tcp:<odl-controller-ip>:6640

Once you do this configuration and make sure of connectivity from OpenStack neutron server to OpenDaylight controller, it should work fine.

more

Hi Anil,

Thanks for the response. I manually setup openstack icehouse: 1 control node + 1 network node + 1 compute node.

I think you hit my concern, i.e., how does VXLAN work without the src/dst IP. So I used the command you mentioned to set local IP in ovsdb. Then I created a VM with a subnet/router. But I still don't see ovs port vxlan*.

On network node (IP: 172.29.105.220):

ovs-vsctl set OpenvSwitch 543234f4-7bcf-4fcb-9611-5aab6c6cf811 otherconfig:local_ip=172.29.106.220

root@MUSSDHUX20:/home/mtk10895# ovs-vsctl show

543234f4-7bcf-4fcb-9611-5aab6c6cf811

Manager "tcp:172.29.106.220:6640"

is_connected: true

Bridge br-int

Controller "tcp:172.29.106.220:6633"

is_connected: true

fail_mode: secure

Port "tapa8dd368a-ed"

Interface "tapa8dd368a-ed"

type: internal

Port br-int

Interface br-int

ovs_version: "2.0.2"


On compute node (IP: 172.29.105.210):

ovs-vsctl set OpenvSwitch 5bfcc4a0-7bf8-48b1-931d-4fd4da2c4c1b otherconfig:local_ip=172.29.106.210

root@mussdhux10:/home/mtk10895# ovs-vsctl show

5bfcc4a0-7bf8-48b1-931d-4fd4da2c4c1b

Manager "tcp:172.29.106.220:6640"

is_connected: true

Bridge br-int

Controller "tcp:172.29.106.220:6633"

is_connected: true

fail_mode: secure

Port "tap4d479a37-3e"

Interface "tap4d479a37-3e"

Port br-int

Interface br-int

ovs_version: "2.0.2"


You can see port vxlan* is still missing on both nodes. Is my ovs version too old?

more

did you unset the manager and set it again? You need to do that so that ovsdb can pick up the latest configuration. I would suggest before that clean up your openstack resources (Delete port,vm,network etc).

( 2015-05-26 14:26:07 -0700 )edit

Yeah. I forgot to restart openvswitch. Once I restart that service, vxlan is up correctly and I can ping between 2 VMs. Thanks Anil.

( 2015-05-26 16:35:04 -0700 )edit

I had the same problem, so I just set the localip, and then succeeded~! But now, I reboot whole systems and the vms couldn't get ip addresses just like before set localip. what's wrong? all configurations are the same as those before reboot.

more

I´ve tried to integrate, but i am geting stucked on the neutron-db-manage command... could you help me?

more