Re: [Roll] do capabilities need to understood, can they be added?
Michael Richardson <mcr+ietf@sandelman.ca> Tue, 27 August 2019 17:49 UTC
Return-Path: <mcr+ietf@sandelman.ca>
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 D291212012E for <roll@ietfa.amsl.com>; Tue, 27 Aug 2019 10:49:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level:
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sIZepTDOouPq for <roll@ietfa.amsl.com>; Tue, 27 Aug 2019 10:49:16 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [IPv6:2607:f0b0:f:3:216:3eff:fe7c:d1f3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 30E141200C7 for <roll@ietf.org>; Tue, 27 Aug 2019 10:49:16 -0700 (PDT)
Received: from sandelman.ca (obiwan.sandelman.ca [209.87.249.21]) by tuna.sandelman.ca (Postfix) with ESMTP id 48E263818F for <roll@ietf.org>; Tue, 27 Aug 2019 13:48:07 -0400 (EDT)
Received: from localhost (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id 019B689 for <roll@ietf.org>; Tue, 27 Aug 2019 13:49:15 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: Routing Over Low power and Lossy networks <roll@ietf.org>
In-Reply-To: <982B626E107E334DBE601D979F31785C5DFB9417@BLREML503-MBX.china.huawei.com>
References: <14914.1566593238@dooku.sandelman.ca> <982B626E107E334DBE601D979F31785C5DFB7878@BLREML503-MBX.china.huawei.com> <22118.1566866805@localhost> <982B626E107E334DBE601D979F31785C5DFB9417@BLREML503-MBX.china.huawei.com>
X-Mailer: MH-E 8.6; nmh 1.7+dev; GNU Emacs 24.5.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha256"; protocol="application/pgp-signature"
Date: Tue, 27 Aug 2019 13:49:14 -0400
Message-ID: <22714.1566928154@localhost>
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/mZkEzP6KiXnhPy6rNzO1398BME8>
Subject: Re: [Roll] do capabilities need to understood, can they be added?
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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: Tue, 27 Aug 2019 17:49:19 -0000
Rahul Arvind Jadhav <rahul.jadhav@huawei.com> wrote: mcr> Are they individualized, or does every node in the LLN have to mcr> support a capability before it can be used? > Rahul Arvind Jadhav <rahul.jadhav@huawei.com> wrote: rj> Nice point. I haven't thought about this in detail. In non-storing rj> MOP, it may not be required that all the nodes support capabilities rj> but in storing MOP, every 6LR needs to add the cap (if present) of rj> the downstream child, thus requiring every node to support it. This rj> definitely needs handling in the draft. [Ref: rj> https://github.com/roll-wg/MOPex-capabilities/issues/1 > I see: > 1) the root announces a capability. 6LRs that understand it may use > the new capability unilaterally if they understand it, and see a need > for it. Nodes that do not understand the new capability are not > affected. This could be a control plane thing, or a data plane thing. RJ> The problem may be in the other direction, .. In storing MOP, how RJ> should a 6LR which does not understand capability treat a DAO RJ> containing capability? Also how should a 6LR treat an unknown option RJ> in general? 6550 mentions how to treat unknown RPL code but there RJ> is no handling for unknown option in DIO/DAO. Is there? I searched RJ> and could not find. Most of the existing implementations just ignore RJ> what they don't understand. There is the case where an implementation does not understand the capability extension, in which case, it likely does not copy it down, and no node below that node can use that capability, even if would be safe. The children could hear other DIOs via other paths, so all is not lost. I'm trying to address the case where the capability extension is passed on, but the node may not know the specific capablity that was listed. > 2) the root announces support for capability that it wishes to enable, > in order for it be used, every node must support it. If every DAO from > every node supports the capability, then the root announces that it is > turned on. This in effect is a two-pass system, requiring either two > capability bits. It might be that it is better to encode these two > bits are three values (plus 00-not supported). RJ> Another scenario could be that Root announces support for an optional RJ> capability. The 6LN just needs to know whether it could make use of RJ> this capability of the root to do something. It may not need to reply RJ> back to the root saying I see it and I support it. Also should we be RJ> using two capability bits or we could use the info on whether the bit RJ> is set in DIO/DAO to infer the direction. That's case (1). Case (2) is where the root wants to enable use of some capability, but to do so, it needs to know if all nodes support it. This where we need a discover operation followed by an enable operation. > 3) any 6LR may announce a capability to it's children that it received > from it's parent, if it understands that capability. If it does not, > then it MUST clear the capability. > This can be a unilateral capability (like 1), or one that has to be > confirmed (like 2). So this is really 3A and 3B. RJ> I get 3A .. but do we really need 3B. I mean if the node also needs RJ> to indicate that it also supports the same capability to the root RJ> then it can set the same bit in the DAO and send it back ... Thus RJ> working in both directions. It may not be required that capabilities RJ> be handshaked in both directions mandatorily. For e.g., root may RJ> indicate the capability that it has access to 6BBR and that unaware RJ> leaves could register through 6LRs. Thus 6LRs could proxy the NS RJ> (EARO) and other relevant messages. In this case, is it needed that RJ> 6LR reply back to the root saying it supports unaware leaves? There RJ> might be another example which requires 6LRs/6LNs to indicate in the RJ> reply that it supports the feature asked by root using the same cap RJ> bit in DAO. The DIO/DAO decides the direction but the bit can be the RJ> same. But, (3) is about an intermediate node announcing it can do something for its children (and grandchildren). -- ] Never tell me the odds! | ipv6 mesh networks [ ] Michael Richardson, Sandelman Software Works | IoT architect [ ] mcr@sandelman.ca http://www.sandelman.ca/ | ruby on rails [
- Re: [Roll] comments on mopex-cap-00 Michael Richardson
- [Roll] do capabilities need to understood, can th… Michael Richardson
- [Roll] comments on mopex-cap-00 Michael Richardson
- Re: [Roll] comments on mopex-cap-00 Rahul Arvind Jadhav
- Re: [Roll] comments on mopex-cap-00 Pascal Thubert (pthubert)
- Re: [Roll] do capabilities need to understood, ca… Rahul Arvind Jadhav
- Re: [Roll] do capabilities need to understood, ca… Michael Richardson
- Re: [Roll] do capabilities need to understood, ca… Pascal Thubert (pthubert)
- Re: [Roll] do capabilities need to understood, ca… Pascal Thubert (pthubert)
- Re: [Roll] do capabilities need to understood, ca… Michael Richardson
- Re: [Roll] do capabilities need to understood, ca… Michael Richardson
- Re: [Roll] do capabilities need to understood, ca… Pascal Thubert (pthubert)