Comment 2 for bug 1687709

Revision history for this message
Thomas Morin (tmmorin-orange) wrote :

Discussed today with jakub: a possibility would be to have the OVS agent monitor only his own br-int.

ovsdb-client monitor-cond can be used to only get events matching a certain conditions

This can't be done with a per-bridge condition on the Interface table, but can be done on the Bridge table:

ovsdb-client monitor-cond '[["name","==","br-int"]]' Bridge name,ports

# ovsdb-client monitor-cond '[["name","==","br-int"]]' Bridge name,ports
row action name ports
------------------------------------ ------- ------ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
a86186e3-7c17-423e-9292-f2a18022ca89 initial br-int [244019ea-ff2e-43ee-91dc-57c8b3aff0d7, 3443782a-f2a3-4abc-9c67-b07f5e97f45c, 430bc324-2eb1-47cd-bd15-f37b1502431f, 6df07278-6b54-4def-a3b4-250108986f35, 7677f9a0-09d9-403f-9041-3436834b95c3, 88ae506a-ddbb-46b8-9875-cf4f248b1845, da14307e-b635-4efb-bf33-f96f6ba38f19, e4378cc4-b65d-434c-8134-335cfcfa90b2]

This gives events on added/removed ports, and information on port number, interface name, and external_ids could be gathered with an additional OVSDB request on the Interface table.

The drawback is to touch production code to solve a fullstack issue, but on the other hand, even in production, filtering to only see ports coming and going for specific bridges and not other bridges, is something that may make sense.