summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2020-09-19 08:32:02 -0400
committerGitHub <noreply@github.com>2020-09-19 08:32:02 -0400
commit1f79037b72f0ec93153f9505a11bce9812429993 (patch)
tree78740adab0bcabe30ea868424ff3b4550ddccf42
parent68f383438dc0d498eaef42037b0e6f90b0fcda01 (diff)
parentf5399474a40447a2e18e8d215a0791bbd1bc59f6 (diff)
Merge pull request #7036 from ton31337/fix/do_not_allow_setting_maximum-prefix-out_global
bgpd: maximum-prefix-out command fixes
-rw-r--r--bgpd/bgp_updgrp.c4
-rw-r--r--doc/user/bgp.rst3
2 files changed, 6 insertions, 1 deletions
diff --git a/bgpd/bgp_updgrp.c b/bgpd/bgp_updgrp.c
index ace18000f8..d2e563b237 100644
--- a/bgpd/bgp_updgrp.c
+++ b/bgpd/bgp_updgrp.c
@@ -373,11 +373,13 @@ static unsigned int updgrp_hash_key_make(const void *p)
* There are certain peers that must get their own update-group:
* - lonesoul peers
* - peers that negotiated ORF
+ * - maximum-prefix-out is set
*/
if (CHECK_FLAG(peer->flags, PEER_FLAG_LONESOUL)
|| CHECK_FLAG(peer->af_cap[afi][safi], PEER_CAP_ORF_PREFIX_SM_RCV)
|| CHECK_FLAG(peer->af_cap[afi][safi],
- PEER_CAP_ORF_PREFIX_SM_OLD_RCV))
+ PEER_CAP_ORF_PREFIX_SM_OLD_RCV)
+ || CHECK_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT))
key = jhash_1word(jhash(peer->host, strlen(peer->host), SEED2),
key);
diff --git a/doc/user/bgp.rst b/doc/user/bgp.rst
index 9983911581..764428cb0a 100644
--- a/doc/user/bgp.rst
+++ b/doc/user/bgp.rst
@@ -1399,6 +1399,9 @@ Configuring Peers
Sets a maximum number of prefixes we can send to a given peer.
+ Since sent prefix count is managed by update-groups, this option
+ creates a separate update-group for outgoing updates.
+
.. index:: [no] neighbor PEER local-as AS-NUMBER [no-prepend] [replace-as]
.. clicmd:: [no] neighbor PEER local-as AS-NUMBER [no-prepend] [replace-as]