*: Consistently support 32-bit route tags

This patch improves zebra,ripd,ripngd,ospfd and bgpd so that they can
make use of 32-bit route tags in the case of zebra,ospf,bgp or 16-bit
route-tags in the case of ripd,ripngd.

It is based on the following patch:

    commit d25764028829a3a30cdbabe85f32408a63cccadf
    Author: Paul Jakma <paul.jakma@hpe.com>
    Date:   Fri Jul 1 14:23:45 2016 +0100

    *: Widen width of Zserv routing tag field.

But also contains the changes which make this actually useful for all
the daemons.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
This commit is contained in:
Christian Franke 2016-10-01 20:42:34 +02:00 committed by Donald Sharp
parent e7331dea73
commit dc9ffce878
34 changed files with 301 additions and 518 deletions

View File

@ -118,7 +118,7 @@ struct attr_extra
u_char mp_nexthop_prefer_global; u_char mp_nexthop_prefer_global;
/* route tag */ /* route tag */
u_short tag; route_tag_t tag;
uint16_t encap_tunneltype; /* grr */ uint16_t encap_tunneltype; /* grr */
struct bgp_attr_encap_subtlv *encap_subtlvs; /* rfc5512 */ struct bgp_attr_encap_subtlv *encap_subtlvs; /* rfc5512 */

View File

