X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=isisd%2Fisis_redist.c;h=dc23e8ea499d18bad1f5efdfd6a784a73c3cc32c;hb=f94ed830df98218447f00b97f856de811bfcc4a2;hp=3a864fb356c658eb604f6bf5d7f0ed3480abc5c8;hpb=2b38c97fe1ee3140d5b8e4b42082db98df390297;p=mirror_frr.git diff --git a/isisd/isis_redist.c b/isisd/isis_redist.c index 3a864fb35..dc23e8ea4 100644 --- a/isisd/isis_redist.c +++ b/isisd/isis_redist.c @@ -32,7 +32,6 @@ #include "vty.h" #include "srcdest_table.h" -#include "isisd/dict.h" #include "isisd/isis_constants.h" #include "isisd/isis_common.h" #include "isisd/isis_flags.h" @@ -516,7 +515,7 @@ void isis_redist_area_finish(struct isis_area *area) DEFUN (isis_redistribute, isis_redistribute_cmd, "redistribute " PROTO_REDIST_STR - " []", + " [{metric (0-16777215)|route-map WORD}]", REDIST_STR "Redistribute IPv4 routes\n" "Redistribute IPv6 routes\n" @@ -528,7 +527,7 @@ DEFUN (isis_redistribute, { int idx_afi = 1; int idx_protocol = 2; - int idx_metric_rmap = fabricd ? 3 : 4; + int idx_metric_rmap = 1; VTY_DECLVAR_CONTEXT(isis_area, area); int family; int afi; @@ -556,20 +555,13 @@ DEFUN (isis_redistribute, return CMD_WARNING_CONFIG_FAILED; } - if (argc > idx_metric_rmap + 1) { - if (argv[idx_metric_rmap + 1]->arg[0] == '\0') - return CMD_WARNING_CONFIG_FAILED; - - if (strmatch(argv[idx_metric_rmap]->text, "metric")) { - char *endp; - metric = strtoul(argv[idx_metric_rmap + 1]->arg, &endp, - 10); + if (argv_find(argv, argc, "metric", &idx_metric_rmap)) { + metric = strtoul(argv[idx_metric_rmap + 1]->arg, NULL, 10); + } - if (*endp != '\0') - return CMD_WARNING_CONFIG_FAILED; - } else { - routemap = argv[idx_metric_rmap + 1]->arg; - } + idx_metric_rmap = 1; + if (argv_find(argv, argc, "route-map", &idx_metric_rmap)) { + routemap = argv[idx_metric_rmap + 1]->arg; } isis_redist_set(area, level, family, type, metric, routemap, 0); @@ -614,7 +606,7 @@ DEFUN (no_isis_redistribute, DEFUN (isis_default_originate, isis_default_originate_cmd, "default-information originate " - " [always] []", + " [always] [{metric (0-16777215)|route-map WORD}]", "Control distribution of default information\n" "Distribute a default route\n" "Distribute default route for IPv4\n" @@ -627,7 +619,7 @@ DEFUN (isis_default_originate, { int idx_afi = 2; int idx_always = fabricd ? 3 : 4; - int idx_metric_rmap = fabricd ? 3 : 4; + int idx_metric_rmap = 1; VTY_DECLVAR_CONTEXT(isis_area, area); int family; int originate_type = DEFAULT_ORIGINATE; @@ -651,12 +643,13 @@ DEFUN (isis_default_originate, idx_metric_rmap++; } - if (argc > idx_metric_rmap) { - if (strmatch(argv[idx_metric_rmap]->text, "metric")) - metric = strtoul(argv[idx_metric_rmap + 1]->arg, NULL, - 10); - else - routemap = argv[idx_metric_rmap + 1]->arg; + if (argv_find(argv, argc, "metric", &idx_metric_rmap)) { + metric = strtoul(argv[idx_metric_rmap + 1]->arg, NULL, 10); + } + + idx_metric_rmap = 1; + if (argv_find(argv, argc, "route-map", &idx_metric_rmap)) { + routemap = argv[idx_metric_rmap + 1]->arg; } if (family == AF_INET6 && originate_type != DEFAULT_ORIGINATE_ALWAYS) {