From 09a754ead1fed57665ff802d6a8e3ccdcdd337cb Mon Sep 17 00:00:00 2001 From: Sai Gomathi N Date: Wed, 13 Apr 2022 07:41:46 -0700 Subject: [PATCH] pim6d: Add 'clear ipv6 pim [vrf NAME] oil' command Adding clear ipv6 pim [vrf NAME] oil CLI for resetting PIMv6 output interface list. Signed-off-by: Sai Gomathi N --- pimd/pim6_cmd.c | 21 +++++++++++++++++++++ pimd/pim_cmd.c | 11 +++++------ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index e88a832cc3..0a913f812d 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -42,6 +42,7 @@ #include "pim_nht.h" #include "pim_bsm.h" #include "pim_iface.h" +#include "pim_zebra.h" #ifndef VTYSH_EXTRACT_PL #include "pimd/pim6_cmd_clippy.c" @@ -1972,6 +1973,25 @@ DEFPY (clear_ipv6_mroute, return CMD_SUCCESS; } +DEFPY (clear_ipv6_pim_oil, + clear_ipv6_pim_oil_cmd, + "clear ipv6 pim [vrf NAME]$name oil", + CLEAR_STR + IPV6_STR + CLEAR_IP_PIM_STR + VRF_CMD_HELP_STR + "Rescan PIMv6 OIL (output interface list)\n") +{ + struct vrf *v = pim_cmd_lookup(vty, name); + + if (!v) + return CMD_WARNING; + + pim_scan_oil(v->info); + + return CMD_SUCCESS; +} + void pim_cmd_init(void) { if_cmd_init(pim_interface_config_write); @@ -2081,4 +2101,5 @@ void pim_cmd_init(void) install_element(ENABLE_NODE, &clear_ipv6_pim_statistics_cmd); install_element(ENABLE_NODE, &clear_ipv6_mroute_cmd); + install_element(ENABLE_NODE, &clear_ipv6_pim_oil_cmd); } diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 5c6c1e3d00..60d2ec3e2f 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -1924,22 +1924,21 @@ DEFUN (clear_ip_pim_interface_traffic, return CMD_SUCCESS; } -DEFUN (clear_ip_pim_oil, +DEFPY (clear_ip_pim_oil, clear_ip_pim_oil_cmd, - "clear ip pim [vrf NAME] oil", + "clear ip pim [vrf NAME]$name oil", CLEAR_STR IP_STR CLEAR_IP_PIM_STR VRF_CMD_HELP_STR "Rescan PIM OIL (output interface list)\n") { - int idx = 2; - struct vrf *vrf = pim_cmd_lookup_vrf(vty, argv, argc, &idx); + struct vrf *v = pim_cmd_lookup(vty, name); - if (!vrf) + if (!v) return CMD_WARNING; - pim_scan_oil(vrf->info); + pim_scan_oil(v->info); return CMD_SUCCESS; }