BGP: Update list of supported standards

This commit is contained in:
Ondrej Zajicek (work) 2017-03-29 13:48:23 +02:00
parent 7074be22f1
commit c49e4a6565
4 changed files with 68 additions and 13 deletions

View file

@ -1964,16 +1964,39 @@ table it wishes to export along with complete path information (a list of AS'es
the packet will travel through if it uses the particular route) in order to the packet will travel through if it uses the particular route) in order to
avoid routing loops. avoid routing loops.
<p>BIRD supports all requirements of the BGP4 standard as defined in <sect1>Supported standards:
<rfc id="4271"> It also supports the community attributes (<rfc id="1997">), <label id="bgp-standards">
capability negotiation (<rfc id="5492">), MD5 password authentication
(<rfc id="2385">), extended communities (<rfc id="4360">), route reflectors
(<rfc id="4456">), AS confederations (<rfc id="5065">), graceful restart
(<rfc id="4724">), multiprotocol extensions (<rfc id="4760">), 4B AS numbers
(<rfc id="4893">), and 4B AS numbers in extended communities (<rfc id="5668">).
For IPv6, it uses the standard multiprotocol extensions defined in <itemize>
<rfc id="4760"> and applied to IPv6 according to <rfc id="2545">. <item> <rfc id="4271"> - Border Gateway Protocol 4 (BGP)
<item> <rfc id="1997"> - BGP Communities Attribute
<item> <rfc id="2385"> - Protection of BGP Sessions via TCP MD5 Signature
<item> <rfc id="2545"> - Use of BGP Multiprotocol Extensions for IPv6
<item> <rfc id="2918"> - Route Refresh Capability
<item> <rfc id="3107"> - Carrying Label Information in BGP
<item> <rfc id="4360"> - BGP Extended Communities Attribute
<item> <rfc id="4364"> - BGP/MPLS IPv4 Virtual Private Networks
<item> <rfc id="4456"> - BGP Route Reflection
<item> <rfc id="4486"> - Subcodes for BGP Cease Notification Message
<item> <rfc id="4659"> - BGP/MPLS IPv6 Virtual Private Networks
<item> <rfc id="4724"> - Graceful Restart Mechanism for BGP
<item> <rfc id="4760"> - Multiprotocol extensions for BGP
<item> <rfc id="4798"> - Connecting IPv6 Islands over IPv4 MPLS
<item> <rfc id="5065"> - AS confederations for BGP
<item> <rfc id="5082"> - Generalized TTL Security Mechanism
<item> <rfc id="5492"> - Capabilities Advertisement with BGP
<item> <rfc id="5549"> - Advertising IPv4 NLRI with an IPv6 Next Hop
<item> <rfc id="5575"> - Dissemination of Flow Specification Rules
<item> <rfc id="5668"> - 4-Octet AS Specific BGP Extended Community
<item> <rfc id="6286"> - AS-Wide Unique BGP Identifier
<item> <rfc id="6608"> - Subcodes for BGP Finite State Machine Error
<item> <rfc id="6793"> - BGP Support for 4-Octet AS Numbers
<item> <rfc id="7313"> - Enhanced Route Refresh Capability for BGP
<item> <rfc id="7606"> - Revised Error Handling for BGP UPDATE Messages
<item> <rfc id="7911"> - Advertisement of Multiple Paths in BGP
<item> <rfc id="7947"> - Internet Exchange BGP Route Server
<item> <rfc id="8092"> - BGP Large Communities Attribute
</itemize>
<sect1>Route selection rules <sect1>Route selection rules
<label id="bgp-route-select-rules"> <label id="bgp-route-select-rules">

View file

