diff options
Diffstat (limited to 'bgpd/bgp_attr.c')
-rw-r--r-- | bgpd/bgp_attr.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index b30c86ae..28f01609 100644 --- a/bgpd/bgp_attr.c +++ b/bgpd/bgp_attr.c @@ -453,6 +453,7 @@ bgp_attr_intern (struct attr *attr) return find; } + /* Make network statement's attribute. */ struct attr * bgp_attr_default_set (struct attr *attr, u_char origin) @@ -463,14 +464,16 @@ bgp_attr_default_set (struct attr *attr, u_char origin) attr->flag |= ATTR_FLAG_BIT (BGP_ATTR_ORIGIN); attr->aspath = aspath_empty (); attr->flag |= ATTR_FLAG_BIT (BGP_ATTR_AS_PATH); - attr->weight = 32768; + attr->weight = BGP_ATTR_DEFAULT_WEIGHT; attr->flag |= ATTR_FLAG_BIT (BGP_ATTR_NEXT_HOP); #ifdef HAVE_IPV6 - attr->mp_nexthop_len = 16; + attr->mp_nexthop_len = IPV6_MAX_BYTELEN; #endif + return attr; } + /* Make network statement's attribute. */ struct attr * bgp_attr_default_intern (u_char origin) @@ -478,17 +481,7 @@ bgp_attr_default_intern (u_char origin) struct attr attr; struct attr *new; - memset (&attr, 0, sizeof (struct attr)); - - attr.origin = origin; - attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_ORIGIN); - attr.aspath = aspath_empty (); - attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_AS_PATH); - attr.weight = 32768; - attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_NEXT_HOP); -#ifdef HAVE_IPV6 - attr.mp_nexthop_len = 16; -#endif + bgp_attr_default_set(&attr, origin); new = bgp_attr_intern (&attr); aspath_unintern (new->aspath); @@ -525,9 +518,9 @@ bgp_attr_aggregate_intern (struct bgp *bgp, u_char origin, attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_COMMUNITIES); } - attr.weight = 32768; + attr.weight = BGP_ATTR_DEFAULT_WEIGHT; #ifdef HAVE_IPV6 - attr.mp_nexthop_len = 16; + attr.mp_nexthop_len = IPV6_MAX_BYTELEN; #endif if (! as_set) attr.flag |= ATTR_FLAG_BIT (BGP_ATTR_ATOMIC_AGGREGATE); |