summaryrefslogtreecommitdiff
path: root/ripd
diff options
context:
space:
mode:
authorIgor Ryzhov <iryzhov@nfware.com>2024-03-09 00:00:12 +0200
committerIgor Ryzhov <iryzhov@nfware.com>2024-03-09 00:00:12 +0200
commit1ba97510e2683e6178973be98f1004a45462621e (patch)
tree48a4e391cdf27d6aa52475b197e01c0e986214b8 /ripd
parent7e058c201adaa493207dd5305c7aaa970a3580ea (diff)
ripd: fix "clear ip rip" command
mgmtd doesn't support YANG RPCs yet, so this command must go directly to ripd. Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'ripd')
-rw-r--r--ripd/rip_cli.c32
-rw-r--r--ripd/ripd.c33
-rw-r--r--ripd/subdir.am1
3 files changed, 34 insertions, 32 deletions
diff --git a/ripd/rip_cli.c b/ripd/rip_cli.c
index 2e967698ea..4d4349b81a 100644
--- a/ripd/rip_cli.c
+++ b/ripd/rip_cli.c
@@ -1125,36 +1125,6 @@ void cli_show_ip_rip_bfd_profile(struct vty *vty, const struct lyd_node *dnode,
yang_dnode_get_string(dnode, NULL));
}
-/*
- * XPath: /frr-ripd:clear-rip-route
- */
-DEFPY_YANG (clear_ip_rip,
- clear_ip_rip_cmd,
- "clear ip rip [vrf WORD]",
- CLEAR_STR
- IP_STR
- "Clear IP RIP database\n"
- VRF_CMD_HELP_STR)
-{
- struct list *input;
- int ret;
-
- input = list_new();
- if (vrf) {
- struct yang_data *yang_vrf;
-
- yang_vrf = yang_data_new("/frr-ripd:clear-rip-route/input/vrf",
- vrf);
- listnode_add(input, yang_vrf);
- }
-
- ret = nb_cli_rpc(vty, "/frr-ripd:clear-rip-route", input, NULL);
-
- list_delete(&input);
-
- return ret;
-}
-
DEFPY_YANG(
rip_distribute_list, rip_distribute_list_cmd,
"distribute-list ACCESSLIST4_NAME$name <in|out>$dir [WORD$ifname]",
@@ -1325,8 +1295,6 @@ void rip_cli_init(void)
install_element(INTERFACE_NODE, &ip_rip_bfd_profile_cmd);
install_element(INTERFACE_NODE, &no_ip_rip_bfd_profile_cmd);
- install_element(ENABLE_NODE, &clear_ip_rip_cmd);
-
if_rmap_init(RIP_NODE);
}
/* clang-format off */
diff --git a/ripd/ripd.c b/ripd/ripd.c
index b8a140c9ca..e3220a9267 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -3254,6 +3254,38 @@ DEFUN (show_ip_rip_status,
return CMD_SUCCESS;
}
+#include "ripd/ripd_clippy.c"
+
+/*
+ * XPath: /frr-ripd:clear-rip-route
+ */
+DEFPY_YANG (clear_ip_rip,
+ clear_ip_rip_cmd,
+ "clear ip rip [vrf WORD]",
+ CLEAR_STR
+ IP_STR
+ "Clear IP RIP database\n"
+ VRF_CMD_HELP_STR)
+{
+ struct list *input;
+ int ret;
+
+ input = list_new();
+ if (vrf) {
+ struct yang_data *yang_vrf;
+
+ yang_vrf = yang_data_new("/frr-ripd:clear-rip-route/input/vrf",
+ vrf);
+ listnode_add(input, yang_vrf);
+ }
+
+ ret = nb_cli_rpc(vty, "/frr-ripd:clear-rip-route", input, NULL);
+
+ list_delete(&input);
+
+ return ret;
+}
+
/* Distribute-list update functions. */
static void rip_distribute_update(struct distribute_ctx *ctx,
struct distribute *dist)
@@ -3628,6 +3660,7 @@ void rip_init(void)
/* Install rip commands. */
install_element(VIEW_NODE, &show_ip_rip_cmd);
install_element(VIEW_NODE, &show_ip_rip_status_cmd);
+ install_element(ENABLE_NODE, &clear_ip_rip_cmd);
/* Debug related init. */
rip_debug_init();
diff --git a/ripd/subdir.am b/ripd/subdir.am
index aed8d249fe..7fb3726077 100644
--- a/ripd/subdir.am
+++ b/ripd/subdir.am
@@ -33,6 +33,7 @@ ripd_ripd_SOURCES = \
clippy_scan += \
ripd/rip_bfd.c \
ripd/rip_cli.c \
+ ripd/ripd.c \
# end
noinst_HEADERS += \