Re: [core] CoMI Cool draft splits

Michel Veillette <Michel.Veillette@trilliantinc.com> Tue, 17 November 2015 22:30 UTC

Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A88CC1B3434 for <core@ietfa.amsl.com>; Tue, 17 Nov 2015 14:30:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
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 qjtbKlKXlES4 for <core@ietfa.amsl.com>; Tue, 17 Nov 2015 14:30:20 -0800 (PST)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0146.outbound.protection.outlook.com [207.46.100.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B236C1B3431 for <core@ietf.org>; Tue, 17 Nov 2015 14:30:19 -0800 (PST)
Received: from BLUPR06MB1761.namprd06.prod.outlook.com (10.162.224.147) by BLUPR06MB244.namprd06.prod.outlook.com (10.242.191.153) with Microsoft SMTP Server (TLS) id 15.1.325.17; Tue, 17 Nov 2015 22:30:17 +0000
Received: from BLUPR06MB1763.namprd06.prod.outlook.com (10.162.224.149) by BLUPR06MB1761.namprd06.prod.outlook.com (10.162.224.147) with Microsoft SMTP Server (TLS) id 15.1.325.17; Tue, 17 Nov 2015 22:30:15 +0000
Received: from BLUPR06MB1763.namprd06.prod.outlook.com ([10.162.224.149]) by BLUPR06MB1763.namprd06.prod.outlook.com ([10.162.224.149]) with mapi id 15.01.0325.003; Tue, 17 Nov 2015 22:30:15 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: Rodney Cummings <rodney.cummings@ni.com>
Thread-Topic: [core] CoMI Cool draft splits
Thread-Index: AQHRIRwbWsbLKAGX5UGJtJafdAsAuZ6gXYKAgAAAvXCAAF6HgIAACZNA
Date: Tue, 17 Nov 2015 22:30:15 +0000
Message-ID: <BLUPR06MB1763FB3440B720CE6656C3BBFE1D0@BLUPR06MB1763.namprd06.prod.outlook.com>
References: <0559fa310f26530d1c1e89c1ed64b7aa@xs4all.nl> <BN1PR04MB424BAAB4D9E771D891BD06F921D0@BN1PR04MB424.namprd04.prod.outlook.com> <BLUPR06MB176305CAB596DF2D3962325EFE1D0@BLUPR06MB1763.namprd06.prod.outlook.com> <BN1PR04MB4245E2336CCBB2650EB791C921D0@BN1PR04MB424.namprd04.prod.outlook.com>
In-Reply-To: <BN1PR04MB4245E2336CCBB2650EB791C921D0@BN1PR04MB424.namprd04.prod.outlook.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliantinc.com;
x-originating-ip: [207.96.192.122]
x-microsoft-exchange-diagnostics: 1; BLUPR06MB1761; 5:1H1DX910l30T9QFoyrw2dZTJ/Q8XheWD66xNQHQyniyILC6Xxwzg2fwWv6KC4UslsCMomFX6Joq9cyToJ1G3T1GxN8gzGvyIX4lbW6dVmPlAZhwOOvrS6fDdaz9w4+FIxvw0EmyZy2IHDoL5rbOhWw==; 24:wCxs4ZK8e2Qfncq2y9vPjQn9ofP1y4y+GPwEH8fk0Q/dNR6Pp8H2p9ee5ONDzlU1UzX85QL91/P3G+qM8y66pPxMMy/s1nsMWlnXTDI/Ncc=; 20:1ti6mjivSXgwRRbnoEzikyoKEPyRZll/uIxubZXuxLntjdeZFjtPHhgnUUF9YIqhMM0Qz8mcWYqGLimB0zJkhQ==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR06MB1761;
x-microsoft-antispam-prvs: <BLUPR06MB17619558B3A2851E5CBFC1A8FE1D0@BLUPR06MB1761.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(256376046250027)(144836121648609)(262738631018165)(216554174695431);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(3002001)(10201501046); SRVR:BLUPR06MB1761; BCL:0; PCL:0; RULEID:; SRVR:BLUPR06MB1761;
x-forefront-prvs: 07630F72AD
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(377454003)(377424004)(199003)(53754006)(38414003)(54094003)(189002)(13464003)(2950100001)(81156007)(97736004)(106116001)(50986999)(106356001)(5007970100001)(5003600100002)(5001960100002)(15975445007)(76176999)(102836002)(586003)(87936001)(40100003)(110136002)(189998001)(101416001)(5004730100002)(122556002)(19580395003)(2900100001)(99286002)(105586002)(10400500002)(66066001)(11100500001)(5008740100001)(15974865002)(92566002)(33656002)(19580405001)(76576001)(77096005)(93886004)(5002640100001)(74316001)(86362001)(54356999)(7059030); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR06MB1761; H:BLUPR06MB1763.namprd06.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en;
received-spf: None (protection.outlook.com: trilliantinc.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2015 22:30:15.3192 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR06MB1761
X-Microsoft-Exchange-Diagnostics: 1; BLUPR06MB244; 2:22pvq2QW2QrHOjNMHf12qM29YMtJKP7GfNSmFKqlJ/v9N/u3D1yPEX3JHL2VV5ZGzqe92mOaEU1DjGropoUvKG64D/7+QgKNrK+HAWRzDXindSBwvoQVMADXhUKHTfnz9+NYaM/xmVnMFf7bR5aoFAPriGwcKskiM22ui1CIWOE=; 23:pfyIo5e95ZjeGFc6lVWoNeiHhg+ndH0VDPkTEAC9pBePpPSWcv9V8fp4pNdX59ccHfvDdJon2mnuKxzBmHPT3NRfQpWyDwlD5sZajqaXuIUCxxsckY/ERFJr/XeHEC2CTKQ2lkm4Y/hFjiMzoo8ggiXY1SnUc6AK6C0cSnBCMA3z6wEZvB4DZ/YhRRnhe+mx
X-OriginatorOrg: trilliantinc.com
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/KJ4Xnf41JHpS7INKh-jgKb_53OM>
Cc: peter van der Stok <stokcons@xs4all.nl>, Core <core@ietf.org>
Subject: Re: [core] CoMI Cool draft splits
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 22:30:23 -0000

Hi Rodney

If I understand correctly, you propose to automatically generate IDs based on the YANG definition files of the modules implemented by each  CoMI/CoOL server. Is this correct?

If this is the case, I don't things we can assume that the targeted constrained networks have enough bandwidth to transfer these files, neither the nodes have enough resources to process these files.

CoMI / CoOL server are implemented with a simple map of ID vs. values.
On the client side, the right ID need to be used in function of the version / rehash.

The goal is to maintain the network and resources footprint as low as possible.

Regard,

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com
www.trilliantinc.com   


-----Original Message-----
From: Rodney Cummings [mailto:rodney.cummings@ni.com] 
Sent: November-17-15 4:33 PM
To: Michel Veillette <Michel.Veillette@trilliantinc.com>; peter van der Stok <stokcons@xs4all.nl>; Core <core@ietf.org>
Cc: Somaraju Abhinav <abhinav.somaraju@tridonic.com>; Turner, Randy <Randy.Turner@landisgyr.com>; Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Subject: RE: [core] CoMI Cool draft splits

Thanks Michel,

To back up a bit, I think I may be misunderstanding a fundamental assumption in the design of both CoMI and CoOL. Please forgive my ignorance.

Of my three points, I think the fundamental point is #3, and #1 and #2 are just symptoms. To elaborate on #3 with an example, let's say I have a module "foo", with two revisions:
- 2011-01-09: original
- 2015-08-07: enhanced

Both CoMI and CoOL seem to be designed under the assumption that the original revision is a proper subset of the enhanced revision (i.e. objects were added, but none removed). 

For CoMI, this is why the client must read the ietf-yang-hash module to obtain re-hash mapping. The server presumably promises to leave the hashes of the original unchanged in the enhanced. Therefore, only the server knows the re-hash values, which must be queried by the client.

For CoOL, the algorithm for the client to find an automatic DNID is clear. Nevertheless, the manual DNID (YANG "id" extension) is provided so that the module author can manually ensure that DNIDs of the original remain the same in the enhanced.

As I think through this for the client side, I don't think it is valid for my client to assume that the enhanced is a proper subset of the original (item #3). I realize that a proper subset is common in practice, but it is not guaranteed. From my reading of RFC6020bis, the enhanced module can completely remove all objects from original.

Therefore, on the client side, it would be easier for me to assume the "automatic" implementation in the server. 

In the context of Cool, "automatic" means the automatic DNID algorithm. I would prefer to avoid the "manual" mechanism entirely (my item #1). Rather than create CoOL-specific YANG modules, just force the client to process the normal YANG module assuming that all DNID are automatic.

In the context for CoMI, specify an "automatic" algorithm for resolving hash collisions, similar to CoOL's automatic DNID. This enables a client and server to use the same re-hash, and it avoids the need to query the ietf-yang-hash module.

Overall, it seems like the most challenging aspects of CoMI and CoOL are the "manual" extensions to help with backward compatibility (item #3). To a naive reader such as myself, these "manual" extensions make the draft far more complex, and it would be simpler to use the "automatic" technique in both client and server.

Rodney


-----Original Message-----
From: Michel Veillette [mailto:Michel.Veillette@trilliantinc.com] 
Sent: Tuesday, November 17, 2015 1:21 PM
To: Rodney Cummings <rodney.cummings@ni.com>; peter van der Stok <stokcons@xs4all.nl>; Core <core@ietf.org>
Cc: Somaraju Abhinav <abhinav.somaraju@tridonic.com>; Turner, Randy <Randy.Turner@landisgyr.com>; Alexander Pelov <alexander.pelov@telecom-bretagne.eu>
Subject: RE: [core] CoMI Cool draft splits

Hi Rodney

Would you please elaborate your item#2 "A client cannot assume that the YANG objects of a module are distinct from a hashing perspective."
I'm not sure I fully understand the implications of this statement.

The CoOL draft propose to prefix all objects (data nodes, rpc and notifications) defined by a module & associated sub-modules with a common identifier. What is the impacts of item 2 on this approach?

Regards,

Michel Veillette
System Architecture Director
Trilliant Inc.
Tel: 450-375-0556 ext. 237
michel.veillette@trilliantinc.com
www.trilliantinc.com   



-----Original Message-----
From: core [mailto:core-bounces@ietf.org] On Behalf Of Rodney Cummings
Sent: November-17-15 10:52 AM
To: peter van der Stok <stokcons@xs4all.nl>; Core <core@ietf.org>
Subject: Re: [core] CoMI Cool draft splits

Thanks Peter,

At this time, proceeding with 4 drafts sounds good to me.

Nevertheless, as we get closer to progressing these in a WG, I think we should transition to 2 drafts:
a) YANG to CBOR mapping ( i) )
b) Select either hash ( ii) ) or registry ( iii) ), and merge that with the function set ( iv) ) for a single draft

