/* Router advertisement
+ * Copyright (C) 2016 Cumulus Networks
* Copyright (C) 2005 6WIND <jean-mickael.guerin@6wind.com>
* Copyright (C) 1999 Kunihiro Ishiguro
*
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;
return CMD_SUCCESS;
}
-
-
DEFUN (ipv6_nd_ra_lifetime,
ipv6_nd_ra_lifetime_cmd,
"ipv6 nd ra-lifetime (0-9000)",
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;
return CMD_SUCCESS;
}
-
DEFUN (ipv6_nd_reachable_time,
ipv6_nd_reachable_time_cmd,
"ipv6 nd reachable-time (1-3600000)",
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;
return CMD_SUCCESS;
}
-
DEFUN (ipv6_nd_homeagent_preference,
ipv6_nd_homeagent_preference_cmd,
"ipv6 nd home-agent-preference (0-65535)",
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;
return CMD_SUCCESS;
}
-
DEFUN (ipv6_nd_homeagent_lifetime,
ipv6_nd_homeagent_lifetime_cmd,
"ipv6 nd home-agent-lifetime (0-65520)",
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;
return CMD_SUCCESS;
}
-
DEFUN (ipv6_nd_managed_config_flag,
ipv6_nd_managed_config_flag_cmd,
"ipv6 nd managed-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> <off-link> <no-autoconfig> <router-address>",
+ "ipv6 nd prefix X:X::X:X/M [<(0-4294967295)|infinite> <(0-4294967295)|infinite>] [<router-address|off-link [no-autoconfig]|no-autoconfig [off-link]>]",
"Interface IPv6 config commands\n"
"Neighbor discovery\n"
"Prefix information\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"
- "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;
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>] [<router-address|off-link [no-autoconfig]|no-autoconfig [off-link]>]",
+ 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);
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 <high|medium|low>",
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 [<high|medium|low>]",
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;
return CMD_SUCCESS;
}
-
DEFUN (ipv6_nd_mtu,
ipv6_nd_mtu_cmd,
"ipv6 nd mtu (1-65535)",
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;