]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_router.h
zebra: print unknown rule family as number
[mirror_frr.git] / zebra / zebra_router.h
index 5a2f0c9fa15484b37bdc66f548843f7e6d1e8ee4..d8ad8a68646d778cfbba94438aa39ebaad3afe07 100644 (file)
@@ -71,6 +71,41 @@ struct zebra_mlag_info {
 
        /* The system mac being used */
        struct ethaddr mac;
+       /*
+        * Zebra will open the communication channel with MLAGD only if any
+        * clients are interested and it is controlled dynamically based on
+        * client registers & un-registers.
+        */
+       uint32_t clients_interested_cnt;
+
+       /* coomunication channel with MLAGD is established */
+       bool connected;
+
+       /* connection retry timer is running */
+       bool timer_running;
+
+       /* Holds the client data(unencoded) that need to be pushed to MCLAGD*/
+       struct stream_fifo *mlag_fifo;
+
+       /*
+        * A new Kernel thread will be created to post the data to MCLAGD.
+        * where as, read will be performed from the zebra main thread, because
+        * read involves accessing client registartion data structures.
+        */
+       struct frr_pthread *zebra_pth_mlag;
+
+       /* MLAG Thread context 'master' */
+       struct thread_master *th_master;
+
+       /*
+        * Event for Initial MLAG Connection setup & Data Read
+        * Read can be performed only after successful connection establishment,
+        * so no issues.
+        *
+        */
+       struct thread *t_read;
+       /* Event for MLAG write */
+       struct thread *t_write;
 };
 
 struct zebra_router {
@@ -106,11 +141,6 @@ struct zebra_router {
 #define ZEBRA_RIB_PROCESS_RETRY_TIME 1
        struct work_queue *ribq;
 
-       /* The nexthop group work queue */
-#define ZEBRA_NHG_PROCESS_HOLD_TIME 1
-#define ZEBRA_NHG_PROCESS_RETRY_TIME 10
-       struct work_queue *nhgq;
-
        /* Meta Queue Information */
        struct meta_queue *mq;
 
@@ -165,6 +195,7 @@ extern void zebra_router_release_table(struct zebra_vrf *zvrf, uint32_t tableid,
 extern int zebra_router_config_write(struct vty *vty);
 
 extern void zebra_router_sweep_route(void);
+extern void zebra_router_sweep_nhgs(void);
 
 extern void zebra_router_show_table_summary(struct vty *vty);