diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2024-03-09 00:00:12 +0200 | 
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2024-03-09 00:00:12 +0200 | 
| commit | 1ba97510e2683e6178973be98f1004a45462621e (patch) | |
| tree | 48a4e391cdf27d6aa52475b197e01c0e986214b8 | |
| parent | 7e058c201adaa493207dd5305c7aaa970a3580ea (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>
| -rw-r--r-- | ripd/rip_cli.c | 32 | ||||
| -rw-r--r-- | ripd/ripd.c | 33 | ||||
| -rw-r--r-- | ripd/subdir.am | 1 | 
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 += \  | 
