yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #52301
[Bug 1514068] Re: internal subnet case no need to repeatedly create IPDevice in _update_arp_entry
[Expired for neutron because there has been no activity for 60 days.]
** Changed in: neutron
Status: Incomplete => Expired
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1514068
Title:
internal subnet case no need to repeatedly create IPDevice in
_update_arp_entry
Status in neutron:
Expired
Bug description:
_update_arp_entry will create IPDevice to do arp task:
https://github.com/openstack/neutron/blob/master/neutron/agent/l3/dvr_local_router.py#L200-L227
def _update_arp_entry(self, ip, mac, subnet_id, operation):
"""Add or delete arp entry into router namespace for the subnet."""
port = self._get_internal_port(subnet_id)
# update arp entry only if the subnet is attached to the router
if not port:
return False
try:
# TODO(mrsmith): optimize the calls below for bulk calls
interface_name = self.get_internal_device_name(port['id'])
device = ip_lib.IPDevice(interface_name, namespace=self.ns_name)
and methods _process_arp_cache_for_internal_port and _set_subnet_arp_info will call _update_arp_entry in their for loop based on arp_entry/port. Per arp_entry/port is going to be processed, an IPDevice object(same device in namespace) will be created. It's not necessary to do that.
https://github.com/openstack/neutron/blob/master/neutron/agent/l3/dvr_local_router.py#L174-L182
https://github.com/openstack/neutron/blob/master/neutron/agent/l3/dvr_local_router.py#L229-L241
We can create that IPDevice object before code enter the for loop, and
pass it to _update_arp_entry
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1514068/+subscriptions
References