This group is locked. No changes can be made to the group while it is locked.
Re: ODL Inventory
Khaldoon Al Zoubi <khaldoon.alzoubi@...>
Thanks Sam for all of the help. Problem solved.
toggle quoted message
Show quoted text
-----Original Message-----
From: Sam Hague [mailto:shague@...]
Sent: Thursday, July 02, 2015 3:02 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] ODL Inventory
Khal,
no, those exceptions are OK. In the 7.12.1 schema datapath and iface type fields were added so you have to have the matching ovs version installed which most don't. I don't recall the exact ovs version that brought in the new fields but I think anything 2.3.1 and earlier will have the below exception.
Did you see my last response when you mentioned it was the openflow inventory that you were not seeing? That is why you don't see the switches. The southbound feature is what will get the ovsdb nodes into the inventory. You can see that in your logs since you have the exceptions below that go along with that. From there, though ,the odl-ovsdb-openstack feature needs to be running to set the Controller target for the bridges. This will cause the bridges to connect to ODL and the openflwoplugin will populate the openflow switch inventory.
----- Original Message -----
From: Sam Hague [mailto:shague@...]
Sent: Thursday, July 02, 2015 3:02 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] ODL Inventory
Khal,
no, those exceptions are OK. In the 7.12.1 schema datapath and iface type fields were added so you have to have the matching ovs version installed which most don't. I don't recall the exact ovs version that brought in the new fields but I think anything 2.3.1 and earlier will have the below exception.
Did you see my last response when you mentioned it was the openflow inventory that you were not seeing? That is why you don't see the switches. The southbound feature is what will get the ovsdb nodes into the inventory. You can see that in your logs since you have the exceptions below that go along with that. From there, though ,the odl-ovsdb-openstack feature needs to be running to set the Controller target for the bridges. This will cause the bridges to connect to ODL and the openflwoplugin will populate the openflow switch inventory.
Ok, yeah, I thought the controller address was being set manually in yourSam
setup. If it isn't then the switches will not connect to odl openflowplugin
and no inventory update.
The odl-ovsd-openstack feature does that. When the nodes connect, the netvirt
app will set the controller target address so that the switches connect. At
that point there will be switches added to the inventory by openflowplugin.
----- Original Message -----
From: "Khaldoon Al Zoubi" <khaldoon.alzoubi@...>
To: "Sam Hague" <shague@...>
Cc: ovsdb-dev@...
Sent: Thursday, July 2, 2015 2:46:50 PM
Subject: RE: [ovsdb-dev] ODL Inventory
Hi Sam,
Do you think the following two exceptions explain some of the problem I have.
Thanks.
2015-07-02 13:40:13,110 | DEBUG | n-invoker-impl-0 | OpenVSwitchUpdateCommand
| 251 - org.opendaylight.ovsdb.southbound-impl - 1.1.0.SNAPSHOT |
Datapath types not supported by this version of ovsdb
org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException: The schema
version used to access this Table/Column does not match the required
version.
Current Version: 7.6.0
Added in Version: 7.12.1
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils.checkVersion(TyperUtils.java:217)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils.checkColumnSchemaVersion(TyperUtils.java:203)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils.access$100(TyperUtils.java:37)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils$1.processGetColumn(TyperUtils.java:307)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils$1.invoke(TyperUtils.java:379)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at com.sun.proxy.$Proxy116.getDatapathTypesColumn(Unknown
Source)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.OpenVSwitchUpdateCommand.setDataPathTypes(OpenVSwitchUpdateCommand.java:221)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.OpenVSwitchUpdateCommand.execute(OpenVSwitchUpdateCommand.java:81)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.OvsdbOperationalCommandAggregator.execute(OvsdbOperationalCommandAggregator.java:30)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvokerImpl.run(TransactionInvokerImpl.java:77)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_79]
at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_79]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_79]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_79]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
2015-07-02 13:40:13,118 | DEBUG | n-invoker-impl-0 | OpenVSwitchUpdateCommand
| 251 - org.opendaylight.ovsdb.southbound-impl - 1.1.0.SNAPSHOT |
Iface types not supported by this version of ovsdb
org.opendaylight.ovsdb.lib.error.SchemaVersionMismatchException: The schema
version used to access this Table/Column does not match the required
version.
Current Version: 7.6.0
Added in Version: 7.12.1
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils.checkVersion(TyperUtils.java:217)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils.checkColumnSchemaVersion(TyperUtils.java:203)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils.access$100(TyperUtils.java:37)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils$1.processGetColumn(TyperUtils.java:307)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.lib.schema.typed.TyperUtils$1.invoke(TyperUtils.java:379)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at com.sun.proxy.$Proxy116.getIfaceTypesColumn(Unknown
Source)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.OpenVSwitchUpdateCommand.setInterfaceTypes(OpenVSwitchUpdateCommand.java:198)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.OpenVSwitchUpdateCommand.execute(OpenVSwitchUpdateCommand.java:82)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.OvsdbOperationalCommandAggregator.execute(OvsdbOperationalCommandAggregator.java:30)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
org.opendaylight.ovsdb.southbound.transactions.md.TransactionInvokerImpl.run(TransactionInvokerImpl.java:77)[251:org.opendaylight.ovsdb.southbound-impl:1.1.0.SNAPSHOT]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_79]
at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_79]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_79]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_79]
at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
-----Original Message-----
From: Sam Hague [mailto:shague@...]
Sent: Wednesday, July 01, 2015 1:33 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] ODL Inventory
----- Original Message -----From: "Khaldoon Al Zoubi" <khaldoon.alzoubi@...>Ok, yeah, I thought the controller address was being set manually in your
To: "Sam Hague" <shague@...>
Cc: ovsdb-dev@...
Sent: Tuesday, June 30, 2015 3:46:14 PM
Subject: RE: [ovsdb-dev] ODL Inventory
Hi Sam,
The ovsdb loads the config and operational topology correctly, which is
good
I need that. But, what is not working for me is that openflowplugin is not
adding switches to inventory.
setup. If it isn't then the switches will not connect to odl openflowplugin
and no inventory update.
The odl-ovsd-openstack feature does that. When the nodes connect, the netvirt
app will set the controller target address so that the switches connect. At
that point there will be switches added to the inventory by openflowplugin.
Thanks.
-----Original Message-----
From: Sam Hague [mailto:shague@...]
Sent: Tuesday, June 30, 2015 12:39 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] ODL Inventory
Khal,
the openstack modules do not write anything to operational. It relies on
the
southbound to do that and openstack listens for those changes when they
happen. After that the openstack netvirt modules will do things like add
bridges, but it is the southbound which will update the operational
topology. If you are looking for the openflow nodes, then the
openflowplugin
does that (look in the earlier email where I mentioned that)
1. Did you verify the southbound feature loaded? feature:list -i | grep
ovsdb. look for southbound.
2. Try the postman calls. look in the ovsdb/resources/commons dir for the
southbound postman. Use the "Get config topology" and "get operational
topology" restconf calls and see if you get the ovsdb:1 node.
3. Add the ovs-vsctl set-manager tcp:<odlip>:6640 and verify if the ovsdb
node connected to odl, ovs-vsctl show.
4. Then try the postman calls again to see if the node shows up.
Sam
----- Original Message -----From: "Khaldoon Al Zoubi" <khaldoon.alzoubi@...>
To: "Sam Hague" <shague@...>
Cc: ovsdb-dev@...
Sent: Tuesday, June 30, 2015 12:27:13 PM
Subject: RE: [ovsdb-dev] ODL Inventory
Hi Sam,
I commented out the openstack bundles in odl-ovsdb-openstack (please see
below) to test if odl-ovsdb-southbound-impl-ui will be able to load the
inventory operational node into datastore. Well, it didn't do it. Is that
mean that the openstack bundles are doing extra work to populate the
inventory? Thanks.
--------
<feature name="odl-ovsdb-openstack" description="OpenDaylight :: OVSDB ::
OpenStack Network Virtualization"
version='${openstack.netvirt.version}'>
<feature version='${mdsal.version}'>odl-mdsal-broker</feature>
<feature
version="${openflowplugin.version}">odl-openflowplugin-nsf-model</feature>
<feature
version="${networkconfig.neutron.version}">odl-neutron-service</feature>
<feature
version="1.1.0-SNAPSHOT">odl-ovsdb-southbound-impl-ui</feature>
<feature
version="${openflowplugin.version}">odl-openflowplugin-flow-services</feature>
<feature
version="${openflowplugin.version}">odl-openflowplugin-nxm-extensions</feature>
<!--
<bundle>mvn:org.opendaylight.ovsdb/utils.servicehelper/${ovsdb.utils.servicehelper.version}</bundle>
<bundle>mvn:org.opendaylight.ovsdb/openstack.net-virt/${openstack.netvirt.version}</bundle>
<bundle>mvn:org.opendaylight.ovsdb/openstack.net-virt-providers/${openstack.netvirt.providers.version}</bundle>
<configfile
finalname="etc/opendaylight/karaf/netvirt-impl-default-config.xml">mvn:org.opendaylight.ovsdb/openstack.net-virt/${project.version}/xml/config</configfile>
<configfile
finalname="etc/opendaylight/karaf/netvirt-providers-impl-default-config.xml">mvn:org.opendaylight.ovsdb/openstack.net-virt-providers/${project.version}/xml/config</configfile>
-->
</feature>
-----Original Message-----
From: Khaldoon Al Zoubi
Sent: Thursday, June 25, 2015 3:45 PM
To: 'Sam Hague'
Cc: ovsdb-dev@...
Subject: RE: [ovsdb-dev] ODL Inventory
Thanks Sam. Actually, this what I thought I need to do (only include
odl-ovsdb-southbound-impl in my features.xml), but I am not sure what
part
I
am missing. I believe the devstack & ODL connection works since I am able
to
see neutron elements in datastore when executing commands like (neutron
net-create net-1). So feature odl-neutron-service works.
However, when I am running ODL purely from the OVSDB project it works and
I
can see the operational nodes. So, I am missing something in my project.
Thanks Sam as always.
Regards,
Khal
-----Original Message-----
From: Sam Hague [mailto:shague@...]
Sent: Thursday, June 25, 2015 2:41 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] ODL Inventory
Khal,
the OVSDB southbound plugin [1] will populate the topology with the ovsdb
node information, including the bridges and ports. With devstack as part
of
the local.conf config the ODL address is specified. In the final steps of
the stack.sh the OVSDB Manager entry is set to that address and the OVSDB
nodes will connect to ODL. The OVSDB southbound plugin will see that
connection and begin to populate the MDSAL operational datastore - stores
the node, the bridge, the ports as termination points.
From there the netvirt [2] application listens for the operational
updates.
netvirt also listens on the neutron events coming from the northbound
side.
With these two sets of events netvirt will satisfy the neutron requests.
The openflow nodes inventory is populated via the openflowplugin. When
the
OVSDB nodes connect and netvirt sees that it will create the required
bridges, i.e, br-int, and then set the Controller address. Those bridges
will then connect to ODL openflowplugin port and openflowplugin will add
the
switches to the inventory.
So you just need the odl-ovsdb-southbound-impl or
odl-ovsdb-southbound-impl-ui feature to get the southbound plugin which
will
get the inventory for you.
Thanks, Sam
[1] ovsdb/southbound/southbound-impl
[2] ovsdb/openstack
----- Original Message -----From: "Khaldoon Al Zoubi" <khaldoon.alzoubi@...>
To: ovsdb-dev@...
Sent: Thursday, June 25, 2015 12:15:05 PM
Subject: [ovsdb-dev] ODL Inventory
Hi,
I can’t figure out how OVSDB populate ODL Inventory based on openstack
(i.e.
specifically after ./stack.sh is complete). Also, is there a feature I
can
include in my project to do that.
Thanks much.
Khal
_______________________________________________
ovsdb-dev mailing list
ovsdb-dev@...
https://lists.opendaylight.org/mailman/listinfo/ovsdb-dev