]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Create separate udpate-group when using `maximum-prefix-out` command
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Wed, 2 Sep 2020 05:44:27 +0000 (08:44 +0300)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Sat, 19 Sep 2020 17:14:24 +0000 (20:14 +0300)
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>
bgpd/bgp_updgrp.c

index a29721988ea36c7e14230316281faadbf88b46ec..017a4429aeb898b4a1acded66bb23fedc3cf7d4e 100644 (file)
@@ -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);