Return-Path: <pthubert@cisco.com>
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 340FB1200CE
 for <roll@ietfa.amsl.com>; Mon,  2 Sep 2019 02:44:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level: 
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
 DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001,
 USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
 header.d=cisco.com header.b=C+4/05hC;
 dkim=pass (1024-bit key)
 header.d=cisco.onmicrosoft.com header.b=SdTkqAGd
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 ch58Ghg6z0sV for <roll@ietfa.amsl.com>;
 Mon,  2 Sep 2019 02:44:05 -0700 (PDT)
Received: from alln-iport-4.cisco.com (alln-iport-4.cisco.com [173.37.142.91])
 (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 9A91B120073
 for <roll@ietf.org>; Mon,  2 Sep 2019 02:44:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=cisco.com; i=@cisco.com; l=6515; q=dns/txt; s=iport;
 t=1567417445; x=1568627045;
 h=from:to:subject:date:message-id:references:in-reply-to:
 content-transfer-encoding:mime-version;
 bh=ccrqluOErihz05QQzcR7OGqk88Ytn892A7knuhS1/+E=;
 b=C+4/05hCDpZHVBBAkiQjQ5waBExW9kNSuAoWK5507s5vawgfxeNs916X
 8AbfcR/bv/QcpLuqNFtv+Yk42pEKdq/rrR+TvXkCnkZWEbhq1WMQ/bw7l
 QvZ+LWRvF5ntGNGU6q5VJrnDZQ54f/6GtRLFpZ7lTgDo6Z8Mgsmx4Yyus w=;
IronPort-PHdr: =?us-ascii?q?9a23=3ARHwFixA6oBzZTNR0eiEbUyQJPHJ1sqjoPgMT9p?=
 =?us-ascii?q?ssgq5PdaLm5Zn5IUjD/qs03kTRU9Dd7PRJw6rNvqbsVHZIwK7JsWtKMfkuHw?=
 =?us-ascii?q?QAld1QmgUhBMCfDkiuNOLqciY3BthqX15+9Hb9Ok9QS47z?=
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BZAQC+42xd/5pdJa1lHAEBAQQBAQc?=
 =?us-ascii?q?EAQGBVQUBAQsBgURQA21WIAQLKodoA4p1TYIPkAqFYYIBgS4UgRADVAkBAQE?=
 =?us-ascii?q?MAQEYCwoCAQGBS4J0AoJrIzYHDgIDCAEBBAEBAQIBBgRthS4MhUoBAQEDAQE?=
 =?us-ascii?q?BECgGAQElBwwECwIBCBgeECcLJQIEEwgagwGBagMODwECDJ97AoE4iGGCJYJ?=
 =?us-ascii?q?8AQEFhRQYghYDBoE0AYYogVqDdRiBQD+BEUaBTlAuPoJhAQGBKTqDO4ImjH+?=
 =?us-ascii?q?QGo8ECoIfhnOFCYIUhmaCM4c2ilqEI48thj6QVAIEAgQFAg4BAQWBVwkogVh?=
 =?us-ascii?q?wFTuCbIJCDBeDT4UUhT9zgSmMIQWCTwEB?=
X-IronPort-AV: E=Sophos;i="5.64,457,1559520000"; d="scan'208";a="318443209"
Received: from rcdn-core-3.cisco.com ([173.37.93.154])
 by alln-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA;
 02 Sep 2019 09:44:04 +0000
Received: from XCH-RCD-005.cisco.com (xch-rcd-005.cisco.com [173.37.102.15])
 by rcdn-core-3.cisco.com (8.15.2/8.15.2) with ESMTPS id x829i4ll023709
 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL)
 for <roll@ietf.org>; Mon, 2 Sep 2019 09:44:04 GMT
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by XCH-RCD-005.cisco.com
 (173.37.102.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3;
 Mon, 2 Sep 2019 04:44:03 -0500
Received: from xhs-rcd-003.cisco.com (173.37.227.248) by xhs-rcd-001.cisco.com
 (173.37.227.246) with Microsoft SMTP Server (TLS) id 15.0.1473.3;
 Mon, 2 Sep 2019 04:44:02 -0500
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (72.163.14.9) by
 xhs-rcd-003.cisco.com (173.37.227.248) with Microsoft SMTP Server
 (TLS) id
 15.0.1473.3 via Frontend Transport; Mon, 2 Sep 2019 04:44:02 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=nXVX9fRo0fdQzB2ldvmaj1aXQFeXXAWrwHSFjVhtpwQ1jrkcdjxKYiH4EJx+b/QegLqTaIw8t/iq1A6CCBDNX95Lk/STlniUjNlzTAjpZBWHdHp7kLp8ynPIShHrzxTG6uztFIC7AGd2uLbBmFocVj98D2X3H4ZQfj+QaXwoFuQ2prcDUZ8qRnX7QmNhe3e7w3X/KULLNRVgR6Q3js42fx0pbJpiLJuCrZGWX3USJL/Ukf27TKAxtxbG6P6V3ra2EA+KlCIjnGGZha2GhP5iIGQNa7czSr0Ww4moytg7rNTN0HJJQ7KOL1tvrMd3ec29U0JAUxVl4n6wrf+PrmQDFg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gMmKECldgl0TVV+DlzE2RS+nAkZOwAlDfeSdn5xdvDA=;
 b=Es+qFidyIlkuYzOtvjcYd0t1+GhIwLbFJFB2txzxyFPYYw9Y7KS6TU0HtlNyk3l/JRcgTMrDbf/w4ZjBTt7HcP0A9FQx16AEoZnzeVu9iPac/T/abUpGo7AwEkggDcHLgtuvTS26gPlL4gcBC/Sle/kojojV8LAzwYADyuYQTM1irqEIbcILBCAyj+92gqhXmRkn5MUoGWg1JfiSsF8UXcNKYKAhEtXifQ4Jlb+f2AZSUgBDHNJ4dsFNzgRj2loC/eM3K+/v5YhVHnbqs+k8O6y1+b4RNINlNDBqXHCJB+nkOONKink51lqJgjue4EujBrCeGt2OteYjpSbguYhJeA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com;
 dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; 
 s=selector2-cisco-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=gMmKECldgl0TVV+DlzE2RS+nAkZOwAlDfeSdn5xdvDA=;
 b=SdTkqAGdTuZZIwxtPfGllv8EGlIAVEy/GDa1aP6eNjtIt7fOnyzyLvDO/om+kihQVoZ66boydFTuDDtAzZTZmYfS0SceYVb+4EFXWan3oe7viWQAr/a5gMjsrfkZl3F76tHbYDunCh1gb/ouvLpKALfNoJ0qcvji6LiT6+qvwUw=
Received: from MN2PR11MB3565.namprd11.prod.outlook.com (20.178.250.159) by
 MN2PR11MB3663.namprd11.prod.outlook.com (20.178.253.96) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.2220.19; Mon, 2 Sep 2019 09:44:01 +0000
Received: from MN2PR11MB3565.namprd11.prod.outlook.com
 ([fe80::89cf:9d:8a75:266e]) by MN2PR11MB3565.namprd11.prod.outlook.com
 ([fe80::89cf:9d:8a75:266e%3]) with mapi id 15.20.2220.022; Mon, 2 Sep 2019
 09:44:01 +0000
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Routing Over Low power and Lossy networks <roll@ietf.org>
Thread-Topic: [Roll] do capabilities need to understood, can they be added?
Thread-Index: AQHVYXKtYveRbP8T+0C8nSsNeGeMcA==
Date: Mon, 2 Sep 2019 09:44:00 +0000
Deferred-Delivery: Mon, 2 Sep 2019 09:43:04 +0000
Message-ID: <MN2PR11MB3565DED578369DCA9B1BE4E4D8BE0@MN2PR11MB3565.namprd11.prod.outlook.com>
References: <14914.1566593238@dooku.sandelman.ca>
 <982B626E107E334DBE601D979F31785C5DFB7878@BLREML503-MBX.china.huawei.com>
 <22118.1566866805@localhost>
 <982B626E107E334DBE601D979F31785C5DFB9417@BLREML503-MBX.china.huawei.com>
In-Reply-To: <982B626E107E334DBE601D979F31785C5DFB9417@BLREML503-MBX.china.huawei.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=pthubert@cisco.com; 
x-originating-ip: [2001:420:c0c0:1002::9c]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: e15fc4de-6d53-43c9-a6bf-08d72f8a1622
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020);
 SRVR:MN2PR11MB3663; 
