On Thu, Jul 20, 2023 at 08:25:24PM +0800, Brandon Zhi wrote: > Hi all, > > I was doing research about selecting the best route on multiple nodes based > on bgp_med attributes. > > > My idea is to add bgp_med value between each node based on ping, and then > bird will select the route which has the lowest bgp_med value (which is the > total ping delay) > > But some routes will be filled, which i don't want it. > > I found that the code " bgp_med = bgp_med + bgp_med_ping + bgp_med_ping;" > will cause some routes to be filtered. > > Can someone tell me why? I only want to modify bgp_med and don't want my > routes to be filtered.
Hi Perhaps there are some error in logs about filter failures? I guess that when bgp_med is not defined, then expression 'bgp_med + X' fails. You could try something like: if (defined(bgp_med)) bgp_med = bgp_med + X; else bgp_med = X; And perhaps even better than use bgp_med for this is to use bgp_aigp attribute and associated BGP options (aigp, cost). -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santi...@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."