s->net = lp_alloc(s->pool, net->length);
net_copy(s->net, net);
-- s->attrs = ra;
--
- ea_set_attr_data(&ra->eattrs, &ea_gen_nexthop, 0,
+ ea_set_attr_data(&ra, &ea_gen_nexthop, 0,
nhad.ad.data, nhad.ad.length);
++ s->attrs = ra;
s->proto = p;
s->new = new;
s->krt_src = krt_src;
rte_update(p->p.main_channel, n, NULL, p->p.main_source);
}
- ASSERT(!e->attrs->cached);
- ea_set_attr_u32(&e->attrs->eattrs, &ea_gen_preference, 0, p->p.main_channel->preference);
+static struct rte_storage *
+krt_store_async(struct krt_proto *p, net *n, rte *e)
+{
++ ea_set_attr_u32(&e->attrs, &ea_gen_preference, 0, p->p.main_channel->preference);
+ e->src = p->p.main_source;
+ return rte_store(e, n, p->krt_table);
+}
+
/* Called when alien route is discovered during scan */
static void
krt_learn_scan(struct krt_proto *p, rte *e)