Hi,

there is something I don't understand about OpenBGPD and the decision
process implemented. 

My understanding of how the decision process in OpenBGPD works is this:

The OpenBGPD client stores paths in a list associated to an adress prefix.
If a new route is learnt, the best path is reevaluated via prefix_evaluate
in rde_decide.c. 
prefix_evaluate looks for the right place to insert a new path in the list
by comparing the new path with the others one at the time via prefix_cmp,
starting from the end of the list.

This procedure seems to be non deterministic and the outcome of this path
selection process heavily depends on the order in which the paths are
inserted. It is quite easy to construct a simple example for this.
Cisco avoids the indeterminacy by adding the flag bgp deterministic-med. If
the flag is set, the decision process is different (the paths are first
grouped together by AS of the peer, from which the path was learnt, the
"best ones" per AS then are compared among each other).

So the question is: Is my understanding of the decision process in OpenBGPD
wrong, did I overlook something, or was the additional flag not implemented
on purpose and the decision process just IS non deterministic ?

Kind regards

Daniel Lyons

-- 
View this message in context: 
http://www.nabble.com/OpenBGPD-decision-process-non-deterministic---tp16743362p16743362.html
Sent from the openbsd user - misc mailing list archive at Nabble.com.

Reply via email to