0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2025-01-10 19:11:54 +00:00

Merge commit '94e2f1c111721d6213ea65cac5c53036e38e3973' into integrated

This commit is contained in:
Ondrej Zajicek 2013-01-12 23:28:05 +01:00
commit 1cbe7edbd8
11 changed files with 29 additions and 17 deletions

9
NEWS
View File

@ -1,3 +1,12 @@
Version 1.3.8 (2012-08-07)
o Generalized import and export route limits.
o RDNSS and DNSSL support for RAdv.
o Include in config file support wildcards.
o History deduplication in BIRD client.
o New route attributes krt_source, krt_metric.
o Different instance ID support for OSPFv3.
o Real broadcast mode for OSPFv2.
o Several minor bugfixes.
Version 1.3.7 (2012-03-22)
o Route Origin Authorization basics.

View File

@ -477,7 +477,7 @@ to zero to disable it. An empty <cf><m/switch/</cf> is equivalent to <cf/on/
problems in details of its behavior -- the number of exported
routes can temporarily exceed the limit without triggering it
during protocol reload, exported routes counter ignores route
blocking and block action also blocks route updates of alread
blocking and block action also blocks route updates of already
accepted routes -- and these details will probably change in
the future. Default: <cf/none/.

View File

@ -1,6 +1,6 @@
Summary: BIRD Internet Routing Daemon
Name: bird
Version: 1.3.7
Version: 1.3.8
Release: 1
Copyright: GPL
Group: Networking/Daemons

View File

@ -512,20 +512,22 @@ protos_commit(struct config *new, struct config *old, int force_reconfig, int ty
else if (!p->disabled && nc->disabled)
log(L_INFO "Disabling protocol %s", p->name);
PD(p, "Restarting");
p->down_code = nc->disabled ? PDC_CF_DISABLE : PDC_CF_RESTART;
p->cf_new = nc;
}
else
else if (!shutting_down)
{
if (!shutting_down)
log(L_INFO "Removing protocol %s", p->name);
PD(p, "Unconfigured");
p->down_code = PDC_CF_REMOVE;
p->cf_new = NULL;
}
p->reconfiguring = 1;
else /* global shutdown */
{
p->down_code = PDC_CMD_SHUTDOWN;
p->cf_new = NULL;
}
p->reconfiguring = 1;
config_add_obstacle(old);
proto_rethink_goal(p);
}

View File

@ -223,8 +223,9 @@ struct proto_spec {
#define PDC_CF_RESTART 0x03 /* Restart due to reconfiguration */
#define PDC_CMD_DISABLE 0x11 /* Result of disable command */
#define PDC_CMD_RESTART 0x12 /* Result of restart command */
#define PDC_CMD_SHUTDOWN 0x13 /* Result of global shutdown */
#define PDC_IN_LIMIT_HIT 0x21 /* Route import limit reached */
#define PDC_OUT_LIMIT_HIT 0x22 /* Route export limit reached - not implemented */
#define PDC_OUT_LIMIT_HIT 0x22 /* Route export limit reached */
void *proto_new(struct proto_config *, unsigned size);

View File

@ -870,6 +870,7 @@ bgp_shutdown(struct proto *P)
break;
case PDC_CMD_DISABLE:
case PDC_CMD_SHUTDOWN:
subcode = 2; // Errcode 6, 2 - administrative shutdown
break;

View File

@ -566,7 +566,7 @@ ospf_rt_notify(struct proto *p, rtable *tbl UNUSED, net * n, rte * new, rte * ol
if (! (fn->flags & OSPF_RT_EXPORT))
return;
flush_ext_lsa(oa, fn, 1);
flush_ext_lsa(oa, fn, 1, oa_is_nssa(oa));
/* Old external route might blocked some NSSA translation */
if (po->areano > 1)

View File

@ -975,7 +975,7 @@ check_nssa_lsa(struct proto_ospf *po, ort *nf)
originate_ext_lsa(po->backbone, fn, EXT_NSSA, rt_metric, rt_fwaddr, rt_tag, 0);
else if (fn->flags & OSPF_RT_NSSA)
flush_ext_lsa(po->backbone, fn, 1);
flush_ext_lsa(po->backbone, fn, 1, 0);
}
/* RFC 2328 16.7. p2 - find new/lost vlink endpoints */
@ -1096,8 +1096,7 @@ ospf_rt_abr1(struct proto_ospf *po)
if (oa_is_nssa(oa) && oa->ac->default_nssa)
originate_ext_lsa(oa, &default_nf->fn, 0, oa->ac->default_cost, IPA_NONE, 0, 0);
else
flush_ext_lsa(oa, &default_nf->fn, 0);
flush_ext_lsa(oa, &default_nf->fn, 0, 1);
/* RFC 2328 16.4. (3) - precompute preferred ASBR entries */
if (oa_is_ext(oa))

View File

@ -1111,12 +1111,12 @@ originate_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int src,
}
void
flush_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int src)
flush_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int src, int nssa)
{
struct proto_ospf *po = oa->po;
struct proto *p = &po->proto;
struct top_hash_entry *en;
int nssa = oa_is_nssa(oa);
u32 dom = nssa ? oa->areaid : 0;
u32 type = nssa ? LSA_T_NSSA : LSA_T_EXT;
u32 lsaid = fibnode_to_lsaid(po, fn);

View File

@ -70,7 +70,7 @@ void originate_sum_net_lsa(struct ospf_area *oa, struct fib_node *fn, int metric
void originate_sum_rt_lsa(struct ospf_area *oa, struct fib_node *fn, int metric, u32 options UNUSED);
void flush_sum_lsa(struct ospf_area *oa, struct fib_node *fn, int type);
void originate_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int src, u32 metric, ip_addr fwaddr, u32 tag, int pbit);
void flush_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int src);
void flush_ext_lsa(struct ospf_area *oa, struct fib_node *fn, int src, int nssa);
struct top_hash_entry * ospf_hash_find_rt(struct top_graph *f, u32 domain, u32 rtr);
struct top_hash_entry * ospf_hash_find_rt3_first(struct top_graph *f, u32 domain, u32 rtr);

View File

@ -7,7 +7,7 @@
#define _BIRD_CONFIG_H_
/* BIRD version */
#define BIRD_VERSION "1.3.7"
#define BIRD_VERSION "1.3.8"
// XXXX temporary define
#define IPV1 1