]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
linuxbridge-agent: make vxlan unicast check more efficent
authorDarragh O'Reilly <darragh.oreilly@hp.com>
Mon, 17 Nov 2014 10:20:58 +0000 (10:20 +0000)
committerDave Walker <email@daviey.com>
Tue, 25 Nov 2014 14:55:47 +0000 (14:55 +0000)
A list with the full range of vxlan VNIs (1 to 2**24) was using
over 300MB of memory. This patch uses xrange instead of range.

Closes-Bug: #1393362
Change-Id: I21ccab758e7911712690fd5e732f64361e809264
(cherry picked from commit 0bf69ad80fb77773e767e116357cf6e1666b3f5d)

neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py

index 8011c0d4bde71055340e855abc682b9729dc1ca0..d9f7f686f5e6823aa2665c3386ea0473947195c5 100755 (executable)
@@ -27,6 +27,7 @@ import eventlet
 eventlet.monkey_patch()
 
 from oslo.config import cfg
+from six import moves
 
 from neutron.agent import l2population_rpc as l2pop_rpc
 from neutron.agent.linux import ip_lib
@@ -523,7 +524,7 @@ class LinuxBridgeManager:
                          'command': 'bridge fdb',
                          'mode': 'VXLAN UCAST'})
             return False
-        for segmentation_id in range(1, constants.MAX_VXLAN_VNI + 1):
+        for segmentation_id in moves.xrange(1, constants.MAX_VXLAN_VNI + 1):
             if not ip_lib.device_exists(
                     self.get_vxlan_device_name(segmentation_id)):
                 break