On Fri, Aug 12, 2022 at 12:43:09PM +0200, Claudio Jeker wrote:
> There is currently a race in bgpd when multiple nexthop become invalid at
> the same time. The problem is that the decision process may select an
> alternative path that also has a no longer valid nexthop but the process
> that does all the adjustments did not reach that prefix yet.
> The main issue here is that the RDE uses the true_nexthop to communicate
> this change but the true_nexthop is 0 or :: in this case.
> 
> This diff solves the issue by no longer using true_nexthop in the kroute
> message but instead have the kroute code do the lookup instead. The state
> in kroute is always up to date so the system knows if the nexthop is valid
> or not and either issues a change or remove depending on that.
> 
> With this the rde no longer uses the true_nexthop (it is only there to be
> reported to bgpctl). It only cares about exit_nexthop, validity and the
> connected network info. All of those should not cause any problems during
> nexthop flips.

This reads fine. If you fix the grammar of the comment, then it's ok, e.g.:

> +      * Ignore the nexthop for VPN routes. The gateway is a forced

s/a //

> +      * to an mpe(4) interface route using an MPLS label.

Reply via email to