ECMP/multipath support
Joakim Tjernlund
joakim.tjernlund at transmode.se
Thu Dec 16 20:41:24 CET 2010
Ondrej Zajicek <santiago at crfreenet.org> wrote on 2010/12/16 00:14:43:
>
> On Wed, Dec 15, 2010 at 02:27:31PM +0100, Joakim Tjernlund wrote:
> > I remember we had an discussion about multiple unnumbered ptp links between
> > two nodes. There was a potential problem in OSPF with asymmetric routing
> > but the conclusion was that it would not happen as BIRD didn't support ECMP.
> > Now that BIRD does support ECMP, has the above "problem" been fixed too?
>
> Yes, the next hop computation was changed to handle that case.
I took a quick look and I don't think it will work reliably:
/* The second case - ptp or ptmp neighbor */
if ((en->lsa.type == LSA_T_RT) && (par == oa->rt))
{
...
WALK_LIST(ifa, po->iface_list)
if (match_rtlink(ifa, rtl))
{
struct ospf_neighbor *m = find_neigh(ifa, rid);
if (m && (m->state == NEIGHBOR_FULL))
return new_nexthop(po, m->ip, ifa->iface, ifa->ecmp_weight);
}
return NULL;
This will find any ptp link that matches and several of them will match.
I still think the only reliable method that will work in any case
is the one we discussed earlier. It is much faster too.
Jocke
More information about the Bird-users
mailing list