)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"244fa5dacd45094e1236a7cf96d3b6f55f356507","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Consider all router ports for dvr arp updates."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If you have a subnet with 2 routers and you create and then delete"},{"line_number":10,"context_line":"a VM it may happen that an old ARP entry may persist. If you create"},{"line_number":11,"context_line":"another VM with the same IP and the arp update goes to the other"},{"line_number":12,"context_line":"router you have a VM which isn\u0027t reachable via one router since the"},{"line_number":13,"context_line":"ARP entry is wrong."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_1180349c","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":52},"updated":"2018-09-26 17:04:38.000000000","message":"How do you say it persists. Normally there is an arp delete rpc call that is being sent when a service port is removed.\nIf this is not being done right, then we should fix that problem first.","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":21657,"name":"Christoph Manns","email":"christoph.manns@gmail.com","username":"cmanns"},"change_message_id":"9fc78a16641552cdc33f43d6c16121524c569984","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Consider all router ports for dvr arp updates."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If you have a subnet with 2 routers and you create and then delete"},{"line_number":10,"context_line":"a VM it may happen that an old ARP entry may persist. If you create"},{"line_number":11,"context_line":"another VM with the same IP and the arp update goes to the other"},{"line_number":12,"context_line":"router you have a VM which isn\u0027t reachable via one router since the"},{"line_number":13,"context_line":"ARP entry is wrong."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_f4c1e682","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":52},"in_reply_to":"3f79a3b5_1180349c","updated":"2018-09-26 17:25:16.000000000","message":"The problem only occurs if you have more than one router in a subnet. And this change should fix this. Since the add/update/delete message was only sent to one router.","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f4fa0b920478a4e55a63679ba0034c1f060b3884","unresolved":false,"context_lines":[{"line_number":11,"context_line":"another VM with the same IP and the arp update goes to the other"},{"line_number":12,"context_line":"router you have a VM which isn\u0027t reachable via one router since the"},{"line_number":13,"context_line":"ARP entry is wrong."},{"line_number":14,"context_line":"This fixes this issue by simply iterating over all router ports"},{"line_number":15,"context_line":"and generating the respective messages for the l3 agents to"},{"line_number":16,"context_line":"handle."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_48692424","line":14,"range":{"start_line":14,"start_character":47,"end_line":14,"end_character":63},"updated":"2018-09-26 15:24:50.000000000","message":"As Ryan Tidwell mentioned in the code, what about notify the ARP by router scope, aka, gather all the router\u0027s dvr port arp info and then notify once?","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":21657,"name":"Christoph Manns","email":"christoph.manns@gmail.com","username":"cmanns"},"change_message_id":"10655549b87bb50bc4093e5fc0358f61efbc89ad","unresolved":false,"context_lines":[{"line_number":11,"context_line":"another VM with the same IP and the arp update goes to the other"},{"line_number":12,"context_line":"router you have a VM which isn\u0027t reachable via one router since the"},{"line_number":13,"context_line":"ARP entry is wrong."},{"line_number":14,"context_line":"This fixes this issue by simply iterating over all router ports"},{"line_number":15,"context_line":"and generating the respective messages for the l3 agents to"},{"line_number":16,"context_line":"handle."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_2e05d110","line":14,"range":{"start_line":14,"start_character":47,"end_line":14,"end_character":63},"in_reply_to":"3f79a3b5_48692424","updated":"2018-09-26 15:38:52.000000000","message":"the problem is that i have to notify 2 different routers and therefor I have to send multiple messages","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"}],"neutron/db/l3_dvr_db.py":[{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"f6b2b5798b1881dedeb42f6b1421ef5800ddccb2","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        filters \u003d {\u0027fixed_ips\u0027: {\u0027subnet_id\u0027: [subnet]},"},{"line_number":933,"context_line":"                   \u0027device_owner\u0027: [const.DEVICE_OWNER_DVR_INTERFACE]}"},{"line_number":934,"context_line":"        ports \u003d self._core_plugin.get_ports(context, filters\u003dfilters)"},{"line_number":935,"context_line":"        for router_id in (port[\u0027device_id\u0027] for port in ports):"},{"line_number":936,"context_line":"            arp_table \u003d {\u0027ip_address\u0027: ip_address,"},{"line_number":937,"context_line":"                        \u0027mac_address\u0027: mac_address,"},{"line_number":938,"context_line":"                        \u0027subnet_id\u0027: subnet}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_a8279863","line":935,"updated":"2018-09-26 15:11:15.000000000","message":"It seems like this could generate a large number of RPC messages which would become a scale issue as you\u0027re pulling all DVR ports for the subnet. Something to keep in mind...","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":21657,"name":"Christoph Manns","email":"christoph.manns@gmail.com","username":"cmanns"},"change_message_id":"cf5ca59de29e12d857d4e9fe263e1db0fdd829fb","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        filters \u003d {\u0027fixed_ips\u0027: {\u0027subnet_id\u0027: [subnet]},"},{"line_number":933,"context_line":"                   \u0027device_owner\u0027: [const.DEVICE_OWNER_DVR_INTERFACE]}"},{"line_number":934,"context_line":"        ports \u003d self._core_plugin.get_ports(context, filters\u003dfilters)"},{"line_number":935,"context_line":"        for router_id in (port[\u0027device_id\u0027] for port in ports):"},{"line_number":936,"context_line":"            arp_table \u003d {\u0027ip_address\u0027: ip_address,"},{"line_number":937,"context_line":"                        \u0027mac_address\u0027: mac_address,"},{"line_number":938,"context_line":"                        \u0027subnet_id\u0027: subnet}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_828e3424","line":935,"in_reply_to":"3f79a3b5_3753e018","updated":"2018-09-26 19:25:27.000000000","message":"I don\u0027t know the complete neutron sources, but I started at the ip helper lib and climbed my way up to find out what was calling the code, which was responsobile for setting the arp entries and ultimately landed here, where my observations startet to make sense, why only one of two routers was updated.","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"012f5368963b3239ee05e9ff7b6d416b67c85e0b","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        filters \u003d {\u0027fixed_ips\u0027: {\u0027subnet_id\u0027: [subnet]},"},{"line_number":933,"context_line":"                   \u0027device_owner\u0027: [const.DEVICE_OWNER_DVR_INTERFACE]}"},{"line_number":934,"context_line":"        ports \u003d self._core_plugin.get_ports(context, filters\u003dfilters)"},{"line_number":935,"context_line":"        for router_id in (port[\u0027device_id\u0027] for port in ports):"},{"line_number":936,"context_line":"            arp_table \u003d {\u0027ip_address\u0027: ip_address,"},{"line_number":937,"context_line":"                        \u0027mac_address\u0027: mac_address,"},{"line_number":938,"context_line":"                        \u0027subnet_id\u0027: subnet}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_3753e018","line":935,"in_reply_to":"3f79a3b5_6eb8a9e7","updated":"2018-09-26 18:09:48.000000000","message":"As Swami mentioned in his review, the ARP entries should be cleaned be getting cleaned up. I think he\u0027s right to say we should look at that.\n\nI\u0027m just generally hesitant to introduce more RPC chatter. If RPC is the only solution to a problem then so be it, but I\u0027d look at what Swami is suggesting. It seems like there is something else going on.","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"a666f0e68d81ea0f6597bef81d550706eaf1a8e7","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        filters \u003d {\u0027fixed_ips\u0027: {\u0027subnet_id\u0027: [subnet]},"},{"line_number":933,"context_line":"                   \u0027device_owner\u0027: [const.DEVICE_OWNER_DVR_INTERFACE]}"},{"line_number":934,"context_line":"        ports \u003d self._core_plugin.get_ports(context, filters\u003dfilters)"},{"line_number":935,"context_line":"        for router_id in (port[\u0027device_id\u0027] for port in ports):"},{"line_number":936,"context_line":"            arp_table \u003d {\u0027ip_address\u0027: ip_address,"},{"line_number":937,"context_line":"                        \u0027mac_address\u0027: mac_address,"},{"line_number":938,"context_line":"                        \u0027subnet_id\u0027: subnet}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_ee6599e3","line":935,"in_reply_to":"3f79a3b5_88109c5b","updated":"2018-09-26 15:43:37.000000000","message":"Scale here is actually driven by the number of computes where the routers are instantiated. That actually comes out to (num routers) * (num local DVR routers).","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f4fa0b920478a4e55a63679ba0034c1f060b3884","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        filters \u003d {\u0027fixed_ips\u0027: {\u0027subnet_id\u0027: [subnet]},"},{"line_number":933,"context_line":"                   \u0027device_owner\u0027: [const.DEVICE_OWNER_DVR_INTERFACE]}"},{"line_number":934,"context_line":"        ports \u003d self._core_plugin.get_ports(context, filters\u003dfilters)"},{"line_number":935,"context_line":"        for router_id in (port[\u0027device_id\u0027] for port in ports):"},{"line_number":936,"context_line":"            arp_table \u003d {\u0027ip_address\u0027: ip_address,"},{"line_number":937,"context_line":"                        \u0027mac_address\u0027: mac_address,"},{"line_number":938,"context_line":"                        \u0027subnet_id\u0027: subnet}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_08456cb4","line":935,"in_reply_to":"3f79a3b5_a8279863","updated":"2018-09-26 15:24:50.000000000","message":"+1, I have the same concern.","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":21657,"name":"Christoph Manns","email":"christoph.manns@gmail.com","username":"cmanns"},"change_message_id":"10655549b87bb50bc4093e5fc0358f61efbc89ad","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        filters \u003d {\u0027fixed_ips\u0027: {\u0027subnet_id\u0027: [subnet]},"},{"line_number":933,"context_line":"                   \u0027device_owner\u0027: [const.DEVICE_OWNER_DVR_INTERFACE]}"},{"line_number":934,"context_line":"        ports \u003d self._core_plugin.get_ports(context, filters\u003dfilters)"},{"line_number":935,"context_line":"        for router_id in (port[\u0027device_id\u0027] for port in ports):"},{"line_number":936,"context_line":"            arp_table \u003d {\u0027ip_address\u0027: ip_address,"},{"line_number":937,"context_line":"                        \u0027mac_address\u0027: mac_address,"},{"line_number":938,"context_line":"                        \u0027subnet_id\u0027: subnet}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_88109c5b","line":935,"in_reply_to":"3f79a3b5_a8279863","updated":"2018-09-26 15:38:52.000000000","message":"The number of RPC messages depends on the number of dvr routers you have in your subnet. So for most people the impact is next to nothing. If you have 100 routers in your subnet, then ofc, this generates 100 RPC messages.","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"},{"author":{"_account_id":21657,"name":"Christoph Manns","email":"christoph.manns@gmail.com","username":"cmanns"},"change_message_id":"ef92a68fffb55d7113ee59535e4c60ffa69065fc","unresolved":false,"context_lines":[{"line_number":932,"context_line":"        filters \u003d {\u0027fixed_ips\u0027: {\u0027subnet_id\u0027: [subnet]},"},{"line_number":933,"context_line":"                   \u0027device_owner\u0027: [const.DEVICE_OWNER_DVR_INTERFACE]}"},{"line_number":934,"context_line":"        ports \u003d self._core_plugin.get_ports(context, filters\u003dfilters)"},{"line_number":935,"context_line":"        for router_id in (port[\u0027device_id\u0027] for port in ports):"},{"line_number":936,"context_line":"            arp_table \u003d {\u0027ip_address\u0027: ip_address,"},{"line_number":937,"context_line":"                        \u0027mac_address\u0027: mac_address,"},{"line_number":938,"context_line":"                        \u0027subnet_id\u0027: subnet}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_6eb8a9e7","line":935,"in_reply_to":"3f79a3b5_ee6599e3","updated":"2018-09-26 15:58:20.000000000","message":"Ok, but still, this changes nothing for most users. Unless you have more than one DVR router in your subnet. Previously the generator only returned one router id, which led to stale permanent ARP entries. Do you have any suggestion for a better fix, other then notify all routers?","commit_id":"a554fcdba2bc594071eecb1985e5b83e6ed79165"}]}
