<div dir="ltr">Hi Ondrej,<div><br></div><div>Thanks for the advice, I have fixed with. I always use Python, so I guess other C like Stript needs to do that. </div><div><br></div><div>            # 如果 MED 值已经存在,则将其以原值为基础增加<br>            if defined (bgp_med) then {<br>                bgp_med = bgp_med + bgp_med_ping + bgp_med_ping;<br>            }<br>            # 否则,设置 MED 值为新值<br>            else {<br>                bgp_med = bgp_med_ping + bgp_med_ping;<br>            }<br>            <br>             return true;<br></div><div><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">AIGP is not intended to be transitive between completely distinct autonomous systems (only across internal AS boundaries)</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">AIGP is always compared in paths that have the attribute, regardless of whether they come from different neighbor AS or not<br>AIGP is more important than MED in the BGP decision process (see the section titled BGP decision process)<br>AIGP is automatically incremented every time there is a BGP next-hop change so that it can track the end-to-end IGP cost. All arithmetic operations on MED attributes must be done manually (for example, using route policies)</blockquote><br></div><div><br></div><div>Looks like local_pref > bgp_path > aigp > bgp_med? And aigp is added when passing each ibgp session Automatically.?</div><div><br></div><div>Best regard,<br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><b>Brandon Zhi</b><br></div><div>HUIZE LTD</div><div><a href="https://huize.asia/" target="_blank"><span>www.huize.asia</span> </a><span style="color:rgb(0,0,0);font-family:Helvetica,sans-serif;font-size:10.6667px">| </span><a href="https://www.ixp.su/" target="_blank"><span>www.ixp.su</span></a><span style="color:rgb(0,0,0);font-family:Helvetica,sans-serif;font-size:10.6667px"> | Twitter</span></div><div><img src="https://ci3.googleusercontent.com/mail-sig/AIorK4w5mVhfW4gNpNNG4wjzSr6YXLPGstLI3_79RkgqnXaG2nuFEB1nkGeXOqUOO3ma96TcEVR3iaA" width="200" height="43"><br></div><div>This e-mail and any attachments or any reproduction of this e-mail in whatever manner are confidential and for the use of the addressee(s) only. HUIZE LTD can’t take any liability and guarantee of the text of the email message and virus.</div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 27 Jul 2023 at 19:32, Douglas Fischer <<a href="mailto:fischerdouglas@gmail.com">fischerdouglas@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">This reminds me of a meme...<br><a href="https://img-comment-fun.9cache.com/media/ay9BKnV/aWlGMBgm_700w_0.jpg" target="_blank">https://img-comment-fun.9cache.com/media/ay9BKnV/aWlGMBgm_700w_0.jpg</a><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Em qua., 26 de jul. de 2023 às 20:54, Ondrej Zajicek <<a href="mailto:santiago@crfreenet.org" target="_blank">santiago@crfreenet.org</a>> escreveu:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thu, Jul 20, 2023 at 08:25:24PM +0800, Brandon Zhi wrote:<br>
> Hi all,<br>
> <br>
> I was doing research about selecting the best route on multiple nodes based<br>
> on bgp_med attributes.<br>
> <br>
> <br>
> My idea is to add bgp_med value between each node based on ping, and then<br>
> bird will select the route which has the lowest bgp_med value (which is the<br>
> total ping delay)<br>
> <br>
> But some routes will be filled, which i don't want it.<br>
> <br>
> I found that the code " bgp_med = bgp_med + bgp_med_ping + bgp_med_ping;"<br>
> will cause some routes to be filtered.<br>
> <br>
> Can someone tell me why? I only want to modify bgp_med and don't want my<br>
> routes to be filtered.<br>
<br>
Hi<br>
<br>
Perhaps there are some error in logs about filter failures? I guess that<br>
when bgp_med is not defined, then expression 'bgp_med + X' fails.<br>
<br>
You could try something like:<br>
<br>
  if (defined(bgp_med))<br>
    bgp_med = bgp_med + X;<br>
  else<br>
    bgp_med = X;<br>
<br>
<br>
And perhaps even better than use bgp_med for this is to use bgp_aigp<br>
attribute and associated BGP options (aigp, cost).<br>
<br>
-- <br>
Elen sila lumenn' omentielvo<br>
<br>
Ondrej 'Santiago' Zajicek (email: <a href="mailto:santiago@crfreenet.org" target="_blank">santiago@crfreenet.org</a>)<br>
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, <a href="http://wwwkeys.pgp.net" rel="noreferrer" target="_blank">wwwkeys.pgp.net</a>)<br>
"To err is human -- to blame it on a computer is even more so."<br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr">Douglas Fernando Fischer<br>Engº de Controle e Automação<br><div style="padding:0px;margin-left:0px;margin-top:0px;overflow:hidden;color:black;text-align:left;line-height:130%;font-family:"courier new",monospace"></div></div></div>
</blockquote></div>