From: Quentin Young Date: Sun, 25 Sep 2016 02:13:43 +0000 (+0000) Subject: zebra: refactor rtadv.c X-Git-Tag: frr-3.0-branchpoint~129^2~165 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=34ccea1ec54a69dbf260dcb20240dc8124a5591f;p=matthieu%2Ffrr.git zebra: refactor rtadv.c Signed-off-by: Quentin Young --- diff --git a/zebra/rtadv.c b/zebra/rtadv.c index ec4736463c..7edba55953 100644 --- a/zebra/rtadv.c +++ b/zebra/rtadv.c @@ -1,4 +1,5 @@ /* Router advertisement + * Copyright (C) 2016 Cumulus Networks * Copyright (C) 2005 6WIND * Copyright (C) 1999 Kunihiro Ishiguro * @@ -987,29 +988,16 @@ DEFUN (ipv6_nd_ra_interval, return CMD_SUCCESS; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd ra-interval <1-1800>", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Router Advertisement interval\n" - * - * "no ipv6 nd ra-interval msec <1-1800000>", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Router Advertisement interval\n" - * "Router Advertisement interval in milliseconds\n" - * - */ DEFUN (no_ipv6_nd_ra_interval, no_ipv6_nd_ra_interval_cmd, - "no ipv6 nd ra-interval", + "no ipv6 nd ra-interval [<(1-1800)|msec (1-1800000)>]", NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" - "Router Advertisement interval\n") + "Router Advertisement interval\n" + "Router Advertisement interval in seconds\n" + "Specify millisecond router advertisement interval\n" + "Router Advertisement interval in milliseconds\n") { struct interface *ifp; struct zebra_if *zif; @@ -1031,8 +1019,6 @@ DEFUN (no_ipv6_nd_ra_interval, return CMD_SUCCESS; } - - DEFUN (ipv6_nd_ra_lifetime, ipv6_nd_ra_lifetime_cmd, "ipv6 nd ra-lifetime (0-9000)", @@ -1066,23 +1052,14 @@ DEFUN (ipv6_nd_ra_lifetime, return CMD_SUCCESS; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd ra-lifetime <0-9000>", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Router lifetime\n" - * "Router lifetime in seconds (0 stands for a non-default gw)\n" - * - */ DEFUN (no_ipv6_nd_ra_lifetime, no_ipv6_nd_ra_lifetime_cmd, - "no ipv6 nd ra-lifetime", + "no ipv6 nd ra-lifetime [(0-9000)]", NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" - "Router lifetime\n") + "Router lifetime\n" + "Router lifetime in seconds (0 stands for a non-default gw)\n") { struct interface *ifp; struct zebra_if *zif; @@ -1095,7 +1072,6 @@ DEFUN (no_ipv6_nd_ra_lifetime, return CMD_SUCCESS; } - DEFUN (ipv6_nd_reachable_time, ipv6_nd_reachable_time_cmd, "ipv6 nd reachable-time (1-3600000)", @@ -1111,23 +1087,14 @@ DEFUN (ipv6_nd_reachable_time, return CMD_SUCCESS; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd reachable-time <1-3600000>", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Reachable time\n" - * "Reachable time in milliseconds\n" - * - */ DEFUN (no_ipv6_nd_reachable_time, no_ipv6_nd_reachable_time_cmd, - "no ipv6 nd reachable-time", + "no ipv6 nd reachable-time [(1-3600000)]", NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" - "Reachable time\n") + "Reachable time\n" + "Reachable time in milliseconds\n") { struct interface *ifp; struct zebra_if *zif; @@ -1140,7 +1107,6 @@ DEFUN (no_ipv6_nd_reachable_time, return CMD_SUCCESS; } - DEFUN (ipv6_nd_homeagent_preference, ipv6_nd_homeagent_preference_cmd, "ipv6 nd home-agent-preference (0-65535)", @@ -1156,23 +1122,14 @@ DEFUN (ipv6_nd_homeagent_preference, return CMD_SUCCESS; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd home-agent-preference <0-65535>", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Home Agent preference\n" - * "preference value (default is 0, least preferred)\n" - * - */ DEFUN (no_ipv6_nd_homeagent_preference, no_ipv6_nd_homeagent_preference_cmd, - "no ipv6 nd home-agent-preference", + "no ipv6 nd home-agent-preference [(0-65535)]", NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" - "Home Agent preference\n") + "Home Agent preference\n" + "preference value (default is 0, least preferred)\n") { struct interface *ifp; struct zebra_if *zif; @@ -1185,7 +1142,6 @@ DEFUN (no_ipv6_nd_homeagent_preference, return CMD_SUCCESS; } - DEFUN (ipv6_nd_homeagent_lifetime, ipv6_nd_homeagent_lifetime_cmd, "ipv6 nd home-agent-lifetime (0-65520)", @@ -1201,23 +1157,14 @@ DEFUN (ipv6_nd_homeagent_lifetime, return CMD_SUCCESS; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd home-agent-lifetime <0-65520>", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Home Agent lifetime\n" - * "Home Agent lifetime in seconds (0 to track ra-lifetime)\n" - * - */ DEFUN (no_ipv6_nd_homeagent_lifetime, no_ipv6_nd_homeagent_lifetime_cmd, - "no ipv6 nd home-agent-lifetime", + "no ipv6 nd home-agent-lifetime [(0-65520)]", NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" - "Home Agent lifetime\n") + "Home Agent lifetime\n" + "Home Agent lifetime in seconds (0 to track ra-lifetime)\n") { struct interface *ifp; struct zebra_if *zif; @@ -1230,7 +1177,6 @@ DEFUN (no_ipv6_nd_homeagent_lifetime, return CMD_SUCCESS; } - DEFUN (ipv6_nd_managed_config_flag, ipv6_nd_managed_config_flag_cmd, "ipv6 nd managed-config-flag", @@ -1379,142 +1325,9 @@ DEFUN (no_ipv6_nd_other_config_flag, return CMD_SUCCESS; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "ipv6 nd prefix X:X::X:X/M (no-autoconfig|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for autoconfiguration\n" - * - * "ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) " - * "(<0-4294967295>|infinite)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * - * "ipv6 nd prefix X:X::X:X/M (off-link|) (no-autoconfig|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for onlink determination\n" - * "Do not use prefix for autoconfiguration\n" - * - * "ipv6 nd prefix X:X::X:X/M (router-address|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Set Router Address flag\n" - * - * "ipv6 nd prefix X:X::X:X/M (no-autoconfig|) (off-link|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for autoconfiguration\n" - * "Do not use prefix for onlink determination\n" - * - * "ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) " - * "(<0-4294967295>|infinite) (router-address|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Set Router Address flag\n" - * - * "ipv6 nd prefix X:X::X:X/M", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * - * "ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) " - * "(<0-4294967295>|infinite) (off-link|) (no-autoconfig|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for onlink determination\n" - * "Do not use prefix for autoconfiguration\n" - * - * "ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) " - * "(<0-4294967295>|infinite) (no-autoconfig|) (off-link|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for autoconfiguration\n" - * "Do not use prefix for onlink determination\n" - * - * "ipv6 nd prefix X:X::X:X/M (off-link|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for onlink determination\n" - * - * "ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) " - * "(<0-4294967295>|infinite) (no-autoconfig|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for autoconfiguration" - * - * "ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) " - * "(<0-4294967295>|infinite) (off-link|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for onlink determination\n" - * - * "ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) " - * "(<0-4294967295>|infinite) (no-autoconfig|) (off-link|) (router-address|)", - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for autoconfiguration\n" - * "Do not use prefix for onlink determination\n" - * "Set Router Address flag\n" - * - */ DEFUN (ipv6_nd_prefix, ipv6_nd_prefix_cmd, - "ipv6 nd prefix X:X::X:X/M <(0-4294967295)|infinite> <(0-4294967295)|infinite> ", + "ipv6 nd prefix X:X::X:X/M [<(0-4294967295)|infinite> <(0-4294967295)|infinite>] []", "Interface IPv6 config commands\n" "Neighbor discovery\n" "Prefix information\n" @@ -1523,16 +1336,38 @@ DEFUN (ipv6_nd_prefix, "Infinite valid lifetime\n" "Preferred lifetime in seconds\n" "Infinite preferred lifetime\n" + "Set Router Address flag\n" "Do not use prefix for onlink determination\n" "Do not use prefix for autoconfiguration\n" - "Set Router Address flag\n") + "Do not use prefix for autoconfiguration\n" + "Do not use prefix for onlink determination\n") { - int idx_ipv6_prefixlen = 3; - int idx_number_infinite = 4; - int idx_number_infinite_2 = 5; - int i; + /* prelude */ + char *prefix = argv[3]->arg; + int lifetimes = (argc > 4) && (argv[4]->type == RANGE_TKN || strmatch (argv[4]->text, "infinite")); + int routeropts = lifetimes ? argc > 6 : argc > 4; + + int idx_routeropts = routeropts ? (lifetimes ? 6 : 4) : 0; + + char *lifetime = NULL, *preflifetime = NULL; + int routeraddr = 0, offlink = 0, noautoconf = 0; + if (lifetimes) + { + lifetime = argv[4]->type == RANGE_TKN ? argv[4]->arg : argv[4]->text; + preflifetime = argv[5]->type == RANGE_TKN ? argv[5]->arg : argv[5]->text; + } + if (routeropts) + { + routeraddr = strmatch (argv[idx_routeropts]->text, "router-address"); + if (!routeraddr) + { + offlink = (argc > idx_routeropts + 1 || strmatch (argv[idx_routeropts]->text, "off-link")); + noautoconf = (argc > idx_routeropts + 1 || strmatch (argv[idx_routeropts]->text, "no-autoconfig")); + } + } + + /* business */ int ret; - int cursor = 1; struct interface *ifp; struct zebra_if *zebra_if; struct rtadv_prefix rp; @@ -1540,226 +1375,64 @@ DEFUN (ipv6_nd_prefix, ifp = (struct interface *) vty->index; zebra_if = ifp->info; - ret = str2prefix_ipv6 (argv[idx_ipv6_prefixlen]->arg, &rp.prefix); + ret = str2prefix_ipv6 (prefix, &rp.prefix); if (!ret) { vty_out (vty, "Malformed IPv6 prefix%s", VTY_NEWLINE); return CMD_WARNING; } apply_mask_ipv6 (&rp.prefix); /* RFC4861 4.6.2 */ - rp.AdvOnLinkFlag = 1; - rp.AdvAutonomousFlag = 1; - rp.AdvRouterAddressFlag = 0; + rp.AdvOnLinkFlag = !offlink; + rp.AdvAutonomousFlag = !noautoconf; + rp.AdvRouterAddressFlag = routeraddr; rp.AdvValidLifetime = RTADV_VALID_LIFETIME; rp.AdvPreferredLifetime = RTADV_PREFERRED_LIFETIME; - if (argc > 1) - { - if ((isdigit((unsigned char)argv[idx_number_infinite]->arg[0])) - || strncmp (argv[idx_number_infinite]->arg, "i", 1) == 0) - { - if ( strncmp (argv[idx_number_infinite]->arg, "i", 1) == 0) - rp.AdvValidLifetime = UINT32_MAX; - else - rp.AdvValidLifetime = (u_int32_t) strtoll (argv[idx_number_infinite]->arg, - (char **)NULL, 10); - - if ( strncmp (argv[idx_number_infinite_2]->arg, "i", 1) == 0) - rp.AdvPreferredLifetime = UINT32_MAX; - else - rp.AdvPreferredLifetime = (u_int32_t) strtoll (argv[idx_number_infinite_2]->arg, - (char **)NULL, 10); - - if (rp.AdvPreferredLifetime > rp.AdvValidLifetime) - { - vty_out (vty, "Invalid preferred lifetime%s", VTY_NEWLINE); - return CMD_WARNING; - } - cursor = cursor + 2; - } - if (argc > cursor) - { - for (i = cursor; i < argc; i++) - { - if (strncmp (argv[i], "of", 2) == 0) - rp.AdvOnLinkFlag = 0; - if (strncmp (argv[i], "no", 2) == 0) - rp.AdvAutonomousFlag = 0; - if (strncmp (argv[i], "ro", 2) == 0) - rp.AdvRouterAddressFlag = 1; - } - } - } + if (lifetimes) + { + rp.AdvValidLifetime = strmatch (lifetime, "infinite") ? UINT32_MAX : strtoll (lifetime, NULL, 10); + rp.AdvPreferredLifetime = strmatch (preflifetime, "infinite") ? UINT32_MAX : strtoll (preflifetime, NULL, 10); + if (rp.AdvPreferredLifetime > rp.AdvValidLifetime) + { + vty_out (vty, "Invalid preferred lifetime%s", VTY_NEWLINE); + return CMD_WARNING; + } + } rtadv_prefix_set (zebra_if, &rp); return CMD_SUCCESS; } - - - - - - - - - - - - - -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (no-autoconfig|) (off-link|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for autoconfiguration\n" - * "Do not use prefix for onlink determination\n" - * - * "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (no-autoconfig|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for autoconfiguration" - * - * "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (off-link|) (no-autoconfig|) (router-address|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for onlink determination\n" - * "Do not use prefix for autoconfiguration\n" - * "Set Router Address flag\n" - * - * "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (off-link|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for onlink determination\n" - * - * "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (no-autoconfig|) (off-link|) (router-address|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Do not use prefix for autoconfiguration\n" - * "Do not use prefix for onlink determination\n" - * "Set Router Address flag\n" - * - * "no ipv6 nd prefix X:X::X:X/M (router-address|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Set Router Address flag\n" - * - * "no ipv6 nd prefix X:X::X:X/M (off-link|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for onlink determination\n" - * - * "no ipv6 nd prefix X:X::X:X/M (no-autoconfig|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for autoconfiguration\n" - * - * "no ipv6 nd prefix X:X::X:X/M (no-autoconfig|) (off-link|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for autoconfiguration\n" - * "Do not use prefix for onlink determination\n" - * - * "no ipv6 nd prefix X:X::X:X/M (off-link|) (no-autoconfig|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Do not use prefix for onlink determination\n" - * "Do not use prefix for autoconfiguration\n" - * - * "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite) (router-address|)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * "Set Router Address flag\n" - * - * "no ipv6 nd prefix X:X::X:X/M (<0-4294967295>|infinite) (<0-4294967295>|infinite)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Prefix information\n" - * "IPv6 prefix\n" - * "Valid lifetime in seconds\n" - * "Infinite valid lifetime\n" - * "Preferred lifetime in seconds\n" - * "Infinite preferred lifetime\n" - * - */ DEFUN (no_ipv6_nd_prefix, no_ipv6_nd_prefix_cmd, - "no ipv6 nd prefix IPV6PREFIX", - NO_STR + "no ipv6 nd prefix X:X::X:X/M [<(0-4294967295)|infinite> <(0-4294967295)|infinite>] []", + NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" "Prefix information\n" - "IPv6 prefix\n") + "IPv6 prefix\n" + "Valid lifetime in seconds\n" + "Infinite valid lifetime\n" + "Preferred lifetime in seconds\n" + "Infinite preferred lifetime\n" + "Set Router Address flag\n" + "Do not use prefix for onlink determination\n" + "Do not use prefix for autoconfiguration\n" + "Do not use prefix for autoconfiguration\n" + "Do not use prefix for onlink determination\n") { int ret; struct interface *ifp; struct zebra_if *zebra_if; struct rtadv_prefix rp; + char *prefix = argv[4]->arg; + ifp = (struct interface *) vty->index; zebra_if = ifp->info; - ret = str2prefix_ipv6 (argv[0], &rp.prefix); + ret = str2prefix_ipv6 (prefix, &rp.prefix); if (!ret) { vty_out (vty, "Malformed IPv6 prefix%s", VTY_NEWLINE); @@ -1770,25 +1443,13 @@ DEFUN (no_ipv6_nd_prefix, ret = rtadv_prefix_reset (zebra_if, &rp); if (!ret) { - vty_out (vty, "Non-exist IPv6 prefix%s", VTY_NEWLINE); + vty_out (vty, "Non-existant IPv6 prefix%s", VTY_NEWLINE); return CMD_WARNING; } return CMD_SUCCESS; } - - - - - - - - - - - - DEFUN (ipv6_nd_router_preference, ipv6_nd_router_preference_cmd, "ipv6 nd router-preference ", @@ -1820,25 +1481,16 @@ DEFUN (ipv6_nd_router_preference, return CMD_ERR_NO_MATCH; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd router-preference (high|medium|low)", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Default router preference\n" - * "High default router preference\n" - * "Low default router preference\n" - * "Medium default router preference (default)\n" - * - */ DEFUN (no_ipv6_nd_router_preference, no_ipv6_nd_router_preference_cmd, - "no ipv6 nd router-preference", + "no ipv6 nd router-preference []", NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" - "Default router preference\n") + "Default router preference\n" + "High default router preference\n" + "Medium default router preference (default)\n" + "Low default router preference\n") { struct interface *ifp; struct zebra_if *zif; @@ -1851,7 +1503,6 @@ DEFUN (no_ipv6_nd_router_preference, return CMD_SUCCESS; } - DEFUN (ipv6_nd_mtu, ipv6_nd_mtu_cmd, "ipv6 nd mtu (1-65535)", @@ -1867,23 +1518,14 @@ DEFUN (ipv6_nd_mtu, return CMD_SUCCESS; } -/* - * CHECK ME - The following ALIASes need to be implemented in this DEFUN - * "no ipv6 nd mtu <1-65535>", - * NO_STR - * "Interface IPv6 config commands\n" - * "Neighbor discovery\n" - * "Advertised MTU\n" - * "MTU in bytes\n" - * - */ DEFUN (no_ipv6_nd_mtu, no_ipv6_nd_mtu_cmd, - "no ipv6 nd mtu", + "no ipv6 nd mtu [(1-65535)]", NO_STR "Interface IPv6 config commands\n" "Neighbor discovery\n" - "Advertised MTU\n") + "Advertised MTU\n" + "MTU in bytes\n") { struct interface *ifp = (struct interface *) vty->index; struct zebra_if *zif = ifp->info;