bird and OSPF on p2p
Joakim Tjernlund
joakim.tjernlund at transmode.se
Thu Aug 30 15:50:46 CEST 2012
Ondrej Zajicek <santiago at crfreenet.org> wrote on 2012/08/30 15:49:53:
>
> On Thu, Aug 30, 2012 at 01:33:09PM +0200, Joakim Tjernlund wrote:
> > > 3) I thought that for some reasons the ifindex in 'data' value of link in
> > > router LSA is somehow important in link-back check or next-hop calculation
> > > when there are parallel links, but it seems to be completely useless
> > > - local router does not need it and neighboring routers can't map their
> > > links to links in local router LSA, because they don't know local
> > > ifindexes.
> >
> > It is useless now but bird used ifindex earlier to find its interface
> > and I think many impl. still does.
>
> BTW, i think BIRD didn't used the ifindex value in the past.
> Before current implementation it tried all ptp ifaces that
> have neighbor with given router ID.
OK, it was guess. I didn't look too close.
BTW, have you considered if there might be several next hops in calc_next_hop()
for some interfaces(ptmp and broadcast)?
I am looking at:
struct ospf_neighbor *m = find_neigh(ifa, rid);
if (!m || (m->state != NEIGHBOR_FULL))
return NULL;
return new_nexthop(po, m->ip, ifa->iface, ifa->ecmp_weight);
and
/*
* In this case, next-hop is the same as link-back, which is
* already computed in link_back().
*/
if (ipa_zero(en->lb))
goto bad;
return new_nexthop(po, en->lb, pn->iface, pn->weight);
Jocke
More information about the Bird-users
mailing list