Hello André,

(with my BIRD Team hat on)

On Thu, Jun 26, 2025 at 12:27:04PM +0200, André Grüneberg wrote:

We have now (silently) implemented OTC handling in our route servers without setting the role in the protocol.

Oh nice!

For the reference, we extended the ingress filter with:

define IXP_LC_FILTERED_ROUTE_LEAK_DETECTED = ( routeserverasn, 1101, 50 ); if defined( bgp_otc ) then { bgp_large_community.add( IXP_LC_FILTERED_ROUTE_LEAK_DETECTED ); }

The egress filter (which already implicitly rejects routes with the community above) was enhanced with: if ! defined( bgp_otc ) then { bgp_otc = routeserverasn; }

Looks feasible and correct on first sight.

I’d really love to also announce the roles capability, but we’d need some way in Bird to say “do not treat-as-withdraw”. Is there any chance we can get this functionality?

We are expecting to implement this. Considering current short-term planning, it may come back to our table in the late autumn. (This is not a deadline promise.) We could obviously implement this as a non-systematic hack like tomorrow or so, but that would make our code much less maintainable.

Thank you for the feature request, have a nice summer!
Maria


Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.