<div dir="ltr"><div dir="ltr">Hoi,<div><br></div><div>As a quick followup why I'm asking about versions -- on a Bird2.0.7, I do see the delete-before-insert:</div><div><br></div><div>





<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">root@chgtg0:~# ip -6 monitor route | grep 2001:678:d78::6</span></p><p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><br></span></p><p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"># Raise OSPFv3 cost to prefer tf-0-0</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><b><font color="#00ff00">Deleted</font></b><font color="#f2f2f2"> 2001:678:d78::6 via fe80::21b:21ff:febd:c718 dev xe0-3.3102.20 proto bird metric 32 pref medium</font></span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">2001:678:d78::6 via fe80::6eb3:11ff:fe20:e0c4 dev tf0-0 proto bird metric 32 pref medium</span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><b><font color="#00ff00"><br></font></b></span></p><p class="gmail-p1" style="font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"># Lower OSPFv3 cost to prefer xe0-3.3102.20 again</span></p><p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures"><b><font color="#00ff00">Deleted</font></b><font color="#f2f2f2"> 2001:678:d78::6 via fe80::6eb3:11ff:fe20:e0c4 dev tf0-0 proto bird metric 32 pref medium</font></span></p>
<p class="gmail-p1" style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span class="gmail-s1" style="font-variant-ligatures:no-common-ligatures">2001:678:d78::6 via fe80::21b:21ff:febd:c718 dev xe0-3.3102.20 proto bird metric 32 pref medium</span></p></div></div><div><br></div><div>groet,</div><div>Pim</div><div><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, May 20, 2023 at 10:51 PM Pim van Pelt <<a href="mailto:pim@ipng.nl">pim@ipng.nl</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">Hoi folks,<div><br></div><div>At Coloclue AS8283, we upgraded from Bird1.6.8 to Bird2.0.12 this week. We use two separate processes, one for IPv4 and one for IPv6 - and 2.0.7 in Debian is missing the ability to select 'accept ipv4' and 'accept ipv6' in BFD, so we installed backports and version 2.0.12).</div><div><br></div><div>I am wondering if Bird2 later than 2.0.7 perhaps has an optimization when swapping routes? I would expect a swap to be "delete + add" but I am seeing only "add with new nexthop" appear in Netlink.</div><div><br></div><div>Considering the following topology with link names and OSPFv3 costs associated:</div><div><br></div><div>





<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>  </span>dcg-1<span>  </span>bond0.130 ---- bond0.130 eun-2</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>   </span>| <span>              20</span>00 <span>            </span>|</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">enp1s0f3 <span>                        </span>enp1s0f2</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>   </span>|<span>                                </span>|</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>   </span>| 10<span>                          </span>10 |</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>   </span>|<span>                                </span>|</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">enp1s0f3 <span>                        </span>enp1s0f3</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>   </span>| <span>              </span>1000 <span>            </span>|</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><span>  </span>dcg-2<span>  </span>eno2.3469 ---- eno2.3469 eun-3</span></p></div><div><br></div><div>If I restart the OSPFv3 protocol, I see that the topology settles in the expected way.  What I observed with bird 2.0.12 is that there is a deletion of the currently selected route followed by one addition, when the shortest path reveales (dcg1 - dcg2 - eun3 - eun2, ospf_metric1 is 1020, this is fine):</div><div>





<p style="font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">root@dcg-1:~# birdc </span><span style="font-variant-ligatures:no-common-ligatures">-s /run/bird/bird6.ctl</span><span style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures">restart ospf1</span></p>





<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">root@dcg-1:~# ip -6 monitor route | grep </span><span style="font-variant-ligatures:no-common-ligatures">2a02:898:0:300::3</span></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">Deleted 2a02:898:0:300::3 via fe80::669d:99ff:feb1:31af dev bond0.130 proto bird metric 32 pref medium</span><br></p>
<p style="margin:0px;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><font color="#00ff00">2a02:898:0:300::3 via fe80::669d:99ff:feb1:3910 dev enp1s0f3 proto bird metric 32 pref medium</font></span></p><span><div><span><br></span></div><div>Now I lower the cost of the dcg-1 -- eun-2 link from 2000 to 100, so that it becomes preferred (cost ospf_metric is 120):</div><div><br></div><div><p style="font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">root@dcg-1:~# birdc </span><span style="font-variant-ligatures:no-common-ligatures">-s /run/bird/bird6.ctl</span><span style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures">reconfigure ospf1</span></p><p style="font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;margin:0px;color:rgb(242,242,242);background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures">root@dcg-1:~# ip -6 monitor route | grep </span><span style="font-variant-ligatures:no-common-ligatures">2a02:898:0:300::3</span></p>





<p style="font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;margin:0px;background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><b><font color="#ff0000">[[ HERE ]]</font></b></span></p><p style="font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;font-kerning:auto;font-feature-settings:normal;font-stretch:normal;font-size:15px;line-height:normal;font-family:Menlo;margin:0px;background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><font color="#00ff00">2a02:898:0:300::3 via fe80::669d:99ff:feb1:31af dev bond0.130 proto bird metric 32 pref medium</font></span></p></div><div><br></div><div>I would expect this new addition of the installed route on bond0.130 to be <b>preceded by a deletion</b> of the previous route from enp1s0f3, but this is not the case (marked in red with [[ HERE ]]). </div><div><span><br></span></div><div><span>To anyone's knowledge: </span><b>Has this behavior changed between 2.0.7 and 2.0.12 ?</b></div><div><span><br></span></div><div><span>groet,</span></div><div><span>Pim</span></div>-- </span><br><div dir="ltr">Pim van Pelt <<a href="mailto:pim@ipng.nl" target="_blank">pim@ipng.nl</a>> <br>PBVP1-RIPE - <a href="http://www.ipng.nl/" target="_blank">http://www.ipng.nl/</a></div></div></div>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">Pim van Pelt <<a href="mailto:pim@ipng.nl" target="_blank">pim@ipng.nl</a>> <br>PBVP1-RIPE - <a href="http://www.ipng.nl/" target="_blank">http://www.ipng.nl/</a></div></div>