summaryrefslogtreecommitdiff
path: root/proto/bgp
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2012-01-20 16:20:03 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2012-01-20 16:20:03 +0100
commit3ce17142791b2e1a7f0b8e512b5b74224600056c (patch)
tree746a6efb43842530f313adeab4f3b15520e5d83f /proto/bgp
parent2c5ca47ad4d18cae162c2ddf85af2dedb89f00a5 (diff)
Fixes a new bug in BGP route ordering.
Diffstat (limited to 'proto/bgp')
-rw-r--r--proto/bgp/attrs.c7
-rw-r--r--proto/bgp/packets.c2
2 files changed, 5 insertions, 4 deletions
diff --git a/proto/bgp/attrs.c b/proto/bgp/attrs.c
index 5a368783..4495c039 100644
--- a/proto/bgp/attrs.c
+++ b/proto/bgp/attrs.c
@@ -1768,12 +1768,11 @@ bgp_get_route_info(rte *e, byte *buf, ea_list *attrs)
eattr *o = ea_find(attrs, EA_CODE(EAP_BGP, BA_ORIGIN));
u32 origas;
- /*
+ buf += bsprintf(buf, " (%d", e->pref);
+
if (e->u.bgp.suppressed)
- buf += bsprintf(buf, " -");
- */
+ buf += bsprintf(buf, "-");
- buf += bsprintf(buf, " (%d", e->pref);
if (e->attrs->hostentry)
{
if (!rte_resolvable(e))
diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c
index 998abb7b..d3e9b6a1 100644
--- a/proto/bgp/packets.c
+++ b/proto/bgp/packets.c
@@ -906,6 +906,7 @@ bgp_do_rx_update(struct bgp_conn *conn,
rte *e = rte_get_temp(rta_clone(a));
e->net = net_get(p->p.table, prefix, pxlen);
e->pflags = 0;
+ e->u.bgp.suppressed = 0;
rte_update(p->p.table, e->net, &p->p, &p->p, e);
}
else
@@ -1024,6 +1025,7 @@ bgp_do_rx_update(struct bgp_conn *conn,
rte *e = rte_get_temp(rta_clone(a));
e->net = net_get(p->p.table, prefix, pxlen);
e->pflags = 0;
+ e->u.bgp.suppressed = 0;
rte_update(p->p.table, e->net, &p->p, &p->p, e);
}
else