diff options
Diffstat (limited to 'pimd/pim6_cmd.c')
| -rw-r--r-- | pimd/pim6_cmd.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index 3443cc3d82..9b7faa0954 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -40,7 +40,8 @@ #include "pim_nb.h" #include "pim_addr.h" #include "pim_nht.h" - +#include "pim_bsm.h" +#include "pim_iface.h" #ifndef VTYSH_EXTRACT_PL #include "pimd/pim6_cmd_clippy.c" @@ -215,20 +216,35 @@ DEFPY (no_ipv6_pim_register_suppress, DEFPY (interface_ipv6_pim, interface_ipv6_pim_cmd, - "ipv6 pim", + "ipv6 pim [passive$passive]", IPV6_STR - PIM_STR) + PIM_STR + "Disable exchange of protocol packets\n") { - return pim_process_ip_pim_cmd(vty); + int ret; + + ret = pim_process_ip_pim_cmd(vty); + + if (ret != NB_OK) + return ret; + + if (passive) + return pim_process_ip_pim_passive_cmd(vty, true); + + return CMD_SUCCESS; } DEFPY (interface_no_ipv6_pim, interface_no_ipv6_pim_cmd, - "no ipv6 pim", + "no ipv6 pim [passive$passive]", NO_STR IPV6_STR - PIM_STR) + PIM_STR + "Disable exchange of protocol packets\n") { + if (passive) + return pim_process_ip_pim_passive_cmd(vty, false); + return pim_process_no_ip_pim_cmd(vty); } |
