Public bug reported: openstack relase: stable/wallaby
related bugs: https://bugs.launchpad.net/neutron/+bug/2058433 https://bugs.launchpad.net/neutron/+bug/2035281 In bug(2058433), I encountered a multi-subnet issue, which caused interconnection issues between multiple subnets. I solved it by adding multiple fixed_ips to a router_gateway_port. In bug(2035281), It fundamentally solved my problem, but since I'm in a production environment, I can't update the source code. ok, that's fine. But I found a new bug when I add/update/delete multiple fixed_ips on router_gateway_port . In the _update_lrouter_port function in ovn_client.py, it will find all cidr networks through the _get_nets_and_ipv6_ra_confs_for_router_port function, which will be updated to ovn lsp-route. When I add fixed_ip multiple times to cause the port to be updated, the route will be repeated. like below ```shell docker exec -it ovn_nb_db ovn-nbctl lr-route-list c728637d-b8c4-4dd5-b897-28e18b89656a # xx.xxx is a same prefix. IPv4 Routes 172.16.0.0/24 10.0.0.10 dst-ip 0.0.0.0/0 xx.xxx.177.129 dst-ip 0.0.0.0/0 xx.xxx.177.129 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.234.1 dst-ip 0.0.0.0/0 xx.xxx.234.1 dst-ip ``` But it won't make any difference ok, when i delete a fixed_ip on router_gateway_port, it still have a route. When I add multiple fixed_ips, it will turn into emcp mode when routing, and a route will be randomly selected from my several gateways. So when I delete a fixed_ip but the route still exists, it will not be able to find the corresponding gateway in ecmp mode. I think this is because there is only a method in the code for adding, not updating or deleting. Therefore, it will lead to repeated addition or inability to delete in function self._nb_idl.update_lrouter_port, It is ``` for col, val in self.columns.items(): if col == 'gateway_chassis': col, val = _add_gateway_chassis(self.api, txn, self.name, val) setattr(lrouter_port, col, val) ``` ** Affects: neutron Importance: Undecided Status: New ** Tags: ovn ** Tags added: ovn ** Description changed: openstack relase: stable/wallaby - related bugs: https://bugs.launchpad.net/neutron/+bug/2058433 - https://bugs.launchpad.net/neutron/+bug/2035281 + related bugs: https://bugs.launchpad.net/neutron/+bug/2058433 + https://bugs.launchpad.net/neutron/+bug/2035281 In bug(2058433), I encountered a multi-subnet issue, which caused interconnection issues between multiple subnets. I solved it by adding multiple fixed_ips to a router_gateway_port. In bug(2035281), It fundamentally solved my problem, but since I'm in a production environment, I can't update the source code. ok, that's fine. But I found a new bug when I added multiple fixed_ips on router_gateway_port . In the _update_lrouter_port function in ovn_client.py, it will find all cidr networks through the _get_nets_and_ipv6_ra_confs_for_router_port - function, which will be updated to ovn lsp_router. + function, which will be updated to ovn lsp-route. When I add fixed_ip multiple times to cause the port to be updated, the route will be repeated. like below ```shell docker exec -it ovn_nb_db ovn-nbctl lr-route-list c728637d-b8c4-4dd5-b897-28e18b89656a - # xx.xxx is a same prefix. + # xx.xxx is a same prefix. IPv4 Routes - 172.16.0.0/24 10.0.0.10 dst-ip - 0.0.0.0/0 xx.xxx.177.129 dst-ip - 0.0.0.0/0 xx.xxx.177.129 dst-ip - 0.0.0.0/0 xx.xxx.203.193 dst-ip - 0.0.0.0/0 xx.xxx.203.193 dst-ip - 0.0.0.0/0 xx.xxx.203.193 dst-ip - 0.0.0.0/0 xx.xxx.203.65 dst-ip - 0.0.0.0/0 xx.xxx.203.65 dst-ip - 0.0.0.0/0 xx.xxx.203.65 dst-ip - 0.0.0.0/0 xx.xxx.234.1 dst-ip - 0.0.0.0/0 xx.xxx.234.1 dst-ip + 172.16.0.0/24 10.0.0.10 dst-ip + 0.0.0.0/0 xx.xxx.177.129 dst-ip + 0.0.0.0/0 xx.xxx.177.129 dst-ip + 0.0.0.0/0 xx.xxx.203.193 dst-ip + 0.0.0.0/0 xx.xxx.203.193 dst-ip + 0.0.0.0/0 xx.xxx.203.193 dst-ip + 0.0.0.0/0 xx.xxx.203.65 dst-ip + 0.0.0.0/0 xx.xxx.203.65 dst-ip + 0.0.0.0/0 xx.xxx.203.65 dst-ip + 0.0.0.0/0 xx.xxx.234.1 dst-ip + 0.0.0.0/0 xx.xxx.234.1 dst-ip ``` But it won't make any difference ok, when i delete a fixed_ip on router_gateway_port, it still have a route. When I add multiple fixed_ips, it will turn into emcp mode when routing, and a route will be randomly selected from my several gateways. So when I delete a fixed_ip but the route still exists, it will not be able to find the corresponding gateway in ecmp mode. - - I think this is because there is only a method in the code for adding, not updating or deleting. Therefore, it will lead to repeated addition or inability to delete - + I think this is because there is only a method in the code for adding, + not updating or deleting. Therefore, it will lead to repeated addition + or inability to delete in function self._nb_idl.update_lrouter_port, It is ``` - for col, val in self.columns.items(): - if col == 'gateway_chassis': - col, val = _add_gateway_chassis(self.api, txn, self.name, - val) - setattr(lrouter_port, col, val) + for col, val in self.columns.items(): + if col == 'gateway_chassis': + col, val = _add_gateway_chassis(self.api, txn, self.name, + val) + setattr(lrouter_port, col, val) ``` ** Description changed: openstack relase: stable/wallaby related bugs: https://bugs.launchpad.net/neutron/+bug/2058433 https://bugs.launchpad.net/neutron/+bug/2035281 In bug(2058433), I encountered a multi-subnet issue, which caused interconnection issues between multiple subnets. I solved it by adding multiple fixed_ips to a router_gateway_port. In bug(2035281), It fundamentally solved my problem, but since I'm in a production environment, I can't update the source code. - ok, that's fine. But I found a new bug when I added multiple fixed_ips - on router_gateway_port . + ok, that's fine. But I found a new bug when I add/update/delete multiple + fixed_ips on router_gateway_port . In the _update_lrouter_port function in ovn_client.py, it will find all cidr networks through the _get_nets_and_ipv6_ra_confs_for_router_port function, which will be updated to ovn lsp-route. When I add fixed_ip multiple times to cause the port to be updated, the route will be repeated. like below ```shell docker exec -it ovn_nb_db ovn-nbctl lr-route-list c728637d-b8c4-4dd5-b897-28e18b89656a # xx.xxx is a same prefix. IPv4 Routes 172.16.0.0/24 10.0.0.10 dst-ip 0.0.0.0/0 xx.xxx.177.129 dst-ip 0.0.0.0/0 xx.xxx.177.129 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.234.1 dst-ip 0.0.0.0/0 xx.xxx.234.1 dst-ip ``` But it won't make any difference ok, when i delete a fixed_ip on router_gateway_port, it still have a route. When I add multiple fixed_ips, it will turn into emcp mode when routing, and a route will be randomly selected from my several gateways. So when I delete a fixed_ip but the route still exists, it will not be able to find the corresponding gateway in ecmp mode. I think this is because there is only a method in the code for adding, not updating or deleting. Therefore, it will lead to repeated addition or inability to delete in function self._nb_idl.update_lrouter_port, It is ``` for col, val in self.columns.items(): if col == 'gateway_chassis': col, val = _add_gateway_chassis(self.api, txn, self.name, val) setattr(lrouter_port, col, val) ``` -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/2097747 Title: neutron not update ovn routers Status in neutron: New Bug description: openstack relase: stable/wallaby related bugs: https://bugs.launchpad.net/neutron/+bug/2058433 https://bugs.launchpad.net/neutron/+bug/2035281 In bug(2058433), I encountered a multi-subnet issue, which caused interconnection issues between multiple subnets. I solved it by adding multiple fixed_ips to a router_gateway_port. In bug(2035281), It fundamentally solved my problem, but since I'm in a production environment, I can't update the source code. ok, that's fine. But I found a new bug when I add/update/delete multiple fixed_ips on router_gateway_port . In the _update_lrouter_port function in ovn_client.py, it will find all cidr networks through the _get_nets_and_ipv6_ra_confs_for_router_port function, which will be updated to ovn lsp-route. When I add fixed_ip multiple times to cause the port to be updated, the route will be repeated. like below ```shell docker exec -it ovn_nb_db ovn-nbctl lr-route-list c728637d-b8c4-4dd5-b897-28e18b89656a # xx.xxx is a same prefix. IPv4 Routes 172.16.0.0/24 10.0.0.10 dst-ip 0.0.0.0/0 xx.xxx.177.129 dst-ip 0.0.0.0/0 xx.xxx.177.129 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.193 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.203.65 dst-ip 0.0.0.0/0 xx.xxx.234.1 dst-ip 0.0.0.0/0 xx.xxx.234.1 dst-ip ``` But it won't make any difference ok, when i delete a fixed_ip on router_gateway_port, it still have a route. When I add multiple fixed_ips, it will turn into emcp mode when routing, and a route will be randomly selected from my several gateways. So when I delete a fixed_ip but the route still exists, it will not be able to find the corresponding gateway in ecmp mode. I think this is because there is only a method in the code for adding, not updating or deleting. Therefore, it will lead to repeated addition or inability to delete in function self._nb_idl.update_lrouter_port, It is ``` for col, val in self.columns.items(): if col == 'gateway_chassis': col, val = _add_gateway_chassis(self.api, txn, self.name, val) setattr(lrouter_port, col, val) ``` To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/2097747/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp