]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_instance.h
Merge pull request #3502 from donaldsharp/socket_to_me_baby
[mirror_frr.git] / pimd / pim_instance.h
index 79a0de79bc9abe24ea34d85acd8dd211bc423906..b447075e9a934c5f6c5683b18a1c04df1bb45634 100644 (file)
 #ifndef __PIM_INSTANCE_H__
 #define __PIM_INSTANCE_H__
 
+#include "pim_str.h"
+#include "pim_msdp.h"
+
+#if defined(HAVE_LINUX_MROUTE_H)
+#include <linux/mroute.h>
+#else
+/*
+  Below: from <linux/mroute.h>
+*/
+
+#ifndef MAXVIFS
+#define MAXVIFS (256)
+#endif
+#endif
 extern struct pim_instance *pimg; // Pim Global Instance
 
 enum pim_spt_switchover {
@@ -61,6 +75,40 @@ struct pim_instance {
        struct list *upstream_list;
        struct hash *upstream_hash;
        struct timer_wheel *upstream_sg_wheel;
+
+       /*
+        * RP information
+        */
+       struct list *rp_list;
+       struct route_table *rp_table;
+
+       int iface_vif_index[MAXVIFS];
+
+       struct list *channel_oil_list;
+       struct hash *channel_oil_hash;
+
+       struct pim_msdp msdp;
+
+       struct list *ssmpingd_list;
+       struct in_addr ssmpingd_group_addr;
+
+       unsigned int keep_alive_time;
+       unsigned int rp_keep_alive_time;
+
+       bool ecmp_enable;
+       bool ecmp_rebalance_enable;
+
+       /* If we need to rescan all our upstreams */
+       struct thread *rpf_cache_refresher;
+       int64_t rpf_cache_refresh_requests;
+       int64_t rpf_cache_refresh_events;
+       int64_t rpf_cache_refresh_last;
+       int64_t scan_oil_events;
+       int64_t scan_oil_last;
+
+       int64_t nexthop_lookups;
+       int64_t nexthop_lookups_avoided;
+       int64_t last_route_change_time;
 };
 
 void pim_vrf_init(void);