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