Re: ODL Inventory


Khaldoon Al Zoubi <khaldoon.alzoubi@...>
 

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@redhat.com]
Sent: Wednesday, July 01, 2015 1:33 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@lists.opendaylight.org
Subject: Re: [ovsdb-dev] ODL Inventory



----- Original Message -----
From: "Khaldoon Al Zoubi" <khaldoon.alzoubi@huawei.com>
To: "Sam Hague" <shague@redhat.com>
Cc: ovsdb-dev@lists.opendaylight.org
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.
Ok, yeah, I thought the controller address was being set manually in your 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@redhat.com]
Sent: Tuesday, June 30, 2015 12:39 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@lists.opendaylight.org
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@huawei.com>
To: "Sam Hague" <shague@redhat.com>
Cc: ovsdb-dev@lists.opendaylight.org
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@lists.opendaylight.org
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@redhat.com]
Sent: Thursday, June 25, 2015 2:41 PM
To: Khaldoon Al Zoubi
Cc: ovsdb-dev@lists.opendaylight.org
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@huawei.com>
To: ovsdb-dev@lists.opendaylight.org
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@lists.opendaylight.org
https://lists.opendaylight.org/mailman/listinfo/ovsdb-dev

Join z.archive.ovsdb-dev@lists.opendaylight.org to automatically receive all group messages.