On 10/30/25 12:06 PM, Ales Musil wrote: > On Wed, Oct 29, 2025 at 4:26 PM Felix Huettner via dev < > [email protected]> wrote: > >> On Wed, Oct 29, 2025 at 12:24:06PM +0100, Dumitru Ceara wrote: >>> For routers with dynamic-routing enabled, if router ports are configured >>> with 'dynamic-routing-port-name=<LSP>' external routes should only be >>> learned if they're configured to use the Linux device that's configured >>> for the underlying OVS interface that binds <LSP>. >>> >>> There were however a couple of races that made this feature unreliable: >>> >>> 1. the en_route I-P engine handler for port binding changes completely >>> ignored changes for port bindings corresponding to LSPs that are >>> configured as 'dynamic-routing-port-name=<LSP>'. If the LSP was >>> bound _after_ the router port configuration was parsed the en_route >>> data wouldn't be correctly recomputed and ovn-controller would ignore >>> routes that used the underlying OVS device until the next time a >>> recompute of the en_route node would happen (potentially indefinitely >>> long). >>> >>> 2. the function to extract the OVS interface name corresponding to a >>> port binding logical_port was using the local_binding_is_up() helper >>> to determine of the logical switch port is bound locally. While that >>> may seem correct (because it also takes into account whether OF rules >>> have been fully installed in OVS for that port - ovn-installed=true) >>> it introduces a race. If ovn-controller can't write the OVS >>> external_id (e.g., the last OVS transaction is still executing) the >>> function returns false. >>> >>> Once the OVS transaction succeeds there's no easy way to inform the >>> en_route I-P engine node that it has to recompute. >>> >>> However, from the en_route node perspective it's enough to check >>> that: >>> - a local binding exists for that LSP >>> - the local binding is claimed by the local chassis (it's "chassis >>> resident") >>> >>> This commit takes this path as it has the lowest chance of >>> introducing bugs due to missed I-P dependencies. >>> >>> A system test is also added to cover the scenarios above. >> >> Acked-By: Felix Huettner <[email protected]> >>
... >> > Thank you Dumitru and Felix, > > I went ahead, merged this into main and backported all the way down to > 25.03. In order to make it work on 25.03 I had to also backport > https://github.com/ovn-org/ovn/commit/aa088003. > Thanks, Felix and Ales, for reviewing and merging this! Regards, Dumitru _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
