oxidecomputer / maghemite

A routing stack written in Rust.
Mozilla Public License 2.0
42 stars 2 forks source link

BGP Capabilities Fill In #80

Open rcgoodfellow opened 1 year ago

rcgoodfellow commented 1 year ago

The initial set of BGP capabilities coming in #23 are fairly minimal. There are a lot of capabilities that are marked as TODO.

This issue captures how we are approaching filling in these capabilities. Note that just because a capability is deprecated does not mean it's not important. Even in my basic BGP testing thus far with FRR and Arista, deprecated options have come across the wire.

RFC Description Added in
RFC 2858 MultiprotocolExtensions
~RFC 2918~ ~RouteRefresh~ #199
RFC 5291 OutboundRouteFiltering
RFC 8277 (deprecated) MultipleRoutesToDestination
RFC 8950 ExtendedNextHopEncoding
RFC 8654 BGPExtendedMessage
RFC 8205 BgpSec
RFC 8277 MultipleLabels
RFC 9234 BgpRole
RFC 4724 GracefulRestart
draft-ietf-idr-dynamic-cap DynamicCapability
draft-ietf-idr-bgp-multisession MultisessionBgp
RFC 7313 EnhancedRouteRefresh
draft-uttaro-idr-bgp-persistence LongLivedGracefulRestart
draft-ietf-idr-rpd-04 RoutingPolicyDistribution
draft-walton-bgp-hostname-capability Fqdn
RFC 8810 (deprecated) PrestandardRouteRefresh
RFC 8810 (deprecated) PrestandardOrfAndPd
RFC 8810 (deprecated) PrestandardOutboundRouteFiltering
RFC 8810 (deprecated) PrestandardMultisession
RFC 8810 (deprecated) PrestandardFqdn
RFC 8810 (deprecated) PrestandardOpereationalMessage
draft-abraitis-bgp-version-capability-16 Software Version Capability for BGP
ton31337 commented 3 months ago

Would you mind adding this to the list as well? https://datatracker.ietf.org/doc/html/draft-abraitis-bgp-version-capability. Some other OSS implementations (FRR, GoBGP, ExaBGP, freeRtr, ...) have it already.