diff mbox series

[ovs-dev,3/6] controller: Fix flows not deleted when deleting peer port.

Message ID 20241114135756.1082588-4-xsimonar@redhat.com
State Changes Requested
Headers show
Series Compare I+P flows with with recompute ones. | expand

Checks

Context Check Description
ovsrobot/apply-robot success apply and check: success
ovsrobot/github-robot-_ovn-kubernetes success github build: passed
ovsrobot/github-robot-_Build_and_Test fail github build: failed

Commit Message

Xavier Simonart Nov. 14, 2024, 1:57 p.m. UTC
The issue was identified by comparing flows from I+P and recomputes.
It will be automatically checked when this comparison is done automatically
for all tests in a subsequent patch.

Signed-off-by: Xavier Simonart <xsimonar@redhat.com>
---
 controller/physical.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff mbox series

Patch

diff --git a/controller/physical.c b/controller/physical.c
index 6b93696fa..eede87d8d 100644
--- a/controller/physical.c
+++ b/controller/physical.c
@@ -2420,6 +2420,13 @@  physical_handle_flows_for_lport(const struct sbrec_port_binding *pb,
         physical_multichassis_reprocess(pb, p_ctx, flow_table);
     }
 
+    if (removed && !strcmp(pb->type, "patch")) {
+        const struct sbrec_port_binding *peer =
+            get_binding_peer(p_ctx->sbrec_port_binding_by_name, pb);
+            if (peer) {
+                ofctrl_remove_flows(flow_table, &peer->header_.uuid);
+            }
+    }
     if (!removed) {
         physical_eval_port_binding(p_ctx, pb, flow_table);
         if (!strcmp(pb->type, "patch")) {