neutron-fwaas/quantum
Peter Feiner b606ee1da8 defer firewall updates to iptables data structures
One of two patches that fixes bug #1194438.

In the iptables firewall driver, each port method (update_port_filter,
prepare_port_filter, remove_port_filter) makes O(N) calls, where
N=len(firewall.ports), to IptablesManager methods that update dozens
of data structures. When the firewall methods are called in sequence,
e.g., by SecurityGroupAgentRpcMixin, the calls to IptablesManager's
methods start to add up.

This patch changes IptablesFirewallDriver to defer and coalesce calls
to IptablesManager. Now a sequence of M port method calls results in
O(N) calls to IptablesManager methods instead of O(N*M) as before.

Conflicts:
	quantum/agent/linux/iptables_firewall.py

Change-Id: If17eeaec197beae8b8aecffca1f19d4535a7226e
(cherry picked from commit e31c9fd3fe)
2013-08-04 14:31:58 +02:00
..
agent defer firewall updates to iptables data structures 2013-08-04 14:31:58 +02:00
api Validate that netaddr does not receive a string with whitespace 2013-05-11 06:29:22 +00:00
common Do not disable propagate on root logger 2013-03-14 19:43:43 +01:00
db Merge "Allow gateway address to be unset for an existing subnet" into stable/grizzly 2013-07-30 17:31:33 +00:00
debug Allow probe-create to specify device_owner. 2013-03-07 20:24:52 -08:00
extensions DbQuotaDriver allows negative quotas to be set. 2013-06-10 21:22:31 +00:00
locale Imported Translations from Transifex 2013-03-21 00:06:08 +00:00
openstack Sync Qpid RPC fix from Oslo 2013-06-18 17:13:33 +00:00
plugins Merge "Fix Cisco Nexus plugin failures for vlan IDs 1006-4094" into stable/grizzly 2013-08-02 23:12:38 +00:00
rootwrap Replace "OpenStack LLC" with "OpenStack Foundation" 2013-03-13 15:06:24 -04:00
scheduler fix mis-placed paren in log statement for l3-scheduler 2013-03-18 21:11:04 -07:00
server Use oslo-config-2013.1b3 2013-02-17 17:33:05 +00:00
tests defer firewall updates to iptables data structures 2013-08-04 14:31:58 +02:00
__init__.py Replace "OpenStack LLC" with "OpenStack Foundation" 2013-03-13 15:06:24 -04:00
auth.py Replace "OpenStack LLC" with "OpenStack Foundation" 2013-03-13 15:06:24 -04:00
context.py Replace "OpenStack LLC" with "OpenStack Foundation" 2013-03-13 15:06:24 -04:00
manager.py Synchronize QuantumManager.get_instance() method 2013-03-17 13:57:22 +04:00
policy.py Replace "OpenStack LLC" with "OpenStack Foundation" 2013-03-13 15:06:24 -04:00
quantum_plugin_base_v2.py Supporting pagination in api v2.0 2013-02-19 23:04:13 +08:00
quota.py Replace "OpenStack LLC" with "OpenStack Foundation" 2013-03-13 15:06:24 -04:00
service.py Agent management extension 2013-02-18 11:43:45 +08:00
version.py Replace "OpenStack LLC" with "OpenStack Foundation" 2013-03-13 15:06:24 -04:00
wsgi.py Return unicode for object in json and xml serializer 2013-04-02 13:40:53 -04:00