mirror of
https://gitlab.labs.nic.cz/labs/bird.git
synced 2024-05-11 16:54:54 +00:00
Moved nexthop from struct rta to extended attribute.
This doesn't do anything more than to put the whole structure inside adata. The overall performance is certainly going downhill; we'll optimize this later. Anyway, this is one of the latest items inside rta and in several commits we may drop rta completely and move to eattrs-only routes.
This commit is contained in:
@@ -84,11 +84,16 @@ dev_ifa_notify(struct proto *P, uint flags, struct ifa *ad)
|
||||
|
||||
rta a0 = {
|
||||
.dest = RTD_UNICAST,
|
||||
.nh.iface = ad->iface,
|
||||
};
|
||||
|
||||
struct nexthop_adata nhad = {
|
||||
.nh = { .iface = ad->iface, },
|
||||
.ad = { .length = (void *) NEXTHOP_NEXT(&nhad.nh) - (void *) nhad.ad.data, },
|
||||
};
|
||||
|
||||
ea_set_attr_u32(&a0.eattrs, &ea_gen_preference, 0, c->preference);
|
||||
ea_set_attr_u32(&a0.eattrs, &ea_gen_source, 0, RTS_DEVICE);
|
||||
ea_set_attr_data(&a0.eattrs, &ea_gen_nexthop, 0, nhad.ad.data, nhad.ad.length);
|
||||
|
||||
a = rta_lookup(&a0);
|
||||
e = rte_get_temp(a, src);
|
||||
|
||||
Reference in New Issue
Block a user