On Fri, Feb 26, 2021 at 01:56:42PM -0800, Trisha Biswas wrote: > Hi all, > > The attached patch adds a 'preferred' route attribute to check whether the > route being processed has been selected as the best-path for the network it > belongs to. This attribute does not take in a value, and returns a boolean. > This is useful for allowing selection in an add-path enabled BGP session.
Hi I agree this may be a useful feature, but there are two issues with the approach used in the patch: First, we would like not to access rte->net from the filters (outside of net_addr). We plan to remove this ptr and instead have ptr from rte directly to net_addr. Second, RA_ANY mode of route announcement (which is used by BGP add-path and pipes) would not really work with this change in a way how you expect - consider this scenario: route A is added, preferred and accepted for export, then route B is added, not-preferred and not-accepted for export. Then route A is withdrawn and B is selected as preferred. Protocols with RA_OPTIMAL received update with route B as new-preferred (as they accept only preferred one and that changed), but protocols with RA_ANY receive just withdraw for route A (as they accept all routes and only route A was changed, while route B is the same as was announced before), so they do not get notification that route B became preferred and export filter for B is not re-evaluated. The one approach that avoids the first issue is to add REF_BEST flag (in rte->flags) that would be added to mark preferred routes, and this flag can be accessed from the filter code. But that does not fix the second issue. We can add RA_ANY announcement for routes that changed their REF_BEST, but that would add plenty of unnecessary announcements (that are propagated as BGP updates) for BGP add-path that do not use or care about this flag. In general, BGP add-path in BIRD was developed with assumption that routes within one network are handled independently and would need some deeper redesign for other cases. That might be useful (in order to be able to implement things like 'announce best 4 routes for given network'), but i do not see an easy solution to this. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: [email protected]) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
