Skip to content

Commit

Permalink
ripd: fix "clear ip rip" command
Browse files Browse the repository at this point in the history
mgmtd doesn't support YANG RPCs yet, so this command must go directly to
ripd.

Signed-off-by: Igor Ryzhov <[email protected]>
  • Loading branch information
idryzhov committed Mar 8, 2024
1 parent 7e058c2 commit 1ba9751
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 32 deletions.
32 changes: 0 additions & 32 deletions ripd/rip_cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -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]",
Expand Down Expand Up @@ -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 */
Expand Down
33 changes: 33 additions & 0 deletions ripd/ripd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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();
Expand Down
1 change: 1 addition & 0 deletions ripd/subdir.am
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ ripd_ripd_SOURCES = \
clippy_scan += \
ripd/rip_bfd.c \
ripd/rip_cli.c \
ripd/ripd.c \
# end

noinst_HEADERS += \
Expand Down

0 comments on commit 1ba9751

Please sign in to comment.