summaryrefslogtreecommitdiff
path: root/pimd/pim_cmd.c
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2025-02-19 07:21:00 -0500
committerGitHub <noreply@github.com>2025-02-19 07:21:00 -0500
commit23fc4ce666b7e71df1256709c8646bc26327f439 (patch)
tree69c5cb85b4125ae10201a261ef3db7a9fe6db757 /pimd/pim_cmd.c
parent5082cab8099377eea946326b8f1dce642cfa4309 (diff)
parent80a12477e09023ed279ea06c3cbf449d773319dd (diff)
Merge pull request #18111 from opensourcerouting/gmp-leave
pimd,pim6d: support IGMPv2/MLDv1 immediate leave
Diffstat (limited to 'pimd/pim_cmd.c')
-rw-r--r--pimd/pim_cmd.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index fa9c6f9537..4ad75a21e7 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -5693,6 +5693,19 @@ ALIAS_YANG(interface_ip_igmp_limits,
"Limit number of IGMPv3 sources to track\n"
"Limit number of IGMP group memberships to track\n")
+DEFPY_YANG(interface_ip_igmp_immediate_leave,
+ interface_ip_igmp_immediate_leave_cmd,
+ "[no] ip igmp immediate-leave",
+ NO_STR
+ IP_STR
+ IFACE_IGMP_STR
+ "Immediately drop group memberships on receiving Leave (IGMPv2 only)\n")
+{
+ nb_cli_enqueue_change(vty, "./immediate-leave", NB_OP_MODIFY, no ? "false" : "true");
+
+ return nb_cli_apply_changes(vty, FRR_GMP_INTERFACE_XPATH, FRR_PIM_AF_XPATH_VAL);
+}
+
DEFUN (interface_ip_pim_drprio,
interface_ip_pim_drprio_cmd,
"ip pim drpriority (0-4294967295)",
@@ -9140,6 +9153,7 @@ void pim_cmd_init(void)
install_element(INTERFACE_NODE, &interface_ip_igmp_proxy_cmd);
install_element(INTERFACE_NODE, &interface_ip_igmp_limits_cmd);
install_element(INTERFACE_NODE, &no_interface_ip_igmp_limits_cmd);
+ install_element(INTERFACE_NODE, &interface_ip_igmp_immediate_leave_cmd);
install_element(INTERFACE_NODE, &interface_ip_pim_activeactive_cmd);
install_element(INTERFACE_NODE, &interface_ip_pim_ssm_cmd);
install_element(INTERFACE_NODE, &interface_no_ip_pim_ssm_cmd);