)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"95c35cdb11ebd40379e1fa6ed38c045205dbe334","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d0f04a9d_c2465ade","updated":"2022-01-18 08:37:44.000000000","message":"Reading the bug description, the problem should be in [1][2]. If [2] is returning False (thus [1] is setting accept_ra\u003d1), this is because the IPv6 address is in the keepalived config in case of being backup node. Is that the case that is happening in your environment?\n\nIf not, [1] should be setting accept_ra\u003d0.\n\n[1]https://github.com/openstack/neutron/blob/a9730576b1d86e995ce4cf0db165a9830e2ba800/neutron/agent/l3/ha_router.py#L328\n[2]https://github.com/openstack/neutron/blob/a9730576b1d86e995ce4cf0db165a9830e2ba800/neutron/agent/l3/ha_router.py#L311","commit_id":"57a764ae77c908a19a1c65df4284d7dba9f5fc7e"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"af77ec77aef3a6513d03973b541a7202b4e9b750","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"62d29ca9_2b59e3b7","in_reply_to":"218465de_a6c6a9f5","updated":"2022-11-24 12:23:12.000000000","message":"Done","commit_id":"57a764ae77c908a19a1c65df4284d7dba9f5fc7e"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"bf82cba98153e01c6dc62a69cfacfc64197ade88","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"218465de_a6c6a9f5","in_reply_to":"c174b9b8_a2761674","updated":"2022-01-18 09:23:50.000000000","message":"Okay. I just had a second look at my patch and you are right. The patch as is \"only\" fixes accept_ra on a router failover but after an agent restart the accept_ra value is getting set to wrong value again on backup routers.\n\nSo we need a kind of refresh function to get the right value on a failover and also fix the `_disable_ipv6_addressing_on_interface`.\n\nAt the moment I am thinking about disabling accept_ra always in `_disable_ipv6_addressing_on_interface` as all routers start as backup and one of them will trigger the refresh function when it gets promoted to primary.","commit_id":"57a764ae77c908a19a1c65df4284d7dba9f5fc7e"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"1849da77124a5c2061c2dcea767417289b79524f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c174b9b8_a2761674","in_reply_to":"d0f04a9d_c2465ade","updated":"2022-01-18 08:52:20.000000000","message":"Hi Rodolfo,\nyes I think that their might be work todo in those function aswell.\nThe problem I had when \"fixing\" those functions was that the correct state only got applied when I restart the neutron-l3-agent. \nSo it seems that on a new router `_disable_ipv6_addressing_on_interface` is always getting executed as being standby and is also not getting executed on a router failover.\n\nThats the reason I added the `refresh_accept_ra` function, this handles all cases in my test environment. \nOn a fresh router the value gets applied when the first router switches to primary as well as when a failover occurs.\nI am not sure if thats the best solution to this problem.\n\n\nA thing that came to my mind was maybe its easier to accept_ra on all interfaces by default and bring all qr- interfaces down the same way we do with the external gw port.\n\n\nWhat would be the best approach in your mind to set accept_ra correct in all circumstances?","commit_id":"57a764ae77c908a19a1c65df4284d7dba9f5fc7e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"1c2657dace8073ab9da63a84840583ef00e68211","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"b69dcc19_7c17db10","updated":"2022-01-21 09:16:14.000000000","message":"Basically I am fine with it, could you please check if you can add tests, perhaps functional for it?","commit_id":"40b9564104de04f9d2187f7ffbfa9e0548397bbc"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"835b19453cb0d9d71f44ea5a9a1dda5b63582a92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9d1e89bf_bac9e475","in_reply_to":"489f9d25_12d434ce","updated":"2022-11-25 23:20:59.000000000","message":"I think I found what needed to be done to get functional testing for this patch.","commit_id":"40b9564104de04f9d2187f7ffbfa9e0548397bbc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"03245a94a58472dcc2b63d3471c81eb60b18a879","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"489f9d25_12d434ce","in_reply_to":"a8bb7aa0_b7b11c4a","updated":"2022-11-25 10:59:35.000000000","message":"as a lot of things are mocked in unit test environment I am not sure what happens there. As I wrote previously worth to check functional or fullstack tests also for it:\nhttps://opendev.org/openstack/neutron/src/branch/master/neutron/tests/fullstack/test_l3_agent.py#L448\n\nhttps://opendev.org/openstack/neutron/src/branch/master/neutron/tests/functional/agent/l3/test_ha_router.py","commit_id":"40b9564104de04f9d2187f7ffbfa9e0548397bbc"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"34de85373eaabb5c87757afd4c48b657114c4469","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c20c8268_934f1983","in_reply_to":"b69dcc19_7c17db10","updated":"2022-01-31 11:11:48.000000000","message":"I am not really familiar with functional tests in neutron.\nCould you point me in the right direction and tell me what you would expect?","commit_id":"40b9564104de04f9d2187f7ffbfa9e0548397bbc"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"c1b91af916b43468a363112b0cd5548bf90baf2f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a8bb7aa0_b7b11c4a","in_reply_to":"beedab85_a5caeef8","updated":"2022-11-24 11:29:13.000000000","message":"Hi Lajos,\nI just found time to look into this issue again and rebased the change request to master.\nAfter looking into how to implement testing for this I found the following code: https://opendev.org/openstack/neutron/src/branch/master/neutron/tests/functional/agent/l3/test_ha_router.py#L549-L551\n\nWhich already seems to implement the exact test case. So I am wondering a bit how the tests are working at the moment even thought the sysctl values for accept_ra are only getting set once on router creation.","commit_id":"40b9564104de04f9d2187f7ffbfa9e0548397bbc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"dc7540858951e1111aa6ee574ee0a1689d0ebe66","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"beedab85_a5caeef8","in_reply_to":"c20c8268_934f1983","updated":"2022-02-01 10:53:55.000000000","message":"Please check if similar tests can really increase the coverage for the case in your bug: https://opendev.org/openstack/neutron/src/branch/master/neutron/tests/functional/agent/l3/test_ha_router.py#L152-L161","commit_id":"40b9564104de04f9d2187f7ffbfa9e0548397bbc"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"71e7f43a6ec6ea00be5a2eaf26c2b8f5c0b5449b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"aa42b677_3b0757e7","updated":"2023-07-25 14:10:00.000000000","message":"Could you please rebase this patch on top of master?","commit_id":"67f85c726593161f9099295ca9f4938905a53e0f"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"025e3bc395ca44946e923832115563c24d603bb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"47409553_d498df99","in_reply_to":"aa42b677_3b0757e7","updated":"2023-09-12 07:16:41.000000000","message":"Patch is rebased.","commit_id":"67f85c726593161f9099295ca9f4938905a53e0f"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"05c88938638c9657d5475b4331c527c8156b7128","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"9b6e9644_20494ba7","updated":"2023-09-12 09:59:51.000000000","message":"The zuul failure does not seem related to my changes imo.\nCan I just recheck or what should be done?","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"767dc64e3e73cbb7f344c73f4491be62296bdec7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6d69d71e_56808bb2","updated":"2024-12-17 08:47:05.000000000","message":"d rx","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"33e2113411e2ab9e28f8d983f9f01471ad023d90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"65ea751e_88696b60","updated":"2024-03-06 08:51:04.000000000","message":"ping Brian, if you have some time to check this patch","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a94938e9ebecc662b76ade2e2b5dbeb3c634c49c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"45f5413b_f5cc6efe","updated":"2023-09-19 12:13:27.000000000","message":"recheck\ntest_mac_learning_vms_on_same_network failure is not related","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"364f637b7be9ccb560fd6133cfccb9d2e2e6c7af","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"33cafc43_617a9562","in_reply_to":"65ea751e_88696b60","updated":"2024-04-30 11:00:12.000000000","message":"Any update on how to move forward with this patch would be appreciated.","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"7ff18b62aac87c2479e85d3e362ecefbcbf4c1bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3c36ab12_71bc6525","in_reply_to":"9b6e9644_20494ba7","updated":"2023-09-20 05:11:52.000000000","message":"Done","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"}],"neutron/agent/l3/ha.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"109238616cb44866c847d79c919fed9fa7a64766","unresolved":true,"context_lines":[{"line_number":195,"context_line":"        elif state \u003d\u003d \u0027backup\u0027:"},{"line_number":196,"context_line":"            ri.refresh_accept_ra(accept_ra\u003dFalse)"},{"line_number":197,"context_line":"        else:"},{"line_number":198,"context_line":"            LOG.warning(\u0027Router %s has status %s, \u0027"},{"line_number":199,"context_line":"                        \u0027no action to router gateway device.\u0027,"},{"line_number":200,"context_line":"                        router_id, state)"},{"line_number":201,"context_line":"        # TODO(dalvarez): Fix bug 1677279 by moving the IPv6 parameters"}],"source_content_type":"text/x-python","patch_set":10,"id":"6f8159c8_2522daf8","line":198,"range":{"start_line":198,"start_character":39,"end_line":198,"end_character":45},"updated":"2023-12-08 21:01:59.000000000","message":"s/state","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"}],"neutron/agent/l3/ha_router.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8e1af4085682fc7286b923c29319fc59806bac91","unresolved":true,"context_lines":[{"line_number":544,"context_line":"        if accept_ra:"},{"line_number":545,"context_line":"            flag \u003d n_consts.ACCEPT_RA_WITHOUT_FORWARDING"},{"line_number":546,"context_line":"        for internal_port in self.internal_ports:"},{"line_number":547,"context_line":"            interface_name \u003d self.get_internal_device_name("},{"line_number":548,"context_line":"                internal_port[\u0027id\u0027])"},{"line_number":549,"context_line":"            self.driver.configure_ipv6_ra(self.ha_namespace, interface_name,"},{"line_number":550,"context_line":"                                          flag)"}],"source_content_type":"text/x-python","patch_set":9,"id":"605ad4c4_a8da704f","line":547,"range":{"start_line":547,"start_character":34,"end_line":547,"end_character":58},"updated":"2022-12-23 15:42:08.000000000","message":"What about the GW interface if there is no IPv6 address? This interface should have accept_ra\u003d2 [1]\n\n[1]https://github.com/openstack/neutron/blob/41fcce3280249bb4215291542fe4a27c449b7bb8/neutron/agent/l3/router_info.py#L795-L804","commit_id":"67f85c726593161f9099295ca9f4938905a53e0f"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"0f26122dbaf9a8f759c2b55069ad375b62933495","unresolved":true,"context_lines":[{"line_number":544,"context_line":"        if accept_ra:"},{"line_number":545,"context_line":"            flag \u003d n_consts.ACCEPT_RA_WITHOUT_FORWARDING"},{"line_number":546,"context_line":"        for internal_port in self.internal_ports:"},{"line_number":547,"context_line":"            interface_name \u003d self.get_internal_device_name("},{"line_number":548,"context_line":"                internal_port[\u0027id\u0027])"},{"line_number":549,"context_line":"            self.driver.configure_ipv6_ra(self.ha_namespace, interface_name,"},{"line_number":550,"context_line":"                                          flag)"}],"source_content_type":"text/x-python","patch_set":9,"id":"32d5c736_eab08a4f","line":547,"range":{"start_line":547,"start_character":34,"end_line":547,"end_character":58},"in_reply_to":"0d3bd436_b0cdaa3f","updated":"2023-07-18 08:43:30.000000000","message":"Any feedback on this @Rodolfo?","commit_id":"67f85c726593161f9099295ca9f4938905a53e0f"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"7b2bb3bc0f83d43ca975f33063565ac0246b63f3","unresolved":true,"context_lines":[{"line_number":544,"context_line":"        if accept_ra:"},{"line_number":545,"context_line":"            flag \u003d n_consts.ACCEPT_RA_WITHOUT_FORWARDING"},{"line_number":546,"context_line":"        for internal_port in self.internal_ports:"},{"line_number":547,"context_line":"            interface_name \u003d self.get_internal_device_name("},{"line_number":548,"context_line":"                internal_port[\u0027id\u0027])"},{"line_number":549,"context_line":"            self.driver.configure_ipv6_ra(self.ha_namespace, interface_name,"},{"line_number":550,"context_line":"                                          flag)"}],"source_content_type":"text/x-python","patch_set":9,"id":"0d3bd436_b0cdaa3f","line":547,"range":{"start_line":547,"start_character":34,"end_line":547,"end_character":58},"in_reply_to":"605ad4c4_a8da704f","updated":"2023-01-02 09:16:03.000000000","message":"I was thinking that I dont touch any GW logic here? This should only touch qr- interfaces and sets the same accept_ra 1 or 0 as before.\nHere [1] is how we set accept_ra for qr- interfaces before which is just 1 or 0.\n\n\n[1]https://github.com/openstack/neutron/blob/41fcce3280249bb4215291542fe4a27c449b7bb8/neutron/agent/l3/ha_router.py#L347-L354","commit_id":"67f85c726593161f9099295ca9f4938905a53e0f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e4a552312f485dcf7d3c59408aebb9f428297f15","unresolved":true,"context_lines":[{"line_number":351,"context_line":"        if self._should_delete_ipv6_lladdr(ipv6_lladdr):"},{"line_number":352,"context_line":"            device.addr.flush(n_consts.IP_VERSION_6)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        self.driver.configure_ipv6_ra(namespace, interface_name,"},{"line_number":355,"context_line":"                                      n_consts.ACCEPT_RA_DISABLED)"},{"line_number":356,"context_line":"        self._remove_vip(ipv6_lladdr)"},{"line_number":357,"context_line":"        self._add_vip(ipv6_lladdr, interface_name, scope\u003d\u0027link\u0027)"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"97a4a0de_d6a5975a","line":355,"range":{"start_line":354,"start_character":8,"end_line":355,"end_character":66},"updated":"2023-12-05 08:34:22.000000000","message":"Hi Brian. Can you check this change? I\u0027m not sure if that is OK after reading what is written in [1]. Thanks!\n\n[1]https://review.opendev.org/c/openstack/neutron/+/613396/7/neutron/agent/l3/ha_router.py","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"bc5a1ef37e8d89e7ee56fbbff2a5723f725c9aab","unresolved":true,"context_lines":[{"line_number":351,"context_line":"        if self._should_delete_ipv6_lladdr(ipv6_lladdr):"},{"line_number":352,"context_line":"            device.addr.flush(n_consts.IP_VERSION_6)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        self.driver.configure_ipv6_ra(namespace, interface_name,"},{"line_number":355,"context_line":"                                      n_consts.ACCEPT_RA_DISABLED)"},{"line_number":356,"context_line":"        self._remove_vip(ipv6_lladdr)"},{"line_number":357,"context_line":"        self._add_vip(ipv6_lladdr, interface_name, scope\u003d\u0027link\u0027)"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"848b5638_5c8303af","line":355,"range":{"start_line":354,"start_character":8,"end_line":355,"end_character":66},"in_reply_to":"0c379cae_57330233","updated":"2024-12-17 01:16:18.000000000","message":"I guess the only thing I\u0027m confused about is that we are removing the ACCEPT_RA_WITHOUT_FORWARDING code here, but below in refresh_accept_ra() it does both of these. So I guess my question is is removing this required? It could be Ok. It\u0027s been so long since I looked at this code the best thing might be to rebase this and run a bunch of rechecks.","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"feebac0cf66fa23e154cc79cff17181fc79b53a5","unresolved":true,"context_lines":[{"line_number":351,"context_line":"        if self._should_delete_ipv6_lladdr(ipv6_lladdr):"},{"line_number":352,"context_line":"            device.addr.flush(n_consts.IP_VERSION_6)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        self.driver.configure_ipv6_ra(namespace, interface_name,"},{"line_number":355,"context_line":"                                      n_consts.ACCEPT_RA_DISABLED)"},{"line_number":356,"context_line":"        self._remove_vip(ipv6_lladdr)"},{"line_number":357,"context_line":"        self._add_vip(ipv6_lladdr, interface_name, scope\u003d\u0027link\u0027)"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"53573f8a_e10e35a8","line":355,"range":{"start_line":354,"start_character":8,"end_line":355,"end_character":66},"in_reply_to":"0fb6d022_c5c310c2","updated":"2024-12-18 22:40:08.000000000","message":"Thanks for answering Max. I\u0027m trying to trace back in the code, but (to me) it looks like this can get called when an internal port/network is updated. Maybe that\u0027s why Rodolfo flagged it. I\u0027d have to test the patch to see, just don\u0027t have a ton of extra time.","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":34380,"name":"Maximilian Stinsky","email":"maximilian@stinsky.com","username":"mstinsky"},"change_message_id":"767dc64e3e73cbb7f344c73f4491be62296bdec7","unresolved":true,"context_lines":[{"line_number":351,"context_line":"        if self._should_delete_ipv6_lladdr(ipv6_lladdr):"},{"line_number":352,"context_line":"            device.addr.flush(n_consts.IP_VERSION_6)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        self.driver.configure_ipv6_ra(namespace, interface_name,"},{"line_number":355,"context_line":"                                      n_consts.ACCEPT_RA_DISABLED)"},{"line_number":356,"context_line":"        self._remove_vip(ipv6_lladdr)"},{"line_number":357,"context_line":"        self._add_vip(ipv6_lladdr, interface_name, scope\u003d\u0027link\u0027)"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"0fb6d022_c5c310c2","line":355,"range":{"start_line":354,"start_character":8,"end_line":355,"end_character":66},"in_reply_to":"848b5638_5c8303af","updated":"2024-12-17 08:47:05.000000000","message":"Hi Brian,\n\nI wrote this a very long time ago so my memory is not super fresh on this.\nBut if I am not mistaking this code here is only getting executed once when a rotuer is getting created. Therefore I delete the ACCEPT_RA_WITHOUT_FORWARDING part and always disable accept_ra for every new router because we dont know in this step yet if a router will be primary or backup.\n\nAfter that we let the refresh_accept_ra function set the correct value in the moment a router changes its state.","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"109238616cb44866c847d79c919fed9fa7a64766","unresolved":true,"context_lines":[{"line_number":351,"context_line":"        if self._should_delete_ipv6_lladdr(ipv6_lladdr):"},{"line_number":352,"context_line":"            device.addr.flush(n_consts.IP_VERSION_6)"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":"        self.driver.configure_ipv6_ra(namespace, interface_name,"},{"line_number":355,"context_line":"                                      n_consts.ACCEPT_RA_DISABLED)"},{"line_number":356,"context_line":"        self._remove_vip(ipv6_lladdr)"},{"line_number":357,"context_line":"        self._add_vip(ipv6_lladdr, interface_name, scope\u003d\u0027link\u0027)"},{"line_number":358,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"0c379cae_57330233","line":355,"range":{"start_line":354,"start_character":8,"end_line":355,"end_character":66},"in_reply_to":"97a4a0de_d6a5975a","updated":"2023-12-08 21:01:59.000000000","message":"Hi Rodolfo - it\u0027s on my list just been busy with other work.","commit_id":"3198f21eb2f81124dce5c65691f062f6ccbd7042"}]}
