summaryrefslogtreecommitdiffstats
path: root/pimd/pim_iface.h
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_iface.h')
-rw-r--r--pimd/pim_iface.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h
index 0312f719..95bac084 100644
--- a/pimd/pim_iface.h
+++ b/pimd/pim_iface.h
@@ -63,6 +63,7 @@ struct pim_interface {
bool pim_passive_enable : 1;
bool gm_enable : 1;
+ bool gm_proxy : 1; /* proxy IGMP joins/prunes */
ifindex_t mroute_vif_index;
struct pim_instance *pim;
@@ -98,6 +99,7 @@ struct pim_interface {
*/
struct list *gm_socket_list; /* list of struct IGMP or MLD sock */
struct list *gm_join_list; /* list of struct IGMP or MLD join */
+ struct list *static_group_list; /* list of struct static group */
struct list *gm_group_list; /* list of struct IGMP or MLD group */
struct hash *gm_group_hash;
@@ -218,9 +220,16 @@ int pim_if_t_override_msec(struct interface *ifp);
pim_addr pim_find_primary_addr(struct interface *ifp);
ferr_r pim_if_gm_join_add(struct interface *ifp, pim_addr group_addr,
- pim_addr source_addr);
+ pim_addr source_addr, enum gm_join_type join_type);
int pim_if_gm_join_del(struct interface *ifp, pim_addr group_addr,
- pim_addr source_addr);
+ pim_addr source_addr, enum gm_join_type join_type);
+void pim_if_gm_proxy_init(struct pim_instance *pim, struct interface *oif);
+void pim_if_gm_proxy_finis(struct pim_instance *pim, struct interface *ifp);
+
+ferr_r pim_if_static_group_add(struct interface *ifp, pim_addr group_addr,
+ pim_addr source_addr);
+int pim_if_static_group_del(struct interface *ifp, pim_addr group_addr,
+ pim_addr source_addr);
void pim_if_update_could_assert(struct interface *ifp);