From 395b5990dee8a13d5d2a3ee14638075cc6c5d089 Mon Sep 17 00:00:00 2001 From: Dongcan Ye Date: Tue, 12 Jan 2016 20:42:01 +0800 Subject: [PATCH] DVR: Optimize getting arp entry info Grab duplicated code in add_arp_entry and del_arp_entry. Change-Id: I579d66ec734627dec08df6fba750a3e237600a5c --- neutron/agent/l3/dvr.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/neutron/agent/l3/dvr.py b/neutron/agent/l3/dvr.py index 6045d0222..bb4c1a43a 100644 --- a/neutron/agent/l3/dvr.py +++ b/neutron/agent/l3/dvr.py @@ -49,8 +49,7 @@ class AgentMixin(object): def get_ports_by_subnet(self, subnet_id): return self.plugin_rpc.get_ports_by_subnet(self.context, subnet_id) - def add_arp_entry(self, context, payload): - """Add arp entry into router namespace. Called from RPC.""" + def _update_arp_entry(self, context, payload, action): router_id = payload['router_id'] ri = self.router_info.get(router_id) if not ri: @@ -60,20 +59,16 @@ class AgentMixin(object): ip = arp_table['ip_address'] mac = arp_table['mac_address'] subnet_id = arp_table['subnet_id'] - ri._update_arp_entry(ip, mac, subnet_id, 'add') + + ri._update_arp_entry(ip, mac, subnet_id, action) + + def add_arp_entry(self, context, payload): + """Add arp entry into router namespace. Called from RPC.""" + self._update_arp_entry(context, payload, 'add') def del_arp_entry(self, context, payload): """Delete arp entry from router namespace. Called from RPC.""" - router_id = payload['router_id'] - ri = self.router_info.get(router_id) - if not ri: - return - - arp_table = payload['arp_table'] - ip = arp_table['ip_address'] - mac = arp_table['mac_address'] - subnet_id = arp_table['subnet_id'] - ri._update_arp_entry(ip, mac, subnet_id, 'delete') + self._update_arp_entry(context, payload, 'delete') def fipnamespace_delete_on_ext_net(self, context, ext_net_id): """Delete fip namespace after external network removed.""" -- 2.45.2