<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hello Mike,</div><div class=""><br class=""></div><div class="">There is no concept of latency by peer in any main stream routing protocol because latency can be influenced by traffic load, which would create a real mess trying to understand the traffic flow. If you know one link is always lower latency than the next you simply set the cost manually at startup. </div><div class=""><br class=""></div><div class="">Cisco’s EIGRP protocol does have a load concept, but I believe Cisco pretty much says don’t use it (;</div><div class=""><br class=""></div><div class="">If you really wanted to you could create a script that ran a manual test of the latency of each link, the script could then updated the cost value in bird and reconfigure it though.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Mike</div><br class=""><div class="">
<div style="orphans: auto; text-align: start; text-indent: 0px; widows: auto; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="orphans: 2; widows: 2;" class=""><b class="">--</b></div><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class=""><b class="">Michael McConnell</b></div><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class=""><b class="">WINK Streaming;</b><br class=""><b class="">email:</b> <a href="mailto:michael@winkstreaming.com" class="">michael@winkstreaming.com</a><br class=""><b class="">phone:</b> +1 312 281-5433 <b class="">x 7400</b></div><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class=""><b class="">cell:</b> +506 8706-2389</div><div style="color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class=""><b class="">skype:</b> wink-michael<br class=""><b class="">web:</b> <a href="http://winkstreaming.com/" class="">http://winkstreaming.com</a></div></div>
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">On Dec 21, 2016, at 12:52 PM, Mike Jones <<a href="mailto:mike@mikejones.in" class="">mike@mikejones.in</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi,<br class=""><br class="">I have an OSPF based network using bird for routing the core and it<br class="">seems to work fine, however the network is geographically diverse and<br class="">some of the routing is sub-optimal. Specifically, the default route is<br class="">going shortest hops rather than lowest latency.<br class=""><br class="">What I would like to do is have the OSPF cost reflect the latency of<br class="">the link, however I am having a problem coming up with a<br class="">scalable/automated way of doing this. As far as I can tell there is no<br class="">built in "latency to peer" I can reference? I could configure a manual<br class="">entry for each peer in the config file, however that doesn't seem very<br class="">manageable, even with some kind of script to generate the config file.<br class=""><br class="">From what I can gather there is no way for a filter to reference an<br class="">external file/database/script to adjust the routes on import. I even<br class="">considered a convoluted approach of having a script inject the peers<br class="">IP address in to a special kernel table and using the route metric to<br class="">feed numbers in to bird, but couldn't find a way of storing the data<br class="">and referencing it on a later route lookup.<br class=""><br class="">Basically what I want is that when an OSPF peer comes up I ping it<br class="">then set the cost for all routes received from that neighbour to the<br class="">latency (with some basic sanity like a min and max). I don't expect<br class="">the latency to vary much once a link is up, however I do need to<br class="">auto-discover new peers appearing on the network.<br class=""><br class="">Any ideas?<br class=""><br class="">Thanks<br class="">- Mike Jones<br class=""></div></div></blockquote></div><br class=""></body></html>