bgpd supports Multiprotocol Extension for BGP. So if remote peer supports the protocol, bgpd can
exchange IPv6 and/or multicast routing information.
Traditional BGP does not have the feature to detect remote peer’s capability whether it can handle other than IPv4 unicast routes. This is a big problem using Multiprotocol Extension for BGP to operational network. [RFC2842] proposing a feature called Capability Negotiation. bgpd use this Capability Negotiation to detect remote peer’s capabilities. If the peer is only configured as IPv4 unicast neighbor, bgpd does not send these Capability Negotiation packets.
By default, Quagga will bring up peering with minimal common capability for the both sides. For example, local router has unicast and multicast capabilitie and remote router has unicast capability. In this case, the local router will establish the connection with unicast only capability. When there are no common capabilities, Quagga sends an “Unsupported Capability” error and then resets the connection.
If you want to completely match capabilities with a remote peer please use strict-capabilitymatch command.
Command Syntax:
Router# (no) neighbor <peer> strict-capability-match {}
This command strictly compares remote capabilities and local capabilities. If capabilities are different, an “Unsupported Capability error” is sent and the connection is finished.
You may want to disable sending capability negotiation OPEN message optional parameter to the peer when remote peer does not implement capability negotiation. Use dont-capability-negotiate command to disable this feature.
Command Syntax:
Router# (no) neighbor <peer> dont-capability-negotiate {}
Suppress sending capability negotiation as OPEN message optional parameter to the peer. This command only affects the peer is configured other than IPv4 unicast configuration.
When remote peer does not have capability negotiation feature, remote peer will not send any
capabilities at all. In that case, BGP configures the peer with configured capabilities.
You may prefer locally configured capabilities more than the negotiated capabilities even though remote peer sends capabilities. If the peer is configured by override-capability, bgpd ignores received capabilities then override negotiated capabilities with configured values.
Comannd Syntax:
Router# (no) neighbor <peer> override-capability {}
Override the result of capability negotiation with local configuration. Ignore remote peer’s capability value.
