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