diff options
-rw-r--r-- | doc/bird.sgml | 9 | ||||
-rw-r--r-- | proto/bgp/attrs.c | 4 | ||||
-rw-r--r-- | proto/bgp/config.Y | 1 |
3 files changed, 9 insertions, 5 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml index 81ef79b..e894353 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. - <tag>default bgp_local_pref <m/number/</tag> Value of the Local Preference - to be used during route selection when the Local Preference attribute - is missing. Default: 0. + <tag>default bgp_local_pref <m/number/</tag> 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). </descrip> <sect1>Attributes diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c index a0f1821..5316481 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 a469b4d..b2061a1 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; } ; |