diff options
| -rw-r--r-- | zebra/zebra_mpls.c | 65 | ||||
| -rw-r--r-- | zebra/zebra_mpls.h | 2 | ||||
| -rw-r--r-- | zebra/zebra_mpls_vty.c | 96 | ||||
| -rw-r--r-- | zebra/zebra_vty.c | 85 |
4 files changed, 123 insertions, 125 deletions
diff --git a/zebra/zebra_mpls.c b/zebra/zebra_mpls.c index db02a025f9..fb46184b62 100644 --- a/zebra/zebra_mpls.c +++ b/zebra/zebra_mpls.c @@ -1734,44 +1734,59 @@ mpls_processq_init (struct zebra_t *zebra) /* * String to label conversion, labels separated by '/'. + * + * @param label_str labels separated by / + * @param num_labels number of labels; zero if conversion was unsuccessful + * @param labels preallocated mpls_label_t array of size MPLS_MAX_LABELS; only + * modified if the conversion succeeded + * @return 0 on success + * -1 if the string could not be parsed as integers + * -2 if a label was inside the reserved range (0-15) + * -3 if the number of labels given exceeds MPLS_MAX_LABELS */ int mpls_str2label (const char *label_str, u_int8_t *num_labels, mpls_label_t *labels) { - char *endp; - int i; + char *ostr; // copy of label string (start) + char *lstr; // copy of label string + char *nump; // pointer to next segment + char *endp; // end pointer + int i; // for iterating label_str + int rc; // return code + mpls_label_t pl[MPLS_MAX_LABELS]; // parsed labels + /* labels to zero until we have a successful parse */ + ostr = lstr = XSTRDUP (MTYPE_TMP, label_str); *num_labels = 0; - for (i = 0; i < MPLS_MAX_LABELS; i++) - { - mpls_label_t label; + rc = 0; - label = strtoul(label_str, &endp, 0); - - /* validity checks */ - if (endp == label_str) - return -1; - - if (!IS_MPLS_UNRESERVED_LABEL(label)) - return -1; + for (i = 0; i < MPLS_MAX_LABELS && lstr && !rc; i++) + { + nump = strsep (&lstr, "/"); + pl[i] = strtoul(nump, &endp, 10); - labels[i] = label; - if (*endp == '\0') - { - *num_labels = i + 1; - return 0; - } + /* format check */ + if (*endp != '\0') + rc = -1; + /* validity check */ + else if (!IS_MPLS_UNRESERVED_LABEL(pl[i])) + rc = -2; + } - /* Check separator. */ - if (*endp != '/') - return -1; + /* excess labels */ + if (!rc && i == MPLS_MAX_LABELS && lstr) + rc = -3; - label_str = endp + 1; + if (!rc) + { + *num_labels = i + 1; + memcpy (labels, pl, *num_labels * sizeof (mpls_label_t)); } - /* Too many labels. */ - return -1; + XFREE (MTYPE_TMP, ostr); + + return rc; } /* diff --git a/zebra/zebra_mpls.h b/zebra/zebra_mpls.h index 047b432136..52b947c064 100644 --- a/zebra/zebra_mpls.h +++ b/zebra/zebra_mpls.h @@ -43,6 +43,8 @@ (((nhlfe)->nexthop->type == NEXTHOP_TYPE_IPV6 || \ (nhlfe)->nexthop->type == NEXTHOP_TYPE_IPV6_IFINDEX) ? AF_INET6 : AF_INET) +#define MPLS_LABEL_HELPSTR "Specify label(s) for this route\nOne or more " \ + "labels in the range (16-1048575) separated by '/'\n" /* Typedefs */ diff --git a/zebra/zebra_mpls_vty.c b/zebra/zebra_mpls_vty.c index 3010a3bd8a..56f3e5196e 100644 --- a/zebra/zebra_mpls_vty.c +++ b/zebra/zebra_mpls_vty.c @@ -321,8 +321,7 @@ DEFUN (ip_route_label, "IP gateway address\n" "IP gateway interface name\n" "Null interface\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, NULL, NULL, argv[5]->arg); @@ -339,8 +338,7 @@ DEFUN (ip_route_tag_label, "Null interface\n" "Set tag for this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, argv[5]->arg, NULL, NULL, argv[7]->arg); @@ -357,8 +355,7 @@ DEFUN (ip_route_mask_label, "IP gateway address\n" "IP gateway interface name\n" "Null interface\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, NULL, argv[6]->arg); @@ -376,8 +373,7 @@ DEFUN (ip_route_mask_tag_label, "Null interface\n" "Set tag for this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, @@ -395,8 +391,7 @@ DEFUN (ip_route_distance_label, "IP gateway interface name\n" "Null interface\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, argv[4]->arg, NULL, argv[6]->arg); @@ -414,8 +409,7 @@ DEFUN (ip_route_tag_distance_label, "Set tag for this route\n" "Tag value\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, argv[5]->arg, @@ -433,8 +427,7 @@ DEFUN (ip_route_mask_distance_label, "IP gateway interface name\n" "Null interface\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[5]->arg, NULL, argv[7]->arg); @@ -453,8 +446,7 @@ DEFUN (ip_route_mask_tag_distance_label, "Set tag for this route\n" "Tag value\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[2]->arg, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, argv[7]->arg, NULL, argv[9]->arg); @@ -470,8 +462,7 @@ DEFUN (no_ip_route_label, "IP gateway address\n" "IP gateway interface name\n" "Null interface\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, NULL, NULL, argv[6]->arg); @@ -489,8 +480,7 @@ DEFUN (no_ip_route_tag_label, "Null interface\n" "Tag of this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[6]->arg, NULL, NULL, argv[8]->arg); @@ -507,8 +497,7 @@ DEFUN (no_ip_route_mask_label, "IP gateway address\n" "IP gateway interface name\n" "Null interface\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, NULL, NULL, argv[7]->arg); @@ -527,8 +516,7 @@ DEFUN (no_ip_route_mask_tag_label, "Null interface\n" "Tag of this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, NULL, NULL, argv[9]->arg); @@ -545,8 +533,7 @@ DEFUN (no_ip_route_distance_label, "IP gateway interface name\n" "Null interface\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, argv[5]->arg, NULL, argv[7]->arg); @@ -565,8 +552,7 @@ DEFUN (no_ip_route_tag_distance_label, "Tag of this route\n" "Tag value\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, argv[6]->arg, argv[7]->arg, NULL, argv[9]->arg); @@ -584,8 +570,7 @@ DEFUN (no_ip_route_mask_distance_label, "IP gateway interface name\n" "Null interface\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[6]->arg, NULL, argv[8]->arg); @@ -605,8 +590,7 @@ DEFUN (no_ip_route_mask_tag_distance_label, "Tag of this route\n" "Tag value\n" "Distance value for this route\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[3]->arg, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, argv[8]->arg, NULL, argv[10]->arg); @@ -620,8 +604,7 @@ DEFUN (ipv6_route_label, "IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 gateway address\n" "IPv6 gateway interface name\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, NULL, NULL, NULL, argv[5]->arg); } @@ -636,8 +619,7 @@ DEFUN (ipv6_route_tag_label, "IPv6 gateway interface name\n" "Set tag for this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, argv[5]->arg, NULL, NULL, argv[7]->arg); } @@ -650,8 +632,7 @@ DEFUN (ipv6_route_ifname_label, "IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 gateway address\n" "IPv6 gateway interface name\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL, NULL, NULL, NULL, argv[6]->arg); } @@ -665,8 +646,7 @@ DEFUN (ipv6_route_ifname_tag_label, "IPv6 gateway interface name\n" "Set tag for this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, NULL, NULL, argv[8]->arg); } @@ -680,8 +660,7 @@ DEFUN (ipv6_route_pref_label, "IPv6 gateway address\n" "IPv6 gateway interface name\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, NULL, argv[4]->arg, NULL, argv[6]->arg); } @@ -697,8 +676,7 @@ DEFUN (ipv6_route_pref_tag_label, "Set tag for this route\n" "Tag value\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, NULL, NULL, argv[5]->arg, argv[6]->arg, NULL, argv[8]->arg); } @@ -712,8 +690,7 @@ DEFUN (ipv6_route_ifname_pref_label, "IPv6 gateway address\n" "IPv6 gateway interface name\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL, NULL, argv[5]->arg, NULL, argv[7]->arg); } @@ -729,8 +706,7 @@ DEFUN (ipv6_route_ifname_pref_tag_label, "Set tag for this route\n" "Tag value\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 1, argv[2]->arg, NULL, argv[3]->arg, argv[4]->arg, NULL, argv[6]->arg, argv[7]->arg, NULL, argv[9]->arg); } @@ -744,8 +720,7 @@ DEFUN (no_ipv6_route_label, "IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 gateway address\n" "IPv6 gateway interface name\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, NULL, NULL, NULL, argv[6]->arg); } @@ -761,8 +736,7 @@ DEFUN (no_ipv6_route_tag_label, "IPv6 gateway interface name\n" "Set tag for this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, argv[6]->arg, NULL, NULL, argv[8]->arg); } @@ -776,8 +750,7 @@ DEFUN (no_ipv6_route_ifname_label, "IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 gateway address\n" "IPv6 gateway interface name\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, NULL, NULL, NULL, NULL, argv[7]->arg); } @@ -793,8 +766,7 @@ DEFUN (no_ipv6_route_ifname_tag_label, "IPv6 gateway interface name\n" "Set tag for this route\n" "Tag value\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, NULL, NULL, argv[9]->arg); } @@ -809,8 +781,7 @@ DEFUN (no_ipv6_route_pref_label, "IPv6 gateway address\n" "IPv6 gateway interface name\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, NULL, argv[5]->arg, NULL, argv[7]->arg); } @@ -827,8 +798,7 @@ DEFUN (no_ipv6_route_pref_tag_label, "Set tag for this route\n" "Tag value\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, NULL, NULL, argv[6]->arg, argv[7]->arg, NULL, argv[9]->arg); } @@ -843,8 +813,7 @@ DEFUN (no_ipv6_route_ifname_pref_label, "IPv6 gateway address\n" "IPv6 gateway interface name\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, NULL, NULL, argv[6]->arg, NULL, argv[8]->arg); } @@ -861,8 +830,7 @@ DEFUN (no_ipv6_route_ifname_pref_tag_label, "Set tag for this route\n" "Tag value\n" "Distance value for this prefix\n" - "Specify label(s) for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { return static_ipv6_func (vty, 0, argv[3]->arg, NULL, argv[4]->arg, argv[5]->arg, NULL, argv[7]->arg, argv[8]->arg, NULL, argv[10]->arg); } diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c index c865a8ed1e..6c3dfe0e06 100644 --- a/zebra/zebra_vty.c +++ b/zebra/zebra_vty.c @@ -126,10 +126,24 @@ zebra_static_ipv4 (struct vty *vty, safi_t safi, int add_cmd, VTY_NEWLINE); return CMD_WARNING; } - if (mpls_str2label (label_str, &snh_label.num_labels, - snh_label.label)) + int rc = mpls_str2label (label_str, &snh_label.num_labels, + snh_label.label); + if (rc < 0) { - vty_out (vty, "%% Malformed label(s)%s", VTY_NEWLINE); + switch (rc) { + case -1: + vty_out (vty, "%% Malformed label(s)%s", VTY_NEWLINE); + break; + case -2: + vty_out (vty, "%% Cannot use reserved label(s) (%d-%d)%s", + MPLS_MIN_RESERVED_LABEL, MPLS_MAX_RESERVED_LABEL, + VTY_NEWLINE); + break; + case -3: + vty_out (vty, "%% Too many labels. Enter %d or fewer%s", + MPLS_MAX_LABELS, VTY_NEWLINE); + break; + } return CMD_WARNING; } } @@ -421,8 +435,7 @@ DEFUN (ip_route_flags, "Tag value\n" "Distance value for this route\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv4_prefixlen = 2; int idx_reject_blackhole = 3; @@ -455,8 +468,7 @@ DEFUN (ip_route_mask, "Tag value\n" "Distance value for this route\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv4 = 2; int idx_ipv4_2 = 3; @@ -487,8 +499,7 @@ DEFUN (ip_route_mask_flags, "Tag value\n" "Distance value for this route\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv4 = 2; int idx_ipv4_2 = 3; @@ -521,8 +532,7 @@ DEFUN (no_ip_route, "Tag value\n" "Distance value for this route\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv4_prefixlen = 3; int idx_ipv4_ifname_null = 4; @@ -553,8 +563,7 @@ DEFUN (no_ip_route_flags, "Tag value\n" "Distance value for this route\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv4_prefixlen = 3; int idx_curr = 5; @@ -584,8 +593,7 @@ DEFUN (no_ip_route_mask, "Tag value\n" "Distance value for this route\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv4 = 3; int idx_ipv4_2 = 4; @@ -618,8 +626,7 @@ DEFUN (no_ip_route_mask_flags, "Tag value\n" "Distance value for this route\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv4 = 3; int idx_ipv4_2 = 4; @@ -2047,10 +2054,24 @@ static_ipv6_func (struct vty *vty, int add_cmd, const char *dest_str, VTY_NEWLINE); return CMD_WARNING; } - if (mpls_str2label (label_str, &snh_label.num_labels, - snh_label.label)) + int rc = mpls_str2label (label_str, &snh_label.num_labels, + snh_label.label); + if (rc < 0) { - vty_out (vty, "%% Malformed label(s)%s", VTY_NEWLINE); + switch (rc) { + case -1: + vty_out (vty, "%% Malformed label(s)%s", VTY_NEWLINE); + break; + case -2: + vty_out (vty, "%% Cannot use reserved label(s) (%d-%d)%s", + MPLS_MIN_RESERVED_LABEL, MPLS_MAX_RESERVED_LABEL, + VTY_NEWLINE); + break; + case -3: + vty_out (vty, "%% Too many labels. Enter %d or fewer%s", + MPLS_MAX_LABELS, VTY_NEWLINE); + break; + } return CMD_WARNING; } } @@ -2156,8 +2177,7 @@ DEFUN (ipv6_route, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 2; int idx_ipv6_ifname; @@ -2205,8 +2225,7 @@ DEFUN (ipv6_route_flags, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 2; int idx_ipv6_ifname; @@ -2255,8 +2274,7 @@ DEFUN (ipv6_route_ifname, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 2; int idx_ipv6 = 3; @@ -2307,8 +2325,7 @@ DEFUN (ipv6_route_ifname_flags, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 2; int idx_ipv6; @@ -2362,8 +2379,7 @@ DEFUN (no_ipv6_route, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 3; int idx_ipv6_ifname; @@ -2411,8 +2427,7 @@ DEFUN (no_ipv6_route_flags, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 3; int idx_ipv6_ifname; @@ -2462,8 +2477,7 @@ DEFUN (no_ipv6_route_ifname, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 3; int idx_ipv6; @@ -2515,8 +2529,7 @@ DEFUN (no_ipv6_route_ifname_flags, "Tag value\n" "Distance value for this prefix\n" VRF_CMD_HELP_STR - "Specify labels for this route\n" - "One or more labels separated by '/'\n") + MPLS_LABEL_HELPSTR) { int idx_ipv6_prefixlen = 3; int idx_ipv6; |
