Hi, Good to see the NHT work finally merged in! I'm working now to have the nhrp code rebased on top of master.
I carry the following commit: http://git.alpinelinux.org/cgit/user/tteras/quagga/commit/?h=nhrp&id=76aaa0456a3804a0a1d2948d9a391383b62cbe37 I remember we discussed this earlier. And I was hoping it would have been fixed. IIRC, there's some use-case that relies on the current behaviour. However, I have use case that fails with it. The root problem is that Zebra RIB code in zebra_rib.c:364:nexthop_active_ipv4 and zebra_rib.c:499:nexthop_active_ipv6 have check when the Next Hop can be installed. For ZEBRA_FLAG_INTERNAL routes the check is: if (CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_FIB) && ! CHECK_FLAG (newhop->flags, NEXTHOP_FLAG_RECURSIVE)) Where as the current NHT test is: if ((CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB) || CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE)) && This causes the problem that NHT says that nexthop matching route with ZEBRA_FLAG_INTERNAL + NEXTHOP_FLAG_RECURSIVE is valid. However, when it's tried to be installed to RIB, it's rejected in zebra_rib.c because of the above mentioned check. For me, this results BGP announcing subnets as valid, but ending up to blackhole since the matching route is not installed in kernel. We really should make these check consistent. Preferably have this check in separate function, so both RIB and NHT would use the same check. However, I'm not fully certain what the Cumulus use case is needing Recursive nexthop routes. Are they "Internal" routes? If not, then we could just use that as additional check in NHT side. Additionally, I carry also: http://git.alpinelinux.org/cgit/user/tteras/quagga/commit/?h=nhrp&id=c781f72ef56e0db6bbde126ce2565f5a7a833da2 For current master it's not big issue, since no one uses the fib-override routes yet. I'll submit this along with the nhrpd. Just wanted to give a heads up on what's coming. Thanks, Timo _______________________________________________ Quagga-dev mailing list Quagga-dev@lists.quagga.net https://lists.quagga.net/mailman/listinfo/quagga-dev