On Thu, Nov 6, 2025 at 8:29 AM Dumitru Ceara <[email protected]> wrote: > > On 10/29/25 7:05 PM, Han Zhou wrote: > > The encaps_cleanup function keeps non-tunnel ports in the ports array, > > allowing OVN-created tunnel ports to be cleaned up. Previously, it only > > identified regular OVN tunnels (via OVN_TUNNEL_ID), so EVPN tunnel ports > > were incorrectly kept instead of being cleaned up. > > > > Add a check for the "ovn-evpn-tunnel" external_id to properly identify > > EVPN tunnels so they can be cleaned up along with other OVN tunnels. > > > > Signed-off-by: Han Zhou <[email protected]> > > --- > > Hi Han, > > Thanks for the fix! > > > controller/encaps.c | 9 +++++++-- > > 1 file changed, 7 insertions(+), 2 deletions(-) > > > > diff --git a/controller/encaps.c b/controller/encaps.c > > index 288959180402..f53c62f9ed00 100644 > > --- a/controller/encaps.c > > +++ b/controller/encaps.c > > @@ -851,8 +851,13 @@ encaps_cleanup(struct ovsdb_idl_txn *ovs_idl_txn, > > = xmalloc(sizeof *br_int->ports * br_int->n_ports); > > size_t n = 0; > > for (size_t i = 0; i < br_int->n_ports; i++) { > > - if (!smap_get(&br_int->ports[i]->external_ids, OVN_TUNNEL_ID)) { > > - ports[n++] = br_int->ports[i]; > > + struct ovsrec_port *port = br_int->ports[i]; > > + bool is_ovn_tunnel = smap_get(&port->external_ids, OVN_TUNNEL_ID); > > + bool is_evpn_tunnel = smap_get_bool(&port->external_ids, > > + "ovn-evpn-tunnel", false); > > + > > + if (!is_ovn_tunnel && !is_evpn_tunnel) { > > I think I'd just skip the local variables, i.e.: > > if (!smap_get(&port->external_ids, OVN_TUNNEL_ID) && > !smap_get_bool(&port->external_ids, "ovn-evpn-tunnel", false)) { > > With that: > > Acked-by: Dumitru Ceara <[email protected]>
Thanks Dumitru. I updated as you suggested and pushed to main and backported to 25.09. > > > + ports[n++] = port; /* Keep non-tunnel ports */ > > } > > } > > > > Thanks, > Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
