Subject: Re: [babel] ECMP routing
From: Juliusz Chroboczek <[email-masked]>
To: "STARK, BARBARA H" <[email-masked]>
Cc: "[email-masked]" <[email-masked]>, Acee Lindem (acee) <[email-masked]>
Date: Sat, 13 Oct 2018 13:44:40 +0200
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>

(Added Acee to CC, in case he has some useful thoughts on the subject.)

> Juliusz once said on a babel thread "Of the multiple routes to a given
> destination, at most one is selected." Is this a necessary condition
> (due to the nature of Babel?) or is it simply that none of the
> implementations do ECMP?

RFC 6126bis does not allow ECMP.

While Babel should in principle be able to be extended to do ECMP, doing
that is not entirely obvious, for the following reasons:

  - it is not clear how to make the loop-avoidance algorithm interact with
    ECMP -- in concrete terms, what router-id and seqno to pick for an ECMP
    route;
  - since Babel uses dynamically computed metrics and hysteresis, the
    likelihood of multiple having exactly the same metric is fairly low;
    in practice, you'd need to balance over unequal-cost routes;
  - ECMP does not improve performance in all topologies; in fact, in many
    topologies, it decreases performance; hence, successful deployment of
    ECMP requires competent network administration, and it is not clear to
    me that Babel is being actively deployed in the kind of topologies
    where ECMP is worthwile.

In short, ECMP in Babel is an open research problem -- I think it would
make a good subject for a Master's degree, were it not for the last point
above.  Since the research has not been done yet, I think that it would be
premature to consider ECMP in the information model.

-- Juliusz