Re: [Roll] knowing which multiple metrics matter: MRHOF related questions

"Pascal Thubert (pthubert)" <> Mon, 04 June 2012 06:38 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 88DC221F882D for <>; Sun, 3 Jun 2012 23:38:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id baKe8AxL2DX9 for <>; Sun, 3 Jun 2012 23:38:35 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 3E2D821F877B for <>; Sun, 3 Jun 2012 23:38:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=13667; q=dns/txt; s=iport; t=1338791915; x=1340001515; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=bneNrdi13xWqMPaxVs/EiLPWv2921+/3ugAKdUC3Ewk=; b=l+sKjgXwmxQRbWOO7z9HhXH5e5cAHPp6NJqAxrBWJxLl3rI7MxB96GpB l2Nh/kEpF+KX98bZrOH8tTo5NMFqYze6WoT36cVb0qPodTQteF9K0TZ44 C6a850KV4liavb2WhzNa9nJR/vZWiEBsWDWXBQtzjN1FC+lzqkqCP2EcS U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="4.75,711,1330905600"; d="scan'208";a="89150617"
Received: from ([]) by with ESMTP; 04 Jun 2012 06:38:34 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id q546cYbI019499 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Mon, 4 Jun 2012 06:38:34 GMT
Received: from ([]) by ([]) with mapi id 14.02.0298.004; Mon, 4 Jun 2012 01:38:34 -0500
From: "Pascal Thubert (pthubert)" <>
To: Ralph Droms <>, Michael Richardson <>
Thread-Topic: [Roll] knowing which multiple metrics matter: MRHOF related questions
Thread-Index: AQHNQC9cOUO7lV88+Ua2gzBoqwiFeJbptIpQ
Date: Mon, 04 Jun 2012 06:38:22 +0000
Deferred-Delivery: Mon, 4 Jun 2012 06:38:00 +0000
Message-ID: <>
References: <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
x-originating-ip: []
x-tm-as-product-ver: SMEX-
x-tm-as-result: No--40.005800-8.000000-31
x-tm-as-user-approved-sender: No
x-tm-as-user-blocked-sender: No
Content-Type: multipart/mixed; boundary="_002_E045AECD98228444A58C61C200AE1BD802FCAE31xmbrcdx01ciscoc_"
MIME-Version: 1.0
X-Mailman-Approved-At: Mon, 04 Jun 2012 05:48:14 -0700
Cc: "" <>
Subject: Re: [Roll] knowing which multiple metrics matter: MRHOF related questions
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Routing Over Low power and Lossy networks <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 04 Jun 2012 06:38:36 -0000


I agree with Ralph that there is a choice to be made whether this OF is one OF or a generic OF that is instantiated by metric (a toolbox).

If it is a specific OF, it is fair to require from IANA a specific OF number (1 in the IANA section) but then we can expect that all implementations of this OF will behave the same.