@ -67,7 +67,39 @@
* point of view and therefore maintaining received routes. Routing table * point of view and therefore maintaining received routes. Routing table
* refresh cycle (rt_refresh_begin(), rt_refresh_end()) is used for removing * refresh cycle (rt_refresh_begin(), rt_refresh_end()) is used for removing
* stale routes after reestablishment of BGP session during graceful restart. * stale routes after reestablishment of BGP session during graceful restart.
*/ *
* Supported standards:
* <itemize>
* <item> <rfc id="4271"> - Border Gateway Protocol 4 (BGP)
* <item> <rfc id="1997"> - BGP Communities Attribute
* <item> <rfc id="2385"> - Protection of BGP Sessions via TCP MD5 Signature
* <item> <rfc id="2545"> - Use of BGP Multiprotocol Extensions for IPv6
* <item> <rfc id="2918"> - Route Refresh Capability
* <item> <rfc id="3107"> - Carrying Label Information in BGP
* <item> <rfc id="4360"> - BGP Extended Communities Attribute
* <item> <rfc id="4364"> - BGP/MPLS IPv4 Virtual Private Networks
* <item> <rfc id="4456"> - BGP Route Reflection
* <item> <rfc id="4486"> - Subcodes for BGP Cease Notification Message
* <item> <rfc id="4659"> - BGP/MPLS IPv6 Virtual Private Networks
* <item> <rfc id="4724"> - Graceful Restart Mechanism for BGP
* <item> <rfc id="4760"> - Multiprotocol extensions for BGP
* <item> <rfc id="4798"> - Connecting IPv6 Islands over IPv4 MPLS
* <item> <rfc id="5065"> - AS confederations for BGP
* <item> <rfc id="5082"> - Generalized TTL Security Mechanism
* <item> <rfc id="5492"> - Capabilities Advertisement with BGP
* <item> <rfc id="5549"> - Advertising IPv4 NLRI with an IPv6 Next Hop
* <item> <rfc id="5575"> - Dissemination of Flow Specification Rules
* <item> <rfc id="5668"> - 4-Octet AS Specific BGP Extended Community
* <item> <rfc id="6286"> - AS-Wide Unique BGP Identifier
* <item> <rfc id="6608"> - Subcodes for BGP Finite State Machine Error
* <item> <rfc id="6793"> - BGP Support for 4-Octet AS Numbers
* <item> <rfc id="7313"> - Enhanced Route Refresh Capability for BGP
* <item> <rfc id="7606"> - Revised Error Handling for BGP UPDATE Messages
* <item> <rfc id="7911"> - Advertisement of Multiple Paths in BGP
* <item> <rfc id="7947"> - Internet Exchange BGP Route Server
* <item> <rfc id="8092"> - BGP Large Communities Attribute
* </itemize>
*/
#undef LOCAL_DEBUG #undef LOCAL_DEBUG

View file

@ -90,9 +90,9 @@ struct bgp_config {
int deterministic_med; /* Use more complicated algo to have strict RFC 4271 MED comparison */ int deterministic_med; /* Use more complicated algo to have strict RFC 4271 MED comparison */
u32 default_local_pref; /* Default value for LOCAL_PREF attribute */ u32 default_local_pref; /* Default value for LOCAL_PREF attribute */
u32 default_med; /* Default value for MULTI_EXIT_DISC attribute */ u32 default_med; /* Default value for MULTI_EXIT_DISC attribute */
int capabilities; /* Enable capability handshake [RFC 3392] */ int capabilities; /* Enable capability handshake [RFC 5492] */
int enable_refresh; /* Enable local support for route refresh [RFC 2918] */ int enable_refresh; /* Enable local support for route refresh [RFC 2918] */
int enable_as4; /* Enable local support for 4B AS numbers [RFC 4893] */ int enable_as4; /* Enable local support for 4B AS numbers [RFC 6793] */
int enable_extended_messages; /* Enable local support for extended messages [draft] */ int enable_extended_messages; /* Enable local support for extended messages [draft] */
u32 rr_cluster_id; /* Route reflector cluster ID, if different from local ID */ u32 rr_cluster_id; /* Route reflector cluster ID, if different from local ID */
int rr_client; /* Whether neighbor is RR client of me */ int rr_client; /* Whether neighbor is RR client of me */

View file

@ -470,7 +470,7 @@ bgp_read_capabilities(struct bgp_conn *conn, struct bgp_caps *caps, byte *pos, i
} }
break; break;
case 65: /* AS4 capability, RFC 4893 */ case 65: /* AS4 capability, RFC 6793 */
if (cl != 4) if (cl != 4)
goto err; goto err;