As for the motivation and use cases, I wonder if it might be helpful to state our assumptions for the client side. I would claim that:
1. A client cannot assume that the YANG modules implemented by the server have been enhanced specifically for CoMI/CoOL.
2. A client cannot assume that the YANG objects of a module are distinct from a hashing perspective.
3. A client cannot assume that a new revision of a module is backward compatible to an older revision of that module (i.e. old is proper subset).
If these assumptions are correct, then the client must perform some processing of the server's YANG modules prior to using CoMI/CoOL, and that may help to decide between hash/registry.
If these assumptions are incorrect, it might be useful to discuss it in the draft, to provide some background rationale.

Rodney

-----Original Message-----
From: core [mailto:core-bounces@ietf.org] On Behalf Of peter van der Stok
Sent: Tuesday, November 17, 2015 3:41 AM
To: Core <core@ietf.org>
Subject: [core] CoMI Cool draft splits

Hi all,

During the Yokohama meeting I proposed to split the CoMI/CoOl drafts into three parts as suggested by Juergen Schoenwalder in a separate earlier communication.
This e_mail sets out in more detail why the proposed split is a good one.

The proposed three parts are:
1) The Function Set (sections 2, 3, 4 in CoMI; sections 2, 3, 7 in CoOL)
2) The YANG to CBOR mapping (section 6 in CoMI; section 5 in CoOL)
3) The YANG name compression (section 5 in CoMI; section 6 in CoOL)

The split has two advantages:
- the parts 2 and 3 can be used in other contexts, e.g. RESTCONF
- It separates out the issues which need to be solved to merge CoOL and CoMI.

I come to the generation of 4 drafts:
i) The YANG to CBOR mapping.
ii) Hashing of YANG names
iii) Managed identifier assignment to YANG names
iv) The Function set specification

Ad i) I don't expect a long list of issues for the merging. However, it may be advisable to submit the draft to the netmod WG, where much of the YANG expertise exists and the draft can be aligned with the YANG to JSON draft.
Ad ii and iii) These approaches are very different and merit independent drafts. The CoRE WG can decide to adopt 1, 2, or none of the two drafts. 
It is also possible that drafts get submitted to other WGs.
Ad iv) In my view the alignment of the two existing approaches, CoMI and CoOL, may take some time. I will be happy if in Buenos Aires we have a list with issues, accompanying motivation, and use cases.

Is this a valid approach? Comments are solicited.

Peter

--
Peter van der Stok
vanderstok consultancy
mailto: consultancy@vanderstok.org

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core