Re: [Need Help] Arbitrary connection port is part of the node-id


Sam Hague
 

What was the solution for the cases where ODL connects to the ovsdb nodes? In that case odl only has the ip:port of the node to make the outgoing connection.

The idea in this thread is to use the system-id, but that looks to only cover the case where the ovsdb node connects to ODL.

Thanks, Sam

----- Original Message -----
From: "Amit Mandke (ammandke)" <ammandke@...>
To: "Prateek Garg (prategar)" <prategar@...>, "Edward Warnicke" <hagbard@...>,
ovsdb-dev@..., ffernand@...
Sent: Wednesday, April 22, 2015 7:20:02 PM
Subject: Re: [ovsdb-dev] [Need Help] Arbitrary connection port is part of the node-id

Just to address the question from following mail. The way you specify the
columns to select operation is you call setColumn(..) on a select.

Example:

Select<GenericTableSchema> bridgeSelect = op.select(bridge.getSchema());
List<String> columns = new ArrayList<>();
columns.add(bridge.getNameColumn().getSchema().getName());
bridgeSelect.setColumns(columns);

-Amit


From: "Prateek Garg (prategar)" < prategar@... >
Date: Wednesday, April 22, 2015 at 2:54 PM
To: Edward Warnicke < hagbard@... >, " ovsdb-dev@...
" < ovsdb-dev@... >, " ffernand@... " <
ffernand@... >
Subject: Re: [ovsdb-dev] [Need Help] Arbitrary connection port is part of the
node-id

Hi,

While implementing this use case I need some help using the select operation
of ovsdb library. I am trying to read the Open_vSwitch table to get the data
in external-ids. I am doing the following:


OpenVSwitch ovs = TyperUtils.getTypedRowWrapper(dbSchema, OpenVSwitch.class);

transaction.add( op.select(ovs.getSchema() ));

ListenableFuture<List<OperationResult>> results = transaction.execute();

List<OperationResult> resultList = results.get();




I am getting resultList as:

[OperationResult [count=0, uuid=null, rows=[Row [columns={}]], error=null,
details=null]]

Query sent to Ovs db is:

ovsdb-client transact '["Open_vSwitch",{"op":"select",
"table":"Open_vSwitch", "columns":[], "where": []}]'




However, I want to send:

ovsdb-client transact '["Open_vSwitch",{"op":"select",
"table":"Open_vSwitch", "columns":["external_ids"] ,"where": []}]'




It would be very helpful if someone could provide pointers on how to set
column in select operation.




Regards

Prateek

From: Edward Warnicke < hagbard@... >
Date: Tuesday, April 21, 2015 at 1:18 PM
To: Prateek Garg < prategar@... >
Cc: " ffernand@... " < ffernand@... >, "
ovsdb-dev@... " < ovsdb-dev@... >
Subject: Re: [ovsdb-dev] Arbitrary connection port is part of the node-id

The config/operational synch is best handled a little differently.

When you try to config an ovsdb-node to connect... you don't *really* know
the systemid... just the IP:port.

The way we solved this for bridges, and the way I'd advocate solving it here
is:

1) If you are configing a ovsdb-node, write its iid to the external-ids of
the openvswitch table
2) When you get an openvswitch table, if it has an iid in its external-ids,
use that in the operational data store as its iid
3) If you don't get an iid in its external-ids... use some reasonable
heuristic to contruct one.

For #3... I don't currently see a reason *not* to use systemid presuming its
guaranteed unique and we contruct some kind of reasonable
Uri from it.

Ed

On Tue, Apr 21, 2015 at 1:09 PM, Prateek Garg (prategar) < prategar@...
wrote:


Hi,

In my opinion, the we can replace the node-id of the ovsdb node in md-sal to
contain system_id from external properties. This would make sure that the
config and operation store are in synch in case the controller reconnects to
the same ovs in tcp mode.
I’ll make these changes, update postman collection and submit for approval.

Regards
Prateek

----------------------------------------------------------------------
Date: Mon, 20 Apr 2015 21:28:28 -0700
From: Edward Warnicke < hagbard@... >
To: Flavio Fernandes < ffernand@... >
Cc: " ovsdb-dev@... "
< ovsdb-dev@... >
Subject: Re: [ovsdb-dev] Arbitrary connection port is part of the
node-id
Message-ID:
< CAFVSqg0kmBcNkGZ50vN-a0TgKswJeRNHVR-1PVvW40ukZuMtYw@... >
Content-Type: text/plain; charset="utf-8"

