Re: [Roll] Ralph's DISCUSS on MRHOF spec

Philip Levis <> Fri, 08 June 2012 04:02 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4D52111E8171 for <>; Thu, 7 Jun 2012 21:02:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id MtOy6TxARaaf for <>; Thu, 7 Jun 2012 21:02:26 -0700 (PDT)
Received: from cs-smtp-3.Stanford.EDU (cs-smtp-3.Stanford.EDU []) by (Postfix) with ESMTP id B491B11E80B2 for <>; Thu, 7 Jun 2012 21:02:26 -0700 (PDT)
Received: from [] (helo=[]) by cs-smtp-3.Stanford.EDU with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.76) (envelope-from <>) id 1ScqP2-0001wu-JD; Thu, 07 Jun 2012 21:02:24 -0700
Mime-Version: 1.0 (Apple Message framework v1257)
Content-Type: text/plain; charset="us-ascii"
From: Philip Levis <>
In-Reply-To: <>
Date: Thu, 07 Jun 2012 21:02:23 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <> <>
To: Pascal Thubert <>
X-Mailer: Apple Mail (2.1257)
X-Scan-Signature: 3fe17504c5843e76b9e439a63759b02e
Cc: Haberman Brian <>, roll <>, Stiemerling Martin <>, Michael Richardson <>
Subject: Re: [Roll] Ralph's DISCUSS on MRHOF spec
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: Fri, 08 Jun 2012 04:02:27 -0000

On Jun 7, 2012, at 2:49 PM, Pascal Thubert (pthubert) wrote:

> On Jun 6, 2012, at 10:43 AM 6/6/12, Philip Levis wrote:
>> Responses inline.
>> On Jun 4, 2012, at 9:31 AM, Ralph Droms wrote:
>>> My question here is why a single objective function "MRHOF" is defined to use several different metrics.  My understanding is that any specific RPL instance will use one metric as its "selected metric" for MRHOF.  Another way to organize the objective functions would be to define a different OF number for each metric, binding the OF number to the selected metric.
>> This was a design decision made early in RPL. There were two options: OFs are metric-specific, or OFs can be general with respect to metrics. The design team concluded the second approach was better, as the former would lead to a possibly huge number of OFs that would be hard to manage.
> Now that a real OF has actually been designed and specified, perhaps this would be a good time to reconfirm that design decision.
> Given that MRHOF is a pretty general objective function, and works over 5 (or perhaps 3) metrics, 16 bits would seem to provide plenty of code points for metric-specific OFs.
> A bigger issue, I think, is expressing the semantics or behavior of an OF in its OCP.  I read section 18.6 of RFC 6550 to indicate that a node will use information including the OF (as indicated by the OCP) to compare against the node's policy for joining a DODAG.  As an aside, is there a reason why a node would choose to join a specific DODAG within a RPL Instance and on what basis would it make that choice?  Anyway, wouldn't the selected metric  used by MRHOF in a particular RPL Instance be a useful parameter for the policy rules?  For example, I can imagine a node preferring to join a RPL Instance providing minimal latency over one providing best ETX.  If the OCP is metric-specific, that selected metric will be immediately available for the policy rules.
> [Pascal] I agree with Ralph here. I fail to be convinced that there will an explosion of OCPs if we fail to factorize the metrics. But I see how the device implementation can be simplified if the OCP says it all. Also, we do not want to force a device that implements MRHOF to have to implement all metrics in the I-D. Conversely, say we extend MrHof to other metrics with further work, wouldn't it become OCP 2 anyway? I wouldn't mind blocking OCP 1..9 for current and future MrHof metric variations.

I agree that this is a good question to ask. I disagree that now is an appropriate time to answer it definitively; we currently have only one OCP. We made a concrete and deliberate design decision. I'd argue we should stick with it to at least see it play out a bit more. E.g., once MRHOF is actually a proposed standard and we have significant experience using it. It's so critical in systems design to not waffle on design decisions, otherwise you end up with a contradictory and messy system. You do want to correct, but not lightly and only when the benefits of the change significantly outweigh the costs. I'm not at all sure this is the case here.