summaryrefslogtreecommitdiff
path: root/bgpd/bgp_attr.c
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_attr.c')
-rw-r--r--bgpd/bgp_attr.c23
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);