]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_nht.h
Merge pull request #5430 from taruta811/build-docker-centos
[mirror_frr.git] / pimd / pim_nht.h
index e7a5fa77209ba7987192b5c2b00a6c39139f7c2d..12dbf167d1fc044c53731ef389b68455d087bf30 100644 (file)
@@ -45,14 +45,22 @@ struct pim_nexthop_cache {
 
        struct list *rp_list;
        struct hash *upstream_hash;
+       /* Ideally this has to be list of scope zone. But for now we can just
+        * have as a bool variable to say bsr_tracking.
+        * Later this variable can be changed as a list of scope zones for
+        * tracking same bsr for multiple scope zones.
+        */
+       bool bsr_tracking;
 };
 
 int pim_parse_nexthop_update(ZAPI_CALLBACK_ARGS);
 int pim_find_or_track_nexthop(struct pim_instance *pim, struct prefix *addr,
                              struct pim_upstream *up, struct rp_info *rp,
+                             bool bsr_track_needed,
                              struct pim_nexthop_cache *out_pnc);
 void pim_delete_tracked_nexthop(struct pim_instance *pim, struct prefix *addr,
-                               struct pim_upstream *up, struct rp_info *rp);
+                               struct pim_upstream *up, struct rp_info *rp,
+                               bool del_bsr_tracking);
 struct pim_nexthop_cache *pim_nexthop_cache_find(struct pim_instance *pim,
                                                 struct pim_rpf *rpf);
 uint32_t pim_compute_ecmp_hash(struct prefix *src, struct prefix *grp);
@@ -64,4 +72,9 @@ void pim_sendmsg_zebra_rnh(struct pim_instance *pim, struct zclient *zclient,
 int pim_ecmp_fib_lookup_if_vif_index(struct pim_instance *pim,
                                     struct prefix *src, struct prefix *grp);
 void pim_rp_nexthop_del(struct rp_info *rp_info);
+bool pim_nexthop_match(struct pim_instance *pim, struct in_addr addr,
+                      struct in_addr ip_src);
+bool pim_nexthop_match_nht_cache(struct pim_instance *pim, struct in_addr addr,
+                                struct in_addr ip_src);
+
 #endif