Ondrej Zajicek <santi...@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