x-ms-traffictypediagnostic: MN2PR11MB3663:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <MN2PR11MB3663F3640B4DB7441F2E1CFED8BE0@MN2PR11MB3663.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 01480965DA
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(4636009)(136003)(396003)(366004)(376002)(39860400002)(346002)(199004)(189003)(71190400001)(966005)(8676002)(229853002)(6246003)(81166006)(9686003)(55016002)(8936002)(6306002)(305945005)(52536014)(5660300002)(14454004)(478600001)(74316002)(6436002)(81156014)(6916009)(66556008)(25786009)(53936002)(33656002)(316002)(256004)(66946007)(7696005)(446003)(46003)(14444005)(2906002)(486006)(86362001)(476003)(76116006)(102836004)(99286004)(186003)(6116002)(6506007)(7736002)(71200400001)(76176011)(64756008)(66446008)(11346002)(66476007);
 DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB3663;
 H:MN2PR11MB3565.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; A:1; MX:1; 
received-spf: None (protection.outlook.com: cisco.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: LWpQY8NJXEYRBVKrdKcy/XUBIy+OilTiPXR5npii+mC2IcIWny1RzAQoGWkkJsM3uUaRuCheym2TEKkdByFLwcik7eSJl410qrPbWH9g5cjAkeeHHlhIs/r739ReDdIKJVIlb4eufw6mm2/Nvq1KA5ZCLGc0lqbOgepU1qPpPFti4t4V4gVBoujxyxZc74nnBeLDnfDhsaD4wCD90Ypwj2v5HGil1vv/qYydYz7Mefx0D/YYTtXaIcZku61N7FGqjvmv2uDBGCf6JLsQxn1cFrmIF8tWzuajiU55ZkFFbzHtzujxE8e4KtsZ2LewDRiqBtW7IjsBnYMPLE3GvB++BFFMcQZI0MWxsoqKWWWDeYjuj77hWySIDBTSvfwQNOZA3PqkJI+l+qwuOopu7fbGlqRY8vvyn3y55NmJttAQY5g=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: e15fc4de-6d53-43c9-a6bf-08d72f8a1622
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Sep 2019 09:44:01.8876 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ftJfjzg3EVF26yNz/OZN+bZJogf/sT7GLU6s4jkXmdsYkNDd6JzYNzNTlR6+b0X/AQtWPK+LDUTT5s5UmsCO/w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3663
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.15, xch-rcd-005.cisco.com
X-Outbound-Node: rcdn-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/EtHkWdhMbcbmRQP_ACcFT3e8J_8>
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: Mon, 02 Sep 2019 09:44:08 -0000

Dear all:

Seems to me that sometimes the capability of the node is something that onl=
y the root cares about.=20
At least that's true when the root needs to know if all nodes support a cap=
ability. It wants to flood a query and gather the responses from all. Missi=
ng queries would mean a unicast retry I guess.

At other times it might be something that the parent cares about. In that c=
ase it asks one or all of its children.

So we're after a capability exchange flow that is unicast or multicast, wit=
h a unicast response. Either from parent to child or from root to any. The =
flow would be independent of the storing vs. non-storing MOP.
We do not really have a flow like that in RPL. It's akin to a software upda=
te, when the root wishes to now if all nodes have received the full image.

The DIO could be stretched to convey the ask to a group, but it's hard to m=
ake it reliable. The DAO even less OK since it carries destination not node=
 information. As of today the root does not really know if multiple address=
es are on a same node.

All in all it seems that we are after something that is needed by RPL but o=
n the side of the current protocol. I'm not too sure that we should overloa=
d the current messages for this. Rather, we may build new objects for Nodes=
 information and capability. Like a unicast or multicast NIS (Node Info Sol=
icitation) and a NAO (Node Advertisement Object). We'd design operations th=
at are independent of the current MOPs. Note that we could use local broadc=
ast NAO to discover siblings and siblings siblings, something P DAO needs a=
nyway.

Please see below

>     mcr> Are they individualized, or does every node in the LLN have to s=
upport
>     mcr> a capability before it can be used?
>=20
> Rahul Arvind Jadhav <rahul.jadhav@huawei.com> wrote:
>     rj> Nice point. I haven't thought about this in detail. In non-storin=
g
>     rj> MOP, it may not be required that all the nodes support capabiliti=
es
>     rj> but in storing MOP, every 6LR needs to add the cap (if present) o=
f
>     rj> the downstream child, thus requiring every node to support it. Th=
is
>     rj> definitely needs handling in the draft.  [Ref:
>     rj> https://github.com/roll-wg/MOPex-capabilities/issues/1
>=20
> I see:
>=20
> 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.
>=20
> [RJ] The problem may be in the other direction, .. In storing MOP, how sh=
ould
> a 6LR which does not understand capability treat a DAO containing capabil=
ity?
> Also how should a 6LR treat an unknown option in general?
> 6550 mentions how to treat unknown RPL code but there is no handling for
> unknown option in DIO/DAO. Is there? I searched and could not find.
> Most of the existing implementations just ignore what they don't understa=
nd.
>=20
> 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).
>=20
> [RJ] Another scenario could be that Root announces support for an optiona=
l
> capability. The 6LN just needs to know whether it could make use of this
> capability of the root to do something. It may not need to reply back to =
the
> root saying I see it and I support it.
> Also should we be using two capability bits or we could use the info on
> whether the bit is set in DIO/DAO to infer the direction.
>=20
> 3) any 6LR may announce a capability to it's children that it received fr=
om
>    it's parent, if it understands that capability.  If it does not, then
>    it MUST clear the capability.
>=20
>    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 =
to
> indicate that it also supports the same capability to the root then it ca=
n set the
> same bit in the DAO and send it back ... Thus working in both directions.=
 It may
