mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 08:38:42 +00:00
BGP config: Splitting Route Refresh and Enhanced Route Refresh
Both toggles are on by default but if some implementation needs one or another to be switched off separately, then it's possible now.
This commit is contained in:
parent
a4adb09f5a
commit
8ad9c4bb33
@ -2799,13 +2799,20 @@ using the following configuration parameters:
|
||||
changes its import filter, or if there is suspicion of inconsistency) it
|
||||
is necessary to do a new complete route exchange. BGP protocol extension
|
||||
Route Refresh (<rfc id="2918">) allows BGP speaker to request
|
||||
re-advertisement of all routes from its neighbor. BGP protocol
|
||||
extension Enhanced Route Refresh (<rfc id="7313">) specifies explicit
|
||||
begin and end for such exchanges, therefore the receiver can remove
|
||||
stale routes that were not advertised during the exchange. This option
|
||||
specifies whether BIRD advertises these capabilities and supports
|
||||
re-advertisement of all routes from its neighbor. This option
|
||||
specifies whether BIRD advertises this capability and supports
|
||||
related procedures. Note that even when disabled, BIRD can send route
|
||||
refresh requests. Default: on.
|
||||
refresh requests. Disabling Route Refresh also disables Enhanced Route Refresh.
|
||||
Default: on.
|
||||
|
||||
<tag><label id="bgp-enable-enhanced-route-refresh">enable enhanced route refresh <m/switch/</tag>
|
||||
BGP protocol extension Enhanced Route Refresh (<rfc id="7313">) specifies explicit
|
||||
begin and end for Route Refresh (see previous option),
|
||||
therefore the receiver can remove
|
||||
stale routes that were not advertised during the exchange. This option
|
||||
specifies whether BIRD advertises this capability and supports
|
||||
related procedures.
|
||||
Default: on.
|
||||
|
||||
<tag><label id="bgp-graceful-restart">graceful restart <m/switch/|aware</tag>
|
||||
When a BGP speaker restarts or crashes, neighbors will discard all
|
||||
|
@ -96,6 +96,7 @@ struct bgp_config {
|
||||
u32 default_med; /* Default value for MULTI_EXIT_DISC attribute */
|
||||
int capabilities; /* Enable capability handshake [RFC 5492] */
|
||||
int enable_refresh; /* Enable local support for route refresh [RFC 2918] */
|
||||
int enable_enhanced_refresh; /* Enable local support for enhanced route refresh [RFC 7313] */
|
||||
int enable_as4; /* Enable local support for 4B AS numbers [RFC 6793] */
|
||||
int enable_extended_messages; /* Enable local support for extended messages [RFC 8654] */
|
||||
int enable_hostname; /* Enable local support for hostname [draft] */
|
||||
|
@ -24,7 +24,7 @@ CF_KEYWORDS(BGP, LOCAL, NEIGHBOR, AS, HOLD, TIME, CONNECT, RETRY, KEEPALIVE,
|
||||
BGP_AGGREGATOR, BGP_COMMUNITY, BGP_EXT_COMMUNITY, BGP_LARGE_COMMUNITY,
|
||||
SOURCE, ADDRESS, PASSWORD, RR, RS, CLIENT, CLUSTER, ID, AS4, ADVERTISE,
|
||||
IPV4, CAPABILITIES, LIMIT, PASSIVE, PREFER, OLDER, MISSING, LLADDR,
|
||||
DROP, IGNORE, ROUTE, REFRESH, INTERPRET, COMMUNITIES, BGP_ORIGINATOR_ID,
|
||||
DROP, IGNORE, ENHANCED, ROUTE, REFRESH, INTERPRET, COMMUNITIES, BGP_ORIGINATOR_ID,
|
||||
BGP_CLUSTER_LIST, IGP, TABLE, GATEWAY, DIRECT, RECURSIVE, MED, TTL,
|
||||
SECURITY, DETERMINISTIC, SECONDARY, ALLOW, BFD, ADD, PATHS, RX, TX,
|
||||
GRACEFUL, RESTART, AWARE, CHECK, LINK, PORT, EXTENDED, MESSAGES, SETKEY,
|
||||
@ -62,6 +62,7 @@ bgp_proto_start: proto_start BGP {
|
||||
BGP_CFG->error_delay_time_min = 60;
|
||||
BGP_CFG->error_delay_time_max = 300;
|
||||
BGP_CFG->enable_refresh = 1;
|
||||
BGP_CFG->enable_enhanced_refresh = 1;
|
||||
BGP_CFG->enable_as4 = 1;
|
||||
BGP_CFG->enable_hostname = 0;
|
||||
BGP_CFG->capabilities = 2;
|
||||
@ -185,6 +186,7 @@ bgp_proto:
|
||||
| bgp_proto DISABLE AFTER ERROR bool ';' { BGP_CFG->disable_after_error = $5; }
|
||||
| bgp_proto DISABLE AFTER CEASE bgp_cease_mask ';' { BGP_CFG->disable_after_cease = $5; }
|
||||
| bgp_proto ENABLE ROUTE REFRESH bool ';' { BGP_CFG->enable_refresh = $5; }
|
||||
| bgp_proto ENABLE ENHANCED ROUTE REFRESH bool ';' { BGP_CFG->enable_enhanced_refresh = $6; }
|
||||
| bgp_proto ENABLE AS4 bool ';' { BGP_CFG->enable_as4 = $4; }
|
||||
| bgp_proto ENABLE EXTENDED MESSAGES bool ';' { BGP_CFG->enable_extended_messages = $5; }
|
||||
| bgp_proto ADVERTISE HOSTNAME bool ';' { BGP_CFG->enable_hostname = $4; }
|
||||
|
@ -245,7 +245,7 @@ bgp_prepare_capabilities(struct bgp_conn *conn)
|
||||
caps->as4_support = p->cf->enable_as4;
|
||||
caps->ext_messages = p->cf->enable_extended_messages;
|
||||
caps->route_refresh = p->cf->enable_refresh;
|
||||
caps->enhanced_refresh = p->cf->enable_refresh;
|
||||
caps->enhanced_refresh = p->cf->enable_refresh && p->cf->enable_enhanced_refresh;
|
||||
caps->role = p->cf->local_role;
|
||||
|
||||
if (caps->as4_support)
|
||||
|
Loading…
Reference in New Issue
Block a user