On Tue, Oct 20, 2026 at 9:17 AM Xavier Simonart <[email protected]> wrote:

> Hi Ales, Rosemarie
>
> Thanks for the patch.
> The patch itself fixes the north issue causing a continuous insert/delete
> conflict between ovn-controller-vtep and ovn-northd.
> However, a similar issue (a continuous insert/delete loop) also exists, in
> some cases, with controller-vtep alone.
> Since this might be considered a different issue, I'll give an Ack and
> will send a vtep-related patch and some tests highlighting the issue later
> today.
>
> Acked-by: Xavier Simonart <[email protected]>
> Thanks
> Xavier
>
>
> On Mon, Oct 19, 2026 at 9:38 PM Rosemarie O'Riorden via dev <
> [email protected]> wrote:
>
>> Thank you Ales!
>>
>> Acked-by: Rosemarie O'Riorden <[email protected]>
>>
>> On 10/19/26 3:25 PM, Ales Musil via dev wrote:
>> > Do not attempt to remove FDB learned via VTEP LSP with no address,
>> > otherwise we end up in a loop where the FDBs are learned through VTEP
>> > and removed right away.
>> >
>> > Fixes: 03fd372c879b ("northd: Properly cleanup FDB entries.")
>> > Signed-off-by: Ales Musil <[email protected]>
>> > ---
>> >   northd/northd.c              | 13 +++++++++----
>> >   tests/ovn-controller-vtep.at |  7 +++++++
>> >   2 files changed, 16 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/northd/northd.c b/northd/northd.c
>> > index 7c4cb5a62..27683fdd4 100644
>> > --- a/northd/northd.c
>> > +++ b/northd/northd.c
>> > @@ -1314,6 +1314,13 @@ lsp_disable_arp_nd_rsp(const struct
>> nbrec_logical_switch_port *nbsp)
>> >       return smap_get_bool(&nbsp->options, "disable_arp_nd_rsp", false);
>> >   }
>> >
>> > +static bool
>> > +port_can_learn_fdb(const struct ovn_port *op)
>> > +{
>> > +    return op->nbsp && lsp_is_enabled(op->nbsp) &&
>> > +           (op->has_unknown || lsp_is_vtep(op->nbsp));
>> > + }
>> > +
>> >   static bool
>> >   lsp_is_type_changed(const struct sbrec_port_binding *sb,
>> >                   const struct nbrec_logical_switch_port *nbsp,
>> > @@ -4367,9 +4374,7 @@ ovn_port_add_tnlid(struct ovn_port *op, uint32_t
>> tunnel_key)
>> >               op->od->port_key_hint = tunnel_key;
>> >           }
>> >
>> > -        /* Track the assigned tunnel_key for enabled LSP
>> > -         * with unknown address. */
>> > -        if (op->nbsp && lsp_is_enabled(op->nbsp) && op->has_unknown) {
>> > +        if (port_can_learn_fdb(op)) {
>> >               ovs_assert(ovn_add_tnlid(&op->od->fdb_ports_tnlids,
>> tunnel_key));
>> >           }
>> >       }
>> > @@ -4425,7 +4430,7 @@ ovn_port_allocate_key(struct ovn_port *op)
>> >               return false;
>> >           }
>> >
>> > -        if (op->nbsp && lsp_is_enabled(op->nbsp) && op->has_unknown) {
>> > +        if (port_can_learn_fdb(op)) {
>> >               ovs_assert(ovn_add_tnlid(&op->od->fdb_ports_tnlids,
>> >                                        op->tunnel_key));
>> >           }
>> > diff --git a/tests/ovn-controller-vtep.at b/tests/
>> ovn-controller-vtep.at
>> > index 0e8a1e008..aa8da62a6 100644
>> > --- a/tests/ovn-controller-vtep.at
>> > +++ b/tests/ovn-controller-vtep.at
>> > @@ -620,7 +620,11 @@ OVS_WAIT_UNTIL([vtep-ctl list Ucast_Macs_Local |
>> grep -q aa:bb:cc:dd:ff:02])
>> >
>> >   # Check that first MACs is propagated to FDB table
>> >   wait_row_count fdb 1 mac='"aa:bb:cc:dd:ff:01"'
>> > +uuid1=$(fetch_column fdb _uuid mac='"aa:bb:cc:dd:ff:01"')
>> > +check test -n "$uuid1"
>> >   wait_row_count fdb 1 mac='"aa:bb:cc:dd:ff:02"'
>> > +uuid2=$(fetch_column fdb _uuid mac='"aa:bb:cc:dd:ff:02"')
>> > +check test -n "$uuid2"
>> >
>> >   # Switch context
>> >   as
>> > @@ -632,6 +636,9 @@ OVS_WAIT_WHILE([vtep-ctl list-remote-macs lswitch1
>> | grep -q aa:bb:cc:dd:ff:01])
>> >   OVS_WAIT_UNTIL([vtep-ctl list-remote-macs lswitch1 | grep -q
>> aa:bb:cc:dd:ff:02])
>> >   OVS_WAIT_WHILE([vtep-ctl list-remote-macs lswitch0 | grep -q
>> aa:bb:cc:dd:ff:02])
>> >
>> > +check test "$uuid1" = "$(fetch_column fdb _uuid
>> mac='"aa:bb:cc:dd:ff:01"')"
>> > +check test "$uuid2" = "$(fetch_column fdb _uuid
>> mac='"aa:bb:cc:dd:ff:02"')"
>> > +
>> >   # Switch context to br-vtep1
>> >   as br-vtep1
>> >
>>
>> _______________________________________________
>> dev mailing list
>> [email protected]
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>
>>
Thank you Rosemarie and Xavier,

applied to main and backported down to 26.03.

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

Reply via email to