]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Move multipath_num into zrouter 4327/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 13 Feb 2019 19:58:29 +0000 (14:58 -0500)
committerStephen Worley <sworley@cumulusnetworks.com>
Tue, 14 May 2019 21:15:18 +0000 (14:15 -0700)
The multipath_num variable is a property of zebra_router,
so move it there.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
zebra/main.c
zebra/zapi_msg.c
zebra/zebra_fpm_netlink.c
zebra/zebra_mpls_openbsd.c
zebra/zebra_rib.c
zebra/zebra_router.c
zebra/zebra_router.h
zebra/zserv.h

index 184e798bd070f1484804082a8df794dc14d46774..cff5e069337e4c81ad85e5fdecf059a8dc92f377 100644 (file)
@@ -119,8 +119,6 @@ struct zebra_privs_t zserv_privs = {
        .cap_num_p = array_size(_caps_p),
        .cap_num_i = 0};
 
-unsigned int multipath_num = MULTIPATH_NUM;
-
 /* SIGHUP handler. */
 static void sighup(void)
 {
@@ -322,9 +320,9 @@ int main(int argc, char **argv)
                        keep_kernel_mode = 1;
                        break;
                case 'e':
-                       multipath_num = atoi(optarg);
-                       if (multipath_num > MULTIPATH_NUM
-                           || multipath_num <= 0) {
+                       zrouter.multipath_num = atoi(optarg);
+                       if (zrouter.multipath_num > MULTIPATH_NUM
+                           || zrouter.multipath_num <= 0) {
                                flog_err(
                                        EC_ZEBRA_BAD_MULTIPATH_NUM,
                                        "Multipath Number specified must be less than %d and greater than 0",
index 7f6af820185750e0fa43c2a31e83e2153d75a7e9..f906b527b0da6aa10c6a569704b75a5ecfb45fd6 100644 (file)
@@ -1339,14 +1339,14 @@ static void zread_interface_delete(ZAPI_HANDLER_ARGS)
 void zserv_nexthop_num_warn(const char *caller, const struct prefix *p,
                            const unsigned int nexthop_num)
 {
-       if (nexthop_num > multipath_num) {
+       if (nexthop_num > zrouter.multipath_num) {
                char buff[PREFIX2STR_BUFFER];
 
                prefix2str(p, buff, sizeof(buff));
                flog_warn(
                        EC_ZEBRA_MORE_NH_THAN_MULTIPATH,
                        "%s: Prefix %s has %d nexthops, but we can only use the first %d",
-                       caller, buff, nexthop_num, multipath_num);
+                       caller, buff, nexthop_num, zrouter.multipath_num);
        }
 }
 
@@ -1651,7 +1651,7 @@ static void zsend_capabilities(struct zserv *client, struct zebra_vrf *zvrf)
        zclient_create_header(s, ZEBRA_CAPABILITIES, zvrf->vrf->vrf_id);
        stream_putl(s, vrf_get_backend());
        stream_putc(s, mpls_enabled);
-       stream_putl(s, multipath_num);
+       stream_putl(s, zrouter.multipath_num);
        stream_putc(s, zebra_mlag_get_role());
 
        stream_putw_at(s, 0, stream_get_endp(s));
index bdc1dcdff3197716b1a39504bf0280030dd9c957..1fe88a16890d345601d0579ec0fb23857e5271e0 100644 (file)
@@ -32,6 +32,7 @@
 #include "prefix.h"
 
 #include "zebra/zserv.h"
+#include "zebra/zebra_router.h"
 #include "zebra/zebra_dplane.h"
 #include "zebra/zebra_ns.h"
 #include "zebra/zebra_vrf.h"
@@ -251,7 +252,7 @@ static int netlink_route_info_fill(netlink_route_info_t *ri, int cmd,
        ri->metric = &re->metric;
 
        for (ALL_NEXTHOPS(re->ng, nexthop)) {
-               if (ri->num_nhs >= multipath_num)
+               if (ri->num_nhs >= zrouter.multipath_num)
                        break;
 
                if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
index 977a8eaf3c7711d7a3c9b464f1d70c909d33cbc7..e7fdaf127d38ad30368f585edeb1083781db0198 100644 (file)
@@ -27,6 +27,7 @@
 #include "zebra/zebra_mpls.h"
 #include "zebra/debug.h"
 #include "zebra/zebra_errors.h"
+#include "zebra/zebra_router.h"
 
 #include "privs.h"
 #include "prefix.h"
@@ -262,7 +263,7 @@ static int kernel_lsp_cmd(struct zebra_dplane_ctx *ctx)
                if (!nexthop)
                        continue;
 
-               if (nexthop_num >= multipath_num)
+               if (nexthop_num >= zrouter.multipath_num)
                        break;
 
                if (((action == RTM_ADD || action == RTM_CHANGE)
index 3623852afd0bab61071c9a930661420f33ea9ab9..c99a7a70d70c75cdfee28b8543dcc6775fcb4e67 100644 (file)
@@ -961,7 +961,8 @@ static int nexthop_active_update(struct route_node *rn, struct route_entry *re)
                 * decision point.
                 */
                new_active = nexthop_active_check(rn, re, nexthop);
-               if (new_active && re->nexthop_active_num >= multipath_num) {
+               if (new_active
+                   && re->nexthop_active_num >= zrouter.multipath_num) {
                        UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_ACTIVE);
                        new_active = 0;
                }
index 63724fc350dec0241fcc60c8eb7d21b5963a0deb..0ab6946eea470dc7425c3bdd240d62f8dfb7e05d 100644 (file)
@@ -30,7 +30,9 @@
 #include "zebra_vxlan.h"
 #include "zebra_mlag.h"
 
-struct zebra_router zrouter;
+struct zebra_router zrouter = {
+       .multipath_num = MULTIPATH_NUM,
+};
 
 static inline int
 zebra_router_table_entry_compare(const struct zebra_router_table *e1,
index b316b91d0d28b337cc50fe9e6362bae719747dda..13009cb66d92785063125a0b2888bdd41ba6c0c8 100644 (file)
@@ -110,6 +110,8 @@ struct zebra_router {
         * The EVPN instance, if any
         */
        struct zebra_vrf *evpn_vrf;
+
+       uint32_t multipath_num;
 };
 
 extern struct zebra_router zrouter;
index d6fdc0537419a7892f3916b10114f12ba4230c42..34965618f220a0bf14221cd50f336f43aa2c12e2 100644 (file)
@@ -173,8 +173,6 @@ struct zserv {
 DECLARE_HOOK(zserv_client_connect, (struct zserv *client), (client));
 DECLARE_KOOH(zserv_client_close, (struct zserv *client), (client));
 
-extern unsigned int multipath_num;
-
 /*
  * Initialize Zebra API server.
  *