Make sure we build in the same mechanism of storing iids in external_ids
that we use for bridges so that if someone configures a connection as an
ovsdb-node, it comes *back* in operational store with the same iid...

Ed

On Mon, Apr 20, 2015 at 8:12 PM, Flavio Fernandes < ffernand@... >
wrote:





On Apr 20, 2015, at 7:12 PM, Sharon Aicler (saichler) <
saichler@... > wrote:

Hi,
A further investigation by Amit has revealed that the system uuid is
automatically set by the OVS so we can use it out of the box to identify an
OVS instance. To see the external ID you can invoke the following cli:

ovs-vsctl --columns=external-ids list open_vswitch

looks like a win/win situation to me...:o)
ok!

? flavio



Thanks,
Sharon.
________________________________________
From: ovsdb-dev-bounces@... [
ovsdb-dev-bounces@... ] on behalf of Sharon Aicler
(saichler)
Sent: Monday, April 20, 2015 3:41 PM
To: Flavio Fernandes
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] Arbitrary connection port is part of the node-id

In that case you are kind of "gambling" that two of your dockers won't
choose the same arbitrary port...:o)
In any case, we can't have the ID of an element arbitrary change all the
time...As a quick and dirty fix, i would drop the port (and the "behind a
NAT" scenario) so ovsdb id's would be predictable and not change per
connection (it can even change in run-time if there was some network
connectivity issue)...

A more suitable solution is probably generating and assigning a uuid to
each of the managed instances, if one does not exist...a quick googling i
found the following cli method:

ovs-vsctl set open_vswitch . external-ids:system-id='"${UUID}"'


Thanks,
Sharon.
________________________________________
From: Flavio Fernandes [ ffernand@... ]
Sent: Monday, April 20, 2015 1:25 PM
To: Sharon Aicler (saichler)
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] Arbitrary connection port is part of the node-id

On Apr 20, 2015, at 3:24 PM, Sharon Aicler (saichler) <
saichler@... > wrote:

Hi,
Sorry, but does't a docker has a unique ip?
yes and no. ;) I?m used to see docker behind nat on the vm that hosts
the containers. Then, from
'outside' the vm, various ovs instances reached using the same ip, but
different ports. Like this:

docker run -p 16640:6640 blablabla
docker run -p 16641:6640 blablabla
docker run -p 16642:6640 blablabla
?

? flavio



________________________________________
From: Flavio Fernandes [ ffernand@... ]
Sent: Friday, April 17, 2015 4:23 AM
To: Sharon Aicler (saichler)
Cc: ovsdb-dev@...
Subject: Re: [ovsdb-dev] Arbitrary connection port is part of the
node-id

On Apr 16, 2015, at 6:53 PM, Sharon Aicler (saichler) <
saichler@... > wrote:

Hi all,
The node-id of an ovs bridge contains the arbitrary port of the
outgoing connection instance and looks something like the following:
ovsdb:// 10.156.48.239:39490/bridge/br-ex

This creates an issue if i place something in the configuration store
and the connection goes down due to some reason, the node-id will change
each time the connection is lost or I restart ODL/OVSDB.
Any reason for this? can't we just use the ip? i don't think you can
run two instances of OVS in the same VM?
Hi Sharon,

That is not true. I?ve seen a VM with many OVS instances running;
mostly in a docker environment.

But I see your point. When OVS is connecting to ODL (i.e. active
method) the port is not predictable. When ODL connects to
an OVS (passive mode), ODL will need to know that port, tho; so the
solution to this problem should ideally work on both
scenarios.

? flavio




Thanks,
Sharon.
_______________________________________________
ovsdb-dev mailing list
ovsdb-dev@...
https://lists.opendaylight.org/mailman/listinfo/ovsdb-dev
_______________________________________________
ovsdb-dev mailing list
ovsdb-dev@...
https://lists.opendaylight.org/mailman/listinfo/ovsdb-dev
_______________________________________________
ovsdb-dev mailing list
ovsdb-dev@...
https://lists.opendaylight.org/mailman/listinfo/ovsdb-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <
http://lists.opendaylight.org/pipermail/ovsdb-dev/attachments/20150420/0ac78b3d/attachment-0001.html

_______________________________________________
ovsdb-dev mailing list
ovsdb-dev@...
https://lists.opendaylight.org/mailman/listinfo/ovsdb-dev

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