No subject


Mon Mar 21 21:14:43 UTC 2011


      txcost
   A -------> B
     <------ 
      rxcost

Rxcost is computed from B's hellos.  Txcost is signalled by B using IHUs
sent to A.

> This is of course reasonable, as all packets require ACKs on
> link-level so at least something should be coming back.

How do you compute the txcost if you don't have inverse reachability?
The txcost is signalled by IHUs, so if you're not receiving anything,
you'll never update the txcost.  (Well, you'll time-out, and the txcost
will become infinite.)

> But does bidirectional reachability than imply also symmetric routing?

No.  See Appendix A.2.1 for an example of a metric that may lead to
asymmetric routing.

> If I understand now the description correctly (and my test
> implementation of it in Haskell works correctly), then all nodes are
> computing shortest paths how they are reachable from other nodes. Not
> what can they reach? How/when do then nodes exchange this information?

Section 3.4.3 -- Babel nodes compute the paths of lowest *cost*.  The
important thing to understand is that the cost is derived from the
rxcost and the txcost in a way that is implementation independent.

A concrete way of thinking about it is to say that txcost is the cost of
sending a frame, and rxcost is the cost of receiving a frame.  If you
set cost=rxcost, then you get what you're describing (shortest reverse
path), and I agree with you that it doesn't make a lot of sense.  If you
set cost=txcost, as in A.2.1, then you get shortest direct path, which
is what you're asking for.  For ETX, you'll set cost = rxcost * txcost.
There are other possibilities, for example cost = MAX(txcost, rxcost / 4).

A more abstract view is that the cost is composed of two parts, one
locally computed (rxcost) and one remotely computed (txcost).  How the
locally-computed and remotely-computed parts are combined is an
implementation detail, the only constraint being that if the remote node
signals that it's unreachable (txcost=infty), then it knows what it's
saying.

-- Juliusz



More information about the Babel-users mailing list