summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pimd/pim6_cmd.c21
-rw-r--r--pimd/pim_cmd.c11
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;
}