>> Link quality estimation is in the informative appendix A.2.2.

> This is more than a little bit problematic if we want router vendors to
> be able to produce useful implementations: they generally are not
> interested in doing research, and just ship whatever firmware their wifi
> chip vendor tells them to.

Yeah, it's the old issue of how to encourage vendors to ship quality
implementations.  You probably have a lot of experience with that (I hear
you're a DHCP person, ahem).

One approach would be to pepper the spec with MUSTs, and complain loudly
when they are violated.  If I were in a nasty mood, I'd call this
attempting to legislate implementation quality.  (And if I were in
a really nasty mood, I'd ask how well that worked for OSPF in the 1990s.)

Perhaps I'm being naive, but with Babel I tried to take the opposite
approach: RFC 6126 tries to be very liberal, but we've been making freely
available a reasonably high-quality, liberally licensed implementation.
The expected result is that a lazy or cheap vendor will just take our
implementation and stick it on their hardware, while a smart vendor has
a lot of latitude to improve on our work.  The first has happened (there
are at least some commercial vendors who run the reference implementation
while claiming that they use a proprietary routing protocol), while the
second hasn't (unless you count TMS as a vendor).

More precisely, here's the approach I've taken in RFC 6126 (credit to Joel
Halpern for helping me with that):

  * if something is required to ensure the integrity of the network, it's
    a MUST.  In particular, bidirectional reachability detection, loop
    avoidance and blackhole avoidance are MUSTs (although one could
    conceive a protocol that interoperates with Babel without implementing
    any of those).

  * if something is needed for good performance, it's a mere SHOULD, so
    that it is possible to build an RFC 1217 compliant version of Babel.

  * if an algorithm is necessary, but could be implemented in different
    ways, then the properties that the algorithm have are MUST in the body
    of the document, and a suitable algorithm is described in an
    informative appendix.

There's one place where no algorithm is described — it's hysteresis
(Section 3.6).  At the time I was using a rather hackish solution, the
current algorithm was done last year.

A good example of the latter would be Section 3.5.2: it merely says that
the metric algebra (M, ⊕, ≤) MUST have the following property

     c ⊕ m > m                        (strict left monotonicity)

and SHOULD have the following property:

     if m ≤ m' then c ⊕ m ≤ c ⊕ m'    (left distributivity or isotonicity)

An obvious implementation would be to use the bounded integers equipped
with saturating addition, as used in IS-IS or OSPF, and that is what
Appendix A recommends.  However, an implementation is free to use

    c ⊕ m = c + 256/(battery charge) + m

or even (widest path algorithm):

    c ⊕ m = MAX(c, m + 1)

(Aside for the theoretically minded: the required axioms are different for
distance vector and for link state.  Dijkstra builds paths from the
destination, so it needs the right-hand-side properties where BF needs the
left-hand-side properties.  The impact of distributivity is not well
understood at the moment: in its absence, there is no "shortest path"
solution, analogously to what happens with interesting BGP policies.
There exists a proof that BF converges in the absence of distributivity
(due to a student of Tim Griffin, I forget his name), but it's rather
difficult.  Surprisingly enough, Dijkstra appears to converge even in the
absence of distributivity, but it leads to a set of trees that are not
necessarily consistent with next-hop forwarding.  End of aside.)

(Aside for the practically minded: the metric used by EIGRP violates
distributivity.  At the time, some in the community believed that this
indicated that EIGRP was broken; we now understand better why EIGRP works
as well as it does.)

Ted, I do understand where you're coming from when you say that the
latitude left to implementers worries you, but I really think that the
flexibility of Babel is one of its more appealing properties, and that
providing a high-quality implementation under a liberal license is
a better way to encourage vendors to do the right thing.  If I'm being
naive, please don't hesitate to educate me.

— Juliusz

_______________________________________________
homenet mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/homenet

Reply via email to