On Mon, 2 Nov 2015, Andrew Qu wrote:

Hi Paul,

I have a concern about your fix.

In the case of ECMP, your fix will completely remove the FIB entry which will cause the complete removal of the FIB entry in hardware and cause the traffic dropped if there is no default network till the new update of the same FIB entry arries.

Hmm, can you expand?

This fix is to remove the prefix from the zebra RIB, if bgpd has decided the route is no longer valid and must be withdrawn from zebra. Jacqueline's fix does this too, doesn't it?

If the route is still valid, bgpd will still just update it with zebra accordingly (which should also work for the BGP multi-path case, AFAICT, but can't test).

This shouldn't interfere with non-BGP routes.

Or am I missing something?

The ideal fix of this problem should be just deleting the path of a FIB entry which should be modified, not the FIB entry if there are valid alternative paths.

In this case, what happens is that:

- bgpd receives an UPDATE of a route, with an implicit withdraw of the
  prior path.

- in the normal course of things, bgpd just updates the zebra RIB
  accordingly (with implicit withdraw of the previous route).

- if the new path turns out to be invalid (e.g. nexthop doesn't resolve),
  the route stays in the BGP RIB, however it must be deleted from the
  zebra RIB.

There isn't a difference approach, other than that Jacqueline's patch sends the old next-hop to ensure it matches, and mine doesn't. It just unconditionally deletes the BGP route for the prefix. The net intended effect, in both fixes, is that the BGP route is gone from zebra, or not?

I may be wrong, but it seems to me that at least Jacueline's fix is more toward the optimal fix if it is not THE right fix.

Stashing references to the old, implicitly withdrawn, no longer valid, BGP attribute set in the new route just doesn't quite do it for me. It's another thing to leak or get wrong.

Perhaps I've misunderstood though?

regards,
--
Paul Jakma      [email protected]  @pjakma Key ID: 64A2FF6A
Fortune:
The biggest difference between time and space is that you can't reuse time.
                -- Merrick Furst

_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to