Re: [core] YANG to CBOR mapping version 1

Michel Veillette <Michel.Veillette@trilliantinc.com> Wed, 13 July 2016 14:36 UTC

Return-Path: <Michel.Veillette@trilliantinc.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 53C2B12D82E for <core@ietfa.amsl.com>; Wed, 13 Jul 2016 07:36:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.922
X-Spam-Level:
X-Spam-Status: No, score=-1.922 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=trilliant.onmicrosoft.com
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 cV4N7Glqgf1f for <core@ietfa.amsl.com>; Wed, 13 Jul 2016 07:36:12 -0700 (PDT)
Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0091.outbound.protection.outlook.com [104.47.36.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2A16B12D661 for <core@ietf.org>; Wed, 13 Jul 2016 07:36:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Trilliant.onmicrosoft.com; s=selector1-trilliantinc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=lQM4srZgZ4O5soNZkXPwvimK1rmT6k+2sy3C8N6wSJ8=; b=SceQzC5m5E886efePvUsq3dwDvABT8xRGuwmMXfqNbeIXyrVGQgEwFKjYuJf27JGBdPQ/x8Mqeaj/UrmujehEv4gOZG0c7JxedPfw1ZgbM3Fie3THEfNcJMUX1TkCO7uzT6x8JkGFiNnKGabIY7eBT1qF9WCgLav7OEDbCsET4E=
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.539.14; Wed, 13 Jul 2016 14:36:09 +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.0539.019; Wed, 13 Jul 2016 14:36:09 +0000
From: Michel Veillette <Michel.Veillette@trilliantinc.com>
To: "consultancy@vanderstok.org" <consultancy@vanderstok.org>
Thread-Topic: [core] YANG to CBOR mapping version 1
Thread-Index: AQHR1qK2U/a50X7m60OAxt73Sipz+qAOmnXwgAYCugCAAFEisIABBZSAgACEZ/A=
Date: Wed, 13 Jul 2016 14:36:09 +0000
Message-ID: <BLUPR06MB1763A212CD1C3386722B88D9FE310@BLUPR06MB1763.namprd06.prod.outlook.com>
References: <1ed9a5d16aca7d13412259e94afc1aa2@xs4all.nl> <BLUPR06MB17639739570760661AEC32C3FE3C0@BLUPR06MB1763.namprd06.prod.outlook.com> <e18f0f45bfae89fc55df444fdd957550@xs4all.nl> <BLUPR06MB17638EB4CCB4235B5101D540FE300@BLUPR06MB1763.namprd06.prod.outlook.com> <d58ca58bd8f89b9856a2e23290a18ba8@xs4all.nl>
In-Reply-To: <d58ca58bd8f89b9856a2e23290a18ba8@xs4all.nl>
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: [24.225.215.88]
x-ms-office365-filtering-correlation-id: c6e10c93-3c4c-4f7b-94ba-08d3ab2b0823
x-microsoft-exchange-diagnostics: 1; BLUPR06MB1761; 6:kqg59X+u7ShoPs3WesmhfsCczA/dmsUYNcN7hWMdQEcQh9QcAHxAElEWuQRo97VyL3lptGWDDqY5FU95p0Wdp8AfRaDBjP6PoaBPoOcbUUEVlHIyE88HsCKHmKT6QeeLFkd78WIhSCaSn1toTOMSwzdBlaJdvzZdWGWm/Z+mpnKZCUdSWFrIq+2chjZXARkrVfC+TVR+rQ+O4Fd9QHUUzEPuFzdavQEIykDKLtiwtE3V+JHTRyBqW5FFHPQhyYor7JLXPtGvX/k2WUNlXeRFmq2MiqKXUj+bd36QH6tprQY=; 5:3kE9DDZGY7JShZtBGYXXSOc7K+D2MNE3zUotrHfxNA8p3Z7xsS2SLyeCI8nAgpLUcagqBgfA2FECJTqFZpimSSQgP8nSaS9+ePJCIoxiAQNCzv6DWEQVtr0/tAwbGg75RXzXIgoa+k1u0q8kwZfybg==; 24:CDSgOIMcXLkKWCtMs/zAJJZtwUdVkILJXAiLGmQgx/tah+qdAj4KuoEDTu+Ns/ZFxCzxR37rCxFbyWe98N4+1IhehLu74L/zlHjLvD21y1o=; 7:i24Y9xIWtUuUMMFDVl88wBH9KV59uib7RXi/L5irXDoFBcrRK+5xjZrVeYTDkebQ4hzzsJe1DjRLljHBM6AFtgw7M1HPcz84qEsEHGnD7QW4z0PlZ4RmqKdDHkAR6ZnGuhXzN7zouA9frdXkdDLItv5dUiPOsdnJdUAiw91mGRd1H+J86eqTnzVrbF3jBWTaZIq6UV7vDfxhi+hpMygXGw1HQceaJvvpWBO8jUbwq639E2TdxR7aOvBVKQvt2inv
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR06MB1761;
x-microsoft-antispam-prvs: <BLUPR06MB1761625E704A734E9EECA27BFE310@BLUPR06MB1761.namprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(120809045254105);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001); SRVR:BLUPR06MB1761; BCL:0; PCL:0; RULEID:; SRVR:BLUPR06MB1761;
x-forefront-prvs: 000227DA0C
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(7916002)(13464003)(377424004)(199003)(189002)(377454003)(93886004)(2900100001)(2906002)(92566002)(2950100001)(74316002)(122556002)(99286002)(50986999)(2351001)(2501003)(3280700002)(3660700001)(8936002)(4326007)(3846002)(81166006)(6116002)(81156014)(5640700001)(76576001)(102836003)(5002640100001)(586003)(15975445007)(11100500001)(19580395003)(66066001)(86362001)(8676002)(5003600100003)(68736007)(7736002)(1730700003)(106356001)(87936001)(101416001)(106116001)(10400500002)(305945005)(77096005)(76176999)(105586002)(54356999)(189998001)(7846002)(9686002)(19580405001)(110136002)(33656002)(7696003)(97736004); 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:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: trilliantinc.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jul 2016 14:36:09.4912 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR06MB1761
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/kszwa_MSOyvxVovjeg4hSherVbo>
Cc: Core <core@ietf.org>
Subject: Re: [core] YANG to CBOR mapping version 1
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 13 Jul 2016 14:36:15 -0000