> not be required that capabilities be handshaked in both directions
> mandatorily. For e.g., root may indicate the capability that it has acces=
s to
> 6BBR and that unaware leaves could register through 6LRs. Thus 6LRs could
> proxy the NS (EARO) and other relevant messages. In this case, is it need=
ed
> that 6LR reply back to the root saying it supports unaware leaves?
> There might be another example which requires 6LRs/6LNs to indicate in th=
e
> reply that it supports the feature asked by root using the same cap bit i=
n DAO.
> The DIO/DAO decides the direction but the bit can be the same.
>=20
> 4) any 6LR may announce a capability to it's children, even if it did not
>    receive it from a parent.  The capability is not to be repeated by
>    the children (regardless of whether they understand it), unless they a=
lso
>    wish to enable it.
> [RJ] agree
>=20
> I therefore see several issues to resolve.
> For capabilities that a node understands, it can know which type of capab=
ility
> it is.  For a capability that is unknown, if the behaviour is other than =
"set to
> zero", then we need to tell the node what kind of capability it is, and h=
ow it is
> encoded.
>=20
> Counting above, I see (1)-available, (2)-query, (2)-enable, (3)-available=
, (3)-
> query, (3)-enable, (4)-available.  Conveniently, 7 things, plus all zeros=
.  We
> could encode capabilities in three bits, so the behaviour would be part o=
f the
> encoded.
>=20

Would you encode capabilities in a bit array?
I'm interesting in signaling whether we can live without a capability or if=
 it the node must become leaf if it does not have it.

All the best

Pascal

> --
> Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works  -
> =3D IPv6 IoT consulting =3D-
>=20
> _______________________________________________
> Roll mailing list
> Roll@ietf.org
> https://www.ietf.org/mailman/listinfo/roll

