<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 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"><span class="gmail-Apple-converted-space"> </span>dcg-1<span class="gmail-Apple-converted-space"> </span>bond0.130 ---- bond0.130 eun-2</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"><span class="gmail-Apple-converted-space"> </span>| <span class="gmail-Apple-converted-space"> 20</span>00 <span class="gmail-Apple-converted-space"> </span>|</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">enp1s0f3 <span class="gmail-Apple-converted-space"> </span>enp1s0f2</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"><span class="gmail-Apple-converted-space"> </span>|<span class="gmail-Apple-converted-space"> </span>|</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"><span class="gmail-Apple-converted-space"> </span>| 10<span class="gmail-Apple-converted-space"> </span>10 |</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"><span class="gmail-Apple-converted-space"> </span>|<span class="gmail-Apple-converted-space"> </span>|</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">enp1s0f3 <span class="gmail-Apple-converted-space"> </span>enp1s0f3</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"><span class="gmail-Apple-converted-space"> </span>| <span class="gmail-Apple-converted-space"> </span>1000 <span class="gmail-Apple-converted-space"> </span>|</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"><span class="gmail-Apple-converted-space"> </span>dcg-2<span class="gmail-Apple-converted-space"> </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 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">root@dcg-1:~# birdc </span><span style="font-variant-ligatures:no-common-ligatures">-s /run/bird/bird6.ctl</span><span class="gmail-Apple-converted-space" style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures">restart ospf1</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">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 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 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 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 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 class="gmail_signature_prefix"><div><span class="gmail_signature_prefix"><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 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">root@dcg-1:~# birdc </span><span style="font-variant-ligatures:no-common-ligatures">-s /run/bird/bird6.ctl</span><span class="gmail-Apple-converted-space" style="font-variant-ligatures:no-common-ligatures"> </span><span style="font-variant-ligatures:no-common-ligatures">reconfigure ospf1</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">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 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;background-color:rgb(0,0,0)"><span style="font-variant-ligatures:no-common-ligatures"><b style=""><font color="#ff0000">[[ HERE ]]</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;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 class="gmail_signature_prefix"><br></span></div><div><span class="gmail_signature_prefix">To anyone's knowledge: </span><b>Has this behavior changed between 2.0.7 and 2.0.12 ?</b></div><div><span class="gmail_signature_prefix"><br></span></div><div><span class="gmail_signature_prefix">groet,</span></div><div><span class="gmail_signature_prefix">Pim</span></div>-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="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></div>