)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8706d7367f531394ad56b6a62fc66244fa1b6b1f","unresolved":true,"context_lines":[{"line_number":10,"context_line":"- prevent assigning GW address on qg-* interface automatically for HA"},{"line_number":11,"context_line":"  routers by passing `set_gw\u003dFalse` to set_external_gw_port_link_status"},{"line_number":12,"context_line":"  Keepalived handles this."},{"line_number":13,"context_line":"- set `net.ipv6.conf.all.addr_gen_mode\u003d1` in HA router namespace to"},{"line_number":14,"context_line":"  prevent auto-assigning link-local address to the interfaces."},{"line_number":15,"context_line":"  I think it\u0027s not necessary as keepalived manages link-local addresses."},{"line_number":16,"context_line":"  With this change, we will have link-local addresses only on active"},{"line_number":17,"context_line":"  router. So we will prevent \u0027dadfailed\u0027 and MLD packets will not be"},{"line_number":18,"context_line":"  sent from standby router."},{"line_number":19,"context_line":"- always keep qg-* interface up on both active\u0026standby router\u0027s"},{"line_number":20,"context_line":"  instance, no matter if keepalived is started or not."},{"line_number":21,"context_line":"  without GW \u0026 link-local address assigned, backup router\u0027s instance"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"17a94353_866ca838","line":18,"range":{"start_line":13,"start_character":0,"end_line":18,"end_character":27},"updated":"2022-05-14 03:16:34.000000000","message":"I concerned thing is that whether this result in the qg- port lose link-local address?","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"15575f5de357e490644e25f432418cb215ed7919","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- prevent assigning GW address on qg-* interface automatically for HA"},{"line_number":11,"context_line":"  routers by passing `set_gw\u003dFalse` to set_external_gw_port_link_status"},{"line_number":12,"context_line":"  Keepalived handles this."},{"line_number":13,"context_line":"- set `net.ipv6.conf.all.addr_gen_mode\u003d1` in HA router namespace to"},{"line_number":14,"context_line":"  prevent auto-assigning link-local address to the interfaces."},{"line_number":15,"context_line":"  I think it\u0027s not necessary as keepalived manages link-local addresses."},{"line_number":16,"context_line":"  With this change, we will have link-local addresses only on active"},{"line_number":17,"context_line":"  router. So we will prevent \u0027dadfailed\u0027 and MLD packets will not be"},{"line_number":18,"context_line":"  sent from standby router."},{"line_number":19,"context_line":"- always keep qg-* interface up on both active\u0026standby router\u0027s"},{"line_number":20,"context_line":"  instance, no matter if keepalived is started or not."},{"line_number":21,"context_line":"  without GW \u0026 link-local address assigned, backup router\u0027s instance"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1beb2b53_3759a7ca","line":18,"range":{"start_line":13,"start_character":0,"end_line":18,"end_character":27},"in_reply_to":"17a94353_866ca838","updated":"2022-05-16 12:50:57.000000000","message":"it shouldn\u0027t result in qg-port lose link-local address as this option is only about how it\u0027s being generated:\n\n```\naddr_gen_mode - INTEGER\n\tDefines how link-local and autoconf addresses are generated.\n\n\t0: generate address based on EUI64 (default)\n\t1: do no generate a link-local address, use EUI64 for addresses generated\n\t   from autoconf\n\t2: generate stable privacy addresses, using the secret from\n\t   stable_secret (RFC7217)\n\t3: generate stable privacy addresses, using a random secret if unset\n```\n\nso if You assign link-local address manually(keepalived does that in our case) it won\u0027t be flushed later by this option.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"ad49ce93340f44ee5ecfc1e6fde7a4d1c2100187","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0ff49c92_7cf8f548","updated":"2022-04-28 01:04:14.000000000","message":"this change is really work in progress and doesn\u0027t contain any test.\n\nI created it just to ask about Your opinion about solving our issues that way.","commit_id":"6c95d5dc701e418359f7577e679dbd75afe69a19"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"1ab5b3a6f588ff29cf54d440fdbc7bf3a4ebe945","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"03216bc3_2255f999","in_reply_to":"0ff49c92_7cf8f548","updated":"2022-05-13 11:02:29.000000000","message":"change is ready for reviews now","commit_id":"6c95d5dc701e418359f7577e679dbd75afe69a19"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8926cea0274062d7f1e859a6156095f839c32c40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a6cbcf4d_3d03ca65","updated":"2022-05-16 07:51:53.000000000","message":"I wonder if there are test results with this fix for those hosts with large set of scheduled HA routers.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"02534859454cae2a2f10b68e5b47367d8b81bdd7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a41d443c_5e8635b0","updated":"2022-05-13 12:46:25.000000000","message":"LGTM but would like to hear LIU\u0027s opinion as he has alternative patch https://review.opendev.org/c/openstack/neutron/+/834260","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"d029e9993b385941ea14401c48b79841c87e52c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"186dde03_159ea534","updated":"2022-05-13 10:58:22.000000000","message":"please have a look at https://review.opendev.org/c/openstack/neutron/+/839671\n\nIf I\u0027m correct, my change fixes all of these issues without having to choose between breaking feature A and B.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"069a2ea03aff59cdda974d183a338829f6bf520e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"88772f67_b726641e","in_reply_to":"186dde03_159ea534","updated":"2022-05-13 10:59:46.000000000","message":"sorry, I wanted to put this comment in different change(https://review.opendev.org/c/openstack/neutron/+/834260)","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"773ca6ec5e997a877a10cb5945e8b0cc6f43eead","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"54a8a198_879c9dea","in_reply_to":"9b8bcefd_2d446436","updated":"2022-05-23 20:59:27.000000000","message":"Done","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8706d7367f531394ad56b6a62fc66244fa1b6b1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ab907a9f_704943ec","in_reply_to":"a41d443c_5e8635b0","updated":"2022-05-14 03:16:34.000000000","message":"IMHO, I like this solution better. Base on this solution, users don\u0027t have to struggle with which bug they prefer.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"42a9d564ff2a5db4f62d4519a9bb39249e478682","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cd651c55_d9f48fbb","in_reply_to":"a6cbcf4d_3d03ca65","updated":"2022-05-16 13:00:33.000000000","message":"i don\u0027t really expect it to make any difference on large-scale but I can perform some tests.\nDo You have something specific in mind?\n\nMy test environment contains 2 network nodes. I can spawn for ex. 200 HA routers there(with and without this change).","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0a16fb6fac9ae9b8d892428d2b9f1c55302e969a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fc982a8f_526579f6","in_reply_to":"cd651c55_d9f48fbb","updated":"2022-05-18 01:52:17.000000000","message":"@Damian\nThe case you described is fine, we can estimate the result of this fix.\n\nOne more interesting thing is that holding 200 routers per nodes can only be a test case. Because during your resource creating procedure, with High probability you will encounter many issues like L3 agent or ovs-agent hanging. The convergence time of resource for routers, ports, flows will be long.\n\nThanks.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"87a123d5a90d6f92af171d535240bdec1a9bd8d6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9b8bcefd_2d446436","in_reply_to":"fc982a8f_526579f6","updated":"2022-05-19 23:46:30.000000000","message":"Hey LIU,\n\nMy test env had 48GB RAM and two L3 agents on separate VMs.\nI performed my tests for two scenarios(neutron\u0027s origin/master with and without this change). Result was the same in both of them.\nI was able to spawn 140 HA routers before I ran out of memory.\nAll routers had functional(pingable) gateway and I haven\u0027t seen any issues with mysql/rabbitmq etc.\nBringing down the whole L3 agent worked fine, all routers switched to the other one successfully.\nBringing L3 agent back \u0026 agent fullsync also worked fine.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"fd8de4d8399161f2e7a699b41157907f4cf5fbdf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5400631b_692bf170","updated":"2022-05-23 02:36:13.000000000","message":"I\u0027ve rebased https://review.opendev.org/c/openstack/neutron/+/834162 on the top of master branch. Could you please download that and rabase this on that. Then the revert work inside this patch will not be needed, you can focus on the real fix.","commit_id":"db1d229404ab9c1b658157368b4b0839e7650c85"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"8d8ac75affebd8a2d17220e28365cd971225be32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9b1e296c_8d177228","updated":"2022-05-20 07:19:56.000000000","message":"Nice work!","commit_id":"db1d229404ab9c1b658157368b4b0839e7650c85"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"195a5351e9cef1f5ca41f869dad0802f7c8dcd57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"86f59318_87d301a8","in_reply_to":"25608eda_39a83566","updated":"2022-05-24 14:25:56.000000000","message":"Done","commit_id":"db1d229404ab9c1b658157368b4b0839e7650c85"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"773ca6ec5e997a877a10cb5945e8b0cc6f43eead","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"25608eda_39a83566","in_reply_to":"5400631b_692bf170","updated":"2022-05-23 20:59:27.000000000","message":"done\n\nI have also added https://review.opendev.org/c/openstack/neutron/+/842983 to the relation chain as we probably don\u0027t want to revert it.","commit_id":"db1d229404ab9c1b658157368b4b0839e7650c85"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"59fb66c800ed75e37e16cb39ef7bd5936863b534","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"49e0e768_390d7697","updated":"2022-05-25 06:19:14.000000000","message":"LGTM, thanks.","commit_id":"5288593fafe6636fc14b8873465866d20de26935"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"63e837178e8cb9a702e8a64bcbc8296ba60d06a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5f2e57b0_11541896","updated":"2022-05-26 15:51:48.000000000","message":"Thanks~","commit_id":"5288593fafe6636fc14b8873465866d20de26935"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"4fb8788c26022f233ae8349d71e46e2cb017c79e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"cb62470d_d8efc188","updated":"2022-05-25 06:22:18.000000000","message":"Wait a bit for experimental jobs.","commit_id":"5288593fafe6636fc14b8873465866d20de26935"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8cd82bdea472d3922372b7d02647c9b74f3b3394","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a52a54f8_60018105","updated":"2022-05-25 06:22:22.000000000","message":"check experimental","commit_id":"5288593fafe6636fc14b8873465866d20de26935"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"4f4c18df370de31f964ddc1afd0cdb7d0b88d9cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"733959b6_4fdd07aa","updated":"2022-05-24 13:34:35.000000000","message":"recheck\n\nneutron.tests.functional.plugins.ml2.drivers.ovn.mech_driver.ovsdb.test_ovsdb_monitor.TestNBDbMonitorOverTcp.test_virtual_port_host_update failed with an error:\nAssertionError: Expected \u0027update_virtual_port_host\u0027 to be called once. Called 0 times.\n\ni have no idea what happened there but it shouldn\u0027t be related to this change...\n","commit_id":"5288593fafe6636fc14b8873465866d20de26935"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"7164ec8b765f343093ea71aec81d24a60b1ee34c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4ef94c35_cc435330","updated":"2022-05-26 17:38:49.000000000","message":"recheck\n\nneutron.tests.functional.services.trunk.drivers.openvswitch.agent.test_trunk_manager.TrunkManagerTestCase.test_connectivity timed out","commit_id":"5288593fafe6636fc14b8873465866d20de26935"}],"neutron/agent/l3/ha_router.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8926cea0274062d7f1e859a6156095f839c32c40","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"2d43428e_df06a03b","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"updated":"2022-05-16 07:51:53.000000000","message":"This is the main change, if this works, IMO, it\u0027s better to do this work only. Let\u0027s have that fully revert patch merged. You can rebase on that.\nhttps://review.opendev.org/c/openstack/neutron/+/834162","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"195a5351e9cef1f5ca41f869dad0802f7c8dcd57","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"73502f3f_e6adfb22","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"in_reply_to":"175b0d6f_a1b289af","updated":"2022-05-24 14:25:56.000000000","message":"I\u0027ve tested it today and everything works fine.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"4a3b0a8f371e1c5e7ae0b1e8a7ffe1d07cd4be44","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"70d1b5b0_0945d2ad","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"in_reply_to":"2d43428e_df06a03b","updated":"2022-05-16 08:30:57.000000000","message":"Or maybe based on https://review.opendev.org/c/openstack/neutron/+/834260, without a full revert, set the \"set_backup_external_gateway_down \u003d False\" for the common use cases.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"87a123d5a90d6f92af171d535240bdec1a9bd8d6","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"efa6a06f_429619a1","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"in_reply_to":"60fee03d_caba0b08","updated":"2022-05-19 23:46:30.000000000","message":"I wrote functional test ensuring that:\n- `net.ipv6.conf.all.addr_gen_mode` is set in ha router namespace regardless its state(active\u0026standby)\n- gateway interface on active HA router do have link-local address\n- gateway interface on standby HA router don\u0027t have link-local address\n\nCan You have a look now?","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"15575f5de357e490644e25f432418cb215ed7919","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"73f34f23_19e40453","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"in_reply_to":"70d1b5b0_0945d2ad","updated":"2022-05-16 12:50:57.000000000","message":"I can fully revert https://review.opendev.org/c/openstack/neutron/+/834162 but can we think twice before doing this? For ex. it also implements _check_and_set_real_state() method which may be useful.\n\nRegarding https://review.opendev.org/c/openstack/neutron/+/834260, I commented it few days ago, I don\u0027t really like this change because it doesn\u0027t really fix our issues, it just allows users to choose whether they want to be affected by [1] or [2] :/\n\n[1] https://bugs.launchpad.net/neutron/+bug/1952907\n[2] https://bugs.launchpad.net/neutron/+bug/1859832","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"36392840d796b736e6a9e67d60120cd052634b5d","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bb2ffa02_ca9763f2","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"in_reply_to":"73f34f23_19e40453","updated":"2022-05-17 12:03:35.000000000","message":"I agree with Damian here. Let\u0027s not make config option like \"please choose which bug do You prefer\" and rather fix both of them 😊\n\nOne thing which I think is important, can You maybe add some functional test to cover that? It seems that there are e.g. tests like that to check if IPv6 port forwarding is disabled in the router\u0027s namespace: https://github.com/openstack/neutron/blob/182044d628314290a38440bab203d27fb9db755d/neutron/tests/functional/agent/l3/test_ha_router.py#L356","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"cb6378b7df4f63b8da1277b5a988014076009e64","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"60fee03d_caba0b08","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"in_reply_to":"bb2ffa02_ca9763f2","updated":"2022-05-17 12:16:41.000000000","message":"thanks Slawek, good idea.\nI don\u0027t have much experience in writing tests but I\u0027ll try to do it this/next week.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"9e691636ba8cc90367e3469b43ad30f95ddbebe5","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        super(HaRouterNamespace, self).create(ipv6_forwarding\u003dFalse)"},{"line_number":64,"context_line":"        # HA router namespaces should not have ip_nonlocal_bind enabled"},{"line_number":65,"context_line":"        ip_lib.set_ip_nonlocal_bind_for_namespace(self.name, 0)"},{"line_number":66,"context_line":"        # Linux should not automatically assign link-local addr for HA routers"},{"line_number":67,"context_line":"        # They are managed by keepalived"},{"line_number":68,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.name)"},{"line_number":69,"context_line":"        cmd \u003d [\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv6.conf.all.addr_gen_mode\u003d1\u0027]"},{"line_number":70,"context_line":"        ip_wrapper.netns.execute(cmd, privsep_exec\u003dTrue)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class HaRouter(router.RouterInfo):"}],"source_content_type":"text/x-python","patch_set":4,"id":"175b0d6f_a1b289af","line":70,"range":{"start_line":66,"start_character":0,"end_line":70,"end_character":56},"in_reply_to":"efa6a06f_429619a1","updated":"2022-05-24 00:29:17.000000000","message":"Thanks for the testing works. I have one questions, have you test the IPv6 traffic status after a HA failover? We have to verify if there are side effects on IPv6.","commit_id":"72026fbd9e6425704ad0f5f57317aae47be02f41"}],"neutron/agent/l3/router_info.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"55b3a737bd8c31690627014aaa03b1e463dc0e1b","unresolved":true,"context_lines":[{"line_number":554,"context_line":"        ip_cidrs \u003d common_utils.fixed_ip_cidrs(fixed_ips)"},{"line_number":555,"context_line":"        self.driver.init_router_port("},{"line_number":556,"context_line":"            interface_name, ip_cidrs, namespace\u003dns_name)"},{"line_number":557,"context_line":"        for fixed_ip in fixed_ips:"},{"line_number":558,"context_line":"            ip_lib.send_ip_addr_adv_notif(ns_name,"},{"line_number":559,"context_line":"                                          interface_name,"},{"line_number":560,"context_line":"                                          fixed_ip[\u0027ip_address\u0027])"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def internal_network_added(self, port):"},{"line_number":563,"context_line":"        network_id \u003d port[\u0027network_id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7232e6d6_6bb9452d","side":"PARENT","line":560,"range":{"start_line":557,"start_character":0,"end_line":560,"end_character":65},"updated":"2022-04-28 02:13:01.000000000","message":"This can not be slightly removed, because legacy router and dvr snat router with centrilized floating IPs rely on this.","commit_id":"6db61d070483df60ffbf992d57cef2c1903fe355"},{"author":{"_account_id":32666,"name":"Damian Dąbrowski","email":"damian@dabrowski.cloud","username":"ddabrowski"},"change_message_id":"cc8e99649bd9a12301ec23c47b3d200027965758","unresolved":false,"context_lines":[{"line_number":554,"context_line":"        ip_cidrs \u003d common_utils.fixed_ip_cidrs(fixed_ips)"},{"line_number":555,"context_line":"        self.driver.init_router_port("},{"line_number":556,"context_line":"            interface_name, ip_cidrs, namespace\u003dns_name)"},{"line_number":557,"context_line":"        for fixed_ip in fixed_ips:"},{"line_number":558,"context_line":"            ip_lib.send_ip_addr_adv_notif(ns_name,"},{"line_number":559,"context_line":"                                          interface_name,"},{"line_number":560,"context_line":"                                          fixed_ip[\u0027ip_address\u0027])"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    def internal_network_added(self, port):"},{"line_number":563,"context_line":"        network_id \u003d port[\u0027network_id\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"8a755909_a09da38f","side":"PARENT","line":560,"range":{"start_line":557,"start_character":0,"end_line":560,"end_character":65},"in_reply_to":"7232e6d6_6bb9452d","updated":"2022-05-12 22:16:01.000000000","message":"You are right, I\u0027ve brought it back.\n\nWe do send too much GARPs in some scenarios and I think we had some issues with OVS due to the amount of GARPs some time ago.\nIt\u0027s something we may want to improve in the future, but it\u0027s probably out of scope for this change.","commit_id":"6db61d070483df60ffbf992d57cef2c1903fe355"}]}