@ -5820,7 +5820,7 @@ ALIAS (no_ipv6_aggregate_address_summary_only,
void void
bgp_redistribute_add (struct bgp *bgp, struct prefix *p, const struct in_addr *nexthop, bgp_redistribute_add (struct bgp *bgp, struct prefix *p, const struct in_addr *nexthop,
const struct in6_addr *nexthop6, unsigned int ifindex, const struct in6_addr *nexthop6, unsigned int ifindex,
u_int32_t metric, u_char type, u_short instance, u_short tag) u_int32_t metric, u_char type, u_short instance, route_tag_t tag)
{ {
struct bgp_info *new; struct bgp_info *new;
struct bgp_info *bi; struct bgp_info *bi;
@ -7185,7 +7185,7 @@ route_vty_out_detail (struct vty *vty, struct bgp *bgp, struct prefix *p,
if (json_paths) if (json_paths)
json_object_int_add(json_path, "tag", attr->extra->tag); json_object_int_add(json_path, "tag", attr->extra->tag);
else else
vty_out (vty, ", tag %d", attr->extra->tag); vty_out (vty, ", tag %"ROUTE_TAG_PRI, attr->extra->tag);
} }
if (! CHECK_FLAG (binfo->flags, BGP_INFO_VALID)) if (! CHECK_FLAG (binfo->flags, BGP_INFO_VALID))

View File

@ -271,7 +271,7 @@ extern int bgp_maximum_prefix_overflow (struct peer *, afi_t, safi_t, int);
extern void bgp_redistribute_add (struct bgp *, struct prefix *, const struct in_addr *, extern void bgp_redistribute_add (struct bgp *, struct prefix *, const struct in_addr *,
const struct in6_addr *, unsigned int ifindex, const struct in6_addr *, unsigned int ifindex,
u_int32_t, u_char, u_short, u_short); u_int32_t, u_char, u_short, route_tag_t);
extern void bgp_redistribute_delete (struct bgp *, struct prefix *, u_char, u_short); extern void bgp_redistribute_delete (struct bgp *, struct prefix *, u_char, u_short);
extern void bgp_redistribute_withdraw (struct bgp *, afi_t, int, u_short); extern void bgp_redistribute_withdraw (struct bgp *, afi_t, int, u_short);

View File

@ -1070,7 +1070,7 @@ static route_map_result_t
route_match_tag (void *rule, struct prefix *prefix, route_match_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct bgp_info *bgp_info; struct bgp_info *bgp_info;
if (type == RMAP_BGP) if (type == RMAP_BGP)
@ -1088,46 +1088,13 @@ route_match_tag (void *rule, struct prefix *prefix,
} }
/* Route map `match tag' match statement. `arg' is TAG value */
static void *
route_match_tag_compile (const char *arg)
{
u_short *tag;
u_short tmp;
/* tag value shoud be integer. */
if (! all_digit (arg))
return NULL;
tmp = atoi(arg);
if (tmp < 1)
return NULL;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
if (!tag)
return tag;
*tag = tmp;
return tag;
}
/* Free route map's compiled 'match tag' value. */
static void
route_match_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag matching. */ /* Route map commands for tag matching. */
struct route_map_rule_cmd route_match_tag_cmd = static struct route_map_rule_cmd route_match_tag_cmd =
{ {
"tag", "tag",
route_match_tag, route_match_tag,
route_match_tag_compile, route_map_rule_tag_compile,
route_match_tag_free, route_map_rule_tag_free,
}; };
@ -1924,7 +1891,7 @@ static route_map_result_t
route_set_tag (void *rule, struct prefix *prefix, route_set_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct bgp_info *bgp_info; struct bgp_info *bgp_info;
struct attr_extra *ae; struct attr_extra *ae;
@ -1942,47 +1909,13 @@ route_set_tag (void *rule, struct prefix *prefix,
return RMAP_OKAY; return RMAP_OKAY;
} }
/* Route map `tag' compile function. Given string is converted to u_short. */
static void *
route_set_tag_compile (const char *arg)
{
u_short *tag;
u_short tmp;
/* tag value shoud be integer. */
if (! all_digit (arg))
return NULL;
tmp = atoi(arg);
if (tmp < 1)
return NULL;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
if (!tag)
return tag;
*tag = tmp;
return tag;
}
/* Free route map's tag value. */
static void
route_set_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag set. */ /* Route map commands for tag set. */
struct route_map_rule_cmd route_set_tag_cmd = static struct route_map_rule_cmd route_set_tag_cmd =
{ {
"tag", "tag",
route_set_tag, route_set_tag,
route_set_tag_compile, route_map_rule_tag_compile,
route_set_tag_free, route_map_rule_tag_free,
}; };
@ -3605,7 +3538,7 @@ ALIAS (no_match_interface,
DEFUN (match_tag, DEFUN (match_tag,
match_tag_cmd, match_tag_cmd,
"match tag <1-65535>", "match tag <1-4294967295>",
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
"Tag value\n") "Tag value\n")
@ -3631,7 +3564,7 @@ DEFUN (no_match_tag,
ALIAS (no_match_tag, ALIAS (no_match_tag,
no_match_tag_val_cmd, no_match_tag_val_cmd,
"no match tag <1-65535>", "no match tag <1-4294967295>",
NO_STR NO_STR
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
@ -4313,7 +4246,7 @@ ALIAS (no_set_aggregator_as,
DEFUN (set_tag, DEFUN (set_tag,
set_tag_cmd, set_tag_cmd,
"set tag <1-65535>", "set tag <1-4294967295>",
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"
"Tag value\n") "Tag value\n")
@ -4336,7 +4269,7 @@ DEFUN (no_set_tag,
ALIAS (no_set_tag, ALIAS (no_set_tag,
no_set_tag_val_cmd, no_set_tag_val_cmd,
"no set tag <1-65535>", "no set tag <1-4294967295>",
NO_STR NO_STR
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"

View File

@ -640,7 +640,7 @@ zebra_read_ipv4 (int command, struct zclient *zclient, zebra_size_t length,
api.metric = 0; api.metric = 0;
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG))
api.tag = stream_getw (s); api.tag = stream_getl (s);
else else
api.tag = 0; api.tag = 0;
@ -649,7 +649,7 @@ zebra_read_ipv4 (int command, struct zclient *zclient, zebra_size_t length,
if (bgp_debug_zebra((struct prefix *)&p)) if (bgp_debug_zebra((struct prefix *)&p))
{ {
char buf[2][INET_ADDRSTRLEN]; char buf[2][INET_ADDRSTRLEN];
zlog_debug("Rx IPv4 route add VRF %u %s[%d] %s/%d nexthop %s metric %u tag %d", zlog_debug("Rx IPv4 route add VRF %u %s[%d] %s/%d nexthop %s metric %u tag %"ROUTE_TAG_PRI,
vrf_id, vrf_id,
zebra_route_string(api.type), api.instance, zebra_route_string(api.type), api.instance,
inet_ntop(AF_INET, &p.prefix, buf[0], sizeof(buf[0])), inet_ntop(AF_INET, &p.prefix, buf[0], sizeof(buf[0])),
@ -681,7 +681,7 @@ zebra_read_ipv4 (int command, struct zclient *zclient, zebra_size_t length,
{ {
char buf[2][INET_ADDRSTRLEN]; char buf[2][INET_ADDRSTRLEN];
zlog_debug("Rx IPv4 route delete VRF %u %s[%d] %s/%d " zlog_debug("Rx IPv4 route delete VRF %u %s[%d] %s/%d "
"nexthop %s metric %u tag %d", "nexthop %s metric %u tag %"ROUTE_TAG_PRI,
vrf_id, vrf_id,
zebra_route_string(api.type), api.instance, zebra_route_string(api.type), api.instance,
inet_ntop(AF_INET, &p.prefix, buf[0], sizeof(buf[0])), inet_ntop(AF_INET, &p.prefix, buf[0], sizeof(buf[0])),
@ -757,7 +757,7 @@ zebra_read_ipv6 (int command, struct zclient *zclient, zebra_size_t length,
api.metric = 0; api.metric = 0;
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG))
api.tag = stream_getw (s); api.tag = stream_getl (s);
else else
api.tag = 0; api.tag = 0;
@ -770,7 +770,7 @@ zebra_read_ipv6 (int command, struct zclient *zclient, zebra_size_t length,
if (bgp_debug_zebra((struct prefix *)&p)) if (bgp_debug_zebra((struct prefix *)&p))
{ {
char buf[2][INET6_ADDRSTRLEN]; char buf[2][INET6_ADDRSTRLEN];
zlog_debug("Rx IPv6 route add VRF %u %s[%d] %s/%d nexthop %s metric %u tag %d", zlog_debug("Rx IPv6 route add VRF %u %s[%d] %s/%d nexthop %s metric %u tag %"ROUTE_TAG_PRI,
vrf_id, vrf_id,
zebra_route_string(api.type), api.instance, zebra_route_string(api.type), api.instance,
inet_ntop(AF_INET6, &p.prefix, buf[0], sizeof(buf[0])), inet_ntop(AF_INET6, &p.prefix, buf[0], sizeof(buf[0])),
@ -801,7 +801,7 @@ zebra_read_ipv6 (int command, struct zclient *zclient, zebra_size_t length,
{ {
char buf[2][INET6_ADDRSTRLEN]; char buf[2][INET6_ADDRSTRLEN];
zlog_debug("Rx IPv6 route delete VRF %u %s[%d] %s/%d " zlog_debug("Rx IPv6 route delete VRF %u %s[%d] %s/%d "
"nexthop %s metric %u tag %d", "nexthop %s metric %u tag %"ROUTE_TAG_PRI,
vrf_id, vrf_id,
zebra_route_string(api.type), api.instance, zebra_route_string(api.type), api.instance,
inet_ntop(AF_INET6, &p.prefix, buf[0], sizeof(buf[0])), inet_ntop(AF_INET6, &p.prefix, buf[0], sizeof(buf[0])),
@ -1211,7 +1211,7 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp,
u_int32_t nhcount, metric; u_int32_t nhcount, metric;
struct bgp_info local_info; struct bgp_info local_info;
struct bgp_info *info_cp = &local_info; struct bgp_info *info_cp = &local_info;
u_short tag; route_tag_t tag;
/* Don't try to install if we're not connected to Zebra or Zebra doesn't /* Don't try to install if we're not connected to Zebra or Zebra doesn't
* know of this instance. * know of this instance.
@ -1376,7 +1376,7 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp,
if (bgp_debug_zebra(p)) if (bgp_debug_zebra(p))
{ {
int i; int i;
zlog_debug("Tx IPv4 route %s VRF %u %s/%d metric %u tag %d" zlog_debug("Tx IPv4 route %s VRF %u %s/%d metric %u tag %"ROUTE_TAG_PRI
" count %d", (valid_nh_count ? "add":"delete"), " count %d", (valid_nh_count ? "add":"delete"),
bgp->vrf_id, bgp->vrf_id,
inet_ntop(AF_INET, &p->u.prefix4, buf[0], sizeof(buf[0])), inet_ntop(AF_INET, &p->u.prefix4, buf[0], sizeof(buf[0])),
@ -1557,7 +1557,7 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp,
if (bgp_debug_zebra(p)) if (bgp_debug_zebra(p))
{ {
int i; int i;
zlog_debug("Tx IPv4 route %s VRF %u %s/%d metric %u tag %d", zlog_debug("Tx IPv4 route %s VRF %u %s/%d metric %u tag %"ROUTE_TAG_PRI,
valid_nh_count ? "add" : "delete", bgp->vrf_id, valid_nh_count ? "add" : "delete", bgp->vrf_id,
inet_ntop(AF_INET, &p->u.prefix4, buf[0], sizeof(buf[0])), inet_ntop(AF_INET, &p->u.prefix4, buf[0], sizeof(buf[0])),
p->prefixlen, api.metric, api.tag); p->prefixlen, api.metric, api.tag);
@ -1579,7 +1579,7 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp,
if (bgp_debug_zebra(p)) if (bgp_debug_zebra(p))
{ {
int i; int i;
zlog_debug("Tx IPv6 route %s VRF %u %s/%d metric %u tag %d", zlog_debug("Tx IPv6 route %s VRF %u %s/%d metric %u tag %"ROUTE_TAG_PRI,
valid_nh_count ? "add" : "delete", bgp->vrf_id, valid_nh_count ? "add" : "delete", bgp->vrf_id,
inet_ntop(AF_INET6, &p->u.prefix6, buf[0], sizeof(buf[0])), inet_ntop(AF_INET6, &p->u.prefix6, buf[0], sizeof(buf[0])),
p->prefixlen, api.metric, api.tag); p->prefixlen, api.metric, api.tag);
@ -1683,7 +1683,7 @@ bgp_zebra_withdraw (struct prefix *p, struct bgp_info *info, safi_t safi)
if (bgp_debug_zebra(p)) if (bgp_debug_zebra(p))
{ {
char buf[2][INET_ADDRSTRLEN]; char buf[2][INET_ADDRSTRLEN];
zlog_debug("Tx IPv4 route delete VRF %u %s/%d metric %u tag %d", zlog_debug("Tx IPv4 route delete VRF %u %s/%d metric %u tag %"ROUTE_TAG_PRI,
peer->bgp->vrf_id, peer->bgp->vrf_id,
inet_ntop(AF_INET, &p->u.prefix4, buf[0], sizeof(buf[0])), inet_ntop(AF_INET, &p->u.prefix4, buf[0], sizeof(buf[0])),
p->prefixlen, api.metric, api.tag); p->prefixlen, api.metric, api.tag);
@ -1723,7 +1723,7 @@ bgp_zebra_withdraw (struct prefix *p, struct bgp_info *info, safi_t safi)
if (bgp_debug_zebra(p)) if (bgp_debug_zebra(p))
{ {
char buf[2][INET6_ADDRSTRLEN]; char buf[2][INET6_ADDRSTRLEN];
zlog_debug("Tx IPv6 route delete VRF %u %s/%d metric %u tag %d", zlog_debug("Tx IPv6 route delete VRF %u %s/%d metric %u tag %"ROUTE_TAG_PRI,
peer->bgp->vrf_id, peer->bgp->vrf_id,
inet_ntop(AF_INET6, &p->u.prefix6, buf[0], sizeof(buf[0])), inet_ntop(AF_INET6, &p->u.prefix6, buf[0], sizeof(buf[0])),
p->prefixlen, api.metric, api.tag); p->prefixlen, api.metric, api.tag);

View File

@ -1829,6 +1829,32 @@ route_map_init_dep_hashes (void)
route_map_dep_hash_cmp); route_map_dep_hash_cmp);
} }
/* Common route map rules */
void *
route_map_rule_tag_compile (const char *arg)
{
unsigned long int tmp;
char *endptr;
route_tag_t *tag;
errno = 0;
tmp = strtoul(arg, &endptr, 0);
if (arg[0] == '\0' || *endptr != '\0' || errno || tmp > ROUTE_TAG_MAX)
return NULL;
tag = XMALLOC(MTYPE_ROUTE_MAP_COMPILED, sizeof(*tag));
*tag = tmp;
return tag;
}
void
route_map_rule_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Initialization of route map vector. */ /* Initialization of route map vector. */
void void
route_map_init_vty (void) route_map_init_vty (void)

View File

@ -235,4 +235,7 @@ extern void route_map_upd8_dependency (route_map_event_t type, const char *arg,
extern void route_map_notify_dependencies (const char *affected_name, extern void route_map_notify_dependencies (const char *affected_name,
route_map_event_t event); route_map_event_t event);
extern void *route_map_rule_tag_compile (const char *arg);
extern void route_map_rule_tag_free (void *rule);
#endif /* _ZEBRA_ROUTEMAP_H */ #endif /* _ZEBRA_ROUTEMAP_H */

View File

@ -722,7 +722,7 @@ zclient_connect (struct thread *t)
* If ZAPI_MESSAGE_METRIC is set, the metric value is written as an 8 * If ZAPI_MESSAGE_METRIC is set, the metric value is written as an 8
* byte value. * byte value.
* *
* If ZAPI_MESSAGE_TAG is set, the tag value is written as a 2 byte value * If ZAPI_MESSAGE_TAG is set, the tag value is written as a 4 byte value
* *
* If ZAPI_MESSAGE_MTU is set, the mtu value is written as a 4 byte value * If ZAPI_MESSAGE_MTU is set, the mtu value is written as a 4 byte value
* *
@ -785,7 +785,7 @@ zapi_ipv4_route (u_char cmd, struct zclient *zclient, struct prefix_ipv4 *p,
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC))
stream_putl (s, api->metric); stream_putl (s, api->metric);
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_TAG))
stream_putw (s, api->tag); stream_putl (s, api->tag);
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU))
stream_putl (s, api->mtu); stream_putl (s, api->mtu);
@ -852,7 +852,7 @@ zapi_ipv4_route_ipv6_nexthop (u_char cmd, struct zclient *zclient,
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC))
stream_putl (s, api->metric); stream_putl (s, api->metric);
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_TAG))
stream_putw (s, api->tag); stream_putl (s, api->tag);
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU))
stream_putl (s, api->mtu); stream_putl (s, api->mtu);
@ -918,7 +918,7 @@ zapi_ipv6_route (u_char cmd, struct zclient *zclient, struct prefix_ipv6 *p,
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_METRIC))
stream_putl (s, api->metric); stream_putl (s, api->metric);
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_TAG))
stream_putw (s, api->tag); stream_putl (s, api->tag);
if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU)) if (CHECK_FLAG (api->message, ZAPI_MESSAGE_MTU))
stream_putl (s, api->mtu); stream_putl (s, api->mtu);

View File

@ -150,7 +150,7 @@ struct zapi_ipv4
u_int32_t metric; u_int32_t metric;
u_short tag; route_tag_t tag;
u_int32_t mtu; u_int32_t mtu;
@ -238,7 +238,7 @@ struct zapi_ipv6
u_int32_t metric; u_int32_t metric;
u_short tag; route_tag_t tag;
u_int32_t mtu; u_int32_t mtu;

View File

@ -528,4 +528,8 @@ typedef u_int16_t zebra_command_t;
/* VRF ID type. */ /* VRF ID type. */
typedef u_int16_t vrf_id_t; typedef u_int16_t vrf_id_t;
typedef uint32_t route_tag_t;
#define ROUTE_TAG_MAX UINT32_MAX
#define ROUTE_TAG_PRI PRIu32
#endif /* _ZEBRA_H */ #endif /* _ZEBRA_H */

View File

@ -137,7 +137,7 @@ ospf_route_map_set_compare (struct route_map_set_values *values1,
struct external_info * struct external_info *
ospf_external_info_add (u_char type, u_short instance, struct prefix_ipv4 p, ospf_external_info_add (u_char type, u_short instance, struct prefix_ipv4 p,
ifindex_t ifindex, struct in_addr nexthop, ifindex_t ifindex, struct in_addr nexthop,
u_short tag) route_tag_t tag)
{ {
struct external_info *new; struct external_info *new;
struct route_node *rn; struct route_node *rn;

View File

@ -47,7 +47,7 @@ struct external_info
struct in_addr nexthop; struct in_addr nexthop;
/* Additional Route tag. */ /* Additional Route tag. */
u_int32_t tag; route_tag_t tag;
struct route_map_set_values route_map_set; struct route_map_set_values route_map_set;
#define ROUTEMAP_METRIC(E) (E)->route_map_set.metric #define ROUTEMAP_METRIC(E) (E)->route_map_set.metric
@ -65,7 +65,7 @@ extern struct external_info *ospf_external_info_add (u_char, u_short,
struct prefix_ipv4, struct prefix_ipv4,
ifindex_t, ifindex_t,
struct in_addr, struct in_addr,
u_short); route_tag_t);
extern void ospf_external_info_delete (u_char, u_short, struct prefix_ipv4); extern void ospf_external_info_delete (u_char, u_short, struct prefix_ipv4);
extern struct external_info *ospf_external_info_lookup (u_char, u_short, extern struct external_info *ospf_external_info_lookup (u_char, u_short,
struct prefix_ipv4 *); struct prefix_ipv4 *);

View File

@ -493,7 +493,7 @@ ospf_as_external_lsa_dump (struct stream *s, u_int16_t length)
IS_EXTERNAL_METRIC (al->e[i].tos) ? "E" : "-", IS_EXTERNAL_METRIC (al->e[i].tos) ? "E" : "-",
al->e[i].tos & 0x7f, GET_METRIC (al->e[i].metric)); al->e[i].tos & 0x7f, GET_METRIC (al->e[i].metric));
zlog_debug (" Forwarding address %s", inet_ntoa (al->e[i].fwd_addr)); zlog_debug (" Forwarding address %s", inet_ntoa (al->e[i].fwd_addr));
zlog_debug (" External Route Tag %d", al->e[i].route_tag); zlog_debug (" External Route Tag %"ROUTE_TAG_PRI, al->e[i].route_tag);
} }
} }

View File

@ -1673,7 +1673,7 @@ ospf_external_lsa_body_set (struct stream *s, struct external_info *ei,
/* Put forwarding address. */ /* Put forwarding address. */
stream_put_ipv4 (s, fwd_addr.s_addr); stream_put_ipv4 (s, fwd_addr.s_addr);
/* Put route tag -- only first 16bits are used for compatibility */ /* Put route tag */
stream_putl (s, ei->tag); stream_putl (s, ei->tag);
} }

View File

@ -443,7 +443,7 @@ static route_map_result_t
route_match_tag (void *rule, struct prefix *prefix, route_match_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct external_info *ei; struct external_info *ei;
if (type == RMAP_OSPF) if (type == RMAP_OSPF)
@ -457,45 +457,13 @@ route_match_tag (void *rule, struct prefix *prefix,
return RMAP_NOMATCH; return RMAP_NOMATCH;
} }
/* Route map `match tag' match statement. `arg' is TAG value */
static void *
route_match_tag_compile (const char *arg)
{
u_short *tag;
u_short tmp;
/* tag value shoud be integer. */
if (! all_digit (arg))
return NULL;
tmp = atoi(arg);
if (tmp < 1)
return NULL;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
if (!tag)
return tag;
*tag = tmp;
return tag;
}
/* Free route map's compiled 'match tag' value. */
static void
route_match_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag matching. */ /* Route map commands for tag matching. */
struct route_map_rule_cmd route_match_tag_cmd = static struct route_map_rule_cmd route_match_tag_cmd =
{ {
"tag", "tag",
route_match_tag, route_match_tag,
route_match_tag_compile, route_map_rule_tag_compile,
route_match_tag_free, route_map_rule_tag_free,
}; };
@ -633,7 +601,7 @@ static route_map_result_t
route_set_tag (void *rule, struct prefix *prefix, route_set_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct external_info *ei; struct external_info *ei;
if (type == RMAP_OSPF) if (type == RMAP_OSPF)
@ -648,46 +616,13 @@ route_set_tag (void *rule, struct prefix *prefix,
return RMAP_OKAY; return RMAP_OKAY;
} }
/* Route map `tag' compile function. Given string is converted to u_short. */
static void *
route_set_tag_compile (const char *arg)
{
u_short *tag;
u_short tmp;
/* tag value shoud be integer. */
if (! all_digit (arg))
return NULL;
tmp = atoi(arg);
if (tmp < 1)
return NULL;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
if (!tag)
return tag;
*tag = tmp;
return tag;
}
/* Free route map's tag value. */
static void
route_set_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag set. */ /* Route map commands for tag set. */
struct route_map_rule_cmd route_set_tag_cmd = static struct route_map_rule_cmd route_set_tag_cmd =
{ {
"tag", "tag",
route_set_tag, route_set_tag,
route_set_tag_compile, route_map_rule_tag_compile,
route_set_tag_free, route_map_rule_tag_free,
}; };
DEFUN (match_ip_nexthop, DEFUN (match_ip_nexthop,
@ -877,7 +812,7 @@ ALIAS (no_match_interface,
DEFUN (match_tag, DEFUN (match_tag,
match_tag_cmd, match_tag_cmd,
"match tag <1-65535>", "match tag <1-4294967295>",
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
"Tag value\n") "Tag value\n")
@ -900,7 +835,7 @@ DEFUN (no_match_tag,
ALIAS (no_match_tag, ALIAS (no_match_tag,
no_match_tag_val_cmd, no_match_tag_val_cmd,
"no match tag <1-65535>", "no match tag <1-4294967295>",
NO_STR NO_STR
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
@ -977,7 +912,7 @@ ALIAS (no_set_metric_type,
DEFUN (set_tag, DEFUN (set_tag,
set_tag_cmd, set_tag_cmd,
"set tag <1-65535>", "set tag <1-4294967295>",
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"
"Tag value\n") "Tag value\n")
@ -1000,7 +935,7 @@ DEFUN (no_set_tag,
ALIAS (no_set_tag, ALIAS (no_set_tag,
no_set_tag_val_cmd, no_set_tag_val_cmd,
"no set tag <1-65535>", "no set tag <1-4294967295>",
NO_STR NO_STR
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"

View File

@ -5350,8 +5350,8 @@ show_as_external_lsa_detail (struct vty *vty, struct ospf_lsa *lsa)
vty_out (vty, " Forward Address: %s%s", vty_out (vty, " Forward Address: %s%s",
inet_ntoa (al->e[0].fwd_addr), VTY_NEWLINE); inet_ntoa (al->e[0].fwd_addr), VTY_NEWLINE);
vty_out (vty, " External Route Tag: %lu%s%s", vty_out (vty, " External Route Tag: %"ROUTE_TAG_PRI"%s%s",
(u_long)ntohl (al->e[0].route_tag), VTY_NEWLINE, VTY_NEWLINE); (route_tag_t)ntohl (al->e[0].route_tag), VTY_NEWLINE, VTY_NEWLINE);
} }
return 0; return 0;
@ -5376,8 +5376,8 @@ show_as_external_lsa_stdvty (struct ospf_lsa *lsa)
zlog_debug( " Forward Address: %s%s", zlog_debug( " Forward Address: %s%s",
inet_ntoa (al->e[0].fwd_addr), "\n"); inet_ntoa (al->e[0].fwd_addr), "\n");
zlog_debug( " External Route Tag: %u%s%s", zlog_debug( " External Route Tag: %"ROUTE_TAG_PRI"%s%s",
ntohl (al->e[0].route_tag), "\n", "\n"); (route_tag_t)ntohl (al->e[0].route_tag), "\n", "\n");
return 0; return 0;
} }
@ -5404,8 +5404,8 @@ show_as_nssa_lsa_detail (struct vty *vty, struct ospf_lsa *lsa)
vty_out (vty, " NSSA: Forward Address: %s%s", vty_out (vty, " NSSA: Forward Address: %s%s",
inet_ntoa (al->e[0].fwd_addr), VTY_NEWLINE); inet_ntoa (al->e[0].fwd_addr), VTY_NEWLINE);
vty_out (vty, " External Route Tag: %u%s%s", vty_out (vty, " External Route Tag: %"ROUTE_TAG_PRI"%s%s",
ntohl (al->e[0].route_tag), VTY_NEWLINE, VTY_NEWLINE); (route_tag_t)ntohl (al->e[0].route_tag), VTY_NEWLINE, VTY_NEWLINE);
} }
return 0; return 0;
@ -9067,11 +9067,11 @@ show_ip_ospf_route_external (struct vty *vty, struct route_table *rt)
switch (er->path_type) switch (er->path_type)
{ {
case OSPF_PATH_TYPE1_EXTERNAL: case OSPF_PATH_TYPE1_EXTERNAL:
vty_out (vty, "N E1 %-18s [%d] tag: %u%s", buf1, vty_out (vty, "N E1 %-18s [%d] tag: %"ROUTE_TAG_PRI"%s", buf1,
er->cost, er->u.ext.tag, VTY_NEWLINE); er->cost, er->u.ext.tag, VTY_NEWLINE);
break; break;
case OSPF_PATH_TYPE2_EXTERNAL: case OSPF_PATH_TYPE2_EXTERNAL:
vty_out (vty, "N E2 %-18s [%d/%d] tag: %u%s", buf1, er->cost, vty_out (vty, "N E2 %-18s [%d/%d] tag: %"ROUTE_TAG_PRI"%s", buf1, er->cost,
er->u.ext.type2_cost, er->u.ext.tag, VTY_NEWLINE); er->u.ext.type2_cost, er->u.ext.tag, VTY_NEWLINE);
break; break;
} }

View File

@ -379,10 +379,10 @@ ospf_zebra_add (struct prefix_ipv4 *p, struct ospf_route *or)
if (distance) if (distance)
SET_FLAG (message, ZAPI_MESSAGE_DISTANCE); SET_FLAG (message, ZAPI_MESSAGE_DISTANCE);
/* Check if path type is ASE and use only 16bit tags */ /* Check if path type is ASE */
if (((or->path_type == OSPF_PATH_TYPE1_EXTERNAL) || if (((or->path_type == OSPF_PATH_TYPE1_EXTERNAL) ||
(or->path_type == OSPF_PATH_TYPE2_EXTERNAL)) && (or->path_type == OSPF_PATH_TYPE2_EXTERNAL)) &&
(or->u.ext.tag > 0) && (or->u.ext.tag < UINT16_MAX)) (or->u.ext.tag > 0) && (or->u.ext.tag <= ROUTE_TAG_MAX))
SET_FLAG (message, ZAPI_MESSAGE_TAG); SET_FLAG (message, ZAPI_MESSAGE_TAG);
/* Make packet. */ /* Make packet. */
@ -479,7 +479,7 @@ ospf_zebra_add (struct prefix_ipv4 *p, struct ospf_route *or)
} }
if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG))
stream_putw (s, (u_short)or->u.ext.tag); stream_putl (s, or->u.ext.tag);
stream_putw_at (s, 0, stream_get_endp (s)); stream_putw_at (s, 0, stream_get_endp (s));
@ -1093,7 +1093,7 @@ ospf_zebra_read_ipv4 (int command, struct zclient *zclient,
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_METRIC)) if (CHECK_FLAG (api.message, ZAPI_MESSAGE_METRIC))
api.metric = stream_getl (s); api.metric = stream_getl (s);
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG))
api.tag = stream_getw (s); api.tag = stream_getl (s);
else else
api.tag = 0; api.tag = 0;

View File

@ -269,7 +269,7 @@ struct ospf
struct list *redist[ZEBRA_ROUTE_MAX + 1]; struct list *redist[ZEBRA_ROUTE_MAX + 1];
/* Redistribute tag info. */ /* Redistribute tag info. */
u_short dtag[ZEBRA_ROUTE_MAX + 1]; //Pending: cant configure as of now route_tag_t dtag[ZEBRA_ROUTE_MAX + 1]; //Pending: cant configure as of now
int default_metric; /* Default metric for redistribute. */ int default_metric; /* Default metric for redistribute. */

View File

@ -610,7 +610,7 @@ static int redist_read_ipv4_route(int command, struct zclient *zclient,
0; 0;
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG))
api.tag = stream_getw (s); api.tag = stream_getl (s);
else else
api.tag = 0; api.tag = 0;

View File

@ -463,8 +463,9 @@ static route_map_result_t
route_match_tag (void *rule, struct prefix *prefix, route_match_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct rip_info *rinfo; struct rip_info *rinfo;
route_tag_t rinfo_tag;
if (type == RMAP_RIP) if (type == RMAP_RIP)
{ {
@ -472,7 +473,8 @@ route_match_tag (void *rule, struct prefix *prefix,
rinfo = object; rinfo = object;
/* The information stored by rinfo is host ordered. */ /* The information stored by rinfo is host ordered. */
if (rinfo->tag == *tag) rinfo_tag = rinfo->tag;
if (rinfo_tag == *tag)
return RMAP_MATCH; return RMAP_MATCH;
else else
return RMAP_NOMATCH; return RMAP_NOMATCH;
@ -480,45 +482,13 @@ route_match_tag (void *rule, struct prefix *prefix,
return RMAP_NOMATCH; return RMAP_NOMATCH;
} }
/* Route map `match tag' match statement. `arg' is TAG value */
static void *
route_match_tag_compile (const char *arg)
{
u_short *tag;
u_short tmp;
/* tag value shoud be integer. */
if (! all_digit (arg))
return NULL;
tmp = atoi(arg);
if (tmp < 1)
return NULL;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
if (!tag)
return tag;
*tag = tmp;
return tag;
}
/* Free route map's compiled `match tag' value. */
static void
route_match_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag matching. */ /* Route map commands for tag matching. */
struct route_map_rule_cmd route_match_tag_cmd = static struct route_map_rule_cmd route_match_tag_cmd =
{ {
"tag", "tag",
route_match_tag, route_match_tag,
route_match_tag_compile, route_map_rule_tag_compile,
route_match_tag_free route_map_rule_tag_free,
}; };
/* `set metric METRIC' */ /* `set metric METRIC' */
@ -687,7 +657,7 @@ static route_map_result_t
route_set_tag (void *rule, struct prefix *prefix, route_set_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct rip_info *rinfo; struct rip_info *rinfo;
if(type == RMAP_RIP) if(type == RMAP_RIP)
@ -703,33 +673,13 @@ route_set_tag (void *rule, struct prefix *prefix,
return RMAP_OKAY; return RMAP_OKAY;
} }
/* Route map `tag' compile function. Given string is converted
to u_short. */
static void *
route_set_tag_compile (const char *arg)
{
u_short *tag;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
*tag = atoi (arg);
return tag;
}
/* Free route map's compiled `ip nexthop' value. */
static void
route_set_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag set. */ /* Route map commands for tag set. */
static struct route_map_rule_cmd route_set_tag_cmd = static struct route_map_rule_cmd route_set_tag_cmd =
{ {
"tag", "tag",
route_set_tag, route_set_tag,
route_set_tag_compile, route_map_rule_tag_compile,
route_set_tag_free route_map_rule_tag_free
}; };
#define MATCH_STR "Match values from routing table\n" #define MATCH_STR "Match values from routing table\n"
@ -950,7 +900,7 @@ ALIAS (no_match_ip_address_prefix_list,
DEFUN (match_tag, DEFUN (match_tag,
match_tag_cmd, match_tag_cmd,
"match tag <1-65535>", "match tag <1-4294967295>",
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
"Metric value\n") "Metric value\n")
@ -973,7 +923,7 @@ DEFUN (no_match_tag,
ALIAS (no_match_tag, ALIAS (no_match_tag,
no_match_tag_val_cmd, no_match_tag_val_cmd,
"no match tag <1-65535>", "no match tag <1-4294967295>",
NO_STR NO_STR
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
@ -1080,7 +1030,7 @@ ALIAS (no_set_ip_nexthop,
DEFUN (set_tag, DEFUN (set_tag,
set_tag_cmd, set_tag_cmd,
"set tag <1-65535>", "set tag <1-4294967295>",
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"
"Tag value\n") "Tag value\n")
@ -1103,7 +1053,7 @@ DEFUN (no_set_tag,
ALIAS (no_set_tag, ALIAS (no_set_tag,
no_set_tag_val_cmd, no_set_tag_val_cmd,
"no set tag <1-65535>", "no set tag <1-4294967295>",
NO_STR NO_STR
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"

View File

@ -760,17 +760,18 @@ rip_packet_dump (struct rip_packet *packet, int size, const char *sndrcv)
} }
} }
else else
zlog_debug (" %s/%d -> %s family %d tag %d metric %ld", zlog_debug (" %s/%d -> %s family %d tag %"ROUTE_TAG_PRI" metric %ld",
inet_ntop (AF_INET, &rte->prefix, pbuf, BUFSIZ), inet_ntop (AF_INET, &rte->prefix, pbuf, BUFSIZ),
netmask, inet_ntop (AF_INET, &rte->nexthop, nbuf, netmask, inet_ntop (AF_INET, &rte->nexthop, nbuf,
BUFSIZ), ntohs (rte->family), BUFSIZ), ntohs (rte->family),
ntohs (rte->tag), (u_long) ntohl (rte->metric)); (route_tag_t)ntohs (rte->tag),
(u_long) ntohl (rte->metric));
} }
else else
{ {
zlog_debug (" %s family %d tag %d metric %ld", zlog_debug (" %s family %d tag %"ROUTE_TAG_PRI" metric %ld",
inet_ntop (AF_INET, &rte->prefix, pbuf, BUFSIZ), inet_ntop (AF_INET, &rte->prefix, pbuf, BUFSIZ),
ntohs (rte->family), ntohs (rte->tag), ntohs (rte->family), (route_tag_t)ntohs (rte->tag),
(u_long)ntohl (rte->metric)); (u_long)ntohl (rte->metric));
} }
} }
@ -3551,13 +3552,13 @@ DEFUN (show_ip_rip,
(rinfo->sub_type == RIP_ROUTE_RTE)) (rinfo->sub_type == RIP_ROUTE_RTE))
{ {
vty_out (vty, "%-15s ", inet_ntoa (rinfo->from)); vty_out (vty, "%-15s ", inet_ntoa (rinfo->from));
vty_out (vty, "%3d ", rinfo->tag); vty_out (vty, "%3"ROUTE_TAG_PRI" ", (route_tag_t)rinfo->tag);
rip_vty_out_uptime (vty, rinfo); rip_vty_out_uptime (vty, rinfo);
} }
else if (rinfo->metric == RIP_METRIC_INFINITY) else if (rinfo->metric == RIP_METRIC_INFINITY)
{ {
vty_out (vty, "self "); vty_out (vty, "self ");
vty_out (vty, "%3d ", rinfo->tag); vty_out (vty, "%3"ROUTE_TAG_PRI" ", (route_tag_t)rinfo->tag);
rip_vty_out_uptime (vty, rinfo); rip_vty_out_uptime (vty, rinfo);
} }
else else
@ -3573,7 +3574,7 @@ DEFUN (show_ip_rip,
} }
else else
vty_out (vty, "self "); vty_out (vty, "self ");
vty_out (vty, "%3d", rinfo->tag); vty_out (vty, "%3"ROUTE_TAG_PRI, (route_tag_t)rinfo->tag);
} }
vty_out (vty, "%s", VTY_NEWLINE); vty_out (vty, "%s", VTY_NEWLINE);

View File

@ -225,7 +225,7 @@ struct rip_info
struct in_addr nexthop_out; struct in_addr nexthop_out;
u_char metric_set; u_char metric_set;
u_int32_t metric_out; u_int32_t metric_out;
u_short tag_out; u_int16_t tag_out;
ifindex_t ifindex_out; ifindex_t ifindex_out;
struct route_node *rp; struct route_node *rp;

View File

@ -35,13 +35,13 @@ struct ripng_aggregate
u_char metric; u_char metric;
/* Tag field of RIPng packet.*/ /* Tag field of RIPng packet.*/
u_short tag; u_int16_t tag;
/* Route-map futures - this variables can be changed. */ /* Route-map futures - this variables can be changed. */
struct in6_addr nexthop_out; struct in6_addr nexthop_out;
u_char metric_set; u_char metric_set;
u_char metric_out; u_char metric_out;
u_short tag_out; u_int16_t tag_out;
}; };
extern void ripng_aggregate_increment (struct route_node *rp, extern void ripng_aggregate_increment (struct route_node *rp,

View File

@ -240,8 +240,9 @@ static route_map_result_t
route_match_tag (void *rule, struct prefix *prefix, route_match_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct ripng_info *rinfo; struct ripng_info *rinfo;
route_tag_t rinfo_tag;
if (type == RMAP_RIPNG) if (type == RMAP_RIPNG)
{ {
@ -249,7 +250,8 @@ route_match_tag (void *rule, struct prefix *prefix,
rinfo = object; rinfo = object;
/* The information stored by rinfo is host ordered. */ /* The information stored by rinfo is host ordered. */
if (rinfo->tag == *tag) rinfo_tag = rinfo->tag;
if (rinfo_tag == *tag)
return RMAP_MATCH; return RMAP_MATCH;
else else
return RMAP_NOMATCH; return RMAP_NOMATCH;
@ -257,32 +259,12 @@ route_match_tag (void *rule, struct prefix *prefix,
return RMAP_NOMATCH; return RMAP_NOMATCH;
} }
/* Route map `match tag' match statement. `arg' is TAG value */
static void *
route_match_tag_compile (const char *arg)
{
u_short *tag;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
*tag = atoi (arg);
return tag;
}
/* Free route map's compiled `match tag' value. */
static void
route_match_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag matching. */
static struct route_map_rule_cmd route_match_tag_cmd = static struct route_map_rule_cmd route_match_tag_cmd =
{ {
"tag", "tag",
route_match_tag, route_match_tag,
route_match_tag_compile, route_map_rule_tag_compile,
route_match_tag_free route_map_rule_tag_free,
}; };
/* `set metric METRIC' */ /* `set metric METRIC' */
@ -452,7 +434,7 @@ static route_map_result_t
route_set_tag (void *rule, struct prefix *prefix, route_set_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct ripng_info *rinfo; struct ripng_info *rinfo;
if(type == RMAP_RIPNG) if(type == RMAP_RIPNG)
@ -468,33 +450,13 @@ route_set_tag (void *rule, struct prefix *prefix,
return RMAP_OKAY; return RMAP_OKAY;
} }
/* Route map `tag' compile function. Given string is converted
to u_short. */
static void *
route_set_tag_compile (const char *arg)
{
u_short *tag;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
*tag = atoi (arg);
return tag;
}
/* Free route map's compiled `ip nexthop' value. */
static void
route_set_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag set. */ /* Route map commands for tag set. */
static struct route_map_rule_cmd route_set_tag_cmd = static struct route_map_rule_cmd route_set_tag_cmd =
{ {
"tag", "tag",
route_set_tag, route_set_tag,
route_set_tag_compile, route_map_rule_tag_compile,
route_set_tag_free route_map_rule_tag_free
}; };
#define MATCH_STR "Match values from routing table\n" #define MATCH_STR "Match values from routing table\n"
@ -564,7 +526,7 @@ ALIAS (no_match_interface,
DEFUN (match_tag, DEFUN (match_tag,
match_tag_cmd, match_tag_cmd,
"match tag <1-65535>", "match tag <1-4294967295>",
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
"Metric value\n") "Metric value\n")
@ -587,7 +549,7 @@ DEFUN (no_match_tag,
ALIAS (no_match_tag, ALIAS (no_match_tag,
no_match_tag_val_cmd, no_match_tag_val_cmd,
"no match tag <1-65535>", "no match tag <1-4294967295>",
NO_STR NO_STR
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
@ -681,7 +643,7 @@ ALIAS (no_set_ipv6_nexthop_local,
DEFUN (set_tag, DEFUN (set_tag,
set_tag_cmd, set_tag_cmd,
"set tag <1-65535>", "set tag <1-4294967295>",
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"
"Tag value\n") "Tag value\n")
@ -704,7 +666,7 @@ DEFUN (no_set_tag,
ALIAS (no_set_tag, ALIAS (no_set_tag,
no_set_tag_val_cmd, no_set_tag_val_cmd,
"no set tag <1-65535>", "no set tag <1-4294967295>",
NO_STR NO_STR
SET_STR SET_STR
"Tag value for routing protocol\n" "Tag value for routing protocol\n"

View File

@ -321,9 +321,9 @@ ripng_packet_dump (struct ripng_packet *packet, int size, const char *sndrcv)
if (rte->metric == RIPNG_METRIC_NEXTHOP) if (rte->metric == RIPNG_METRIC_NEXTHOP)
zlog_debug (" nexthop %s/%d", inet6_ntoa (rte->addr), rte->prefixlen); zlog_debug (" nexthop %s/%d", inet6_ntoa (rte->addr), rte->prefixlen);
else else
zlog_debug (" %s/%d metric %d tag %d", zlog_debug (" %s/%d metric %d tag %"ROUTE_TAG_PRI,
inet6_ntoa (rte->addr), rte->prefixlen, inet6_ntoa (rte->addr), rte->prefixlen,
rte->metric, ntohs (rte->tag)); rte->metric, (route_tag_t)ntohs (rte->tag));
} }
} }
@ -337,15 +337,15 @@ ripng_nexthop_rte (struct rte *rte,
/* Logging before checking RTE. */ /* Logging before checking RTE. */
if (IS_RIPNG_DEBUG_RECV) if (IS_RIPNG_DEBUG_RECV)
zlog_debug ("RIPng nexthop RTE address %s tag %d prefixlen %d", zlog_debug ("RIPng nexthop RTE address %s tag %"ROUTE_TAG_PRI" prefixlen %d",
inet6_ntoa (rte->addr), ntohs (rte->tag), rte->prefixlen); inet6_ntoa (rte->addr), (route_tag_t)ntohs (rte->tag), rte->prefixlen);
/* RFC2080 2.1.1 Next Hop: /* RFC2080 2.1.1 Next Hop:
The route tag and prefix length in the next hop RTE must be The route tag and prefix length in the next hop RTE must be
set to zero on sending and ignored on receiption. */ set to zero on sending and ignored on receiption. */
if (ntohs (rte->tag) != 0) if (ntohs (rte->tag) != 0)
zlog_warn ("RIPng nexthop RTE with non zero tag value %d from %s", zlog_warn ("RIPng nexthop RTE with non zero tag value %"ROUTE_TAG_PRI" from %s",
ntohs (rte->tag), inet6_ntoa (from->sin6_addr)); (route_tag_t)ntohs (rte->tag), inet6_ntoa (from->sin6_addr));
if (rte->prefixlen != 0) if (rte->prefixlen != 0)
zlog_warn ("RIPng nexthop RTE with non zero prefixlen value %d from %s", zlog_warn ("RIPng nexthop RTE with non zero prefixlen value %d from %s",
@ -2017,8 +2017,8 @@ DEFUN (show_ipv6_ripng,
vty_out (vty, "%*s", 18, " "); vty_out (vty, "%*s", 18, " ");
vty_out (vty, "%*s", 28, " "); vty_out (vty, "%*s", 28, " ");
vty_out (vty, "self %2d %3d%s", aggregate->metric, vty_out (vty, "self %2d %3"ROUTE_TAG_PRI"%s", aggregate->metric,
aggregate->tag, (route_tag_t)aggregate->tag,
VTY_NEWLINE); VTY_NEWLINE);
} }
@ -2062,8 +2062,8 @@ DEFUN (show_ipv6_ripng,
if (len > 0) if (len > 0)
vty_out (vty, "%*s", len, " "); vty_out (vty, "%*s", len, " ");
vty_out (vty, " %2d %3d ", vty_out (vty, " %2d %3"ROUTE_TAG_PRI" ",
rinfo->metric, rinfo->tag); rinfo->metric, (route_tag_t)rinfo->tag);
/* time */ /* time */
if ((rinfo->type == ZEBRA_ROUTE_RIPNG) && if ((rinfo->type == ZEBRA_ROUTE_RIPNG) &&

View File

@ -148,7 +148,7 @@ struct ripng
struct rte struct rte
{ {
struct in6_addr addr; /* RIPng destination prefix */ struct in6_addr addr; /* RIPng destination prefix */
u_short tag; /* RIPng tag */ u_int16_t tag; /* RIPng tag */
u_char prefixlen; /* Length of the RIPng prefix */ u_char prefixlen; /* Length of the RIPng prefix */
u_char metric; /* Metric of the RIPng route */ u_char metric; /* Metric of the RIPng route */
/* The nexthop is stored by the structure /* The nexthop is stored by the structure
@ -202,7 +202,7 @@ struct ripng_info
struct in6_addr nexthop_out; struct in6_addr nexthop_out;
u_char metric_set; u_char metric_set;
u_char metric_out; u_char metric_out;
u_short tag_out; u_int16_t tag_out;
struct route_node *rp; struct route_node *rp;
}; };

View File

@ -23,6 +23,7 @@
#ifndef _ZEBRA_RIB_H #ifndef _ZEBRA_RIB_H
#define _ZEBRA_RIB_H #define _ZEBRA_RIB_H
#include "zebra.h"
#include "linklist.h" #include "linklist.h"
#include "prefix.h" #include "prefix.h"
#include "table.h" #include "table.h"
@ -47,6 +48,9 @@ struct rib
/* Refrence count. */ /* Refrence count. */
unsigned long refcnt; unsigned long refcnt;
/* Tag */
route_tag_t tag;
/* Uptime. */ /* Uptime. */
time_t uptime; time_t uptime;
@ -72,9 +76,6 @@ struct rib
/* Distance. */ /* Distance. */
u_char distance; u_char distance;
/* Tag */
u_short tag;
/* Flags of this route. /* Flags of this route.
* This flag's definition is in lib/zebra.h ZEBRA_FLAG_* and is exposed * This flag's definition is in lib/zebra.h ZEBRA_FLAG_* and is exposed
* to clients via Zserv * to clients via Zserv

View File

@ -221,7 +221,7 @@ DEFUN (ip_route_label,
DEFUN (ip_route_tag_label, DEFUN (ip_route_tag_label,
ip_route_tag_label_cmd, ip_route_tag_label_cmd,
"ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> label WORD", "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -257,7 +257,7 @@ DEFUN (ip_route_mask_label,
DEFUN (ip_route_mask_tag_label, DEFUN (ip_route_mask_tag_label,
ip_route_mask_tag_label_cmd, ip_route_mask_tag_label_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> label WORD", "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -295,7 +295,7 @@ DEFUN (ip_route_distance_label,
DEFUN (ip_route_tag_distance_label, DEFUN (ip_route_tag_distance_label,
ip_route_tag_distance_label_cmd, ip_route_tag_distance_label_cmd,
"ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> label WORD", "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -333,7 +333,7 @@ DEFUN (ip_route_mask_distance_label,
DEFUN (ip_route_mask_tag_distance_label, DEFUN (ip_route_mask_tag_distance_label,
ip_route_mask_tag_distance_label_cmd, ip_route_mask_tag_distance_label_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> label WORD", "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -370,7 +370,7 @@ DEFUN (no_ip_route_label,
DEFUN (no_ip_route_tag_label, DEFUN (no_ip_route_tag_label,
no_ip_route_tag_label_cmd, no_ip_route_tag_label_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> label WORD", "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -407,7 +407,7 @@ DEFUN (no_ip_route_mask_label,
DEFUN (no_ip_route_mask_tag_label, DEFUN (no_ip_route_mask_tag_label,
no_ip_route_mask_tag_label_cmd, no_ip_route_mask_tag_label_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> label WORD", "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -445,7 +445,7 @@ DEFUN (no_ip_route_distance_label,
DEFUN (no_ip_route_tag_distance_label, DEFUN (no_ip_route_tag_distance_label,
no_ip_route_tag_distance_label_cmd, no_ip_route_tag_distance_label_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> label WORD", "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -484,7 +484,7 @@ DEFUN (no_ip_route_mask_distance_label,
DEFUN (no_ip_route_mask_tag_distance_label, DEFUN (no_ip_route_mask_tag_distance_label,
no_ip_route_mask_tag_distance_label_cmd, no_ip_route_mask_tag_distance_label_cmd,
"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 ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -519,7 +519,7 @@ DEFUN (ipv6_route_label,
DEFUN (ipv6_route_tag_label, DEFUN (ipv6_route_tag_label,
ipv6_route_tag_label_cmd, ipv6_route_tag_label_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> label WORD", "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -548,7 +548,7 @@ DEFUN (ipv6_route_ifname_label,
} }
DEFUN (ipv6_route_ifname_tag_label, DEFUN (ipv6_route_ifname_tag_label,
ipv6_route_ifname_tag_label_cmd, ipv6_route_ifname_tag_label_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> label WORD", "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -579,7 +579,7 @@ DEFUN (ipv6_route_pref_label,
DEFUN (ipv6_route_pref_tag_label, DEFUN (ipv6_route_pref_tag_label,
ipv6_route_pref_tag_label_cmd, ipv6_route_pref_tag_label_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> <1-255> label WORD", "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> <1-255> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -611,7 +611,7 @@ DEFUN (ipv6_route_ifname_pref_label,
DEFUN (ipv6_route_ifname_pref_tag_label, DEFUN (ipv6_route_ifname_pref_tag_label,
ipv6_route_ifname_pref_tag_label_cmd, ipv6_route_ifname_pref_tag_label_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> <1-255> label WORD", "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255> label WORD",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -643,7 +643,7 @@ DEFUN (no_ipv6_route_label,
DEFUN (no_ipv6_route_tag_label, DEFUN (no_ipv6_route_tag_label,
no_ipv6_route_tag_label_cmd, no_ipv6_route_tag_label_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> label WORD", "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -675,7 +675,7 @@ DEFUN (no_ipv6_route_ifname_label,
DEFUN (no_ipv6_route_ifname_tag_label, DEFUN (no_ipv6_route_ifname_tag_label,
no_ipv6_route_ifname_tag_label_cmd, no_ipv6_route_ifname_tag_label_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> label WORD", "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -708,7 +708,7 @@ DEFUN (no_ipv6_route_pref_label,
DEFUN (no_ipv6_route_pref_tag_label, DEFUN (no_ipv6_route_pref_tag_label,
no_ipv6_route_pref_tag_label_cmd, no_ipv6_route_pref_tag_label_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> <1-255> label WORD", "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> <1-255> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -742,7 +742,7 @@ DEFUN (no_ipv6_route_ifname_pref_label,
DEFUN (no_ipv6_route_ifname_pref_tag_label, DEFUN (no_ipv6_route_ifname_pref_tag_label,
no_ipv6_route_ifname_pref_tag_label_cmd, no_ipv6_route_ifname_pref_tag_label_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> <1-255> label WORD", "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255> label WORD",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"

View File

@ -51,7 +51,7 @@ struct nh_rmap_obj
vrf_id_t vrf_id; vrf_id_t vrf_id;
u_int32_t source_protocol; u_int32_t source_protocol;
int metric; int metric;
u_short tag; route_tag_t tag;
}; };
static void zebra_route_map_set_delay_timer(u_int32_t value); static void zebra_route_map_set_delay_timer(u_int32_t value);
@ -193,7 +193,7 @@ static route_map_result_t
route_match_tag (void *rule, struct prefix *prefix, route_match_tag (void *rule, struct prefix *prefix,
route_map_object_t type, void *object) route_map_object_t type, void *object)
{ {
u_short *tag; route_tag_t *tag;
struct nh_rmap_obj *nh_data; struct nh_rmap_obj *nh_data;
if (type == RMAP_ZEBRA) if (type == RMAP_ZEBRA)
@ -207,45 +207,13 @@ route_match_tag (void *rule, struct prefix *prefix,
return RMAP_NOMATCH; return RMAP_NOMATCH;
} }
/* Route map 'match tag' match statement. 'arg' is TAG value */
static void *
route_match_tag_compile (const char *arg)
{
u_short *tag;
u_short tmp;
/* tag value shoud be integer. */
if (! all_digit (arg))
return NULL;
tmp = atoi(arg);
if (tmp < 1)
return NULL;
tag = XMALLOC (MTYPE_ROUTE_MAP_COMPILED, sizeof (u_short));
if (!tag)
return tag;
*tag = tmp;
return tag;
}
/* Free route map's compiled 'match tag' value. */
static void
route_match_tag_free (void *rule)
{
XFREE (MTYPE_ROUTE_MAP_COMPILED, rule);
}
/* Route map commands for tag matching */ /* Route map commands for tag matching */
struct route_map_rule_cmd route_match_tag_cmd = static struct route_map_rule_cmd route_match_tag_cmd =
{ {
"tag", "tag",
route_match_tag, route_match_tag,
route_match_tag_compile, route_map_rule_tag_compile,
route_match_tag_free route_map_rule_tag_free,
}; };
@ -332,7 +300,7 @@ ALIAS (no_match_interface,
DEFUN (match_tag, DEFUN (match_tag,
match_tag_cmd, match_tag_cmd,
"match tag <1-65535>", "match tag <1-4294967295>",
MATCH_STR MATCH_STR
"Match tag of route\n" "Match tag of route\n"
"Tag value\n") "Tag value\n")
@ -358,7 +326,7 @@ DEFUN (no_match_tag,
ALIAS (no_match_tag, ALIAS (no_match_tag,
no_match_tag_val_cmd, no_match_tag_val_cmd,
"no match tag <1-65535>", "no match tag <1-4294967295>",
NO_STR NO_STR
MATCH_STR MATCH_STR
"Match tag of route\n") "Match tag of route\n")
@ -1649,7 +1617,7 @@ zebra_route_map_write_delay_timer (struct vty *vty)
route_map_result_t route_map_result_t
zebra_route_map_check (int family, int rib_type, struct prefix *p, zebra_route_map_check (int family, int rib_type, struct prefix *p,
struct nexthop *nexthop, vrf_id_t vrf_id, u_short tag) struct nexthop *nexthop, vrf_id_t vrf_id, route_tag_t tag)
{ {
struct route_map *rmap = NULL; struct route_map *rmap = NULL;
route_map_result_t ret = RMAP_MATCH; route_map_result_t ret = RMAP_MATCH;
@ -1692,7 +1660,7 @@ zebra_del_import_table_route_map (afi_t afi, uint32_t table)
route_map_result_t route_map_result_t
zebra_import_table_route_map_check (int family, int rib_type, struct prefix *p, zebra_import_table_route_map_check (int family, int rib_type, struct prefix *p,
struct nexthop *nexthop, vrf_id_t vrf_id, u_short tag, const char *rmap_name) struct nexthop *nexthop, vrf_id_t vrf_id, route_tag_t tag, const char *rmap_name)
{ {
struct route_map *rmap = NULL; struct route_map *rmap = NULL;
route_map_result_t ret = RMAP_DENYMATCH; route_map_result_t ret = RMAP_DENYMATCH;

View File

@ -34,13 +34,13 @@ extern route_map_result_t zebra_import_table_route_map_check (int family, int ri
struct prefix *p, struct prefix *p,
struct nexthop *nexthop, struct nexthop *nexthop,
vrf_id_t vrf_id, vrf_id_t vrf_id,
u_short tag, route_tag_t tag,
const char *rmap_name); const char *rmap_name);
extern route_map_result_t zebra_route_map_check (int family, int rib_type, extern route_map_result_t zebra_route_map_check (int family, int rib_type,
struct prefix *p, struct prefix *p,
struct nexthop *nexthop, struct nexthop *nexthop,
vrf_id_t vrf_id, vrf_id_t vrf_id,
u_short tag); route_tag_t tag);
extern route_map_result_t zebra_nht_route_map_check (int family, extern route_map_result_t zebra_nht_route_map_check (int family,
int client_proto, int client_proto,
struct prefix *p, struct prefix *p,

View File

@ -362,7 +362,7 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p, struct static_
int int
static_add_route (afi_t afi, safi_t safi, u_char type, struct prefix *p, static_add_route (afi_t afi, safi_t safi, u_char type, struct prefix *p,
union g_addr *gate, ifindex_t ifindex, union g_addr *gate, ifindex_t ifindex,
const char *ifname, u_char flags, u_short tag, const char *ifname, u_char flags, route_tag_t tag,
u_char distance, struct zebra_vrf *zvrf, u_char distance, struct zebra_vrf *zvrf,
struct static_nh_label *snh_label) struct static_nh_label *snh_label)
{ {
@ -481,7 +481,7 @@ static_add_route (afi_t afi, safi_t safi, u_char type, struct prefix *p,
int int
static_delete_route (afi_t afi, safi_t safi, u_char type, struct prefix *p, static_delete_route (afi_t afi, safi_t safi, u_char type, struct prefix *p,
union g_addr *gate, ifindex_t ifindex, union g_addr *gate, ifindex_t ifindex,
u_short tag, u_char distance, struct zebra_vrf *zvrf, route_tag_t tag, u_char distance, struct zebra_vrf *zvrf,
struct static_nh_label *snh_label) struct static_nh_label *snh_label)
{ {
struct route_node *rn; struct route_node *rn;

View File

@ -45,7 +45,7 @@ struct static_route
u_char distance; u_char distance;
/* Tag */ /* Tag */
u_short tag; route_tag_t tag;
/* Flag for this static route's type. */ /* Flag for this static route's type. */
u_char type; u_char type;
@ -87,13 +87,13 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p, struct static_
extern int extern int
static_add_route (afi_t, safi_t safi, u_char type, struct prefix *p, static_add_route (afi_t, safi_t safi, u_char type, struct prefix *p,
union g_addr *gate, ifindex_t ifindex, union g_addr *gate, ifindex_t ifindex,
const char *ifname, u_char flags, u_short tag, const char *ifname, u_char flags, route_tag_t tag,
u_char distance, struct zebra_vrf *zvrf, u_char distance, struct zebra_vrf *zvrf,
struct static_nh_label *snh_label); struct static_nh_label *snh_label);
extern int extern int
static_delete_route (afi_t, safi_t safi, u_char type, struct prefix *p, static_delete_route (afi_t, safi_t safi, u_char type, struct prefix *p,
union g_addr *gate, ifindex_t ifindex, u_short tag, union g_addr *gate, ifindex_t ifindex, route_tag_t tag,
u_char distance, struct zebra_vrf *zvrf, u_char distance, struct zebra_vrf *zvrf,
struct static_nh_label *snh_label); struct static_nh_label *snh_label);

View File

@ -66,7 +66,7 @@ zebra_static_ipv4 (struct vty *vty, safi_t safi, int add_cmd,
struct in_addr gate; struct in_addr gate;
struct in_addr mask; struct in_addr mask;
u_char flag = 0; u_char flag = 0;
u_short tag = 0; route_tag_t tag = 0;
struct zebra_vrf *zvrf = NULL; struct zebra_vrf *zvrf = NULL;
unsigned int ifindex = 0; unsigned int ifindex = 0;
const char *ifname = NULL; const char *ifname = NULL;
@ -104,7 +104,7 @@ zebra_static_ipv4 (struct vty *vty, safi_t safi, int add_cmd,
/* tag */ /* tag */
if (tag_str) if (tag_str)
tag = atoi(tag_str); tag = atol(tag_str);
/* VRF id */ /* VRF id */
zvrf = zebra_vrf_list_lookup_by_name (vrf_id_str); zvrf = zebra_vrf_list_lookup_by_name (vrf_id_str);
@ -365,7 +365,7 @@ DEFUN (ip_route,
DEFUN (ip_route_tag, DEFUN (ip_route_tag,
ip_route_tag_cmd, 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-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -396,7 +396,7 @@ DEFUN (ip_route_flags,
DEFUN (ip_route_flags_tag, DEFUN (ip_route_flags_tag,
ip_route_flags_tag_cmd, 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-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -427,7 +427,7 @@ DEFUN (ip_route_flags2,
DEFUN (ip_route_flags2_tag, DEFUN (ip_route_flags2_tag,
ip_route_flags2_tag_cmd, ip_route_flags2_tag_cmd,
"ip route A.B.C.D/M (reject|blackhole) tag <1-65535>", "ip route A.B.C.D/M (reject|blackhole) tag <1-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -459,7 +459,7 @@ DEFUN (ip_route_mask,
DEFUN (ip_route_mask_tag, DEFUN (ip_route_mask_tag,
ip_route_mask_tag_cmd, 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-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -493,7 +493,7 @@ DEFUN (ip_route_mask_flags,
DEFUN (ip_route_mask_flags_tag, DEFUN (ip_route_mask_flags_tag,
ip_route_mask_flags_tag_cmd, ip_route_mask_flags_tag_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535>", "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -526,7 +526,7 @@ DEFUN (ip_route_mask_flags2,
DEFUN (ip_route_mask_flags2_tag, DEFUN (ip_route_mask_flags2_tag,
ip_route_mask_flags2_tag_cmd, ip_route_mask_flags2_tag_cmd,
"ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535>", "ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -558,7 +558,7 @@ DEFUN (ip_route_distance,
DEFUN (ip_route_tag_distance, DEFUN (ip_route_tag_distance,
ip_route_tag_distance_cmd, 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-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -592,7 +592,7 @@ DEFUN (ip_route_flags_distance,
DEFUN (ip_route_flags_tag_distance, DEFUN (ip_route_flags_tag_distance,
ip_route_flags_tag_distance_cmd, ip_route_flags_tag_distance_cmd,
"ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255>", "ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -624,7 +624,7 @@ DEFUN (ip_route_flags_distance2,
DEFUN (ip_route_flags_tag_distance2, DEFUN (ip_route_flags_tag_distance2,
ip_route_flags_tag_distance2_cmd, ip_route_flags_tag_distance2_cmd,
"ip route A.B.C.D/M (reject|blackhole) tag <1-65535> <1-255>", "ip route A.B.C.D/M (reject|blackhole) tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -656,7 +656,7 @@ DEFUN (ip_route_mask_distance,
DEFUN (ip_route_mask_tag_distance, DEFUN (ip_route_mask_tag_distance,
ip_route_mask_tag_distance_cmd, 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-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -674,7 +674,7 @@ DEFUN (ip_route_mask_tag_distance,
DEFUN (ip_route_mask_flags_tag_distance, DEFUN (ip_route_mask_flags_tag_distance,
ip_route_mask_flags_tag_distance_cmd, ip_route_mask_flags_tag_distance_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255>", "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -726,7 +726,7 @@ DEFUN (ip_route_mask_flags_distance2,
DEFUN (ip_route_mask_flags_tag_distance2, DEFUN (ip_route_mask_flags_tag_distance2,
ip_route_mask_flags_tag_distance2_cmd, ip_route_mask_flags_tag_distance2_cmd,
"ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535> <1-255>", "ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -758,7 +758,7 @@ DEFUN (no_ip_route,
DEFUN (no_ip_route_tag, DEFUN (no_ip_route_tag,
no_ip_route_tag_cmd, 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-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -787,7 +787,7 @@ ALIAS (no_ip_route,
ALIAS (no_ip_route_tag, ALIAS (no_ip_route_tag,
no_ip_route_flags_tag_cmd, no_ip_route_flags_tag_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535>", "no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -815,7 +815,7 @@ DEFUN (no_ip_route_flags2,
DEFUN (no_ip_route_flags2_tag, DEFUN (no_ip_route_flags2_tag,
no_ip_route_flags2_tag_cmd, no_ip_route_flags2_tag_cmd,
"no ip route A.B.C.D/M (reject|blackhole) tag <1-65535>", "no ip route A.B.C.D/M (reject|blackhole) tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -847,7 +847,7 @@ DEFUN (no_ip_route_mask,
DEFUN (no_ip_route_mask_tag, DEFUN (no_ip_route_mask_tag,
no_ip_route_mask_tag_cmd, 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-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -878,7 +878,7 @@ ALIAS (no_ip_route_mask,
ALIAS (no_ip_route_mask_tag, ALIAS (no_ip_route_mask_tag,
no_ip_route_mask_flags_tag_cmd, no_ip_route_mask_flags_tag_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535>", "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -908,7 +908,7 @@ DEFUN (no_ip_route_mask_flags2,
DEFUN (no_ip_route_mask_flags2_tag, DEFUN (no_ip_route_mask_flags2_tag,
no_ip_route_mask_flags2_tag_cmd, no_ip_route_mask_flags2_tag_cmd,
"no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535>", "no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -941,7 +941,7 @@ DEFUN (no_ip_route_distance,
DEFUN (no_ip_route_tag_distance, DEFUN (no_ip_route_tag_distance,
no_ip_route_tag_distance_cmd, 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-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -976,7 +976,7 @@ DEFUN (no_ip_route_flags_distance,
DEFUN (no_ip_route_flags_tag_distance, DEFUN (no_ip_route_flags_tag_distance,
no_ip_route_flags_tag_distance_cmd, no_ip_route_flags_tag_distance_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255>", "no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1010,7 +1010,7 @@ DEFUN (no_ip_route_flags_distance2,
DEFUN (no_ip_route_flags_tag_distance2, DEFUN (no_ip_route_flags_tag_distance2,
no_ip_route_flags_tag_distance2_cmd, 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/M (reject|blackhole) tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1044,7 +1044,7 @@ DEFUN (no_ip_route_mask_distance,
DEFUN (no_ip_route_mask_tag_distance, DEFUN (no_ip_route_mask_tag_distance,
no_ip_route_mask_tag_distance_cmd, 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-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1081,7 +1081,7 @@ DEFUN (no_ip_route_mask_flags_distance,
DEFUN (no_ip_route_mask_flags_tag_distance, DEFUN (no_ip_route_mask_flags_tag_distance,
no_ip_route_mask_flags_tag_distance_cmd, no_ip_route_mask_flags_tag_distance_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255>", "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1117,7 +1117,7 @@ DEFUN (no_ip_route_mask_flags_distance2,
DEFUN (no_ip_route_mask_flags_tag_distance2, DEFUN (no_ip_route_mask_flags_tag_distance2,
no_ip_route_mask_flags_tag_distance2_cmd, no_ip_route_mask_flags_tag_distance2_cmd,
"no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535> <1-255>", "no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1151,7 +1151,7 @@ DEFUN (ip_route_vrf,
DEFUN (ip_route_tag_vrf, DEFUN (ip_route_tag_vrf,
ip_route_tag_vrf_cmd, ip_route_tag_vrf_cmd,
"ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR, "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -1184,7 +1184,7 @@ DEFUN (ip_route_flags_vrf,
DEFUN (ip_route_flags_tag_vrf, DEFUN (ip_route_flags_tag_vrf,
ip_route_flags_tag_vrf_cmd, ip_route_flags_tag_vrf_cmd,
"ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -1217,7 +1217,7 @@ DEFUN (ip_route_flags2_vrf,
DEFUN (ip_route_flags2_tag_vrf, DEFUN (ip_route_flags2_tag_vrf,
ip_route_flags2_tag_vrf_cmd, ip_route_flags2_tag_vrf_cmd,
"ip route A.B.C.D/M (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "ip route A.B.C.D/M (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -1251,7 +1251,7 @@ DEFUN (ip_route_mask_vrf,
DEFUN (ip_route_mask_tag_vrf, DEFUN (ip_route_mask_tag_vrf,
ip_route_mask_tag_vrf_cmd, ip_route_mask_tag_vrf_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR, "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -1287,7 +1287,7 @@ DEFUN (ip_route_mask_flags_vrf,
DEFUN (ip_route_mask_flags_tag_vrf, DEFUN (ip_route_mask_flags_tag_vrf,
ip_route_mask_flags_tag_vrf_cmd, ip_route_mask_flags_tag_vrf_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -1322,7 +1322,7 @@ DEFUN (ip_route_mask_flags2_vrf,
DEFUN (ip_route_mask_flags2_tag_vrf, DEFUN (ip_route_mask_flags2_tag_vrf,
ip_route_mask_flags2_tag_vrf_cmd, ip_route_mask_flags2_tag_vrf_cmd,
"ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -1356,7 +1356,7 @@ DEFUN (ip_route_distance_vrf,
DEFUN (ip_route_tag_distance_vrf, DEFUN (ip_route_tag_distance_vrf,
ip_route_tag_distance_vrf_cmd, ip_route_tag_distance_vrf_cmd,
"ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> " VRF_CMD_STR, "ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -1392,7 +1392,7 @@ DEFUN (ip_route_flags_distance_vrf,
DEFUN (ip_route_flags_tag_distance_vrf, DEFUN (ip_route_flags_tag_distance_vrf,
ip_route_flags_tag_distance_vrf_cmd, ip_route_flags_tag_distance_vrf_cmd,
"ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -1426,7 +1426,7 @@ DEFUN (ip_route_flags_distance2_vrf,
DEFUN (ip_route_flags_tag_distance2_vrf, DEFUN (ip_route_flags_tag_distance2_vrf,
ip_route_flags_tag_distance2_vrf_cmd, ip_route_flags_tag_distance2_vrf_cmd,
"ip route A.B.C.D/M (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "ip route A.B.C.D/M (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix (e.g. 10.0.0.0/8)\n" "IP destination prefix (e.g. 10.0.0.0/8)\n"
@ -1460,7 +1460,7 @@ DEFUN (ip_route_mask_distance_vrf,
DEFUN (ip_route_mask_tag_distance_vrf, DEFUN (ip_route_mask_tag_distance_vrf,
ip_route_mask_tag_distance_vrf_cmd, ip_route_mask_tag_distance_vrf_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> " VRF_CMD_STR, "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -1479,7 +1479,7 @@ DEFUN (ip_route_mask_tag_distance_vrf,
DEFUN (ip_route_mask_flags_tag_distance_vrf, DEFUN (ip_route_mask_flags_tag_distance_vrf,
ip_route_mask_flags_tag_distance_vrf_cmd, ip_route_mask_flags_tag_distance_vrf_cmd,
"ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -1534,7 +1534,7 @@ DEFUN (ip_route_mask_flags_distance2_vrf,
DEFUN (ip_route_mask_flags_tag_distance2_vrf, DEFUN (ip_route_mask_flags_tag_distance2_vrf,
ip_route_mask_flags_tag_distance2_vrf_cmd, ip_route_mask_flags_tag_distance2_vrf_cmd,
"ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IP destination prefix\n" "IP destination prefix\n"
@ -1585,7 +1585,7 @@ DEFUN (no_ip_route_flags_vrf,
DEFUN (no_ip_route_tag_vrf, DEFUN (no_ip_route_tag_vrf,
no_ip_route_tag_vrf_cmd, no_ip_route_tag_vrf_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR, "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1603,7 +1603,7 @@ DEFUN (no_ip_route_tag_vrf,
DEFUN (no_ip_route_flags_tag_vrf, DEFUN (no_ip_route_flags_tag_vrf,
no_ip_route_flags_tag_vrf_cmd, no_ip_route_flags_tag_vrf_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1637,7 +1637,7 @@ DEFUN (no_ip_route_flags2_vrf,
DEFUN (no_ip_route_flags2_tag_vrf, DEFUN (no_ip_route_flags2_tag_vrf,
no_ip_route_flags2_tag_vrf_cmd, no_ip_route_flags2_tag_vrf_cmd,
"no ip route A.B.C.D/M (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "no ip route A.B.C.D/M (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1689,7 +1689,7 @@ DEFUN (no_ip_route_mask_flags_vrf,
DEFUN (no_ip_route_mask_tag_vrf, DEFUN (no_ip_route_mask_tag_vrf,
no_ip_route_mask_tag_vrf_cmd, no_ip_route_mask_tag_vrf_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> " VRF_CMD_STR, "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1708,7 +1708,7 @@ DEFUN (no_ip_route_mask_tag_vrf,
DEFUN (no_ip_route_mask_flags_tag_vrf, DEFUN (no_ip_route_mask_flags_tag_vrf,
no_ip_route_mask_flags_tag_vrf_cmd, no_ip_route_mask_flags_tag_vrf_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1744,7 +1744,7 @@ DEFUN (no_ip_route_mask_flags2_vrf,
DEFUN (no_ip_route_mask_flags2_tag_vrf, DEFUN (no_ip_route_mask_flags2_tag_vrf,
no_ip_route_mask_flags2_tag_vrf_cmd, no_ip_route_mask_flags2_tag_vrf_cmd,
"no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1780,7 +1780,7 @@ DEFUN (no_ip_route_distance_vrf,
DEFUN (no_ip_route_tag_distance_vrf, DEFUN (no_ip_route_tag_distance_vrf,
no_ip_route_tag_distance_vrf_cmd, no_ip_route_tag_distance_vrf_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> " VRF_CMD_STR, "no ip route A.B.C.D/M (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1817,7 +1817,7 @@ DEFUN (no_ip_route_flags_distance_vrf,
DEFUN (no_ip_route_flags_tag_distance_vrf, DEFUN (no_ip_route_flags_tag_distance_vrf,
no_ip_route_flags_tag_distance_vrf_cmd, no_ip_route_flags_tag_distance_vrf_cmd,
"no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "no ip route A.B.C.D/M (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1853,7 +1853,7 @@ DEFUN (no_ip_route_flags_distance2_vrf,
DEFUN (no_ip_route_flags_tag_distance2_vrf, DEFUN (no_ip_route_flags_tag_distance2_vrf,
no_ip_route_flags_tag_distance2_vrf_cmd, no_ip_route_flags_tag_distance2_vrf_cmd,
"no ip route A.B.C.D/M (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "no ip route A.B.C.D/M (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1889,7 +1889,7 @@ DEFUN (no_ip_route_mask_distance_vrf,
DEFUN (no_ip_route_mask_tag_distance_vrf, DEFUN (no_ip_route_mask_tag_distance_vrf,
no_ip_route_mask_tag_distance_vrf_cmd, no_ip_route_mask_tag_distance_vrf_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-65535> <1-255> " VRF_CMD_STR, "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE|null0) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1928,7 +1928,7 @@ DEFUN (no_ip_route_mask_flags_distance_vrf,
DEFUN (no_ip_route_mask_flags_tag_distance_vrf, DEFUN (no_ip_route_mask_flags_tag_distance_vrf,
no_ip_route_mask_flags_tag_distance_vrf_cmd, no_ip_route_mask_flags_tag_distance_vrf_cmd,
"no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "no ip route A.B.C.D A.B.C.D (A.B.C.D|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -1966,7 +1966,7 @@ DEFUN (no_ip_route_mask_flags_distance2_vrf,
DEFUN (no_ip_route_mask_flags_tag_distance2_vrf, DEFUN (no_ip_route_mask_flags_tag_distance2_vrf,
no_ip_route_mask_flags_tag_distance2_vrf_cmd, no_ip_route_mask_flags_tag_distance2_vrf_cmd,
"no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "no ip route A.B.C.D A.B.C.D (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -2013,7 +2013,7 @@ vty_show_ip_route_detail (struct vty *vty, struct route_node *rn, int mcast)
vty_out (vty, "\""); vty_out (vty, "\"");
vty_out (vty, ", distance %u, metric %u", rib->distance, rib->metric); vty_out (vty, ", distance %u, metric %u", rib->distance, rib->metric);
if (rib->tag) if (rib->tag)
vty_out (vty, ", tag %d", rib->tag); vty_out (vty, ", tag %"ROUTE_TAG_PRI, rib->tag);
if (rib->mtu) if (rib->mtu)
vty_out (vty, ", mtu %u", rib->mtu); vty_out (vty, ", mtu %u", rib->mtu);
if (rib->vrf_id != VRF_DEFAULT) if (rib->vrf_id != VRF_DEFAULT)
@ -2685,7 +2685,7 @@ DEFUN (no_ipv6_nht_default_route,
DEFUN (show_ip_route_tag, DEFUN (show_ip_route_tag,
show_ip_route_tag_cmd, show_ip_route_tag_cmd,
"show ip route tag <1-65535>", "show ip route tag <1-4294967295>",
SHOW_STR SHOW_STR
IP_STR IP_STR
"IP routing table\n" "IP routing table\n"
@ -2696,16 +2696,16 @@ DEFUN (show_ip_route_tag,
struct route_node *rn; struct route_node *rn;
struct rib *rib; struct rib *rib;
int first = 1; int first = 1;
u_short tag = 0; route_tag_t tag = 0;
vrf_id_t vrf_id = VRF_DEFAULT; vrf_id_t vrf_id = VRF_DEFAULT;
if (argc > 1) if (argc > 1)
{ {
tag = atoi(argv[1]); tag = atol(argv[1]);
VRF_GET_ID (vrf_id, argv[0]); VRF_GET_ID (vrf_id, argv[0]);
} }
else else
tag = atoi(argv[0]); tag = atol(argv[0]);
table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, vrf_id); table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, vrf_id);
if (! table) if (! table)
@ -2730,7 +2730,7 @@ DEFUN (show_ip_route_tag,
ALIAS (show_ip_route_tag, ALIAS (show_ip_route_tag,
show_ip_route_vrf_tag_cmd, show_ip_route_vrf_tag_cmd,
"show ip route " VRF_CMD_STR " tag <1-65535>", "show ip route " VRF_CMD_STR " tag <1-4294967295>",
SHOW_STR SHOW_STR
IP_STR IP_STR
"IP routing table\n" "IP routing table\n"
@ -3317,7 +3317,7 @@ DEFUN (show_ip_route_vrf_all,
DEFUN (show_ip_route_vrf_all_tag, DEFUN (show_ip_route_vrf_all_tag,
show_ip_route_vrf_all_tag_cmd, show_ip_route_vrf_all_tag_cmd,
"show ip route " VRF_ALL_CMD_STR " tag <1-65535>", "show ip route " VRF_ALL_CMD_STR " tag <1-4294967295>",
SHOW_STR SHOW_STR
IP_STR IP_STR
"IP routing table\n" "IP routing table\n"
@ -3332,10 +3332,10 @@ DEFUN (show_ip_route_vrf_all_tag,
vrf_iter_t iter; vrf_iter_t iter;
int first = 1; int first = 1;
int vrf_header = 1; int vrf_header = 1;
u_short tag = 0; route_tag_t tag = 0;
if (argv[0]) if (argv[0])
tag = atoi(argv[0]); tag = atol(argv[0]);
for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter)) for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter))
{ {
@ -3706,7 +3706,7 @@ static_config_ipv4 (struct vty *vty, safi_t safi, const char *cmd)
} }
if (si->tag) if (si->tag)
vty_out (vty, " tag %d", si->tag); vty_out (vty, " tag %"ROUTE_TAG_PRI, si->tag);
if (si->distance != ZEBRA_STATIC_DISTANCE_DEFAULT) if (si->distance != ZEBRA_STATIC_DISTANCE_DEFAULT)
vty_out (vty, " %d", si->distance); vty_out (vty, " %d", si->distance);
@ -3744,7 +3744,7 @@ static_ipv6_func (struct vty *vty, int add_cmd, const char *dest_str,
struct in6_addr gate_addr; struct in6_addr gate_addr;
u_char type = 0; u_char type = 0;
u_char flag = 0; u_char flag = 0;
u_short tag = 0; route_tag_t tag = 0;
unsigned int ifindex = 0; unsigned int ifindex = 0;
struct interface *ifp = NULL; struct interface *ifp = NULL;
struct zebra_vrf *zvrf; struct zebra_vrf *zvrf;
@ -3785,7 +3785,7 @@ static_ipv6_func (struct vty *vty, int add_cmd, const char *dest_str,
/* tag */ /* tag */
if (tag_str) if (tag_str)
tag = atoi(tag_str); tag = atol(tag_str);
/* When gateway is valid IPv6 addrees, then gate is treated as /* When gateway is valid IPv6 addrees, then gate is treated as
nexthop address other case gate is treated as interface name. */ nexthop address other case gate is treated as interface name. */
@ -3877,7 +3877,7 @@ DEFUN (ipv6_route,
DEFUN (ipv6_route_tag, DEFUN (ipv6_route_tag,
ipv6_route_tag_cmd, ipv6_route_tag_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535>", "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -3905,7 +3905,7 @@ DEFUN (ipv6_route_flags,
DEFUN (ipv6_route_flags_tag, DEFUN (ipv6_route_flags_tag,
ipv6_route_flags_tag_cmd, ipv6_route_flags_tag_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535>", "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -3932,7 +3932,7 @@ DEFUN (ipv6_route_ifname,
} }
DEFUN (ipv6_route_ifname_tag, DEFUN (ipv6_route_ifname_tag,
ipv6_route_ifname_tag_cmd, ipv6_route_ifname_tag_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535>", "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -3960,7 +3960,7 @@ DEFUN (ipv6_route_ifname_flags,
DEFUN (ipv6_route_ifname_flags_tag, DEFUN (ipv6_route_ifname_flags_tag,
ipv6_route_ifname_flags_tag_cmd, ipv6_route_ifname_flags_tag_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535>", "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -3989,7 +3989,7 @@ DEFUN (ipv6_route_pref,
DEFUN (ipv6_route_pref_tag, DEFUN (ipv6_route_pref_tag,
ipv6_route_pref_tag_cmd, ipv6_route_pref_tag_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> <1-255>", "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4019,7 +4019,7 @@ DEFUN (ipv6_route_flags_pref,
DEFUN (ipv6_route_flags_pref_tag, DEFUN (ipv6_route_flags_pref_tag,
ipv6_route_flags_pref_tag_cmd, ipv6_route_flags_pref_tag_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535> <1-255>", "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4049,7 +4049,7 @@ DEFUN (ipv6_route_ifname_pref,
DEFUN (ipv6_route_ifname_pref_tag, DEFUN (ipv6_route_ifname_pref_tag,
ipv6_route_ifname_pref_tag_cmd, ipv6_route_ifname_pref_tag_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> <1-255>", "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4079,7 +4079,7 @@ DEFUN (ipv6_route_ifname_flags_pref,
DEFUN (ipv6_route_ifname_flags_pref_tag, DEFUN (ipv6_route_ifname_flags_pref_tag,
ipv6_route_ifname_flags_pref_tag_cmd, ipv6_route_ifname_flags_pref_tag_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535> <1-255>", "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> <1-255>",
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4109,7 +4109,7 @@ DEFUN (no_ipv6_route,
DEFUN (no_ipv6_route_tag, DEFUN (no_ipv6_route_tag,
no_ipv6_route_tag_cmd, no_ipv6_route_tag_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535>", "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4139,7 +4139,7 @@ DEFUN (no_ipv6_route_flags,
DEFUN (no_ipv6_route_flags_tag, DEFUN (no_ipv6_route_flags_tag,
no_ipv6_route_flags_tag_cmd, no_ipv6_route_flags_tag_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535>", "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4169,7 +4169,7 @@ DEFUN (no_ipv6_route_ifname,
DEFUN (no_ipv6_route_ifname_tag, DEFUN (no_ipv6_route_ifname_tag,
no_ipv6_route_ifname_tag_cmd, no_ipv6_route_ifname_tag_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535>", "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4199,7 +4199,7 @@ DEFUN (no_ipv6_route_ifname_flags,
DEFUN (no_ipv6_route_ifname_flags_tag, DEFUN (no_ipv6_route_ifname_flags_tag,
no_ipv6_route_ifname_flags_tag_cmd, no_ipv6_route_ifname_flags_tag_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535>", "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4230,7 +4230,7 @@ DEFUN (no_ipv6_route_pref,
DEFUN (no_ipv6_route_pref_tag, DEFUN (no_ipv6_route_pref_tag,
no_ipv6_route_pref_tag_cmd, no_ipv6_route_pref_tag_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> <1-255>", "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4263,7 +4263,7 @@ DEFUN (no_ipv6_route_flags_pref,
DEFUN (no_ipv6_route_flags_pref_tag, DEFUN (no_ipv6_route_flags_pref_tag,
no_ipv6_route_flags_pref_tag_cmd, no_ipv6_route_flags_pref_tag_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535> <1-255>", "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4296,7 +4296,7 @@ DEFUN (no_ipv6_route_ifname_pref,
DEFUN (no_ipv6_route_ifname_pref_tag, DEFUN (no_ipv6_route_ifname_pref_tag,
no_ipv6_route_ifname_pref_tag_cmd, no_ipv6_route_ifname_pref_tag_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> <1-255>", "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4328,7 +4328,7 @@ DEFUN (no_ipv6_route_ifname_flags_pref,
DEFUN (no_ipv6_route_ifname_flags_pref_tag, DEFUN (no_ipv6_route_ifname_flags_pref_tag,
no_ipv6_route_ifname_flags_pref_tag_cmd, no_ipv6_route_ifname_flags_pref_tag_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535> <1-255>", "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> <1-255>",
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4359,7 +4359,7 @@ DEFUN (ipv6_route_vrf,
DEFUN (ipv6_route_tag_vrf, DEFUN (ipv6_route_tag_vrf,
ipv6_route_tag_vrf_cmd, ipv6_route_tag_vrf_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> " VRF_CMD_STR, "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4389,7 +4389,7 @@ DEFUN (ipv6_route_flags_vrf,
DEFUN (ipv6_route_flags_tag_vrf, DEFUN (ipv6_route_flags_tag_vrf,
ipv6_route_flags_tag_vrf_cmd, ipv6_route_flags_tag_vrf_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4418,7 +4418,7 @@ DEFUN (ipv6_route_ifname_vrf,
} }
DEFUN (ipv6_route_ifname_tag_vrf, DEFUN (ipv6_route_ifname_tag_vrf,
ipv6_route_ifname_tag_vrf_cmd, ipv6_route_ifname_tag_vrf_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> " VRF_CMD_STR, "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4448,7 +4448,7 @@ DEFUN (ipv6_route_ifname_flags_vrf,
DEFUN (ipv6_route_ifname_flags_tag_vrf, DEFUN (ipv6_route_ifname_flags_tag_vrf,
ipv6_route_ifname_flags_tag_vrf_cmd, ipv6_route_ifname_flags_tag_vrf_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4479,7 +4479,7 @@ DEFUN (ipv6_route_pref_vrf,
DEFUN (ipv6_route_pref_tag_vrf, DEFUN (ipv6_route_pref_tag_vrf,
ipv6_route_pref_tag_vrf_cmd, ipv6_route_pref_tag_vrf_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> <1-255> " VRF_CMD_STR, "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4511,7 +4511,7 @@ DEFUN (ipv6_route_flags_pref_vrf,
DEFUN (ipv6_route_flags_pref_tag_vrf, DEFUN (ipv6_route_flags_pref_tag_vrf,
ipv6_route_flags_pref_tag_vrf_cmd, ipv6_route_flags_pref_tag_vrf_cmd,
"ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4543,7 +4543,7 @@ DEFUN (ipv6_route_ifname_pref_vrf,
DEFUN (ipv6_route_ifname_pref_tag_vrf, DEFUN (ipv6_route_ifname_pref_tag_vrf,
ipv6_route_ifname_pref_tag_vrf_cmd, ipv6_route_ifname_pref_tag_vrf_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> <1-255> " VRF_CMD_STR, "ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4575,7 +4575,7 @@ DEFUN (ipv6_route_ifname_flags_pref_vrf,
DEFUN (ipv6_route_ifname_flags_pref_tag_vrf, DEFUN (ipv6_route_ifname_flags_pref_tag_vrf,
ipv6_route_ifname_flags_pref_tag_vrf_cmd, ipv6_route_ifname_flags_pref_tag_vrf_cmd,
"ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
"IPv6 destination prefix (e.g. 3ffe:506::/32)\n" "IPv6 destination prefix (e.g. 3ffe:506::/32)\n"
@ -4607,7 +4607,7 @@ DEFUN (no_ipv6_route_vrf,
DEFUN (no_ipv6_route_tag_vrf, DEFUN (no_ipv6_route_tag_vrf,
no_ipv6_route_tag_vrf_cmd, no_ipv6_route_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4639,7 +4639,7 @@ DEFUN (no_ipv6_route_flags_vrf,
DEFUN (no_ipv6_route_flags_tag_vrf, DEFUN (no_ipv6_route_flags_tag_vrf,
no_ipv6_route_flags_tag_vrf_cmd, no_ipv6_route_flags_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4671,7 +4671,7 @@ DEFUN (no_ipv6_route_ifname_vrf,
DEFUN (no_ipv6_route_ifname_tag_vrf, DEFUN (no_ipv6_route_ifname_tag_vrf,
no_ipv6_route_ifname_tag_vrf_cmd, no_ipv6_route_ifname_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4703,7 +4703,7 @@ DEFUN (no_ipv6_route_ifname_flags_vrf,
DEFUN (no_ipv6_route_ifname_flags_tag_vrf, DEFUN (no_ipv6_route_ifname_flags_tag_vrf,
no_ipv6_route_ifname_flags_tag_vrf_cmd, no_ipv6_route_ifname_flags_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4736,7 +4736,7 @@ DEFUN (no_ipv6_route_pref_vrf,
DEFUN (no_ipv6_route_pref_tag_vrf, DEFUN (no_ipv6_route_pref_tag_vrf,
no_ipv6_route_pref_tag_vrf_cmd, no_ipv6_route_pref_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-65535> <1-255> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4771,7 +4771,7 @@ DEFUN (no_ipv6_route_flags_pref_vrf,
DEFUN (no_ipv6_route_flags_pref_tag_vrf, DEFUN (no_ipv6_route_flags_pref_tag_vrf,
no_ipv6_route_flags_pref_tag_vrf_cmd, no_ipv6_route_flags_pref_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M (X:X::X:X|INTERFACE) (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4806,7 +4806,7 @@ DEFUN (no_ipv6_route_ifname_pref_vrf,
DEFUN (no_ipv6_route_ifname_pref_tag_vrf, DEFUN (no_ipv6_route_ifname_pref_tag_vrf,
no_ipv6_route_ifname_pref_tag_vrf_cmd, no_ipv6_route_ifname_pref_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-65535> <1-255> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4840,7 +4840,7 @@ DEFUN (no_ipv6_route_ifname_flags_pref_vrf,
DEFUN (no_ipv6_route_ifname_flags_pref_tag_vrf, DEFUN (no_ipv6_route_ifname_flags_pref_tag_vrf,
no_ipv6_route_ifname_flags_pref_tag_vrf_cmd, no_ipv6_route_ifname_flags_pref_tag_vrf_cmd,
"no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-65535> <1-255> " VRF_CMD_STR, "no ipv6 route X:X::X:X/M X:X::X:X INTERFACE (reject|blackhole) tag <1-4294967295> <1-255> " VRF_CMD_STR,
NO_STR NO_STR
IP_STR IP_STR
"Establish static routes\n" "Establish static routes\n"
@ -4961,7 +4961,7 @@ ALIAS (show_ipv6_route,
DEFUN (show_ipv6_route_tag, DEFUN (show_ipv6_route_tag,
show_ipv6_route_tag_cmd, show_ipv6_route_tag_cmd,
"show ipv6 route tag <1-65535>", "show ipv6 route tag <1-4294967295>",
SHOW_STR SHOW_STR
IP_STR IP_STR
"IPv6 routing table\n" "IPv6 routing table\n"
@ -4972,16 +4972,16 @@ DEFUN (show_ipv6_route_tag,
struct route_node *rn; struct route_node *rn;
struct rib *rib; struct rib *rib;
int first = 1; int first = 1;
u_short tag = 0; route_tag_t tag = 0;
vrf_id_t vrf_id = VRF_DEFAULT; vrf_id_t vrf_id = VRF_DEFAULT;
if (argc > 1) if (argc > 1)
{ {
VRF_GET_ID (vrf_id, argv[0]); VRF_GET_ID (vrf_id, argv[0]);
tag = atoi(argv[1]); tag = atol(argv[1]);
} }
else else
tag = atoi(argv[0]); tag = atol(argv[0]);
table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, vrf_id); table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, vrf_id);
if (! table) if (! table)
@ -5006,7 +5006,7 @@ DEFUN (show_ipv6_route_tag,
ALIAS (show_ipv6_route_tag, ALIAS (show_ipv6_route_tag,
show_ipv6_route_vrf_tag_cmd, show_ipv6_route_vrf_tag_cmd,
"show ipv6 route " VRF_CMD_STR " tag <1-65535>", "show ipv6 route " VRF_CMD_STR " tag <1-4294967295>",
SHOW_STR SHOW_STR
IP_STR IP_STR
"IPv6 routing table\n" "IPv6 routing table\n"
@ -5403,7 +5403,7 @@ DEFUN (show_ipv6_route_vrf_all,
DEFUN (show_ipv6_route_vrf_all_tag, DEFUN (show_ipv6_route_vrf_all_tag,
show_ipv6_route_vrf_all_tag_cmd, show_ipv6_route_vrf_all_tag_cmd,
"show ipv6 route " VRF_ALL_CMD_STR " tag <1-65535>", "show ipv6 route " VRF_ALL_CMD_STR " tag <1-4294967295>",
SHOW_STR SHOW_STR
IP_STR IP_STR
"IPv6 routing table\n" "IPv6 routing table\n"
@ -5418,10 +5418,10 @@ DEFUN (show_ipv6_route_vrf_all_tag,
vrf_iter_t iter; vrf_iter_t iter;
int first = 1; int first = 1;
int vrf_header = 1; int vrf_header = 1;
u_short tag = 0; route_tag_t tag = 0;
if (argv[0]) if (argv[0])
tag = atoi(argv[0]); tag = atol(argv[0]);
for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter)) for (iter = vrf_first (); iter != VRF_ITER_INVALID; iter = vrf_next (iter))
{ {
@ -5773,7 +5773,7 @@ static_config_ipv6 (struct vty *vty)
vty_out (vty, " %s", "blackhole"); vty_out (vty, " %s", "blackhole");
if (si->tag) if (si->tag)
vty_out (vty, " tag %d", si->tag); vty_out (vty, " tag %"ROUTE_TAG_PRI, si->tag);
if (si->distance != ZEBRA_STATIC_DISTANCE_DEFAULT) if (si->distance != ZEBRA_STATIC_DISTANCE_DEFAULT)
vty_out (vty, " %d", si->distance); vty_out (vty, " %d", si->distance);

View File

@ -732,7 +732,7 @@ zsend_redistribute_route (int cmd, struct zserv *client, struct prefix *p,
if (rib->tag) if (rib->tag)
{ {
SET_FLAG(zapi_flags, ZAPI_MESSAGE_TAG); SET_FLAG(zapi_flags, ZAPI_MESSAGE_TAG);
stream_putw(s, rib->tag); stream_putl(s, rib->tag);
} }
/* MTU */ /* MTU */
@ -1114,7 +1114,7 @@ zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
/* Tag */ /* Tag */
if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG))
rib->tag = stream_getw (s); rib->tag = stream_getl (s);
else else
rib->tag = 0; rib->tag = 0;
@ -1213,7 +1213,7 @@ zread_ipv4_delete (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
/* tag */ /* tag */
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG))
api.tag = stream_getw (s); api.tag = stream_getl (s);
else else
api.tag = 0; api.tag = 0;
@ -1343,7 +1343,7 @@ zread_ipv4_route_ipv6_nexthop_add (struct zserv *client, u_short length, struct
/* Tag */ /* Tag */
if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG))
rib->tag = stream_getw (s); rib->tag = stream_getl (s);
else else
rib->tag = 0; rib->tag = 0;
@ -1464,7 +1464,7 @@ zread_ipv6_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
/* Tag */ /* Tag */
if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG))
rib->tag = stream_getw (s); rib->tag = stream_getl (s);
else else
rib->tag = 0; rib->tag = 0;
@ -1553,7 +1553,7 @@ zread_ipv6_delete (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
/* tag */ /* tag */
if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG)) if (CHECK_FLAG (api.message, ZAPI_MESSAGE_TAG))
api.tag = stream_getw (s); api.tag = stream_getl (s);
else else
api.tag = 0; api.tag = 0;