The BGP route would remain with wrong priority in case when the
tracked is bound to chassis after the route creation. Make sure that
we also track the runtime data changes for tracked ports.

Fixes: ccb0b6b9109c ("controller: Introduce route node.")
Signed-off-by: Ales Musil <amu...@redhat.com>
---
 controller/ovn-controller.c | 22 ++++++++++++++++++++++
 tests/system-ovn.at         |  1 -
 2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
index 4266d9a9c..6ca4e1575 100644
--- a/controller/ovn-controller.c
+++ b/controller/ovn-controller.c
@@ -5119,6 +5119,28 @@ route_runtime_data_handler(struct engine_node *node, 
void *data)
                  * request recompute. */
                 return false;
             }
+
+            /* When the port is removed we went from local to remote,
+             * otherwise it's from remote to local. */
+            struct sset *tracked_ports =
+                lport->tracked_type == TRACKED_RESOURCE_REMOVED
+                ? &re_data->tracked_ports_local
+                : &re_data->tracked_ports_remote;
+
+            const char *name = lport->pb->logical_port;
+            if (sset_contains(tracked_ports, name)) {
+                /* XXX: Until we get I-P support for route exchange we need to
+                 * request recompute. */
+                return false;
+            }
+
+            const char *dp_name = smap_get(&lport->pb->options,
+                                           "distributed-port");
+            if (dp_name && sset_contains(tracked_ports, dp_name)) {
+                /* XXX: Until we get I-P support for route exchange we need to
+                 * request recompute. */
+                return false;
+            }
         }
     }
 
diff --git a/tests/system-ovn.at b/tests/system-ovn.at
index 5fa740cfb..6e71286ad 100644
--- a/tests/system-ovn.at
+++ b/tests/system-ovn.at
@@ -16388,7 +16388,6 @@ check ovn-nbctl lr-nat-add pr1 dnat_and_snat 192.0.2.10 
10.0.0.2
 check ovn-nbctl lsp-add p2 vif2 \
     -- lsp-set-addresses vif2 "00:00:ff:ff:ff:02 198.51.100.10"
 check ovn-nbctl lr-route-add internet 198.51.100.0/24 192.0.2.3
-        .ovnsb_idl = re->sb_idl,
 
 # Configure external connectivity.
 check ovs-vsctl set Open_vSwitch . 
external-ids:ovn-bridge-mappings=phynet:br-ext
-- 
2.49.0

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to