diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2012-01-20 16:20:03 +0100 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2012-01-20 16:20:03 +0100 |
commit | 3ce17142791b2e1a7f0b8e512b5b74224600056c (patch) | |
tree | 746a6efb43842530f313adeab4f3b15520e5d83f | |
parent | 2c5ca47ad4d18cae162c2ddf85af2dedb89f00a5 (diff) |
Fixes a new bug in BGP route ordering.
-rw-r--r-- | proto/bgp/attrs.c | 7 | ||||
-rw-r--r-- | proto/bgp/packets.c | 2 |
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 |