]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: Move the mq data structure to zrouter
authorDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 11 Jan 2019 20:30:57 +0000 (15:30 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 31 Jan 2019 14:20:46 +0000 (09:20 -0500)
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
zebra/zebra_rib.c
zebra/zebra_router.c
zebra/zebra_router.h
zebra/zebra_vrf.c
zebra/zserv.h

index 81c74a9df88cb0c054c6084cb1a37b4478d3ae22..b0c82a8a5757d7508b99bfc38a265748577e362e 100644 (file)
@@ -2181,7 +2181,7 @@ static wq_item_status meta_queue_process(struct work_queue *dummy, void *data)
 
                /* Ensure that the meta-queue is actually enqueued */
                if (work_queue_empty(zrouter.ribq))
-                       work_queue_add(zrouter.ribq, zebrad.mq);
+                       work_queue_add(zrouter.ribq, zrouter.mq);
 
                return WQ_QUEUE_BLOCKED;
        }
@@ -2285,9 +2285,9 @@ void rib_queue_add(struct route_node *rn)
         * This semantics was introduced after 0.99.9 release.
         */
        if (work_queue_empty(zrouter.ribq))
-               work_queue_add(zrouter.ribq, zebrad.mq);
+               work_queue_add(zrouter.ribq, zrouter.mq);
 
-       rib_meta_queue_add(zebrad.mq, rn);
+       rib_meta_queue_add(zrouter.mq, rn);
 
        return;
 }
@@ -2341,7 +2341,7 @@ static void rib_queue_init(struct zebra_t *zebra)
        zrouter.ribq->spec.hold = ZEBRA_RIB_PROCESS_HOLD_TIME;
        zrouter.ribq->spec.retry = ZEBRA_RIB_PROCESS_RETRY_TIME;
 
-       if (!(zebra->mq = meta_queue_new())) {
+       if (!(zrouter.mq = meta_queue_new())) {
                flog_err(EC_ZEBRA_WQ_NONEXISTENT,
                         "%s: could not initialise meta queue!", __func__);
                return;
index dde0e1bf629448b37898b8432c4ac0789b6f30c0..24dd2691c7d8709cf1561a3d78ab5cb8038f2b64 100644 (file)
@@ -189,7 +189,7 @@ void zebra_router_terminate(void)
        }
 
        work_queue_free_and_null(&zrouter.ribq);
-       meta_queue_free(zebrad.mq);
+       meta_queue_free(zrouter.mq);
 
        zebra_vxlan_disable();
        zebra_mlag_terminate();
index 7f3a1a3e098b51e35e394f51e3e421111a228a9a..b4daeea245ceb35b339e9a11049497c67254e635 100644 (file)
@@ -78,6 +78,9 @@ struct zebra_router {
 #define ZEBRA_RIB_PROCESS_HOLD_TIME 10
 #define ZEBRA_RIB_PROCESS_RETRY_TIME 1
        struct work_queue *ribq;
+
+       /* Meta Queue Information */
+       struct meta_queue *mq;
 };
 
 extern struct zebra_router zrouter;
index 8928ba61360002d5b35bf14d8dfd3e713b98f3c9..11578d82d32550f8df43fec9b97dd98f40175510 100644 (file)
@@ -189,13 +189,13 @@ static int zebra_vrf_disable(struct vrf *vrf)
                struct route_node *rnode;
                rib_dest_t *dest;
 
-               for (ALL_LIST_ELEMENTS(zebrad.mq->subq[i], lnode, nnode,
+               for (ALL_LIST_ELEMENTS(zrouter.mq->subq[i], lnode, nnode,
                                       rnode)) {
                        dest = rib_dest_from_rnode(rnode);
                        if (dest && rib_dest_vrf(dest) == zvrf) {
                                route_unlock_node(rnode);
-                               list_delete_node(zebrad.mq->subq[i], lnode);
-                               zebrad.mq->size--;
+                               list_delete_node(zrouter.mq->subq[i], lnode);
+                               zrouter.mq->size--;
                        }
                }
        }
@@ -241,13 +241,13 @@ static int zebra_vrf_delete(struct vrf *vrf)
                struct route_node *rnode;
                rib_dest_t *dest;
 
-               for (ALL_LIST_ELEMENTS(zebrad.mq->subq[i], lnode, nnode,
+               for (ALL_LIST_ELEMENTS(zrouter.mq->subq[i], lnode, nnode,
                                       rnode)) {
                        dest = rib_dest_from_rnode(rnode);
                        if (dest && rib_dest_vrf(dest) == zvrf) {
                                route_unlock_node(rnode);
-                               list_delete_node(zebrad.mq->subq[i], lnode);
-                               zebrad.mq->size--;
+                               list_delete_node(zrouter.mq->subq[i], lnode);
+                               zrouter.mq->size--;
                        }
                }
        }
index a6a35a81c965e0eb292a53ab223aa9dac5ba41b0..5cad68d5d0af04a38bee1b0464513905418eb940 100644 (file)
@@ -175,8 +175,6 @@ DECLARE_KOOH(zserv_client_close, (struct zserv *client), (client));
 
 /* Zebra instance */
 struct zebra_t {
-       struct meta_queue *mq;
-
        /* LSP work queue */
        struct work_queue *lsp_process_q;