const char *dest_str, const char *mask_str,
const char *gate_str, const char *flag_str,
const char *tag_str, const char *distance_str,
- const char *vrf_id_str)
+ const char *vrf_id_str, const char *label_str)
{
int ret;
u_char distance;
unsigned int ifindex = 0;
const char *ifname = NULL;
u_char type = STATIC_IPV4_BLACKHOLE;
+ struct static_nh_label snh_label;
+ memset (&snh_label, 0, sizeof (struct static_nh_label));
ret = str2prefix (dest_str, &p);
if (ret <= 0)
{
return CMD_WARNING;
}
+ /* Labels */
+ if (label_str)
+ {
+ if (mpls_str2label (label_str, &snh_label.num_labels,
+ snh_label.label))
+ {
+ vty_out (vty, "%% Malformed label(s)%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+ }
+
/* Null0 static route. */
if ((gate_str != NULL) && (strncasecmp (gate_str, "Null0", strlen (gate_str)) == 0))
{
return CMD_WARNING;
}
if (add_cmd)
- static_add_route (AFI_IP, safi, type, &p, NULL, ifindex, ifname, ZEBRA_FLAG_BLACKHOLE, tag, distance, zvrf);
+ static_add_route (AFI_IP, safi, type, &p, NULL, ifindex, ifname,
+ ZEBRA_FLAG_BLACKHOLE, tag, distance, zvrf, &snh_label);
else
- static_delete_route (AFI_IP, safi, type, &p, NULL, ifindex, tag, distance, zvrf);
+ static_delete_route (AFI_IP, safi, type, &p, NULL, ifindex, tag,
+ distance, zvrf, &snh_label);
return CMD_SUCCESS;
}
if (gate_str == NULL)
{
if (add_cmd)
- static_add_route (AFI_IP, safi, type, &p, NULL, ifindex, ifname, flag, tag, distance, zvrf);
+ static_add_route (AFI_IP, safi, type, &p, NULL, ifindex, ifname, flag,
+ tag, distance, zvrf, &snh_label);
else
- static_delete_route (AFI_IP, safi, type, &p, NULL, ifindex, tag, distance, zvrf);
+ static_delete_route (AFI_IP, safi, type, &p, NULL, ifindex, tag, distance,
+ zvrf, &snh_label);
return CMD_SUCCESS;
}
type = STATIC_IPV4_GATEWAY;
if (add_cmd)
- static_add_route (AFI_IP, safi, type, &p, ifindex ? NULL : (union g_addr *)&gate, ifindex, ifname, flag, tag, distance, zvrf);
+ static_add_route (AFI_IP, safi, type, &p,
+ ifindex ? NULL : (union g_addr *)&gate, ifindex, ifname,
+ flag, tag, distance, zvrf, &snh_label);
else
- static_delete_route (AFI_IP, safi, type, &p, ifindex ? NULL : (union g_addr *)&gate, ifindex, tag, distance, zvrf);
+ static_delete_route (AFI_IP, safi, type, &p,
+ ifindex ? NULL : (union g_addr *)&gate, ifindex, tag,
+ distance, zvrf, &snh_label);
return CMD_SUCCESS;
}
"Nexthop interface name\n"
"Distance\n")
{
- return zebra_static_ipv4 (vty, SAFI_MULTICAST, 1, argv[0], NULL, argv[1], NULL, NULL, argc > 2 ? argv[2] : NULL, NULL);
+ return zebra_static_ipv4 (vty, SAFI_MULTICAST, 1, argv[0], NULL, argv[1],
+ NULL, NULL, argc > 2 ? argv[2] : NULL, NULL, NULL);
}
ALIAS (ip_mroute_dist,
"Nexthop interface name\n"
"Distance\n")
{
- return zebra_static_ipv4 (vty, SAFI_MULTICAST, 0, argv[0], NULL, argv[1], NULL, NULL, argc > 2 ? argv[2] : NULL, NULL);
+ return zebra_static_ipv4 (vty, SAFI_MULTICAST, 0, argv[0], NULL, argv[1],
+ NULL, NULL, argc > 2 ? argv[2] : NULL, NULL, NULL);
}
ALIAS (no_ip_mroute_dist,
/* Static route configuration. */
DEFUN (ip_route,
ip_route_cmd,
- "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0)",
+ "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Null interface\n")
+ "Null interface\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, NULL,
- NULL, NULL);
+ NULL, NULL, argv[2]);
}
DEFUN (ip_route_tag,
ip_route_tag_cmd,
- "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535>",
+ "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"IP gateway interface name\n"
"Null interface\n"
"Set tag for this route\n"
- "Tag value\n")
+ "Tag value\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, argv[2],
- NULL, NULL);
+ NULL, NULL, argv[3]);
}
DEFUN (ip_route_flags,
ip_route_flags_cmd,
- "ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole)",
+ "ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"IP gateway address\n"
"IP gateway interface name\n"
"Emit an ICMP unreachable when matched\n"
- "Silently discard pkts when matched\n")
+ "Silently discard pkts when matched\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], NULL,
- NULL, NULL);
+ NULL, NULL, argv[3]);
}
DEFUN (ip_route_flags_tag,
ip_route_flags_tag_cmd,
- "ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535>",
+ "ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"Emit an ICMP unreachable when matched\n"
"Silently discard pkts when matched\n"
"Set tag for this route\n"
- "Tag value\n")
+ "Tag value\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], argv[3],
- NULL, NULL);
+ NULL, NULL, argv[4]);
}
DEFUN (ip_route_flags2,
"Silently discard pkts when matched\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], NULL,
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (ip_route_flags2_tag,
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], argv[2],
- NULL, NULL);
+ NULL, NULL, NULL);
}
/* Mask as A.B.C.D format. */
DEFUN (ip_route_mask,
ip_route_mask_cmd,
- "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)",
+ "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix\n"
"IP destination prefix mask\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Null interface\n")
+ "Null interface\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, NULL,
- NULL, NULL);
+ NULL, NULL, argv[3]);
}
DEFUN (ip_route_mask_tag,
ip_route_mask_tag_cmd,
- "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535>",
+ "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix\n"
"IP gateway interface name\n"
"Null interface\n"
"Set tag for this route\n"
- "Tag value\n")
+ "Tag value\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, argv[3],
- NULL, NULL);
+ NULL, NULL, argv[4]);
}
DEFUN (ip_route_mask_flags,
"Silently discard pkts when matched\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], NULL,
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (ip_route_mask_flags_tag,
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], argv[4],
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (ip_route_mask_flags2,
"Silently discard pkts when matched\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], NULL,
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (ip_route_mask_flags2_tag,
"Tag value\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], argv[3],
- NULL, NULL);
+ NULL, NULL, NULL);
}
/* Distance option value. */
DEFUN (ip_route_distance,
ip_route_distance_cmd,
- "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255>",
+ "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255> {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"IP gateway address\n"
"IP gateway interface name\n"
"Null interface\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, NULL,
- argv[2], NULL);
+ argv[2], NULL, argv[3]);
}
DEFUN (ip_route_tag_distance,
ip_route_tag_distance_cmd,
- "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255>",
+ "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"Null interface\n"
"Set tag for this route\n"
"Tag value\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, argv[2],
- argv[3], NULL);
+ argv[3], NULL, argv[4]);
}
DEFUN (ip_route_flags_distance,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], NULL,
- argv[3], NULL);
+ argv[3], NULL, NULL);
}
DEFUN (ip_route_flags_tag_distance,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], argv[3],
- argv[4], NULL);
+ argv[4], NULL, NULL);
}
DEFUN (ip_route_flags_distance2,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], NULL,
- argv[2], NULL);
+ argv[2], NULL, NULL);
}
DEFUN (ip_route_flags_tag_distance2,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], argv[2],
- argv[3], NULL);
+ argv[3], NULL, NULL);
}
DEFUN (ip_route_mask_distance,
ip_route_mask_distance_cmd,
- "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) <1-255>",
+ "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) <1-255> {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix\n"
"IP gateway address\n"
"IP gateway interface name\n"
"Null interface\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, NULL,
- argv[3], NULL);
+ argv[3], NULL, argv[4]);
}
DEFUN (ip_route_mask_tag_distance,
ip_route_mask_tag_distance_cmd,
- "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255>",
+ "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> {label WORD}",
IP_STR
"Establish static routes\n"
"IP destination prefix\n"
"Null interface\n"
"Set tag for this route\n"
"Tag value\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, argv[3],
- argv[4], NULL);
+ argv[4], NULL, argv[5]);
}
DEFUN (ip_route_mask_flags_tag_distance,
"Silently discard pkts when matched\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], argv[4],
- argv[5], NULL);
+ argv[5], NULL, NULL);
}
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], NULL,
- argv[4], NULL);
+ argv[4], NULL, NULL);
}
DEFUN (ip_route_mask_flags_distance2,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], NULL,
- argv[3], NULL);
+ argv[3], NULL, NULL);
}
DEFUN (ip_route_mask_flags_tag_distance2,
"Silently discard pkts when matched\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], argv[3],
- argv[4], NULL);
+ argv[4], NULL, NULL);
}
DEFUN (no_ip_route,
no_ip_route_cmd,
- "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0)",
+ "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Null interface\n")
+ "Null interface\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, NULL,
- NULL, NULL);
+ NULL, NULL, argv[2]);
}
DEFUN (no_ip_route_tag,
no_ip_route_tag_cmd,
- "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535>",
+ "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"IP gateway interface name\n"
"Null interface\n"
"Tag of this route\n"
- "Tag value\n")
+ "Tag value\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, argv[2],
- NULL, NULL);
+ NULL, NULL, argv[3]);
}
ALIAS (no_ip_route,
"Silently discard pkts when matched\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, NULL, NULL,
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (no_ip_route_flags2_tag,
"Tag value\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, NULL, argv[1],
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (no_ip_route_mask,
no_ip_route_mask_cmd,
- "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0)",
+ "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"IP destination prefix mask\n"
"IP gateway address\n"
"IP gateway interface name\n"
- "Null interface\n")
+ "Null interface\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, NULL,
- NULL, NULL);
+ NULL, NULL, argv[3]);
}
DEFUN (no_ip_route_mask_tag,
no_ip_route_mask_tag_cmd,
- "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535>",
+ "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"IP gateway interface name\n"
"Null interface\n"
"Tag of this route\n"
- "Tag value\n")
+ "Tag value\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, argv[3],
- NULL, NULL);
+ NULL, NULL, argv[4]);
}
ALIAS (no_ip_route_mask,
"Silently discard pkts when matched\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, NULL, NULL,
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (no_ip_route_mask_flags2_tag,
"Tag value\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, NULL, argv[2],
- NULL, NULL);
+ NULL, NULL, NULL);
}
DEFUN (no_ip_route_distance,
no_ip_route_distance_cmd,
- "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255>",
+ "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) <1-255> {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"IP gateway address\n"
"IP gateway interface name\n"
"Null interface\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, NULL,
- argv[2], NULL);
+ argv[2], NULL, argv[3]);
}
DEFUN (no_ip_route_tag_distance,
no_ip_route_tag_distance_cmd,
- "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255>",
+ "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"Null interface\n"
"Tag of this route\n"
"Tag value\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, argv[2],
- argv[3], NULL);
+ argv[3], NULL, argv[4]);
}
DEFUN (no_ip_route_flags_distance,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], argv[2], NULL,
- argv[3], NULL);
+ argv[3], NULL, NULL);
}
DEFUN (no_ip_route_flags_tag_distance,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], argv[2], argv[3],
- argv[4], NULL);
+ argv[4], NULL, NULL);
}
DEFUN (no_ip_route_flags_distance2,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1], NULL,
- argv[2], NULL);
+ argv[2], NULL, NULL);
}
DEFUN (no_ip_route_flags_tag_distance2,
no_ip_route_flags_tag_distance2_cmd,
- "no ip route A.B.C.D/M (reject|blackhole) tag <1-65535> <1-255>",
+ "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) <1-255> {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"Silently discard pkts when matched\n"
"Tag of this route\n"
"Tag value\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1], argv[2],
- argv[3], NULL);
+ argv[3], NULL, argv[4]);
}
DEFUN (no_ip_route_mask_distance,
no_ip_route_mask_distance_cmd,
- "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) <1-255>",
+ "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"IP gateway address\n"
"IP gateway interface name\n"
"Null interface\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, NULL,
- argv[3], NULL);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, argv[3],
+ argv[4], NULL, argv[5]);
}
DEFUN (no_ip_route_mask_tag_distance,
no_ip_route_mask_tag_distance_cmd,
- "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255>",
+ "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> {label WORD}",
NO_STR
IP_STR
"Establish static routes\n"
"Null interface\n"
"Tag of this route\n"
"Tag value\n"
- "Distance value for this route\n")
+ "Distance value for this route\n"
+ "Specify label(s) for this route\n"
+ "One or more labels separated by '/'\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, argv[3],
- argv[4], NULL);
+ argv[4], NULL, argv[5]);
}
DEFUN (no_ip_route_mask_flags_distance,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], argv[3], NULL,
- argv[4], NULL);
+ argv[4], NULL, NULL);
}
DEFUN (no_ip_route_mask_flags_tag_distance,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], argv[3], argv[4],
- argv[5], NULL);
+ argv[5], NULL, NULL);
}
DEFUN (no_ip_route_mask_flags_distance2,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, argv[2], NULL,
- argv[3], NULL);
+ argv[3], NULL, NULL);
}
DEFUN (no_ip_route_mask_flags_tag_distance2,
"Distance value for this route\n")
{
return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, argv[2], argv[3],
- argv[4], NULL);
+ argv[4], NULL, NULL);
}
/* Static route configuration. */
"Null interface\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, NULL, NULL, argv[2]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL,
+ NULL, NULL, argv[2], NULL);
}
DEFUN (ip_route_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, argv[2], NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL,
+ argv[2], NULL, argv[3], NULL);
}
DEFUN (ip_route_flags_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], NULL, NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1],
+ argv[2], NULL, NULL, argv[3], NULL);
}
DEFUN (ip_route_flags_tag_vrf,
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], argv[3], NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1],
+ argv[2], argv[3], NULL, argv[4], NULL);
}
DEFUN (ip_route_flags2_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], NULL, NULL, argv[2]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1],
+ NULL, NULL, argv[2], NULL);
}
DEFUN (ip_route_flags2_tag_vrf,
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], argv[2], NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1],
+ argv[2], NULL, argv[3], NULL);
}
/* Mask as A.B.C.D format. */
"Null interface\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, NULL, NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ NULL, NULL, NULL, argv[3], NULL);
}
DEFUN (ip_route_mask_tag_vrf,
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, argv[3], NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ NULL, argv[3], NULL, argv[4], NULL);
}
DEFUN (ip_route_mask_flags_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], NULL, NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ argv[3], NULL, NULL, argv[4], NULL);
}
DEFUN (ip_route_mask_flags_tag_vrf,
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ argv[3], argv[4], NULL, argv[5], NULL);
}
DEFUN (ip_route_mask_flags2_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], NULL, NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL,
+ argv[2], NULL, NULL, argv[3], NULL);
}
DEFUN (ip_route_mask_flags2_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], argv[3], NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL,
+ argv[2], argv[3], NULL, argv[4], NULL);
}
/* Distance option value. */
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, NULL, argv[2], argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL,
+ NULL, argv[2], argv[3], NULL);
}
DEFUN (ip_route_tag_distance_vrf,
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL, argv[2], argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], NULL,
+ argv[2], argv[3], argv[4], NULL);
}
DEFUN (ip_route_flags_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], NULL, argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1],
+ argv[2], NULL, argv[3], argv[4], NULL);
}
DEFUN (ip_route_flags_tag_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1], argv[2], argv[3], argv[4],argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, argv[1],
+ argv[2], argv[3], argv[4],argv[5], NULL);
}
DEFUN (ip_route_flags_distance2_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], NULL, argv[2], argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1],
+ NULL, argv[2], argv[3], NULL);
}
DEFUN (ip_route_flags_tag_distance2_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1], argv[2], argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], NULL, NULL, argv[1],
+ argv[2], argv[3], argv[4], NULL);
}
DEFUN (ip_route_mask_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, NULL, argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ NULL, NULL, argv[3], argv[4], NULL);
}
DEFUN (ip_route_mask_tag_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], NULL, argv[3], argv[4], argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ NULL, argv[3], argv[4], argv[5], NULL);
}
DEFUN (ip_route_mask_flags_tag_distance_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ argv[3], argv[4], argv[5], argv[6], NULL);
}
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2], argv[3], NULL, argv[4], argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], argv[2],
+ argv[3], NULL, argv[4], argv[5], NULL);
}
DEFUN (ip_route_mask_flags_distance2_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], NULL, argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL,
+ argv[2], NULL, argv[3], argv[4], NULL);
}
DEFUN (ip_route_mask_flags_tag_distance2_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL, argv[2], argv[3], argv[4], argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 1, argv[0], argv[1], NULL,
+ argv[2], argv[3], argv[4], argv[5], NULL);
}
DEFUN (no_ip_route_vrf,
"Null interface\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, NULL, NULL, argv[2]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL,
+ NULL, NULL, argv[2], NULL);
}
DEFUN (no_ip_route_flags_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], argv[2], NULL, NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1],
+ argv[2], NULL, NULL, argv[3], NULL);
}
DEFUN (no_ip_route_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, argv[2], NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL,
+ argv[2], NULL, argv[3], NULL);
}
DEFUN (no_ip_route_flags_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], argv[2], argv[3], NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1],
+ argv[2], argv[3], NULL, argv[4], NULL);
}
DEFUN (no_ip_route_flags2_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1], NULL, NULL, argv[2]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1],
+ NULL, NULL, argv[2], NULL);
}
DEFUN (no_ip_route_flags2_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1], argv[2], NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1],
+ argv[2], NULL, argv[3], NULL);
}
DEFUN (no_ip_route_mask_vrf,
"Null interface\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, NULL, NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ NULL, NULL, NULL, argv[3], NULL);
}
DEFUN (no_ip_route_mask_flags_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], argv[3], NULL, NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ argv[3], NULL, NULL, argv[4], NULL);
}
DEFUN (no_ip_route_mask_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, argv[3], NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ NULL, argv[3], NULL, argv[4], NULL);
}
DEFUN (no_ip_route_mask_flags_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], argv[3], argv[4], NULL, argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ argv[3], argv[4], NULL, argv[5], NULL);
}
DEFUN (no_ip_route_mask_flags2_vrf,
"Silently discard pkts when matched\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, argv[2], NULL, NULL, argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL,
+ argv[2], NULL, NULL, argv[3], NULL);
}
DEFUN (no_ip_route_mask_flags2_tag_vrf,
"Tag value\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, argv[2], argv[3], NULL, argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL,
+ argv[2], argv[3], NULL, argv[4], NULL);
}
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, NULL, argv[2], argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL,
+ NULL, argv[2], argv[3], NULL);
}
DEFUN (no_ip_route_tag_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL, argv[2], argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], NULL,
+ argv[2], argv[3], argv[4], NULL);
}
DEFUN (no_ip_route_flags_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], argv[2], NULL, argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1],
+ argv[2], NULL, argv[3], argv[4], NULL);
}
DEFUN (no_ip_route_flags_tag_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1], argv[2], argv[3], argv[4],argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, argv[1],
+ argv[2], argv[3], argv[4],argv[5], NULL);
}
DEFUN (no_ip_route_flags_distance2_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1], NULL, argv[2], argv[3]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1],
+ NULL, argv[2], argv[3], NULL);
}
DEFUN (no_ip_route_flags_tag_distance2_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1], argv[2] , argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], NULL, NULL, argv[1],
+ argv[2] , argv[3], argv[4], NULL);
}
DEFUN (no_ip_route_mask_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, NULL, argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ NULL, NULL, argv[3], argv[4], NULL);
}
DEFUN (no_ip_route_mask_tag_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], NULL, argv[3], argv[4], argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ NULL, argv[3], argv[4], argv[5], NULL);
}
DEFUN (no_ip_route_mask_flags_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], argv[3], NULL, argv[4], argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ argv[3], NULL, argv[4], argv[5], NULL);
}
DEFUN (no_ip_route_mask_flags_tag_distance_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], argv[6]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], argv[2],
+ argv[3], argv[4], argv[5], argv[6], NULL);
}
DEFUN (no_ip_route_mask_flags_distance2_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, argv[2], NULL, argv[3], argv[4]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL,
+ argv[2], NULL, argv[3], argv[4], NULL);
}
DEFUN (no_ip_route_mask_flags_tag_distance2_vrf,
"Distance value for this route\n"
VRF_CMD_HELP_STR)
{
- return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL, argv[2], argv[3], argv[4], argv[5]);
+ return zebra_static_ipv4 (vty, SAFI_UNICAST, 0, argv[0], argv[1], NULL,
+ argv[2], argv[3], argv[4], argv[5], NULL);
}
static int
struct static_route *si;
struct route_table *stable;
struct zebra_vrf *zvrf;
- char buf[PREFIX_STRLEN];
+ char buf[BUFSIZ];
int write =0;
struct listnode *node;
if (si->vrf_id != VRF_DEFAULT)
vty_out (vty, " vrf %s", zvrf ? zvrf->name : "");
+ /* Label information */
+ if (si->snh_label.num_labels)
+ vty_out (vty, " label %s",
+ mpls_label2str (si->snh_label.num_labels,
+ si->snh_label.label, buf, sizeof buf));
+
vty_out (vty, "%s", VTY_NEWLINE);
write = 1;
unsigned int ifindex = 0;
struct interface *ifp = NULL;
struct zebra_vrf *zvrf;
+ struct static_nh_label snh_label;
ret = str2prefix (dest_str, &p);
if (ret <= 0)
if (tag_str)
tag = atoi(tag_str);
+ /* Labels -- not supported for IPv6 for now. */
+ memset (&snh_label, 0, sizeof (struct static_nh_label));
+
/* When gateway is valid IPv6 addrees, then gate is treated as
nexthop address other case gate is treated as interface name. */
ret = inet_pton (AF_INET6, gate_str, &gate_addr);
}
if (add_cmd)
- static_add_route (AFI_IP6, SAFI_UNICAST, type, &p, (union g_addr *)gate, ifindex, ifname, flag, tag, distance, zvrf);
+ static_add_route (AFI_IP6, SAFI_UNICAST, type, &p, (union g_addr *)gate,
+ ifindex, ifname, flag, tag, distance, zvrf, &snh_label);
else
- static_delete_route (AFI_IP6, SAFI_UNICAST, type, &p, (union g_addr *)gate, ifindex, tag, distance, zvrf);
+ static_delete_route (AFI_IP6, SAFI_UNICAST, type, &p, (union g_addr *)gate,
+ ifindex, tag, distance, zvrf, &snh_label);
return CMD_SUCCESS;
}