Hi Peter

The scenario you described is part of the generic discovery problem.
To perform its tasks, clients typically need to known the list of modules, features, deviations implemented by a server and associated versions.
This problem is addressed in http://core-wg.github.io/yang-cbor/draft-veillette-core-cool-library-latest.html which is the constrained version of https://datatracker.ietf.org/doc/rfc7895/ 

module: ietf-cool-library
   +--ro modules-state
      +--ro module-set-id    union
      +--ro module* [sid revision]
         +--ro sid                 sid
         +--ro revision            revision
         +--ro feature*            sid
         +--ro deviation* [sid revision]
         |  +--ro sid         sid
         |  +--ro revision    revision
         +--ro conformance-type    enumeration
         +--ro submodules
            +--ro submodule* [sid revision]
               +--ro sid         sid
               +--ro revision    revision
notifications:
   +---n yang-library-change
      +--ro module-set-id    -> /modules-state/module-set-id

Regards
Michel

-----Original Message-----
From: peter van der Stok [mailto:stokcons@xs4all.nl] 
Sent: Wednesday, July 13, 2016 2:34 AM
To: Michel Veillette <Michel.Veillette@trilliantinc.com>
Cc: consultancy@vanderstok.org; Core <core@ietf.org>
Subject: RE: [core] YANG to CBOR mapping version 1

Hi Michel,

When a specification changes it set of of keys, I don't think the SIDs will change.
It is for sure that the hashes are not affected by the attribution of a key.

Therefore, what happens when client and server use different keys in otherwise identical list specification?

Peter

Michel Veillette schreef op 2016-07-12 17:07:
> Hi Peter
> 
> The validations performed by the entity which de-serialize the CBOR 
> payload is based on the YANG schema.
> This validation is based on all king of YANG statements such as:
> key, unique, range, pattern, length, min-elements, max-elements, must, 
> when, if-feature
> 
> The identification of which data nodes are keys is considered 
> unnecessary meta-data since available in the schema.
> Even more heavy weight representations such as xml and json don't 
> include this meta-data in the encode payload.
> 
> Regards,
> Michel
> 
> -----Original Message-----
> From: peter van der Stok [mailto:stokcons@xs4all.nl]
> Sent: Tuesday, July 12, 2016 6:08 AM
> To: Michel Veillette <Michel.Veillette@trilliantinc.com>
> Cc: consultancy@vanderstok.org; Core <core@ietf.org>
> Subject: RE: [core] YANG to CBOR mapping version 1
> 
> Hi Michel,
> 
>> 
>> However, I am missing how to transport a given list instance with its 
>> key values in the CBOR encoding. Section 4.4 describes the encoding 
>> of a complete list not a subset of its instances.
>> 
>> [MV] A list instance is a collection which is described in section 
>> 4.2.
>> _____________________________________________________________________
>> _
>> _______________________
> 
> With the current text I don't see how you distinguish instances with 
> the same key from instances with different keys.
> 
> Example:
> 
> list server {
>       key name;
> 
>       leaf name {
>         type string;
>       }
>       leaf iburst {
>         type boolean;
>         default false;
>     }
> 
> How to distinguish that in the list below that two instances are 
> identical (should not occur)
>     [
>       {
>         1755 : "NRC TIC server",          # name (SID 1755)
>         1754 : false,                     # iburst (SID 1754)
>       },
>       {
>         1755 : "NRC TIC server",          # name (SID 1755)
>         1754 : true,                     # iburst (SID 1754)
>       }
>     ]
> 
> And the following two instances are different  (valid array)
> 
>     [
>       {
>         1755 : "NRC TAC server",          # name (SID 1755)
>         1754 : true,                      # iburst (SID 1754)
>       },
>       {
>         1755 : "NRC TIC server",          # name (SID 1755)
>         1754 : true,                     # iburst (SID 1754)
>       }
>     ]