← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2097747] Re: neutron not update ovn routers

 

[Expired for neutron because there has been no activity for 60 days.]

** Changed in: neutron
       Status: Incomplete => Expired

-- 
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:
  Expired

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)
  ```

  --- 
  Oh~!, I was think it's a neutron bug , but now i think it's a ovn bug.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2097747/+subscriptions



References