aboutsummaryrefslogtreecommitdiff
path: root/net/bird
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2011-08-08 12:45:45 +0000
committerPav Lucistnik <pav@FreeBSD.org>2011-08-08 12:45:45 +0000
commitb68000871f5cdc7dd4cce90288c7450601c2ea80 (patch)
tree68b8be81a1a519633b088669f994630bf3158231 /net/bird
parent9700b0aef8f34bcae0fbfcb8061d63635706a36c (diff)
downloadports-b68000871f5cdc7dd4cce90288c7450601c2ea80.tar.gz
ports-b68000871f5cdc7dd4cce90288c7450601c2ea80.zip
Notes
Diffstat (limited to 'net/bird')
-rw-r--r--net/bird/Makefile5
-rw-r--r--net/bird/distinfo4
-rw-r--r--net/bird/files/extra-config_includes.diff66
-rw-r--r--net/bird/files/fibs.diff110
-rw-r--r--net/bird/files/patch-bgp-packet.c11
5 files changed, 130 insertions, 66 deletions
diff --git a/net/bird/Makefile b/net/bird/Makefile
index bd3b413ec0c7..31d9517f3633 100644
--- a/net/bird/Makefile
+++ b/net/bird/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= bird
-PORTVERSION= 1.3.1
-PORTREVISION= 1
+PORTVERSION= 1.3.2
CATEGORIES= net
MASTER_SITES= ftp://bird.network.cz/pub/bird/
@@ -46,6 +45,8 @@ post-install:
@${ECHO_MSG}
@${ECHO_MSG} " WARNING: Please take a look on kern/134931"
@${ECHO_MSG} " WARNING: before using multiple fibs in production!"
+ @${ECHO_MSG} " 8.2-STABLE kernel patch available here:"
+ @${ECHO_MSG} " http://static.ipfw.ru/patches/rtsock_82S-20110725.diff"
@${ECHO_MSG}
@${ECHO_MSG} =====================================================================
@${ECHO_MSG}
diff --git a/net/bird/distinfo b/net/bird/distinfo
index acf10134a907..c7748736b54b 100644
--- a/net/bird/distinfo
+++ b/net/bird/distinfo
@@ -1,2 +1,2 @@
-SHA256 (bird-1.3.1.tar.gz) = 848be209aba6a1a85ae0ed6192710f8bcc2f1257068191fe2959398cdec01afb
-SIZE (bird-1.3.1.tar.gz) = 826422
+SHA256 (bird-1.3.2.tar.gz) = dbf8794ef3560382f10b8926e2d158da9d34670703090bfe378c08892743f54b
+SIZE (bird-1.3.2.tar.gz) = 744121
diff --git a/net/bird/files/extra-config_includes.diff b/net/bird/files/extra-config_includes.diff
index a8d8fc001a30..3dfd650fb17a 100644
--- a/net/bird/files/extra-config_includes.diff
+++ b/net/bird/files/extra-config_includes.diff
@@ -1,8 +1,8 @@
Index: conf/conf.c
===================================================================
---- conf/conf.c (revision 4873)
-+++ conf/conf.c (revision 4875)
-@@ -108,7 +108,7 @@
+--- conf/conf.c (revision 4962)
++++ conf/conf.c (working copy)
+@@ -108,7 +108,7 @@ config_parse(struct config *c)
cfg_mem = c->mem;
if (setjmp(conf_jmpbuf))
return 0;
@@ -11,7 +11,7 @@ Index: conf/conf.c
sysdep_preconfig(c);
protos_preconfig(c);
rt_preconfig(c);
-@@ -138,7 +138,7 @@
+@@ -138,7 +138,7 @@ cli_parse(struct config *c)
cfg_mem = c->mem;
if (setjmp(conf_jmpbuf))
return 0;
@@ -20,7 +20,7 @@ Index: conf/conf.c
cf_parse();
return 1;
}
-@@ -356,6 +356,7 @@
+@@ -356,6 +356,7 @@ cf_error(char *msg, ...)
strcpy(buf, "<bug: error message too long>");
new_config->err_msg = cfg_strdup(buf);
new_config->err_lino = conf_lino;
@@ -30,8 +30,8 @@ Index: conf/conf.c
Index: conf/cf-lex.l
===================================================================
---- conf/cf-lex.l (revision 4873)
-+++ conf/cf-lex.l (revision 4875)
+--- conf/cf-lex.l (revision 4962)
++++ conf/cf-lex.l (working copy)
@@ -30,6 +30,9 @@
#include <errno.h>
#include <stdlib.h>
@@ -42,7 +42,7 @@ Index: conf/cf-lex.l
#define PARSER 1
-@@ -64,18 +67,36 @@
+@@ -64,18 +67,36 @@ struct sym_scope {
static struct sym_scope *conf_this_scope;
int conf_lino;
@@ -82,7 +82,7 @@ Index: conf/cf-lex.l
%}
%option noyywrap
-@@ -90,9 +111,12 @@
+@@ -90,9 +111,12 @@ DIGIT [0-9]
XIGIT [0-9a-fA-F]
ALNUM [a-zA-Z_0-9]
WHITE [ \t]
@@ -95,7 +95,7 @@ Index: conf/cf-lex.l
{DIGIT}+\.{DIGIT}+\.{DIGIT}+\.{DIGIT}+ {
#ifdef IPV6
if (ipv4_pton_u32(yytext, &cf_lval.i32))
-@@ -184,7 +208,7 @@
+@@ -188,7 +212,7 @@ else: {
["][^"\n]*\n cf_error("Unterminated string");
@@ -104,7 +104,7 @@ Index: conf/cf-lex.l
{WHITE}+
-@@ -220,7 +244,67 @@
+@@ -224,7 +248,67 @@ else: {
%%
@@ -172,7 +172,7 @@ Index: conf/cf-lex.l
cf_hash(byte *c)
{
unsigned int h = 13;
-@@ -363,11 +447,28 @@
+@@ -367,11 +451,28 @@ cf_lex_init_kh(void)
* parsing of a new input.
*/
void
@@ -204,9 +204,9 @@ Index: conf/cf-lex.l
BEGIN(CLI);
Index: conf/conf.h
===================================================================
---- conf/conf.h (revision 4873)
-+++ conf/conf.h (revision 4875)
-@@ -38,7 +38,9 @@
+--- conf/conf.h (revision 4962)
++++ conf/conf.h (working copy)
+@@ -38,7 +38,9 @@ struct config {
int cli_debug; /* Tracing of CLI connections and commands */
char *err_msg; /* Parser error message */
int err_lino; /* Line containing error */
@@ -216,7 +216,7 @@ Index: conf/conf.h
struct symbol **sym_hash; /* Lexer: symbol hash table */
struct symbol **sym_fallback; /* Lexer: fallback symbol hash table */
int obstacle_count; /* Number of items blocking freeing of this config */
-@@ -83,7 +85,7 @@
+@@ -83,7 +85,7 @@ char *cfg_strdup(char *c);
/* Lexer */
@@ -225,7 +225,7 @@ Index: conf/conf.h
struct symbol {
struct symbol *next;
-@@ -107,9 +109,10 @@
+@@ -107,9 +109,10 @@ struct symbol {
#define SYM_VARIABLE 0x100 /* 0x100-0x1ff are variable types */
extern int conf_lino;
@@ -239,8 +239,8 @@ Index: conf/conf.h
struct symbol *cf_define_symbol(struct symbol *symbol, int type, void *def);
Index: doc/bird.conf.example
===================================================================
---- doc/bird.conf.example (revision 4873)
-+++ doc/bird.conf.example (revision 4875)
+--- doc/bird.conf.example (revision 4962)
++++ doc/bird.conf.example (working copy)
@@ -22,6 +22,9 @@
# else reject;
#}
@@ -253,9 +253,9 @@ Index: doc/bird.conf.example
Index: sysdep/unix/main.c
===================================================================
---- sysdep/unix/main.c (revision 4873)
-+++ sysdep/unix/main.c (revision 4875)
-@@ -122,13 +122,12 @@
+--- sysdep/unix/main.c (revision 4962)
++++ sysdep/unix/main.c (working copy)
+@@ -149,13 +149,12 @@ read_iproute_table(char *file, char *prefix, int m
#endif // PATH_IPROUTE_DIR
@@ -271,7 +271,7 @@ Index: sysdep/unix/main.c
if (l < 0)
cf_error("Read error");
return l;
-@@ -158,15 +157,15 @@
+@@ -185,15 +184,15 @@ static int
unix_read_config(struct config **cp, char *name)
{
struct config *conf = config_alloc(name);
@@ -291,7 +291,7 @@ Index: sysdep/unix/main.c
return ret;
}
-@@ -178,7 +177,7 @@
+@@ -205,7 +204,7 @@ read_config(void)
if (!unix_read_config(&conf, config_name))
{
if (conf->err_msg)
@@ -300,3 +300,21 @@ Index: sysdep/unix/main.c
else
die("Unable to open configuration file %s: %m", config_name);
}
+@@ -221,7 +220,7 @@ async_config(void)
+ if (!unix_read_config(&conf, config_name))
+ {
+ if (conf->err_msg)
+- log(L_ERR "%s, line %d: %s", config_name, conf->err_lino, conf->err_msg);
++ log(L_ERR "%s, line %d: %s", conf->err_fname, conf->err_lino, conf->err_msg);
+ else
+ log(L_ERR "Unable to open configuration file %s: %m", config_name);
+ config_free(conf);
+@@ -244,7 +243,7 @@ cmd_reconfig(char *name, int type)
+ if (!unix_read_config(&conf, name))
+ {
+ if (conf->err_msg)
+- cli_msg(8002, "%s, line %d: %s", name, conf->err_lino, conf->err_msg);
++ cli_msg(8002, "%s, line %d: %s", conf->err_fname, conf->err_lino, conf->err_msg);
+ else
+ cli_msg(8002, "%s: %m", name);
+ config_free(conf);
diff --git a/net/bird/files/fibs.diff b/net/bird/files/fibs.diff
index 64ec0be4f966..3611fa4ff99b 100644
--- a/net/bird/files/fibs.diff
+++ b/net/bird/files/fibs.diff
@@ -1,8 +1,8 @@
Index: sysdep/unix/krt.h
===================================================================
---- sysdep/unix/krt.h (revision 4869)
-+++ sysdep/unix/krt.h (working copy)
-@@ -67,6 +67,7 @@
+--- sysdep/unix/krt.h (revision 4963)
++++ sysdep/unix/krt.h (revision 4965)
+@@ -67,6 +67,7 @@ struct krt_proto {
#ifdef CONFIG_ALL_TABLES_AT_ONCE
node instance_node; /* Node in krt instance list */
#endif
@@ -12,9 +12,9 @@ Index: sysdep/unix/krt.h
Index: sysdep/bsd/krt-sock.h
===================================================================
---- sysdep/bsd/krt-sock.h (revision 4869)
-+++ sysdep/bsd/krt-sock.h (working copy)
-@@ -42,5 +42,8 @@
+--- sysdep/bsd/krt-sock.h (revision 4963)
++++ sysdep/bsd/krt-sock.h (revision 4965)
+@@ -42,5 +42,8 @@ struct krt_if_status {
static inline int krt_set_params_same(struct krt_set_params *o UNUSED, struct krt_set_params *n UNUSED) { return 1; }
void krt_read_msg(struct proto *p, struct ks_msg *msg, int scan);
@@ -26,7 +26,7 @@ Index: sysdep/bsd/krt-sock.h
Index: sysdep/bsd/fib.Y
===================================================================
--- sysdep/bsd/fib.Y (revision 0)
-+++ sysdep/bsd/fib.Y (revision 0)
++++ sysdep/bsd/fib.Y (revision 4965)
@@ -0,0 +1,29 @@
+/*
+ * BIRD -- FreeBSD rtsock configuration
@@ -59,17 +59,17 @@ Index: sysdep/bsd/fib.Y
+CF_END
Index: sysdep/bsd/Modules
===================================================================
---- sysdep/bsd/Modules (revision 4869)
-+++ sysdep/bsd/Modules (working copy)
-@@ -4,3 +4,4 @@
+--- sysdep/bsd/Modules (revision 4963)
++++ sysdep/bsd/Modules (revision 4965)
+@@ -4,3 +4,4 @@ sysio.h
krt-set.h
krt-sock.c
krt-sock.h
+fib.Y
Index: sysdep/bsd/krt-scan.h
===================================================================
---- sysdep/bsd/krt-scan.h (revision 4869)
-+++ sysdep/bsd/krt-scan.h (working copy)
+--- sysdep/bsd/krt-scan.h (revision 4963)
++++ sysdep/bsd/krt-scan.h (revision 4965)
@@ -10,6 +10,7 @@
#define _BIRD_KRT_SCAN_H_
@@ -80,8 +80,8 @@ Index: sysdep/bsd/krt-scan.h
struct krt_scan_status {
Index: sysdep/bsd/krt-sock.c
===================================================================
---- sysdep/bsd/krt-sock.c (revision 4869)
-+++ sysdep/bsd/krt-sock.c (working copy)
+--- sysdep/bsd/krt-sock.c (revision 4963)
++++ sysdep/bsd/krt-sock.c (revision 4965)
@@ -33,8 +33,6 @@
#include "lib/string.h"
#include "lib/socket.h"
@@ -91,7 +91,7 @@ Index: sysdep/bsd/krt-sock.c
int
krt_capable(rte *e)
{
-@@ -53,6 +51,49 @@
+@@ -53,6 +51,49 @@ krt_capable(rte *e)
);
}
@@ -106,7 +106,7 @@ Index: sysdep/bsd/krt-sock.c
+ return 1;
+ }
+
-+ //log(L_TRACE "Max fibs: %d", fibs);
++ log(L_TRACE "Max fibs: %d", fibs);
+ return fibs;
+}
+
@@ -141,7 +141,7 @@ Index: sysdep/bsd/krt-sock.c
#define ROUNDUP(a) \
((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
-@@ -69,7 +110,7 @@
+@@ -69,7 +110,7 @@ krt_capable(rte *e)
body += l;}
static void
@@ -150,7 +150,7 @@ Index: sysdep/bsd/krt-sock.c
{
net *net = e->net;
rta *a = e->attrs;
-@@ -180,23 +221,23 @@
+@@ -180,23 +221,23 @@ static void
l = body - (char *)&msg;
msg.rtm.rtm_msglen = l;
@@ -178,7 +178,7 @@ Index: sysdep/bsd/krt-sock.c
}
}
-@@ -218,25 +259,34 @@
+@@ -218,25 +259,34 @@ void
krt_set_start(struct krt_proto *x, int first UNUSED)
{
sock *sk_rt;
@@ -221,7 +221,7 @@ Index: sysdep/bsd/krt-sock.c
}
#define SKIP(ARG...) do { DBG("KRT: Ignoring route - " ARG); return; } while(0)
-@@ -624,6 +674,8 @@
+@@ -624,6 +674,8 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
size_t obl, needed;
struct ks_msg *m;
int retries = 3;
@@ -230,7 +230,7 @@ Index: sysdep/bsd/krt-sock.c
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
-@@ -632,6 +684,17 @@
+@@ -632,6 +684,17 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
mib[4] = cmd;
mib[5] = 0;
@@ -248,7 +248,7 @@ Index: sysdep/bsd/krt-sock.c
try:
if (sysctl(mib, 6 , NULL , &needed, NULL, 0) < 0)
die("krt_sysctl_scan 1: %m");
-@@ -656,6 +719,7 @@
+@@ -656,6 +719,7 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
goto try;
log(L_ERR "KRT: Route scan failed");
@@ -256,7 +256,7 @@ Index: sysdep/bsd/krt-sock.c
return;
}
die("krt_sysctl_scan 2: %m");
-@@ -666,6 +730,8 @@
+@@ -666,6 +730,8 @@ krt_sysctl_scan(struct proto *p, pool *pool, byte
m = (struct ks_msg *)next;
krt_read_msg(p, m, 1);
}
@@ -265,10 +265,27 @@ Index: sysdep/bsd/krt-sock.c
}
static byte *krt_buffer = NULL;
+@@ -695,10 +761,13 @@ krt_set_construct(struct krt_config *c UNUSED)
+ }
+
+ void
+-krt_set_shutdown(struct krt_proto *x UNUSED, int last UNUSED)
++krt_set_shutdown(struct krt_proto *x UNUSED, int last)
+ {
+- mb_free(krt_buffer);
+- krt_buffer = NULL;
++ if (last)
++ {
++ mb_free(krt_buffer);
++ krt_buffer = NULL;
++ }
+ }
+
+ void
Index: sysdep/cf/bsd-v6.h
===================================================================
---- sysdep/cf/bsd-v6.h (revision 4869)
-+++ sysdep/cf/bsd-v6.h (working copy)
+--- sysdep/cf/bsd-v6.h (revision 4963)
++++ sysdep/cf/bsd-v6.h (revision 4965)
@@ -10,7 +10,7 @@
#define CONFIG_AUTO_ROUTES
@@ -280,8 +297,8 @@ Index: sysdep/cf/bsd-v6.h
#undef CONFIG_UNIX_SET
Index: sysdep/cf/bsd.h
===================================================================
---- sysdep/cf/bsd.h (revision 4869)
-+++ sysdep/cf/bsd.h (working copy)
+--- sysdep/cf/bsd.h (revision 4963)
++++ sysdep/cf/bsd.h (revision 4965)
@@ -8,7 +8,7 @@
#define CONFIG_AUTO_ROUTES
@@ -291,3 +308,42 @@ Index: sysdep/cf/bsd.h
#undef CONFIG_UNIX_IFACE
#undef CONFIG_UNIX_SET
+Index: sysdep/unix/krt.c
+===================================================================
+--- sysdep/unix/krt.c (revision 4966)
++++ sysdep/unix/krt.c (revision 4967)
+@@ -492,9 +492,9 @@
+
+ #ifdef CONFIG_ALL_TABLES_AT_ONCE
+ static timer *krt_scan_timer;
+-static int krt_instance_count;
+ static list krt_instance_list;
+ #endif
++static int krt_instance_count;
+
+ static void
+ krt_flush_routes(struct krt_proto *p)
+@@ -830,6 +830,7 @@
+ add_tail(&krt_instance_list, &p->instance_node);
+ #else
+ p->krt_pool = P->pool;
++ krt_instance_count++;
+ #endif
+
+ #ifdef KRT_ALLOW_LEARN
+@@ -859,11 +860,12 @@
+ struct krt_proto *p = (struct krt_proto *) P;
+ int last = 1;
+
++ if (--krt_instance_count)
++ last = 0;
++
+ #ifdef CONFIG_ALL_TABLES_AT_ONCE
+ rem_node(&p->instance_node);
+- if (--krt_instance_count)
+- last = 0;
+- else
++ if (!krt_instance_count)
+ #endif
+ tm_stop(p->scan_timer);
+
diff --git a/net/bird/files/patch-bgp-packet.c b/net/bird/files/patch-bgp-packet.c
deleted file mode 100644
index a5035181f045..000000000000
--- a/net/bird/files/patch-bgp-packet.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- proto/bgp/packets.c
-+++ proto/bgp/packets.c
-@@ -862,7 +862,7 @@ bgp_do_rx_update(struct bgp_conn *conn,
- if (conn->state != BS_ESTABLISHED) /* fatal error during decoding */
- return;
-
-- if (a0 && bgp_set_next_hop(p, a0))
-+ if (a0 && nlri_len && bgp_set_next_hop(p, a0))
- a = rta_lookup(a0);
-
- while (nlri_len)