mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Merge commit 'e42eedb9' into haugesund
This commit is contained in:
@@ -1397,8 +1397,6 @@ nl_send_route(struct krt_proto *p, rte *e, int op, int dest, struct nexthop *nh)
|
||||
|
||||
if (p->af == AF_MPLS)
|
||||
priority = 0;
|
||||
else if (a->source == RTS_DUMMY)
|
||||
priority = e->u.krt.metric;
|
||||
else if (KRT_CF->sys.metric)
|
||||
priority = KRT_CF->sys.metric;
|
||||
else if ((op != NL_OP_DELETE) && (ea = ea_find(eattrs, EA_KRT_METRIC)))
|
||||
@@ -1582,16 +1580,26 @@ nl_announce_route(struct nl_parse_state *s)
|
||||
{
|
||||
rte *e = rte_get_temp(s->attrs, s->proto->p.main_source);
|
||||
e->net = s->net;
|
||||
e->u.krt.src = s->krt_src;
|
||||
e->u.krt.proto = s->krt_proto;
|
||||
e->u.krt.seen = 0;
|
||||
e->u.krt.best = 0;
|
||||
e->u.krt.metric = s->krt_metric;
|
||||
|
||||
ea_list *ea = alloca(sizeof(ea_list) + 2 * sizeof(eattr));
|
||||
*ea = (ea_list) { .count = 2, .next = e->attrs->eattrs };
|
||||
e->attrs->eattrs = ea;
|
||||
|
||||
ea->attrs[0] = (eattr) {
|
||||
.id = EA_KRT_SOURCE,
|
||||
.type = EAF_TYPE_INT,
|
||||
.u.data = s->krt_proto,
|
||||
};
|
||||
ea->attrs[1] = (eattr) {
|
||||
.id = EA_KRT_METRIC,
|
||||
.type = EAF_TYPE_INT,
|
||||
.u.data = s->krt_metric,
|
||||
};
|
||||
|
||||
if (s->scan)
|
||||
krt_got_route(s->proto, e);
|
||||
krt_got_route(s->proto, e, s->krt_src);
|
||||
else
|
||||
krt_got_route_async(s->proto, e, s->new);
|
||||
krt_got_route_async(s->proto, e, s->new, s->krt_src);
|
||||
|
||||
s->net = NULL;
|
||||
s->attrs = NULL;
|
||||
|
Reference in New Issue
Block a user