Make sure the tunnel_port and has_unknown is reset during cleanup
otherwise we might end up with stale data during I-P processing.

Fixes: a623606052ea ("northd: Refactor lflow management into a separate 
module.")
Fixes: b337750e45be ("northd: Incremental processing of VIF changes in 'northd' 
node.")
Signed-off-by: Ales Musil <[email protected]>
---
 northd/northd.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/northd/northd.c b/northd/northd.c
index cbfce95fe..e6a2333b5 100644
--- a/northd/northd.c
+++ b/northd/northd.c
@@ -1163,6 +1163,7 @@ ovn_port_cleanup(struct ovn_port *port)
     if (port->tunnel_key) {
         ovs_assert(port->od);
         ovn_free_tnlid(&port->od->port_tnlids, port->tunnel_key);
+        port->tunnel_key = 0;
     }
     for (int i = 0; i < port->n_lsp_addrs; i++) {
         destroy_lport_addresses(&port->lsp_addrs[i]);
@@ -1170,6 +1171,7 @@ ovn_port_cleanup(struct ovn_port *port)
     free(port->lsp_addrs);
     port->n_lsp_addrs = 0;
     port->lsp_addrs = NULL;
+    port->has_unknown = false;
 
     if (port->peer) {
         port->peer->peer = NULL;
-- 
2.55.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to