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:
@@ -1366,8 +1366,20 @@ ospf_rt_notify(struct proto *P, struct channel *ch UNUSED, net *n, rte *new, rte
|
||||
uint tag = ea_get_int(a->eattrs, &ea_ospf_tag, 0);
|
||||
|
||||
ip_addr fwd = IPA_NONE;
|
||||
if ((a->dest == RTD_UNICAST) && use_gw_for_fwaddr(p, a->nh.gw, a->nh.iface))
|
||||
fwd = a->nh.gw;
|
||||
if (a->dest == RTD_UNICAST)
|
||||
{
|
||||
eattr *nhea = ea_find(a->eattrs, &ea_gen_nexthop);
|
||||
if (!nhea)
|
||||
{
|
||||
log(L_ERR "%s: Unicast route without nexthop for %N",
|
||||
p->p.name, n->n.addr);
|
||||
return;
|
||||
}
|
||||
|
||||
struct nexthop_adata *nhad = (struct nexthop_adata *) nhea->u.ptr;
|
||||
if (use_gw_for_fwaddr(p, nhad->nh.gw, nhad->nh.iface))
|
||||
fwd = nhad->nh.gw;
|
||||
}
|
||||
|
||||
/* NSSA-LSA with P-bit set must have non-zero forwarding address */
|
||||
if (oa && ipa_zero(fwd))
|
||||
|
Reference in New Issue
Block a user