Public bug reported: when create/update/delete ports, the PERMANENT arp entry in qrouter namespace will not be updated.
Take deleting port as a example, when deleting a port(without associating with a floating ip), callback method _notify_routers_callback() will be called when port AFTER_DELETE event occurs, router_ids == [], so rpc call: routers_updated() will not be triggered, router will not be updated, neither do ARP tables. (https://opendev.org/openstack/neutron/src/branch/stable/yoga/neutron/db/l3_db.py#L1995) In short, if we add PERMANENT arp entry in qrouter(https://opendev.org/openstack/neutron/src/tag/20.0.0.0rc2/neutron/agent/l3/dvr_local_router.py#L349), we must make sure arp cache can be updated properly. And I have another question, why not use mac learning directly? Even when using tunnel networks, mac learning works well because of l2population, add permanent arp entry will bring a series of problems. ** Affects: neutron Importance: Undecided Status: New ** Tags: l3-dvr ** Tags added: l3-dvr ** Description changed: when create/update/delete ports, the PERMANENT arp entry in qrouter namespace will not be updated. - Take deleting port as a example, when deleting a port(without associating with a floating ip), callback method - _notify_routers_callback() will be called when port AFTER_DELETE event occurs, router_ids == [], so rpc call: routers_updated() will not be triggered, router will not been updated, neither do ARP tables. + Take deleting port as a example, when deleting a port(without associating with a floating ip), callback method + _notify_routers_callback() will be called when port AFTER_DELETE event occurs, router_ids == [], so rpc call: routers_updated() will not be triggered, router will not be updated, neither do ARP tables. (https://opendev.org/openstack/neutron/src/branch/stable/yoga/neutron/db/l3_db.py#L1995) In short, if we add PERMANENT arp entry in qrouter(https://opendev.org/openstack/neutron/src/tag/20.0.0.0rc2/neutron/agent/l3/dvr_local_router.py#L349), we must make sure arp cache can be updated properly. And I have another question, why not use mac learning directly? Even when using tunnel networks, mac learning works well because of l2population, add permanent arp entry will bring a series of problems. -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1968860 Title: [L3-DVR]l3-agent arp table will not update Status in neutron: New Bug description: when create/update/delete ports, the PERMANENT arp entry in qrouter namespace will not be updated. Take deleting port as a example, when deleting a port(without associating with a floating ip), callback method _notify_routers_callback() will be called when port AFTER_DELETE event occurs, router_ids == [], so rpc call: routers_updated() will not be triggered, router will not be updated, neither do ARP tables. (https://opendev.org/openstack/neutron/src/branch/stable/yoga/neutron/db/l3_db.py#L1995) In short, if we add PERMANENT arp entry in qrouter(https://opendev.org/openstack/neutron/src/tag/20.0.0.0rc2/neutron/agent/l3/dvr_local_router.py#L349), we must make sure arp cache can be updated properly. And I have another question, why not use mac learning directly? Even when using tunnel networks, mac learning works well because of l2population, add permanent arp entry will bring a series of problems. To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1968860/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

