]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Only install a minimal amount of times
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 11 Jun 2020 11:34:18 +0000 (07:34 -0400)
committerStephen Worley <sworley@cumulusnetworks.com>
Mon, 28 Sep 2020 16:40:59 +0000 (12:40 -0400)
The code was installing the nexthop group again using
the NLM_F_REPLACE function causing extremely large
route installation times.  This reduces the time from
installing 1 million routes from sharpd with a nhg
from > 200 seconds ( where I gave up ) to ~15
seconds on my machine for 32 x ecmp.  As a side note 1 million
routes using master sharpd takes ~50 seconds to do
the same thing.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
zebra/zebra_nhg.c

index b4d7df0b5336571fe813011faddbe39d11414cde..41754b9f88b1620feb26a4f764b4b01c33c53b6e 100644 (file)
@@ -2553,8 +2553,7 @@ void zebra_nhg_install_kernel(struct nhg_hash_entry *nhe)
        }
 
        if (CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_VALID)
-           && (!CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_INSTALLED)
-               || nhe->id >= ZEBRA_NHG_PROTO_LOWER)
+           && !CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_INSTALLED)
            && !CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_QUEUED)) {
                /* Change its type to us since we are installing it */
                if (!ZEBRA_NHG_CREATED(nhe))