neutron/neutron/agent
Rodolfo Alonso Hernandez 577d5bd977 Improve "get_devices_with_ip" performance
As reported in LP#1896734, there is a limit in the size of information
that can be transmitted in one single message between an application
and the privsep daemon. The read socket buffer is limited in size;
a message exceeding this size will generate an exception.

In order to limit the amount of information to be sent, this patch
improves the performance of "get_devices_with_ip". In the previous
implementation, the whole list of network devices from a namespace
was retrieved. In some environments, the list of devices could be
so big that the list returned by "privileged.get_link_devices" can
exceed the read buffer size (as reported in the LP bug when the
OVS agent tries to retrieve the list of IP addresses in the system).

Now the function calls "privileged.get_ip_addresses", that returns
a much smaller list. This patch is also reducing the number of system
calls to just one; the previous implementation was retrieving first
the devices link information list (that method was returning a much
bigger blob) and then, per device, retrieving the IP address
information.

Change-Id: I97ada62484023b9833ed12afd68eb4c8d337fd1f
Related-Bug: #1896734
(cherry picked from commit a6cdf273c0)
2021-03-01 10:31:10 +00:00
..
common Add process name to AsyncProcess 2021-01-18 14:01:32 +00:00
dhcp Don't configure dnsmasq entries for "network" ports 2021-02-23 20:09:29 +00:00
l2 Remove usage of six.add_metaclass 2020-05-21 14:41:18 -04:00
l3 Fix deletion of rfp interfaces when router is re-enabled 2021-02-22 02:01:10 +00:00
linux Improve "get_devices_with_ip" performance 2021-03-01 10:31:10 +00:00
metadata Merge "[OVN][OVS] Different metadata_workers default based on driver" 2020-09-09 18:40:03 +00:00
ovn [OVN] ovn-metadata-agent: Retry registering Chassis at startup 2021-02-16 15:44:01 +00:00
ovsdb Bump pylint version to support python 3.8 2020-08-06 16:00:30 +02:00
windows Add missing "process_name" argument on Windows 2021-01-18 14:00:29 +00:00
__init__.py Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
agent_extensions_manager.py Make code follow log translation guideline 2017-08-14 02:01:48 +00:00
dhcp_agent.py Set process name for agents 2020-07-01 12:28:29 +02:00
firewall.py Remove usage of six.add_metaclass 2020-05-21 14:41:18 -04:00
l3_agent.py Set process name for agents 2020-07-01 12:28:29 +02:00
metadata_agent.py Remove deprecated cache_url 2017-11-10 00:47:19 -05:00
resource_cache.py Ignore first local port update notification 2019-07-04 12:06:11 +00:00
rpc.py ovs agent: signal to plugin if tunnel refresh needed 2020-01-09 14:18:43 +00:00
securitygroups_rpc.py Support Address Group CRUD as extensions 2020-08-12 13:59:31 -05:00