Re: [Roll] do capabilities need to understood, can they be added?

"Pascal Thubert (pthubert)" <pthubert@cisco.com> Tue, 03 September 2019 15:50 UTC

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 2EAFC1200FD for <roll@ietfa.amsl.com>; Tue, 3 Sep 2019 08:50:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.5
X-Spam-Level:
X-Spam-Status: No, score=-14.5 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, URIBL_BLOCKED=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=V3OKFTI5; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=SaT9WGpK
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 rRjMfEup3Huj for <roll@ietfa.amsl.com>; Tue, 3 Sep 2019 08:50:44 -0700 (PDT)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3451912006B for <roll@ietf.org>; Tue, 3 Sep 2019 08:50:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7148; q=dns/txt; s=iport; t=1567525844; x=1568735444; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=5CoFzl8+vZ5W/9z5R8UZ4bIr9fQHizKHsjh5tHgjTZ8=; b=V3OKFTI53dw6CxdVy8yROUp1icE2FMy27Sx973E4DAi9WDYv1+5oTZzJ 5uqJXaVc1jrJ6LUjY1ZjqZBZysB8o2o1EOvmbdz9Nb1y18QRKzq9uyCJT Yl++YBxMN0JwzRee2h+s43b2NVtXFzXZm0h3lYQ9jR5IAMftW1aVh6Sk8 U=;
IronPort-PHdr: 9a23:M3urOh1zT7VJ0YhlsmDT+zVfbzU7u7jyIg8e44YmjLQLaKm44pD+JxKGt+51ggrPWoPWo7JfhuzavrqoeFRI4I3J8RVgOIdJSwdDjMwXmwI6B8vQEVH7MfTndTASF8VZX1gj9Ha+YgBY
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CvAAA9i25d/51dJa1lGgEBAQEBAgEBAQEHAgEBAQGBZ4FFUANtViAECyoKh14DinlNgg+XbIFCgRADVAkBAQEMAQEjCgIBAYFLgnQCgnYjOBMCAwgBAQQBAQECAQYEbYUuDIVKAQEBAwESKAYBATgEBwQCAQgRBAEBAR4QMh0IAgQTCBqCXxcLgWoDDg8BAgyfRwKBOIhhgiWCfAEBBYUIGIIWAwaBNIUAhngYgUA/gRABRlGBTS4+gmEBAQIBgR0FFQsIFiSDF4ImjCgkBC+fHgqCH4ZzjgOCCJZelWuQVAIEAgQFAg4BAQWBZyGBWHAVgyeCQgwXg0+FFIU/cwGBKIxJASWBCwGBIgEB
X-IronPort-AV: E=Sophos;i="5.64,463,1559520000"; d="scan'208";a="623500648"
Received: from rcdn-core-6.cisco.com ([173.37.93.157]) by rcdn-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 03 Sep 2019 15:50:04 +0000
Received: from XCH-RCD-004.cisco.com (xch-rcd-004.cisco.com [173.37.102.14]) by rcdn-core-6.cisco.com (8.15.2/8.15.2) with ESMTPS id x83Fo4c1019511 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <roll@ietf.org>; Tue, 3 Sep 2019 15:50:05 GMT
Received: from xhs-rtp-003.cisco.com (64.101.210.230) by XCH-RCD-004.cisco.com (173.37.102.14) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 3 Sep 2019 10:50:04 -0500
Received: from xhs-aln-002.cisco.com (173.37.135.119) by xhs-rtp-003.cisco.com (64.101.210.230) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 3 Sep 2019 11:50:03 -0400
Received: from NAM05-CO1-obe.outbound.protection.outlook.com (173.37.151.57) by xhs-aln-002.cisco.com (173.37.135.119) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 3 Sep 2019 10:50:03 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DjP+ZLdt9CcQH3+oqck55fP4sZZEvHQG6I1OIjl3WH+4Xy424h0c4DO/f9WC8+5Jd4hC9Il3M022nseK2ca55GS8TLZMoSlt8al8E9YrcaiDGjG6VNAULBxOcHi004xEuBigkAxzDfoYCAFVGF5rJJT8RaPVcihQtlYAVsTv/AY0uIl77OwjW8i5nhQFV7f/nMtDhMrTZSXhcASOWOMjNQ079i6CJvk5pHJLs+EQ+GqUE3HjsAKvl3VXTuNpTowLyTYEF0Wf3LPaAlWnQ+k7CWcXuNQPXH5+HvLXiruYYQV0q4z/MDD2njsDGipzA+Q6pud7YUy/9j+M14MznNZVEA==
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=uzBPd7XPLTSVyFxB1cs/N9VNlPG4jPMXL3YSwf1pFfc=; b=XJ5vfhvx+EUwGgFOZ6ImHZ3gYGAzNXGOxgWGmGxqpRCsIeCNdPpGy+75d7aRZSsJ3APQtlQmZ925ng5Ms2LGu5Col2dv71X2/7MVBAC1O99AqlHnGjLp7/F3481r3VwtwklE0Xh4PFX2lldhiEdAkTfdSPe3vjFb0EQjSn9XPWT6BiBSkTSy8GivwL44NMkKbugC+ghu3dCDI4/DlA3iuXGz/B9/2IJEnny+a5S1ysp37CbZivr303qaDbV/wb9ZgK7bSjuh4vQJ4AVKGdRIiui7cWvBGWiQ4L1IG3N3JtDsXxNvWzLPexRFn5b3DkOZq2GtZ2cGyg0c0rDdePoFkw==
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=uzBPd7XPLTSVyFxB1cs/N9VNlPG4jPMXL3YSwf1pFfc=; b=SaT9WGpK+JjpjOH77rp+cP25QWzLhmp6Uc41peDI8Y0e6hfPmZ4ZMFa8C4HEjRvuWwODO8utk8rny1MLPeL/EfbUZZeH6ACr96fkzuFDWoiK3bvyiGmRb1tuoj8ezgT3hYYy/O1oUi2De8Uh6Ndvnwa4oI7nTogpiDqe/VQTDn4=
Received: from MN2PR11MB3565.namprd11.prod.outlook.com (20.178.250.159) by MN2PR11MB4509.namprd11.prod.outlook.com (52.135.39.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2220.18; Tue, 3 Sep 2019 15:50:02 +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; Tue, 3 Sep 2019 15:50:02 +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+0C8nSsNeGeMcKcYhbNQgAApEgCAAT7qMA==
Date: Tue, 03 Sep 2019 15:49:50 +0000
Deferred-Delivery: Tue, 3 Sep 2019 15:49:14 +0000
Message-ID: <MN2PR11MB35656F5BC0D7B87984735F5DD8B90@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> <MN2PR11MB3565DED578369DCA9B1BE4E4D8BE0@MN2PR11MB3565.namprd11.prod.outlook.com> <MN2PR11MB356586AD1BAF9B31CBC53648D8BE0@MN2PR11MB3565.namprd11.prod.outlook.com> <4903.1567447456@localhost>
In-Reply-To: <4903.1567447456@localhost>
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: [173.38.220.41]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 40c08572-93ac-4a86-f430-08d7308661da
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:MN2PR11MB4509;
x-ms-traffictypediagnostic: MN2PR11MB4509:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <MN2PR11MB45092873826D787A2F3314FED8B90@MN2PR11MB4509.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 01494FA7F7
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(136003)(346002)(396003)(376002)(39860400002)(189003)(199004)(13464003)(3846002)(26005)(6246003)(186003)(55016002)(99286004)(2906002)(6506007)(53546011)(7696005)(66066001)(102836004)(256004)(14444005)(52536014)(76176011)(6116002)(53936002)(86362001)(33656002)(71200400001)(76116006)(6666004)(71190400001)(6916009)(66556008)(66446008)(64756008)(7736002)(9686003)(11346002)(25786009)(478600001)(446003)(966005)(476003)(6306002)(81166006)(81156014)(8676002)(8936002)(229853002)(6436002)(74316002)(66574012)(66946007)(66476007)(5660300002)(486006)(14454004)(316002)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB4509; H:MN2PR11MB3565.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: 8ijG/dmFnCi5knBFjA1lVeHcKiP9w2qROcxS6lbhTZAbS84w0sO2vznPL1hk3bVR1fe18o6sP4wDZ2sIAUD487WLjMMR+wJdpKmzPkNryuYPgfzQ3a5R1IIhEsUDI758Y3xBnVhs8Ch3bLkWAig+tq8t0SGrGFjTEnXOX0gi0EamF5MaqswIy/EnZ244sJe+J+v9O8U9cBupgE4hQU2249uw3D0xAR7fiZL8SPpMmwNtjwaM57PuFrZpAYWW/AcEvAHepBj4KneQNJUMnzrWLEpw/23PE8qP4L+Xlsvqk9ThiBfNFd2cQplgZFP+JOXQsWagWXFpfbLwGNwGnF58r9CqUh/oIY6BLAVxKBkxfvZnfLmkBnlZfF9WTDlvmQq2CFlSk9Y9o66ZsZyIJ7+6j7m03pvDYVrA0wr2AK3Wgc4=
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: 40c08572-93ac-4a86-f430-08d7308661da
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Sep 2019 15:50:02.0175 (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: 5atzxINtmCEDffBiofyvPxdbS7fnH2O5fjKqCqHpK9bsFqDyIvwCEC2RAhDcxmPrYq2+gIL6Nhl+IhqBEXjwcA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4509
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.14, xch-rcd-004.cisco.com
X-Outbound-Node: rcdn-core-6.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/roll/QkAoPjIae5hfiUO3BhndZMaZ8H4>
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, 03 Sep 2019 15:50:47 -0000

Hello Michael and all

> The point of introducing the NAO was that it would have different rules
> about where it goes?

Yes. Thinking out loud:

What we have today
---------------------------

- DAG configuration information to signal activation of a feature as we build a DAG are fine with a DIO and configuration option (e.g., flag day using capability blah such as use RFC 8138 compression or place ROVR in DAO). It could indicate, as RFC 6551 says, that " the constraint specified in the body of the object is optional". It is not as efficient as a global on/off switch when all nodes need to act "transactionally", see the discussion in turnon-rfc-8138 about turning off again. IOW, we do not have reliable-multicast communication to set something on/off dynamically on all nodes. 
- DAG constraints to build a DAG are fine in a DIO with a RFC 6551 Node Metric/Constraint Objects in the DAG Metric Container Option. We could extend the Node State and Attribute (NSA) object to add constraints in capabilities (e.g., do not join as a router if you do not have capability blah such as RFC 8138 compression). Note that RFC 6551 does not deal with "capabilities" but it discusses "characteristics" such as battery type and level. 
- NSA in DIO could also be a vessel to disseminate DAG level capabilities in addition to making them constraints as above (e.g., the capability to proxy the EDAR at the Root for RUL could be exposed in the NSA as well). Once we used NSA to place constraints as well as expose some capabilities, it makes sense to use it in the capability query/response mechanism that we are after.
- DAO is not sequenced with / synchronized to DIO. There's a slight attempt with DTSN but you cannot say I have all the DAOs from all nodes based on DIO blah. IOW DIO / DAO is not designed as an asynchronous query/response mechanism. Achieving something like DUAL in EIGRP looked too hard in an unreliable / never converged LLN. Still does.

A new message model
------------------------------

I think the messages need to change because of different semantics and flows. Semantics because we care about nodes as opposed to DAG (DIO) or Destinations (DAO); think, like, in OSPF a Router LSA is different from a Link LSA.  And flows look different because we appear to need a reliable multicast, either Root to all nodes or a parent to all its children. Today we do not have a message that a parent sends to all the children and it expects all the children to answer. Because it's hard to do on a LLN. How do we know who all the children are? How does the parent retry when 90% of the known children have answered? A series of unicasts or a broadcast again? What about the root?

Today a change in the configuration is trickled in DIOs that are propagated down, which means it is slowly disseminated, it does not take effect quickly to all, and it spreads. It eventually reaches all the live nodes but we do not know when. And DIO is about DAG. 
But if we used DIO to query node capabilities, then we could not do unicast retries hops away. DIO does not work like that. That's when it starts feeling like an abuse. And trickling a new DIO to all because we are missing one answer in the whole DODAG seems extreme. OTOH, a new Node Information Query that can be unicast, multicast one hop down or recursively all the way down would do the trick. The query would indicate what the root (or parent) wants to know. It could even provide the value at the querier. The response would be a unicast NAO. 
We could even have a child use a NIQ unicast to a parent or the root, who would reply unicast to the querier or multicast NAO to all children. Parents could aggregate NAOs for children towards the grandparent.

Diffusion like DUAL is probably still too hard, as it was when we designed DIO. We should probably shoot for something that hits most nodes, that is mostly reliable. This generally works when turning something on like RFC 8138 compression. Those who did not see the knob do not compress but that works. And then if really important find a way to unicast and then garage the nodes who did not respond. E.g., do not install P-DAO routes in nodes that did not respond to capability queries.

A new container/option?
---------------------------------

I thought we could extend the existing Node Metric/Constraint objects to add capabilities but I'm not adamant about it. Just that there are things already there and that we need. Like signaling constraints, whether they are mandatory or not, and describing node characteristics. The 'O'verload bit in NSA looks like something we need to get inspiration from, though we need to understand if the overload has to do with forwarding, Storing Mode routes, P-Dao states, or whatever else. The DAG Metric Container is really related to distributed routing decisions. We need to maintain a map of the DODAG with capabilities for centralized route computation P-DAO and the likes. It's a stretch, not a gigantic one.

The NIQ/NAO would transport the same NSAs. It would also produce neighborhood information, e.g. the number of P-DAO routes that can be stored - or just P-DAO storage "overload".

What do you think?

Pascal

> -----Original Message-----
> From: Roll <roll-bounces@ietf.org> On Behalf Of Michael Richardson
> Sent: lundi 2 septembre 2019 20:04
> To: Routing Over Low power and Lossy networks <roll@ietf.org>
> Subject: Re: [Roll] do capabilities need to understood, can they be added?
> 
> 
> Pascal Thubert (pthubert) <pthubert@cisco.com> wrote:
>     > In addition to the below I took a refresh look at RFC 6551.
> 
>     > https://tools.ietf.org/html/rfc6551#section-3.1 provides a shell for
> capabilities such as those that we are after.
>     > And
>     > https://tools.ietf.org/html/rfc6551#section-3.2 discusses how to handle
>     > a resource that varies over time and is subject to consumption and
>     > exhaustion. Storage of routes for P-DAO has similarities with that.
> 
>     > All in all I'm thinking that we could extend Node Metric/Constraint
>     > Objects and how they are used for DODAG formation. We could for
>     > instance use the metric container as defined for DIO and create at
>     > least one new message to report to the asker for the reasons below.
> 
> So, we'd (ab)use node metrics to provide information from children to
> parents (and possibly to root) on what the node can do?
> 
> They (DAG Metric Containers) are options, and live in DIOs or DAOs, so
> would still be limited as to how they flow up/down the DAG.  This just
> changes how we encapsulate the options, but does not change the rules on
> where the information flows.
> 
> The point of introducing the NAO was that it would have different rules
> about where it goes?
> 
> --
> Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
> -= IPv6 IoT consulting =-