ripd: convert RPC commands to mgmtd

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
This commit is contained in:
Igor Ryzhov 2024-03-21 17:10:42 +02:00
parent a94f74bc2e
commit dbaf05ae3d
4 changed files with 28 additions and 22 deletions

View file

@ -98,6 +98,10 @@ static const char *const ripd_oper_xpaths[] = {
"/ietf-key-chain:key-chains", "/ietf-key-chain:key-chains",
NULL, NULL,
}; };
static const char *const ripd_rpc_xpaths[] = {
"/frr-ripd",
NULL,
};
#endif #endif
#if HAVE_RIPNGD #if HAVE_RIPNGD
@ -147,7 +151,11 @@ static const char *const *be_client_oper_xpaths[MGMTD_BE_CLIENT_ID_MAX] = {
[MGMTD_BE_CLIENT_ID_ZEBRA] = zebra_oper_xpaths, [MGMTD_BE_CLIENT_ID_ZEBRA] = zebra_oper_xpaths,
}; };
static const char *const *be_client_rpc_xpaths[MGMTD_BE_CLIENT_ID_MAX] = {}; static const char *const *be_client_rpc_xpaths[MGMTD_BE_CLIENT_ID_MAX] = {
#ifdef HAVE_RIPD
[MGMTD_BE_CLIENT_ID_RIPD] = ripd_rpc_xpaths,
#endif
};
/* /*
* We would like to have a better ADT than one with O(n) comparisons * We would like to have a better ADT than one with O(n) comparisons

View file

@ -1233,6 +1233,23 @@ DEFPY_YANG(no_rip_distribute_list_prefix,
return nb_cli_apply_changes(vty, NULL); return nb_cli_apply_changes(vty, 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)
{
if (vrf)
nb_cli_rpc_enqueue(vty, "vrf", vrf);
return nb_cli_rpc(vty, "/frr-ripd:clear-rip-route", NULL);
}
/* RIP node structure. */ /* RIP node structure. */
static struct cmd_node rip_node = { static struct cmd_node rip_node = {
.name = "rip", .name = "rip",
@ -1295,6 +1312,8 @@ void rip_cli_init(void)
install_element(INTERFACE_NODE, &ip_rip_bfd_profile_cmd); install_element(INTERFACE_NODE, &ip_rip_bfd_profile_cmd);
install_element(INTERFACE_NODE, &no_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); if_rmap_init(RIP_NODE);
} }
/* clang-format off */ /* clang-format off */

View file

@ -3254,25 +3254,6 @@ DEFUN (show_ip_rip_status,
return CMD_SUCCESS; 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)
{
if (vrf)
nb_cli_rpc_enqueue(vty, "vrf", vrf);
return nb_cli_rpc(vty, "/frr-ripd:clear-rip-route", NULL);
}
/* Distribute-list update functions. */ /* Distribute-list update functions. */
static void rip_distribute_update(struct distribute_ctx *ctx, static void rip_distribute_update(struct distribute_ctx *ctx,
struct distribute *dist) struct distribute *dist)
@ -3647,7 +3628,6 @@ void rip_init(void)
/* Install rip commands. */ /* Install rip commands. */
install_element(VIEW_NODE, &show_ip_rip_cmd); install_element(VIEW_NODE, &show_ip_rip_cmd);
install_element(VIEW_NODE, &show_ip_rip_status_cmd); install_element(VIEW_NODE, &show_ip_rip_status_cmd);
install_element(ENABLE_NODE, &clear_ip_rip_cmd);
/* Debug related init. */ /* Debug related init. */
rip_debug_init(); rip_debug_init();

View file

@ -33,7 +33,6 @@ ripd_ripd_SOURCES = \
clippy_scan += \ clippy_scan += \
ripd/rip_bfd.c \ ripd/rip_bfd.c \
ripd/rip_cli.c \ ripd/rip_cli.c \
ripd/ripd.c \
# end # end
noinst_HEADERS += \ noinst_HEADERS += \