diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-02-14 21:32:16 -0500 | 
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-03-02 08:13:03 -0500 | 
| commit | 982bff8972e0b387a1c3e466d584d2880175a5e3 (patch) | |
| tree | f1fe009e73fd377006bbebb2ff7b279c6ba0d7ff /pimd/pim_jp_agg.h | |
| parent | 338988d9cd38a8314647ec8f769a9eb8462564d4 (diff) | |
pimd: Join/Prune Aggregation
Add the ability for PIM to send Join/Prunes as an
aggregated message instead of individual messages
for each S,G.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_jp_agg.h')
| -rw-r--r-- | pimd/pim_jp_agg.h | 33 | 
1 files changed, 33 insertions, 0 deletions
diff --git a/pimd/pim_jp_agg.h b/pimd/pim_jp_agg.h new file mode 100644 index 0000000000..a50e8282ce --- /dev/null +++ b/pimd/pim_jp_agg.h @@ -0,0 +1,33 @@ +#ifndef __PIM_JP_AGG_H__ +#define __PIM_JP_AGG_H__ + +struct pim_jp_sources +{ +  struct pim_upstream *up; +  int is_join; +}; + +struct pim_jp_agg_group +{ +  struct in_addr group; +  //int onetime; +  struct list *sources; +}; + +void pim_jp_agg_group_list_free (struct pim_jp_agg_group *jag); +int pim_jp_agg_group_list_cmp (void *arg1, void *arg2); + +void pim_jp_agg_clear_group (struct list *group); +void pim_jp_agg_remove_group (struct list *group, struct pim_upstream *up); + +void pim_jp_agg_add_group (struct list *group, +                           struct pim_upstream *up, bool is_join); + +void pim_jp_agg_switch_interface (struct pim_rpf *orpf, +                                  struct pim_rpf *nrpf, +                                  struct pim_upstream *up); + +void pim_jp_agg_single_upstream_send (struct pim_rpf *rpf, +                                      struct pim_upstream *up, +                                      bool is_join); +#endif  | 
