<div dir="ltr"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Hi,</span><div><div style="text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="text-decoration-style:initial;text-decoration-color:initial">We're experimenting with BGP-LU and frr in our lab. We have two host machines running frr. Each is connected to two TOR switches through their eth0 and eth1 links (four TORs total). Those are connected through another pair of switches. We have configured BGP-LU to distribute MPLS labels over ebpg throughout. Connectivity between loopback addresses on the two hosts works well at this point.</div><div style="text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="text-decoration-style:initial;text-decoration-color:initial">Then, I created some namespaces in the hosts and gave them addresses. We use BGP to announce those addresses as /32 routes with the loopback address as the next hop. The route between namespaces on the two machines is recursively resolved so that they push the same MPLS label as the path to the other loopback. <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">This all works well to start off with and we did some iperf runs that showed pretty good results. ECMP was working because the bandwidth was higher than any single link.</span></div><div style="text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="text-decoration-style:initial;text-decoration-color:initial">After some link state changes, we seemed to lose the connection. However, pings between the loopback addresses still worked. After some time, we noticed that the MPLS labels in the routes to the namespace addresses (/32s) were different than the label in the route to the loopback. <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Since the former routes are resolved recursively using the latter, the labels should always be the same. Could this be a bug in FRR? Shouldn't the routes to the namespaces be invalidated or updated as soon as the route it was based on changed? The traffic between namespaces is getting dropped because the switch doesn't know about the label being pushed by the host.</span></div><div style="text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="text-decoration-style:initial;text-decoration-color:initial">Any insight would be very helpful.</div><div style="text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="text-decoration-style:initial;text-decoration-color:initial">Thanks!</div><div style="text-decoration-style:initial;text-decoration-color:initial">Carl Baldwin</div><br class="gmail-Apple-interchange-newline"><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Here are /32 routes received. <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">10.112.128.1 is the loopback on the other host. The four routes are to four namespaces on the other host.</span></div><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><div>    lab1r2u05# show ip bgp neighbor 10.112.97.1 received-routes</div><div>    BGP table version is 0, local router ID is 10.112.128.2</div><div>    Status codes: s suppressed, d damped, h history, * valid, > best, = multipath,</div><div>                  i internal, r RIB-failure, S Stale, R Removed</div><div>    Origin codes: i - IGP, e - EGP, ? - incomplete</div><div><br></div><div>       Network          Next Hop            Metric LocPrf Weight Path</div><div>    *><span> </span><a href="http://10.224.12.10/32" target="_blank" style="color:rgb(17,85,204)">10.224.12.10/32</a>  10.112.128.1                           0 4206900001 4206909998 i</div><div>    *><span> </span><a href="http://10.224.12.15/32" target="_blank" style="color:rgb(17,85,204)">10.224.12.15/32</a>  10.112.128.1                           0 4206900001 4206909998 i</div><div>    *><span> </span><a href="http://10.224.12.70/32" target="_blank" style="color:rgb(17,85,204)">10.224.12.70/32</a>  10.112.128.1                           0 4206900001 4206909998 i</div><div>    *><span> </span><a href="http://10.224.12.75/32" target="_blank" style="color:rgb(17,85,204)">10.224.12.75/32</a>  10.112.128.1                           0 4206900001 4206909998 i</div><div><br></div><div>    Total number of prefixes 4</div></div><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Below is the routing table as it looked when we lost connectivity. Notice that the mpls label for the loopback route is <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">306592 via eth1 but the label for the four namespace addresses is <span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">306576.</span></span></div><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><div>    root@lab1r2u05:~/ovs-droplets# ip route</div><div>    default via 10.112.2.132 dev eth2</div><div>   <span> </span><a href="http://10.112.2.128/25" target="_blank" style="color:rgb(17,85,204)">10.112.2.128/25</a><span> </span>dev eth2  proto kernel  scope link  src 10.112.2.145</div><div>    10.112.128.1  encap mpls  306592 via 10.112.129.9 dev eth1  proto 186  metric 20</div><div>   <span> </span><a href="http://10.112.129.8/30" target="_blank" style="color:rgb(17,85,204)">10.112.129.8/30</a><span> </span>dev eth1  proto kernel  scope link  src 10.112.129.10</div><div>   <span> </span><a href="http://10.112.129.12/30" target="_blank" style="color:rgb(17,85,204)">10.112.129.12/30</a><span> </span>dev eth0  proto kernel  scope link  src 10.112.129.14</div><div>    10.224.12.10  encap mpls  306576 via 10.112.129.9 dev eth1  proto 186  metric 20</div><div>    10.224.12.15  encap mpls  306576 via 10.112.129.9 dev eth1  proto 186  metric 20</div><div>    10.224.12.70  encap mpls  306576 via 10.112.129.9 dev eth1  proto 186  metric 20</div><div>    10.224.12.75  encap mpls  306576 via 10.112.129.9 dev eth1  proto 186  metric 20</div><div>    10.224.12.20 dev br0  scope link</div><div>    10.224.12.25 dev br0  scope link</div><div>    10.224.12.80 dev br0  scope link</div><div>    10.224.12.85 dev br0  scope link</div></div><br></div></div>