Skip to content

Commit

Permalink
ripngd: fix "clear ipv6 ripng" 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
ripngd.

Signed-off-by: Igor Ryzhov <[email protected]>
  • Loading branch information
idryzhov committed Mar 8, 2024
1 parent 1ba9751 commit c544b9e
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 32 deletions.
32 changes: 0 additions & 32 deletions ripngd/ripng_cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -512,36 +512,6 @@ void cli_show_ipv6_ripng_split_horizon(struct vty *vty,
}
}

/*
* XPath: /frr-ripngd:clear-ripng-route
*/
DEFPY_YANG (clear_ipv6_rip,
clear_ipv6_rip_cmd,
"clear ipv6 ripng [vrf WORD]",
CLEAR_STR
IPV6_STR
"Clear IPv6 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-ripngd:clear-ripng-route/input/vrf", vrf);
listnode_add(input, yang_vrf);
}

ret = nb_cli_rpc(vty, "/frr-ripngd:clear-ripng-route", input, NULL);

list_delete(&input);

return ret;
}

DEFPY_YANG(
ripng_ipv6_distribute_list, ripng_ipv6_distribute_list_cmd,
"ipv6 distribute-list ACCESSLIST6_NAME$name <in|out>$dir [WORD$ifname]",
Expand Down Expand Up @@ -693,8 +663,6 @@ void ripng_cli_init(void)

install_element(INTERFACE_NODE, &ipv6_ripng_split_horizon_cmd);

install_element(ENABLE_NODE, &clear_ipv6_rip_cmd);

if_rmap_init(RIPNG_NODE);
}

Expand Down
33 changes: 33 additions & 0 deletions ripngd/ripngd.c
Original file line number Diff line number Diff line change
Expand Up @@ -2231,6 +2231,38 @@ DEFUN (show_ipv6_ripng_status,
return CMD_SUCCESS;
}

#include "ripngd/ripngd_clippy.c"

/*
* XPath: /frr-ripngd:clear-ripng-route
*/
DEFPY_YANG (clear_ipv6_rip,
clear_ipv6_rip_cmd,
"clear ipv6 ripng [vrf WORD]",
CLEAR_STR
IPV6_STR
"Clear IPv6 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-ripngd:clear-ripng-route/input/vrf", vrf);
listnode_add(input, yang_vrf);
}

ret = nb_cli_rpc(vty, "/frr-ripngd:clear-ripng-route", input, NULL);

list_delete(&input);

return ret;
}

/* Update ECMP routes to zebra when ECMP is disabled. */
void ripng_ecmp_disable(struct ripng *ripng)
{
Expand Down Expand Up @@ -2648,6 +2680,7 @@ void ripng_init(void)
/* Install ripng commands. */
install_element(VIEW_NODE, &show_ipv6_ripng_cmd);
install_element(VIEW_NODE, &show_ipv6_ripng_status_cmd);
install_element(ENABLE_NODE, &clear_ipv6_rip_cmd);

ripng_if_init();
ripng_debug_init();
Expand Down
1 change: 1 addition & 0 deletions ripngd/subdir.am
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ ripngd_ripngd_SOURCES = \

clippy_scan += \
ripngd/ripng_cli.c \
ripngd/ripngd.c \
# end

noinst_HEADERS += \
Expand Down

0 comments on commit c544b9e

Please sign in to comment.