]> 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:13:15 +0000 (20:13 +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 ace18000f832343a40e83e80d3996dcc5cef44a6..d2e563b23700266dd7ff8d19b5d6729bbe7bf580 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);