Here, the behavior will vary quite dramatically with some implementation decisions (see the unresolved issue in the attached mail) and metric choices (Ralph's point here). 

As it goes, we could figure that MrHof is not one but many OFs.  If that's so then the OF number for the local variation should be assigned consistently for a deployment as opposed to globally significant. There could in fact be multiple MrHof in a same deployment.

My point is somewhat analogous to the UDP ports. Should we have a range for IANA reserved well known OFs, and then a range that would be assigned on demand? 



-----Original Message-----
From: Ralph Droms [] 
Sent: vendredi 1 juin 2012 21:47
To: Michael Richardson
Cc:; Pascal Thubert (pthubert)
Subject: Re: [Roll] knowing which multiple metrics matter: MRHOF related questions

On May 25, 2012, at 12:31 PM 5/25/12, Pascal Thubert (pthubert) wrote:

> Hi Michael:
> I think RPL does not want to take party there. The OF is a piece of logic to tie metrics and policies together. 
> As such, there could be multiple metrics as long as there is good logic to tie them in. for instance one would look at optimizing metric A within contraints as expressed by metric B and the OF model will allow that.
> OTOH, it a flows requires a certain optimization (say per one metric) and another requires something different, then certainly you want two instances.
> So ... it depends!
> Pascal
> -----Original Message-----
> From: [] On Behalf 
> Of Michael Richardson
> Sent: vendredi 25 mai 2012 16:54
> To:
> Subject: [Roll] knowing which multiple metrics matter: MRHOF related 
> questions
> Ralph asked some questions a few days ago.
> His originally DISCUSS is at:
> ballot/
> This was my reply.    I am particularly interested in replies from
> Pascal, Anders and Mukul about my assertion about how we would never pick RPL instances by metrics; that they would in fact be seperate RPL Instance numbers and DODAG values, and that these things would provisioned by the network installer.
> ====
> I'm going to reply to your comments in a different order than you asked them, because I think question #3 is most important, and the rest fall out of it.
>>>>>> "Ralph" == Ralph Droms <> writes:
>    Ralph> 3. Based on (1) and (2), would configuration and selection
>    Ralph> issues be ameliorated if the five candidate selected metrics
>    Ralph> were each asssigned a separate objective function?  Use of a
>    Ralph> separate OF code point for each of the five possible selected
>    Ralph> metrics would allow multiple RPL instances.
> I think that it's important to understand that ROLL has a whole palette of things that need to be provisioned by the "network operator".
> In contrast to the situation of ISPs and customers, where the ISP is 
> the network operator, ROLL networks are more like highly orchestrated
> Enterprises: "all your host belong to us"
> so, when we write something like:
>    "The metric chosen by the network operator to use for path
>    selection."
> in section 2, we really mean:
>    "The metric chosen by the network operator and provisioned into
>    the node when the firmware was flashed to use for path selection."

OK, so I get that the model is that MRHOF is a toolbox, where the specific tools are chosen when the device is flashed.  In that case, I think some additional review might be needed to ensure that the MRHOF spec is internally consistent with that point of view.

As one example, I think the "selected metric" should be called out explicitly somewhere in section 5 and included in the list of configured parameters in section 6.1.

As another example, I read this text from section 3:

   Rank is undefined for these node/link metrics: node state and
   attributes, throughput, and link color.  If the rank is undefined,
   the node must join one of the neighbors as a RPL Leaf node according
   to [RFC6550].

to mean that if the selected metric is one of the metrics for which rank is undefined, the node joins as a lead node.  But, how can that happen if the selected metric is chosen by the network operator?

> Ralph> 1.  Why is one objective function defined for several potential 
> Ralph> metrics?  The details of MRHOF seem to preclude the 
> Ralph> establishment of several RPL instances in an LLN, each of which 
> Ralph> uses MRHOF with a different selected metric.
> If one had many different RPL Instances, then we would have different
> RPL Instance numbers in the RPL header.   There can be many different
> DODAG ("destinations") created within that instance.  The instances share a common set of (provisioned) parameters.

How does a node know which RPL Instance number maps to which selected metric?

One way would be to specify that a node advertise ONLY the selected metric for the RPL Instance in a DIO.

> (To put it into DHCP terms: if we have multiple DHCP servers on a link,  then one would expect them to all offer IP addresses in the same subnet.
> If one wanted to have addresses in different subnets, and let the host  
> pick between them, then, one would need different layer-2s: different  
> VLANs or ESSIDs, or... )
> If you feel that RPL is rather schizo about provisioning vs configuration, then I agree.  It's not always clear to me why some things are advertised while others are provisioned.
> In BGPv4, we calculate metrics by adding AS entries in the path.
> (It's always additive), and we add at least one AS entry to the path.
> One can AS-stuff and add more, but proper operation of BGP does not depend upon the exact algorithm used.
> Finally, my impression is that how the various metrics are used (singly, or in some combination) to calculate Rank Increase is a question of further research, experimentation, and trade secret.

Well, OK, but for the purposes of the MRHOF spec, it seems pretty clear to me there is one selected metric that is used across all nodes as a strictly additive path cost computation.

> So long as the Rank increases, and a node does not flap between parents, the exact details do not matter.  Each node can do it's parent selection based upon the available metrics on it's own.  It advertises the metrics it has.
> I hope the authors will correct me if I'm completely off here.

I read the spec to require a single selected metric across the entire RPL Instance.

- Ralph

> _______________________________________________
> Roll mailing list

--- Begin Message ---

It's not.
If I switch a device with another from a different vendor I should
expect the new device to interact properly with existing devices and I
should expect globally a similar behavior in my network.
That's what standards are for.

RPL 3.7.1 gives strong directions to avoid greediness. You may allow to
stray from that but that must be under control of the admin and you must
give strong recommendations for the default behavior.



-----Original Message-----
From: Philip Levis []
Sent: lundi 9 avril 2012 17:46
To: Pascal Thubert (pthubert)
Subject: Re: [Roll] New Version Notification

On Apr 8, 2012, at 10:00 AM, Pascal Thubert (pthubert) wrote:

> Phil:
> It is an implementation decision as long as it does not lead to
> interop issue or unwanted behavior, which is probably the case here.
> RFC 6550 demands that a node can't stray from the best Rank as
> computed amongst parents by more than MaxRankIncrease.
> This 3 clauses do not seem to capture this that we are discussing do
> not seem to capture this.
> With (my reading of) the text as it stands, it seems that the
> implementation has all freedom to select parents and then is given
> rules to compute a Rank.
> The resulting Rank could be anything if the parent set as no
> In particular  " The largest  calculated Rank among paths through the
> parent set, minus MaxRankIncrease" must be less that the Rank obtained

> from the preferred parent, not the final computed Rank.
> The node should:
> 1) Compute the Ranks form its parent set.
> 2) Determine a preferred parent as resulting with the lowest Rank
> (using the computation described in the previous paragraph)
> 3) Determine which parents generate a Rank that is between that lowest

> Rank and MaxRankIncrease
> 4) Pick a set of parents between those
> What do you think?

This is an implementation decision. I can imagine other algorithms,
e.g., where if the best Rank and next best Rank differ by more than
MaxRankIncrease, the node chooses to advertise a worse Rank than the
preferred parent provides.

Roll mailing list
--- End Message ---