diff options
| author | David Lamparter <equinox@opensourcerouting.org> | 2021-09-28 14:40:23 +0200 |
|---|---|---|
| committer | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2025-02-13 12:45:47 -0300 |
| commit | df9517c95a09e2860cd9c049ee8fe2a5b1a7a48f (patch) | |
| tree | 9ae429789a1e1e6551a10ac584558ec2602ff1ea /pimd/pim6_cmd.c | |
| parent | f70530c8e8ada9fcc7fd6a83e7a1e211b11b2131 (diff) | |
pimd: add IGMPv2/MLDv1 immediate-leave
(Somewhat) useful when dealing with an interface that has only one host
attached. Only works for IGMPv2 and MLDv1, other protocol versions have
no leave message.
Co-authored-by: David Lamparter <equinox@opensourcerouting.org>
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Diffstat (limited to 'pimd/pim6_cmd.c')
| -rw-r--r-- | pimd/pim6_cmd.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index 40bd7caf7d..50357ca1d0 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -1649,6 +1649,19 @@ ALIAS_YANG(interface_ipv6_mld_limits, "Limit number of MLDv2 sources to track\n" "Limit number of MLD group memberships to track\n") +DEFPY_YANG(interface_ipv6_mld_immediate_leave, + interface_ipv6_mld_immediate_leave_cmd, + "[no] ipv6 mld immediate-leave", + NO_STR + IPV6_STR + IFACE_MLD_STR + "Immediately drop group memberships on receiving Leave (MLDv1 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); +} + DEFPY (interface_ipv6_mld_query_interval, interface_ipv6_mld_query_interval_cmd, "ipv6 mld query-interval (1-65535)$q_interval", @@ -2944,6 +2957,7 @@ void pim_cmd_init(void) install_element(INTERFACE_NODE, &interface_ipv6_mld_static_group_cmd); install_element(INTERFACE_NODE, &interface_ipv6_mld_version_cmd); install_element(INTERFACE_NODE, &interface_no_ipv6_mld_version_cmd); + install_element(INTERFACE_NODE, &interface_ipv6_mld_immediate_leave_cmd); install_element(INTERFACE_NODE, &interface_ipv6_mld_query_interval_cmd); install_element(INTERFACE_NODE, &interface_no_ipv6_mld_query_interval_cmd); |
