summaryrefslogtreecommitdiff
path: root/pimd/pim_igmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_igmp.c')
-rw-r--r--pimd/pim_igmp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c
index 12f424248f..b1b4566499 100644
--- a/pimd/pim_igmp.c
+++ b/pimd/pim_igmp.c
@@ -1416,6 +1416,14 @@ struct gm_group *igmp_add_group_by_addr(struct gm_sock *igmp,
__func__, &group_addr);
return NULL;
}
+
+ if (listcount(pim_ifp->gm_group_list) >= pim_ifp->gm_group_limit) {
+ if (PIM_DEBUG_GM_TRACE)
+ zlog_debug("interface %s has reached group limit (%u), refusing to add group %pI4",
+ igmp->interface->name, pim_ifp->gm_group_limit, &group_addr);
+ return NULL;
+ }
+
/*
Non-existant group is created as INCLUDE {empty}: