On Wed, 25 Nov 2015, Daniel Walton wrote:

That step in bestpath is an odd one. Cisco originally put this in to stop a form of MED churn. This was before we really knew what MED churn was though so that step was added and then everyone forgot about it. A few years later we found all of these other scenarios for MED churn which were not fixed by 'prefer older'.

Interesting, thanks.

It's been quite a saga really. It's taken quite a number of clever people looking at MED and BGP metrics generally over, at least, a decade and a half to tease the problem apart, understand it and (eventually) describe how to solve it generally. Such a seemingly simple little attribute, so much fun. :)

On the (non-deterministic) 'oldest' test. Should we kill that too then? I'd be fine for making it do the remote-ID check (i.e. making COMPARE_ROUTER_ID unconditionally always the case).

yep, when I floated the idea of using addpath for route-server I got two
requests offline:

 *  one person said they would need the RS to TX everything to its clients
 *  one person said they would need the RS to TX the bestpath from each
    neighbor AS to its clients

The user has to configure a per-neighbor knob for us to advertise either all paths or the bestpath per neighbor AS (by default we only send the overall bespath). To satisfy that 2nd bullet we need deterministic-med so that we know which paths are the bestpath for each neighbor AS.

Do they _really_ want the second case though? :)

Least, does it really need to be a DMED comparison? As we learned with the rs-client feature, getting the RS to do algorithmically expensive work per client leads to scaling issues, which may then put off the intended users from using it. Then we're left with code that is mostly not used...

I mean, without DMED they can still get the neighbour-AS best-path, right? Your add-path is then doing bgp_best_selection for each neighbour-AS subset, and produces a result which wouldn't be wrong even, just not deterministic (but, see #10 in bgp_info_cmp)?

Or?

I'm trying to understand why the DMED bit is important to the actual selection, or kind of orthogonal.

That would be fine with me...I can't imagine someone configuring a knob that
introduces inconsistency.

Ok, so we're going to pin it to one or the other at least.

I'd still love to find a way to get rid of it though. The bestpath-per-neighbour users might end up agreeing, if they understand the algorithmic performance cost?

We could probably lessen the cost by sorting, instead of the combinatorial pair-wise comparison. But, just not doing it at all would be even cheaper.

regards,
--
Paul Jakma, HPE Networking, Advanced Technology Group
Fortune:
Do not count your chickens before they are hatched.
                -- Aesop

_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to