Subject: [Roll] RPL ticket #32: Asymmetric Links

From: Richard Kelsey <[email-masked]>
Date: Fri, 30 Apr 2010 13:13:25 -0400

Note 1: This ticket is not concerned with asymmetric links in
general, but specifically with how path metrics are constructed
from asymmetric link metrics.

Note 2: The ticket is against the RPL draft, but this is really
an issue for the routing metrics draft.

The problem:

An asymmetric link metric can be used to create a number of
different path metrics, depending on how the upward and
downward link metrics are incorporated into the path metric.
The resulting path metric might reflect:
  - the metric for messages travelling upward
  - the metric for messages travelling downwards
  - average of the upward and downward metrics
  - best of the upward and downward metrics
  - worst of the upward and downward metrics
and so on.

Rather than try to encode all of the possible combining
functions, we can allow the inclusion of both the upward
and downward path metrics.

A useful example here is latency in a network where nodes
wake up to receive messages on a fixed schedule.  If nodes A
and B wake up to receive once a minute, with A waking up 5
seconds before B, then the A->B link has a latency of 5
seconds while B->A takes 55 seconds.  If A chooses B as a
parent when building a DODAG that uses latency as a metric,
what value should it use for the latency of the A<->B link?

Proposal:

Add a flag to Routing Metric/Constraint to indicate whether
the path metric represents the upward (flag = 0) or downward
(flag = 1) metric.  The flag would only be meaningful for
path metrics that are aggregations of potentially asymmetric
link metrics, such as latency or link quality,

A single DAG Metric Container would be allowed contain two
Routing Metric/Constraints of the same type, one containing
the upward path metric and the other having the downward.

                                -Richard Kelsey