]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_instance.h
Merge pull request #5430 from taruta811/build-docker-centos
[mirror_frr.git] / pimd / pim_instance.h
index 3b4acb2073cb293dd82a467ae340d34ef392b1ca..dd3ac8fcb07bfcb6c1759cdf40158d93b7eba041 100644 (file)
 #ifndef __PIM_INSTANCE_H__
 #define __PIM_INSTANCE_H__
 
+#include <mlag.h>
+
 #include "pim_str.h"
 #include "pim_msdp.h"
+#include "pim_assert.h"
+#include "pim_bsm.h"
+#include "pim_vxlan_instance.h"
 
 #if defined(HAVE_LINUX_MROUTE_H)
 #include <linux/mroute.h>
@@ -35,7 +40,6 @@
 #define MAXVIFS (256)
 #endif
 #endif
-extern struct pim_instance *pimg; // Pim Global Instance
 
 enum pim_spt_switchover {
        PIM_SPT_IMMEDIATE,
@@ -44,6 +48,33 @@ enum pim_spt_switchover {
 
 struct pim_router {
        struct thread_master *master;
+
+       uint32_t debugs;
+
+       int t_periodic;
+       struct pim_assert_metric infinite_assert_metric;
+       long rpf_cache_refresh_delay_msec;
+       int32_t register_suppress_time;
+       int packet_process;
+       int32_t register_probe_time;
+
+       /*
+        * What is the default vrf that we work in
+        */
+       vrf_id_t vrf_id;
+
+       enum mlag_role role;
+       uint32_t pim_mlag_intf_cnt;
+       /* if true we have registered with MLAG */
+       bool mlag_process_register;
+       /* if true local MLAG process reported that it is connected
+        * with the peer MLAG process
+        */
+       bool connected_to_mlag;
+       /* Holds the client data(unencoded) that need to be pushed to MCLAGD*/
+       struct stream_fifo *mlag_fifo;
+       struct stream *mlag_stream;
+       struct thread *zpthread_mlag_write;
 };
 
 /* Per VRF PIM DB */
@@ -92,6 +123,7 @@ struct pim_instance {
        struct hash *channel_oil_hash;
 
        struct pim_msdp msdp;
+       struct pim_vxlan_instance vxlan;
 
        struct list *ssmpingd_list;
        struct in_addr ssmpingd_group_addr;
@@ -101,6 +133,14 @@ struct pim_instance {
 
        bool ecmp_enable;
        bool ecmp_rebalance_enable;
+       /* No. of Dual active I/fs in pim_instance */
+       uint32_t inst_mlag_intf_cnt;
+
+       /* Bsm related */
+       struct bsm_scope global_scope;
+       uint64_t bsm_rcvd;
+       uint64_t bsm_sent;
+       uint64_t bsm_dropped;
 
        /* If we need to rescan all our upstreams */
        struct thread *rpf_cache_refresher;