Comment 3 for bug 1687709

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

After our discussion today, let me formulate a possibilities to have each agent receive only the events it needs to: add a parameter to SimpleInterfaceMonitor, only_bridge, that would be a bridge name allowing caller to receive events only about this bridge, which would default to None (receive events about all bridges, which is the current behavior).

OVS neutron agent would have a config option (defaulting to the old behavior) to filter to receive only events for the integration bridge, and would pass the integration bridge name to SimpleInterfaceMonitor (via get_polling_manager). Fullstack tests would set this option to true.

I see two possible ways to implement the filtering itself:
A - have ovsdb-client do the filtering (with monitor-cond) as proposed above, and for each event an additional ovsdb query will be needed to retrieve port number, interface name, and external_ids
B - keep the same ovsdb-client call that receives all events, but then for each event do an additional ovsdb call to identify the bridge for the port and drop the event if need be

A has the drawback of increasing load for production code, while be would only increase load for fullstack test (or production deployment which have a reason to filter).