From 6877ff73a61d1924bc8940f7b646f52f7b34eca0 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Sat, 19 Dec 2009 18:45:46 +0100 Subject: NEWS and version update. --- NEWS | 9 +++++++++ misc/bird.spec | 2 +- sysdep/config.h | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index e348c496..06c921fe 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,12 @@ +Version 1.1.7 (2009-12-21) + o Implements BGP Route Refresh (RFC 2918). + o Implements route reload feature. + o Deep changes and bugfixes in pipe protocol. + o Bugfix in OSPF premature aging of LSA. + o Bugfix in OSPF next hop calculation. + o Bugfix in core related to route withdraws. + o Several minor bugfixes. + Version 1.1.6 (2009-11-19) o Implements RFC 5004 - prefer older external routes. o There is a change how route servers handle missing IPv6 link diff --git a/misc/bird.spec b/misc/bird.spec index 8c8b04fc..7a15a0a5 100644 --- a/misc/bird.spec +++ b/misc/bird.spec @@ -1,6 +1,6 @@ Summary: BIRD Internet Routing Daemon Name: bird -Version: 1.1.6 +Version: 1.1.7 Release: 1 Copyright: GPL Group: Networking/Daemons diff --git a/sysdep/config.h b/sysdep/config.h index 11ade63e..0e92a212 100644 --- a/sysdep/config.h +++ b/sysdep/config.h @@ -7,7 +7,7 @@ #define _BIRD_CONFIG_H_ /* BIRD version */ -#define BIRD_VERSION "1.1.6" +#define BIRD_VERSION "1.1.7" /* Include parameters determined by configure script */ #include "sysdep/autoconf.h" -- cgit v1.2.3 From 1a5178587ff63234d1b323fca965acb4a42cb9e2 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Sun, 20 Dec 2009 12:13:15 +0100 Subject: Fixes unnecessary pipe restart during configure. --- proto/pipe/pipe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/pipe/pipe.c b/proto/pipe/pipe.c index c117f3b4..18f1c005 100644 --- a/proto/pipe/pipe.c +++ b/proto/pipe/pipe.c @@ -211,7 +211,7 @@ pipe_reconfigure(struct proto *p, struct proto_config *new) struct pipe_config *o = (struct pipe_config *) p->cf; struct pipe_config *n = (struct pipe_config *) new; - return (o->peer == n->peer) && (o->mode == n->mode); + return (o->peer->table == n->peer->table) && (o->mode == n->mode); } struct protocol proto_pipe = { -- cgit v1.2.3 From ea7ada3809ed672bd9d2f9e5742f42b238cc5389 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Sun, 20 Dec 2009 14:59:12 +0100 Subject: Fixes a new bug in the pipe protocol soft reconfiguration. Also updates route reload for pipes. --- doc/bird.sgml | 4 +++- proto/pipe/pipe.c | 26 +++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/doc/bird.sgml b/doc/bird.sgml index 3905a29e..a6278a1a 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -513,7 +513,9 @@ This argument can be omitted if there exists only a single instance. Re-export always succeeds, but re-import is protocol-dependent and might fail (for example, if BGP neighbor does not support route-refresh extension). In that case, re-export is also - skipped. + skipped. Note that for the pipe protocol, both directions are + always reloaded together (accept_ra_types = (p->mode == PIPE_OPAQUE) ? RA_OPTIMAL : RA_ANY; P->rt_notify = pipe_rt_notify_pri; P->import_control = pipe_import_control; + P->reload_routes = pipe_reload_routes; return P; } @@ -206,12 +220,18 @@ pipe_get_status(struct proto *P, byte *buf) } static int -pipe_reconfigure(struct proto *p, struct proto_config *new) +pipe_reconfigure(struct proto *P, struct proto_config *new) { - struct pipe_config *o = (struct pipe_config *) p->cf; + struct pipe_proto *p = (struct pipe_proto *) P; + struct pipe_config *o = (struct pipe_config *) P->cf; struct pipe_config *n = (struct pipe_config *) new; - return (o->peer->table == n->peer->table) && (o->mode == n->mode); + if ((o->peer->table != n->peer->table) || (o->mode != n->mode)) + return 0; + + /* Update also the filter in the phantom protocol */ + p->phantom->p.out_filter = new->in_filter; + return 1; } struct protocol proto_pipe = { -- cgit v1.2.3