From 3ce17142791b2e1a7f0b8e512b5b74224600056c Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Fri, 20 Jan 2012 16:20:03 +0100 Subject: [PATCH] Fixes a new bug in BGP route ordering. --- proto/bgp/attrs.c | 9 ++++----- proto/bgp/packets.c | 2 ++ 2 files changed, 6 insertions(+), 5 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; - /* - if (e->u.bgp.suppressed) - buf += bsprintf(buf, " -"); - */ - buf += bsprintf(buf, " (%d", e->pref); + + if (e->u.bgp.suppressed) + buf += bsprintf(buf, "-"); + 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