summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas.abraitis@gmail.com>2020-09-02 07:44:27 +0200
committerDonatas Abraitis <donatas.abraitis@gmail.com>2020-09-15 20:57:52 +0200
commita849a3fe0725421d212d04e481e2f48095f94456 (patch)
tree41e6992ad6040824d9fe60376b3eb7fc85cbca7b
parentMerge pull request #7003 from GalaxyGorilla/ospf_ti_lfa_prep (diff)
downloadfrr-a849a3fe0725421d212d04e481e2f48095f94456.tar.xz
frr-a849a3fe0725421d212d04e481e2f48095f94456.zip
bgpd: Create separate udpate-group when using `maximum-prefix-out` command
This is needed to avoid mangling update-group which is used for many peers. Sent prefix count is managed by update-groups. Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
-rw-r--r--bgpd/bgp_updgrp.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/bgpd/bgp_updgrp.c b/bgpd/bgp_updgrp.c
index ace18000f..d2e563b23 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);