diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2021-02-08 11:36:05 -0500 |
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2021-05-04 16:23:37 -0400 |
| commit | 458133dbc5fa60f6b5c30e850d0232df37049240 (patch) | |
| tree | 8f86f26338f4023b3bf038b447e2dd705b3d2c50 /ripd/rip_cli.c | |
| parent | df19c76a535926b5607c2c72b94506da5d4c454e (diff) | |
lib, ripd, ripngd, vtysh: Move distribute list to `correct` spot
Allow the `distribute-list...` command in ripd and ripngd to
work correctly.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'ripd/rip_cli.c')
| -rw-r--r-- | ripd/rip_cli.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/ripd/rip_cli.c b/ripd/rip_cli.c index 87098ece64..43e5b21fa1 100644 --- a/ripd/rip_cli.c +++ b/ripd/rip_cli.c @@ -1019,11 +1019,56 @@ DEFPY_YANG (clear_ip_rip, return ret; } +DEFUN (rip_distribute_list, + rip_distribute_list_cmd, + "distribute-list [prefix] WORD <in|out> [WORD]", + "Filter networks in routing updates\n" + "Specify a prefix\n" + "Access-list name\n" + "Filter incoming routing updates\n" + "Filter outgoing routing updates\n" + "Interface name\n") +{ + const char *ifname = NULL; + int prefix = (argv[1]->type == WORD_TKN) ? 1 : 0; + + if (argv[argc - 1]->type == VARIABLE_TKN) + ifname = argv[argc - 1]->arg; + + return distribute_list_parser(prefix, true, argv[2 + prefix]->text, + argv[1 + prefix]->arg, ifname); +} + +DEFUN (rip_no_distribute_list, + rip_no_distribute_list_cmd, + "no distribute-list [prefix] WORD <in|out> [WORD]", + NO_STR + "Filter networks in routing updates\n" + "Specify a prefix\n" + "Access-list name\n" + "Filter incoming routing updates\n" + "Filter outgoing routing updates\n" + "Interface name\n") +{ + const char *ifname = NULL; + int prefix = (argv[2]->type == WORD_TKN) ? 1 : 0; + + if (argv[argc - 1]->type == VARIABLE_TKN) + ifname = argv[argc - 1]->arg; + + return distribute_list_no_parser(vty, prefix, true, + argv[3 + prefix]->text, + argv[2 + prefix]->arg, ifname); +} + void rip_cli_init(void) { install_element(CONFIG_NODE, &router_rip_cmd); install_element(CONFIG_NODE, &no_router_rip_cmd); + install_element(RIP_NODE, &rip_distribute_list_cmd); + install_element(RIP_NODE, &rip_no_distribute_list_cmd); + install_element(RIP_NODE, &rip_allow_ecmp_cmd); install_element(RIP_NODE, &rip_default_information_originate_cmd); install_element(RIP_NODE, &rip_default_metric_cmd); |
