On Mon, Nov 21, 2011 at 06:12:19PM +0400, Alexander V. Chernikov wrote:
Hello list!
This patch implements RFC 4271 MED comparison.
This patch may introduce significant performance penalty (unfortunately I haven't got any real numbers at the moment).
However, this comparison is absolutely necessary at least for RR setups.
rte_better cost has changed from O(1) to O(n) (should not affect performance much) rte_recalculate can execute 2-3 times slower in worst case (this can consume more resources when preferred BGP neighbor goes down)
This is an issue we (developers) discussed privately about half a year ago and came to conclusion that strict RFC 4271 behavior - deterministic MED comparison - is not really meaningful, hard to implement in current BIRD design and probably not worth the effort. As the deterministic MED behavior is not even default on Ciscos (as far as i read), there are probably not many problems with compatibility. Perhaps the better way to solve problems with nondeterministic selection is to enable 'med metric' (i.e. always compare med) and tweak MEDs on AS boundaries to have consistent values (or just reset all MEDs to 0). But as you already wrote the patch i could look at it. -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."