diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/bird/Makefile | 5 | ||||
-rw-r--r-- | net/bird/distinfo | 4 | ||||
-rw-r--r-- | net/bird/files/extra-config_includes.diff | 66 | ||||
-rw-r--r-- | net/bird/files/fibs.diff | 110 | ||||
-rw-r--r-- | net/bird/files/patch-bgp-packet.c | 11 |
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) |