update bird to 1.3.0 (+ patch from upstream to fix a regression with

implicit router ids not being passed to bgp protocols).
This commit is contained in:
sthen 2011-04-01 12:00:49 +00:00
parent bfa7dad5f9
commit d30da6871a
5 changed files with 113 additions and 12 deletions

View File

@ -1,9 +1,9 @@
# $OpenBSD: Makefile,v 1.13 2010/11/19 22:31:32 espie Exp $
# $OpenBSD: Makefile,v 1.14 2011/04/01 12:00:49 sthen Exp $
COMMENT-main= bird internet routing daemon
COMMENT-doc= bird internet routing daemon (documentation)
V= 1.2.5
V= 1.3.0
DISTNAME= bird-$V
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
${DISTNAME:S/-/-doc-/}${EXTRACT_SUFX}

View File

@ -1,10 +1,10 @@
MD5 (bird-1.2.5.tar.gz) = BvMw2jKQAYM10HYVSdkCJg==
MD5 (bird-doc-1.2.5.tar.gz) = X/fV+wUByevwXfB1bv6AHg==
RMD160 (bird-1.2.5.tar.gz) = /+y7gMlNZiaCr+/XlAuhSFJxwQU=
RMD160 (bird-doc-1.2.5.tar.gz) = hPAL94702lJ7m3k0olmKcWrX7KQ=
SHA1 (bird-1.2.5.tar.gz) = CqrRrKwul/gZyz1yKYNQ/Z2bLPI=
SHA1 (bird-doc-1.2.5.tar.gz) = uh7DDmQde73fXFx9/oh8Il1DCOM=
SHA256 (bird-1.2.5.tar.gz) = 8+L19EdOnoaazEitFmm/RLN6/YC3NI3VHQja6ymbI2g=
SHA256 (bird-doc-1.2.5.tar.gz) = 7LAnwib00c0bvidjYd+gmOKpz9Azkrs4cn5RXVa90fE=
SIZE (bird-1.2.5.tar.gz) = 703750
SIZE (bird-doc-1.2.5.tar.gz) = 323975
MD5 (bird-1.3.0.tar.gz) = SDbjsV/L4D1d/kZ71MqY+w==
MD5 (bird-doc-1.3.0.tar.gz) = yZySdDCkzLB9MxdhRSDK8g==
RMD160 (bird-1.3.0.tar.gz) = s9eNR3tz/sx3D7C7MPakCyVa0kU=
RMD160 (bird-doc-1.3.0.tar.gz) = oN9+Fb7Y1n5MdN21zgVuq5i7sf8=
SHA1 (bird-1.3.0.tar.gz) = APE5FwBMvGbgWy38bKCU9Zyl97w=
SHA1 (bird-doc-1.3.0.tar.gz) = gmq72olLqMpxKTAhUq1gGMqCLWk=
SHA256 (bird-1.3.0.tar.gz) = /5Dj7hFag+KwOlcJUTKSP2bh/Kh03Mp6kIB1tsLchLM=
SHA256 (bird-doc-1.3.0.tar.gz) = MtroTCh54DPUwsDcFw/tAyfk5r4iPE4+r1wiryXr+J0=
SIZE (bird-1.3.0.tar.gz) = 735100
SIZE (bird-doc-1.3.0.tar.gz) = 333918

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-doc_bird_conf_example,v 1.1 2011/04/01 12:00:49 sthen Exp $
syntax changed.
--- doc/bird.conf.example.orig Thu Mar 31 22:58:56 2011
+++ doc/bird.conf.example Thu Mar 31 22:59:01 2011
@@ -167,7 +167,7 @@ protocol static {
# description "My BGP uplink";
# local as 65000;
# neighbor 62.168.0.130 as 5588;
-# multihop 20 via 62.168.0.13;
+# multihop 20;
# hold time 240;
# startup hold time 240;
# connect retry time 120;

View File

@ -0,0 +1,57 @@
$OpenBSD: patch-nest_proto_c,v 1.1 2011/04/01 12:00:49 sthen Exp $
Revision 4ef09506, fix BGP protocols with implicit router IDs.
--- nest/proto.c.orig Thu Mar 31 09:29:42 2011
+++ nest/proto.c Fri Apr 1 12:53:11 2011
@@ -31,6 +31,7 @@ list active_proto_list;
static list inactive_proto_list;
static list initial_proto_list;
static list flush_proto_list;
+static struct proto *initial_device_proto;
static event *proto_flush_event;
@@ -248,6 +249,8 @@ protos_postconfig(struct config *c)
DBG("\n");
}
+extern struct protocol proto_unix_iface;
+
static struct proto *
proto_init(struct proto_config *c)
{
@@ -257,6 +260,9 @@ proto_init(struct proto_config *c)
q->proto_state = PS_DOWN;
q->core_state = FS_HUNGRY;
proto_enqueue(&initial_proto_list, q);
+ if (p == &proto_unix_iface)
+ initial_device_proto = q;
+
add_tail(&proto_list, &q->glob_node);
PD(q, "Initializing%s", q->disabled ? " [disabled]" : "");
return q;
@@ -413,6 +419,14 @@ protos_commit(struct config *new, struct config *old,
DBG("\tdone\n");
DBG("Protocol start\n");
+
+ /* Start device protocol first */
+ if (initial_device_proto)
+ {
+ proto_rethink_goal(initial_device_proto);
+ initial_device_proto = NULL;
+ }
+
WALK_LIST_DELSAFE(p, n, initial_proto_list)
proto_rethink_goal(p);
}
@@ -740,8 +754,6 @@ proto_notify_state(struct proto *p, unsigned ps)
bug("Invalid state transition for %s from %s/%s to */%s", p->name, c_states[cs], p_states[ops], p_states[ps]);
}
}
-
-extern struct protocol proto_unix_iface;
static void
proto_flush_all(void *unused UNUSED)

View File

@ -0,0 +1,29 @@
$OpenBSD: patch-proto_bgp_bgp_c,v 1.1 2011/04/01 12:00:49 sthen Exp $
Revision 4ef09506, fix BGP protocols with implicit router IDs.
--- proto/bgp/bgp.c.orig Thu Mar 31 09:29:42 2011
+++ proto/bgp/bgp.c Fri Apr 1 12:53:12 2011
@@ -798,6 +798,10 @@ bgp_start(struct proto *P)
p->startup_timer->hook = bgp_startup_timeout;
p->startup_timer->data = p;
+ p->local_id = proto_get_router_id(P->cf);
+ if (p->rr_client)
+ p->rr_cluster_id = p->cf->rr_cluster_id ? p->cf->rr_cluster_id : p->local_id;
+
p->remote_id = 0;
p->source_addr = p->cf->source_addr;
@@ -874,11 +878,8 @@ bgp_init(struct proto_config *C)
p->local_as = c->local_as;
p->remote_as = c->remote_as;
p->is_internal = (c->local_as == c->remote_as);
- p->local_id = proto_get_router_id(C);
p->rs_client = c->rs_client;
p->rr_client = c->rr_client;
- if (p->rr_client)
- p->rr_cluster_id = c->rr_cluster_id ? c->rr_cluster_id : p->local_id;
p->igp_table = get_igp_table(c);
return P;