From fbcb7d5faf419057ccbe2340f3714f8885495c51 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Mon, 21 Dec 2009 11:50:42 +0100 Subject: [PATCH] Change default LOCAL_PREF attribute to 100 (suggested value by RFC 4277). --- doc/bird.sgml | 9 ++++++--- proto/bgp/attrs.c | 4 ++-- proto/bgp/config.Y | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/doc/bird.sgml b/doc/bird.sgml index 81ef79b2..e894353a 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -1043,9 +1043,12 @@ for each neighbor using the following configuration parameters: Discriminator to be used during route selection when the MED attribute is missing. Default: 0. - default bgp_local_pref Value of the Local Preference - to be used during route selection when the Local Preference attribute - is missing. Default: 0. + default bgp_local_pref A default value + for the Local Preference attribute. It is used when a new + Local Preference attribute is attached to a route by the BGP + protocol itself (for example, if a route is received through + eBGP and therefore does not have such attribute). Default: 100 + (0 in pre-1.2.0 versions of BIRD). Attributes diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c index a0f18217..5316481d 100644 --- a/proto/bgp/attrs.c +++ b/proto/bgp/attrs.c @@ -871,7 +871,7 @@ bgp_create_attrs(struct bgp_proto *p, rte *e, ea_list **attrs, struct linpool *p else set_next_hop(z, rta->gw); - bgp_set_attr(ea->attrs+3, BA_LOCAL_PREF, 0); + bgp_set_attr(ea->attrs+3, BA_LOCAL_PREF, p->cf->default_local_pref); return 0; /* Leave decision to the filters */ } @@ -1421,7 +1421,7 @@ bgp_decode_attrs(struct bgp_conn *conn, byte *attr, unsigned int len, struct lin /* If there's no local preference, define one */ if (!(seen[0] & (1 << BA_LOCAL_PREF))) - bgp_attach_attr(&a->eattrs, pool, BA_LOCAL_PREF, 0); + bgp_attach_attr(&a->eattrs, pool, BA_LOCAL_PREF, bgp->cf->default_local_pref); return a; diff --git a/proto/bgp/config.Y b/proto/bgp/config.Y index a469b4d7..b2061a18 100644 --- a/proto/bgp/config.Y +++ b/proto/bgp/config.Y @@ -44,6 +44,7 @@ bgp_proto_start: proto_start BGP { BGP_CFG->enable_as4 = 1; BGP_CFG->capabilities = 2; BGP_CFG->advertise_ipv4 = 1; + BGP_CFG->default_local_pref = 100; } ;