Khaldoon Al Zoubi <khaldoon.alzoubi@...>
Thanks Sam for all of the help. Problem solved.
toggle quoted messageShow 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. 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. Sam ----- 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@...> 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. 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@...] 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
|
|
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 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. Sam ----- 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@...> 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. 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@...] 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
|
|
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]
toggle quoted messageShow quoted text
-----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@...> 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. 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@...] 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
|
|
toggle quoted messageShow quoted text
----- Original Message ----- From: "Khaldoon Al Zoubi" <khaldoon.alzoubi@...> 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. 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@...] 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
|
|
Khaldoon Al Zoubi <khaldoon.alzoubi@...>
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.
Thanks.
toggle quoted messageShow quoted text
-----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
|
|
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
toggle quoted messageShow quoted text
----- 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
|
|
Khaldoon Al Zoubi <khaldoon.alzoubi@...>
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>
toggle quoted messageShow quoted text
-----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
|
|
Khaldoon Al Zoubi <khaldoon.alzoubi@...>
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
toggle quoted messageShow quoted text
-----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
|
|
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
toggle quoted messageShow quoted text
----- 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
|
|
Khaldoon Al Zoubi <khaldoon.alzoubi@...>
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
|
|