Re: [Roll] MRHOF draft-06 comments

Philip Levis <pal@cs.stanford.edu> Wed, 07 March 2012 16:35 UTC

Return-Path: <pal@cs.stanford.edu>
X-Original-To: roll@ietfa.amsl.com
Delivered-To: roll@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25E2F21F86AB for <roll@ietfa.amsl.com>; Wed, 7 Mar 2012 08:35:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.999
X-Spam-Level:
X-Spam-Status: No, score=-5.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_39=0.6, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05LtMuh7AgDb for <roll@ietfa.amsl.com>; Wed, 7 Mar 2012 08:35:00 -0800 (PST)
Received: from cs-smtp-2.Stanford.EDU (cs-smtp-2.Stanford.EDU [171.64.64.26]) by ietfa.amsl.com (Postfix) with ESMTP id 5CCFE21F86A0 for <roll@ietf.org>; Wed, 7 Mar 2012 08:35:00 -0800 (PST)
Received: from [192.5.67.11] (helo=[10.255.241.38]) by cs-smtp-2.Stanford.EDU with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.76) (envelope-from <pal@cs.stanford.edu>) id 1S5JpL-0005H6-BU; Wed, 07 Mar 2012 08:34:59 -0800
Mime-Version: 1.0 (Apple Message framework v1257)
Content-Type: text/plain; charset="us-ascii"
From: Philip Levis <pal@cs.stanford.edu>
In-Reply-To: <4F5748B6.6030503@exegin.com>
Date: Wed, 07 Mar 2012 07:38:18 -0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <0D1B6BAA-F1A5-4BDC-934A-F19259560562@cs.stanford.edu>
References: <4F5748B6.6030503@exegin.com>
To: Dario Tedeschi <dat@exegin.com>
X-Mailer: Apple Mail (2.1257)
X-Scan-Signature: 49896a3a751959820c06ecc920723d92
Cc: roll@ietf.org
Subject: Re: [Roll] MRHOF draft-06 comments
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/roll>, <mailto:roll-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/roll>
List-Post: <mailto:roll@ietf.org>
List-Help: <mailto:roll-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Mar 2012 16:35:01 -0000

On Mar 7, 2012, at 3:38 AM, Dario Tedeschi wrote:

> Below are some comments and questions on a few areas in the latest MRHOF draft that seem a little confusing.
> 
> In section 3.3. "
>    MRHOF uses this Rank value to compute the Rank it associates with the
>    path through each member of the parent set. The Rank associated with
>    a path through a member of the parent set is the maximum of the
>    corresponding calculated Rank value from above and that node's
>    advertised Rank plus MinHopRankIncrease.
> "
> 
> Which of the following formulae match the above description?
>    PathRank = RankValue + AdvRank + MinHopRankIncrease
>    PathRank = MAX(RankValue, AdvRank) + MinHopRankIncrease
>    PathRank = MAX(RankValue, (AdvRank + MinHopRankIncrease))

The last one. I'll clarify in the next revision. I appreciate your pointing out the lack of clarity in the current text.

> Where:
>    PathRank is the Rank associated with a path through a member of the parent set
>    AdvRank is a node's advertised Rank
>    RankValue is the Rank value taken from Table 1 in the draft.
> 
> Perhaps adding something like one of the above formulae would help in describing exactly how a node arrives at its own Rank?
> 
> In section 3.3. "
>    A node sets its Rank to the maximum of three values:
>    ...
> "
> Could the above be simplified/removed by just saying that members in the parent set meet the following condition:
>    ( DAGRank(PathRank) < DAGRank(thisNode.AdvRank) )

I don't think so. Among other things, the node decides on its advertised rank based on the parent set. Or are you saying that the parent set at execution i should be affected by the node's advertised rank at execution i-1? Or that a node picks a desired DAGRank and then sets its parent set accordingly?

The reason this part of the specification becomes complicated is because it's possible for Rank and metric values to diverge due to MinHopRankIncrease. I.e., let's say that MinHopRankIncrease is 512. This corresponds to an ETX of 4 (metric value 512). If you have a 3 hop path whose links have an ETX of 1, then the metric value will be 512 but the Rank will be 2048. Reconciling ETX and MinHopRankIncrease isn't difficult, but it starts to be weird on metrics like Node Energy. Hence the recommendation at the end about the relationship of MinHopRankIncrease and metrics.


> Where:
>    thisNode.AdvRank is a joining node's current Rank (starting at infinity before having joined a DODAG).
> The above condition allows a parent's path Rank to vary up to an upper bound implicitly set by MinHopRankIncrease, before a node might exclude that parent from the set and possibly choose another preferred parent.
> 
> In section 3.4. "
>                            This value is the path cost of the member of
>   the parent set with the highest path cost.  Thus, while
>   cur_min_path_cost is the cost through the preferred parent, a node
>   advertises the highest cost path from the node to the root through a
>   member of the parent set.  The value of the highest cost path is
>   carried in the metric container corresponding to the selected metric
>   when DIO messages are sent.
> "
> It's quite strange that the advertised path cost could be one associated with a member in the parent set that isn't currently in the path to the root. In my view, this could quite easily distort a DODAG away from its optimum, because nodes may advertised costs that are more pessimistic than need be. Surely once a node has selected a preferred parent, it should advertise the cost of that path through that parent, since that is the real and optimal cost to the root.

There is a good reason for this, which is in line with the RPL specification: MaxRankIncrease. MaxRankIncrease creates a tension between advertising the Rank associated with the path through the preferred parent and requiring a new DODAG iteration. If a node advertises the Rank associated with the path through its preferred parent, but the next best member of the parent set is more than MaxRankIncrease greater in path length, then if the preferred parent fails the node can no longer route. So a node can advertise a conservative Rank which gives it flexibility in selection of a preferred parent in case of failure. 

There is also a tension between the size of the parent set and how conservative the advertised Rank is. For example, let's say MaxRankIncrease is very large, such that nodes can move down in the DODAG very freely, depending on the data path to detect possible routing loops. Then a node can maintain a parent set of size 1, its preferred parent, and advertise a very accurate Rank value.

> Reading the section further, MRHOF with ETX is exclude from the above requirement. Was that intentional?

No -- can you point me to the exact text which leads you to this conclusion, so I can fix it?

Thank you for your comments -- very helpful!

Phil