Re: [core] The CORE WG has placed draft-veillette-core-yang-library in state "Call For Adoption By WG Issued"

Michel Veillette <Michel.Veillette@trilliant.com> Tue, 23 July 2019 17:13 UTC

Return-Path: <Michel.Veillette@trilliant.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 C16E51205CF for <core@ietfa.amsl.com>; Tue, 23 Jul 2019 10:13:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.799
X-Spam-Level:
X-Spam-Status: No, score=-1.799 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no 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 Q9kYKl2Eelht for <core@ietfa.amsl.com>; Tue, 23 Jul 2019 10:13:51 -0700 (PDT)
Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730139.outbound.protection.outlook.com [40.107.73.139]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 738541205CD for <core@ietf.org>; Tue, 23 Jul 2019 10:13:48 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CxCxdHK+iJ4a7L+LzCUh1BvXoV9wWejXpd4GFcHTrr/NgtxOADDs+01rav5PQZ02B/5L43uuF3UBC9Q3UCLJAGTIyf8nSwcHfUQaeAL/eoEopG3gqqLVVJH5lUK69PU7KKEaTPpicCPsa/tMIuJDaUceBcQOeMaz5W1iao+DhZIwk6sDs9QaoXzlFRC+DAfXElkUGOocZ/ojV39ui+tZxufYmn0PGpsXpsAPt1CESE6Fb3IydFKzmS3IMdrku0RRRzwbc4IlE2hLya1rIXDni5QTroa0N4wAk53iKJvvX6Txr7CSlx3b1rFAeAvXnRrlAZ93/2PtkKLN3kFeZ8lvmQ==
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=Uq6fvG5oGjc9gnNHWwHSaLKUxOge4IqSB+mjnxRqKCQ=; b=b6Y4W+ZgT7cUYmxG1dXRmqy3nZA1GQnKKJOr8zbX/Z+RtBCF0jzfhOyUvKqI/zTRX40ZsLJW9VvhVJNIZQLaj9cog1nf4i1Y73XWcwIJKz+VLfakWKsvuKItGBsmg/QbYbceIJv6XQnnqhx519jz3Clm6CPOPlpTkkL2GXkcgBOCqrofCQXJ5kD1mftuY4GrUSz6Etz8NnEzpxnLwnZFajx1vnyLPJF5GG4aVt14E58s7xYsLRxLQ9UR91uylPeKsNsgvixMjRT7CfLxfbUr/pUZDZANn+pvGCQvRfr7SwEeo7cLVXym/rTzrv63s7aR0S4Mkoq31XFXClEeToO0FA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=trilliant.com;dmarc=pass action=none header.from=trilliant.com;dkim=pass header.d=trilliant.com;arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Trilliant.onmicrosoft.com; s=selector2-Trilliant-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Uq6fvG5oGjc9gnNHWwHSaLKUxOge4IqSB+mjnxRqKCQ=; b=ioh36ydpq+b3nlG2gTK1kVOTglW/MWUX13WVTVS5a0RaZrxu0qrrr/VRszUSKlSzFcqnQpm+4JhDwcc1SY5ibpOPNC0EO5TCP6BiPygFbfJm0/bWk+CH9n1yRReGTRdBFFHiRKa+PdY+5rXtyRVusVjFeUDsgT2IGETWdiYgAYQ=
Received: from BL0PR06MB5042.namprd06.prod.outlook.com (10.167.240.31) by BL0PR06MB4898.namprd06.prod.outlook.com (10.167.234.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.16; Tue, 23 Jul 2019 17:13:45 +0000
Received: from BL0PR06MB5042.namprd06.prod.outlook.com ([fe80::1e6:493d:1ca9:ba82]) by BL0PR06MB5042.namprd06.prod.outlook.com ([fe80::1e6:493d:1ca9:ba82%7]) with mapi id 15.20.2094.013; Tue, 23 Jul 2019 17:13:45 +0000
From: Michel Veillette <Michel.Veillette@trilliant.com>
To: Andy Bierman <andy@yumaworks.com>
CC: Core <core@ietf.org>, Carsten Bormann <cabo@tzi.org>, ivaylo petrov <ivaylo@ackl.io>
Thread-Topic: [core] The CORE WG has placed draft-veillette-core-yang-library in state "Call For Adoption By WG Issued"
Thread-Index: AQHVN/3dcAv7wXPl5UO8jjBweVNxDabHfiiAgARDusCAC6RwwIAABiEAgAESJQA=
Date: Tue, 23 Jul 2019 17:13:45 +0000
Message-ID: <BL0PR06MB50420C236A19D766E12337549AC70@BL0PR06MB5042.namprd06.prod.outlook.com>
References: <156285914934.12002.9400408827321248683.idtracker@ietfa.amsl.com> <CABCOCHSfqxMueiagm29zXNOJyAOS3A_-O0YonMPcRAr10d8Ykg@mail.gmail.com> <BL0PR06MB5042F6FBD47E8C3757D620C29ACF0@BL0PR06MB5042.namprd06.prod.outlook.com> <BL0PR06MB5042A438CE8CFD5F2B3796FC9AC70@BL0PR06MB5042.namprd06.prod.outlook.com> <CABCOCHRfgS5nXYNwASjPCAFJ9dtNQ5ayc+=O9EbzaaMp-EEuGw@mail.gmail.com>
In-Reply-To: <CABCOCHRfgS5nXYNwASjPCAFJ9dtNQ5ayc+=O9EbzaaMp-EEuGw@mail.gmail.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@trilliant.com;
x-originating-ip: [31.133.139.92]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 7005d0ad-0936-4020-6042-08d70f911eac
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:BL0PR06MB4898;
x-ms-traffictypediagnostic: BL0PR06MB4898:
x-ms-exchange-purlcount: 6
x-microsoft-antispam-prvs: <BL0PR06MB4898FC8382DC2B5C015183A09AC70@BL0PR06MB4898.namprd06.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0107098B6C
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(39850400004)(396003)(366004)(136003)(346002)(376002)(189003)(199004)(7696005)(55016002)(54896002)(6246003)(236005)(2906002)(476003)(6306002)(446003)(71200400001)(25786009)(53936002)(9686003)(71190400001)(53946003)(186003)(53376002)(99286004)(966005)(7736002)(3846002)(8936002)(81166006)(53546011)(14444005)(256004)(790700001)(6116002)(229853002)(6506007)(6436002)(81156014)(66556008)(52536014)(68736007)(478600001)(606006)(14454004)(316002)(76176011)(102836004)(6916009)(66946007)(64756008)(8676002)(66446008)(33656002)(4326008)(66476007)(54906003)(76116006)(486006)(26005)(66066001)(5660300002)(74316002)(86362001)(11346002); DIR:OUT; SFP:1102; SCL:1; SRVR:BL0PR06MB4898; H:BL0PR06MB5042.namprd06.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: trilliant.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: q0IqNV4imf6zzTJxjtCZxmLCt6KkuIEYGepQlPk6QnPTpVTqlCyVAf7P3/udIKgrtCU96adgSW7BoCDiplL4m2qCQwVizFMFAZGAPjrRAMiNbPM4zgw1rkGbrExQBje+ZyEb+6YsinbZ3ybhvqa+Ag0PH57JY8zrJUpIYoFeR2ABBtViyPxw5RKCPRwm/CTa+jAggnZPLwdzkcVKhd074d8GORPl/IPpuZoC4dunmT4SuvsPyxMJeCdaJuRPDS/nhbIaORkrWMfd3ZpbmZIO0VLUdayqROAWumBCyap2ppJbE17jGoeslBap8daoV0hZXuBtwgyJ47B5sobGq83hZC7KdC0H5703gYjl/egQKrwCAT+pZFpuauMj9Y7H/k2mYRbAeKZoPMQxQAnxtuHwCodsRcYk5Zxbvdp+1f0RBLE=
Content-Type: multipart/alternative; boundary="_000_BL0PR06MB50420C236A19D766E12337549AC70BL0PR06MB5042namp_"
MIME-Version: 1.0
X-OriginatorOrg: Trilliant.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 7005d0ad-0936-4020-6042-08d70f911eac
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jul 2019 17:13:45.3523 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Michel.Veillette@trilliant.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR06MB4898
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/zSa2vAwFN-05VAMgE3B1vSapkSc>
Subject: Re: [core] The CORE WG has placed draft-veillette-core-yang-library in state "Call For Adoption By WG Issued"
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
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, 23 Jul 2019 17:13:55 -0000

Hi Andy

To evaluate the need, or not,  of a compact version of ietf-yang-library, I have created a simple example containing:
- one datastore
- one schema
- one module set

The module set contains the following YANG modules:
- ietf-interfaces
- ietf-ip
- ietf-system
- iana-hardware
- my-upgrade-module
- ietf-yang-types
- ietf-inet-types

Following is this YANG library implemented using ‘ietf-yang-library’ and encoded in CBOR.
The resulting size is 642 bytes without any location URIs which are optional.

{
  2368 : {
    +8 : [
      {
        +21 : "set1",
        +10 : [
          {
            +4 : "ietf-interfaces",
            +6 : "2018-02-20",
            +5 : "urn:ietf:params:xml:ns:yang:ietf-interfaces"
          },
          {
            +4 : "ietf-ip",
            +6 : "2018-02-22",
            +5 : "urn:ietf:params:xml:ns:yang:ietf-ip"
          },
          {
            +4 : "ietf-system",
            +6 : "2014-08-06",
            +5 : "urn:ietf:params:xml:ns:yang:ietf-system",
            +2 : ["ntp", "timezone-name", "dns-udp-tcp-port"]
          },
          {
            +4 : "iana-hardware",
            +6 : "2018-03-13",
            +5 : "urn:ietf:params:xml:ns:yang:iana-hardware"
          },
          {
            +4 : "my-upgrade-module",
            +6 : "2019-07-23",
            +5 : "http://mydomain.com/yang/my-upgrade-module",
            +2 : ["ftp", "coap", "scheduled"]
          }
        ],
        +1 : [
          {
            +2 : "ietf-yang-types",
            +4 : "2018-02-20",
            +3 : "urn:ietf:params:xml:ns:yang:ietf-yang-types"
          },
          {
            +2 : "ietf-inet-types",
            +4 : "2013-07-15",
            +3 : "urn:ietf:params:xml:ns:yang:ietf-inet-types"
          }
        ]
      }
    ],
    +30 : [
      {
        +2 : "schema1",
        +1 : ["set1"]
      }
    ],
    +5 : [
      {
        +1 : "unified",
        +2 : ["schema1"]
      }
    ],
    +4 : "mySensorDataModel"
  }
}

The same YANG library implemented using ‘ietf-constrained-yang-library’ required 183 bytes.

{
  2368 : {
    +8 : [
      {
        +21 : 1,
        +10 : [
          {
            +4 : 1500,
            +6 : h'20180220'
          },
          {
            +4 : 1600,
            +6 : h'20180222'
          },
          {
            +4 : 1700,
            +6 : h'20140806',
            +2 : ["ntp", "timezone-name", "dns-udp-tcp-port"]
          },
          {
            +4 : 2200,
            +6 : h'20180313'
          },
          {
            +4 : 1005100,
            +6 : h'20190723',
            +2 : ["ftp", "coap", "scheduled"]
          }
        ],
        +1 : [
          {
            +2 : 1100,
            +4 : h'20180220'
          },
          {
            +2 : 1150,
            +4 : h'20130715'
          }
        ]
      }
    ],
    +30 : [
      {
        +2 : 1,
        +1 : [1]
      }
    ],
    +5 : [
      {
        +1 : "unified",
        +2 : [1]
      }
    ],
    +4 : h'9D373F629E20'
  }
}

The mandatory namespace field in the original ietf-yang-library, useless for CoREconf, is the main contributor of this increase in size. Assuming that a real device have at least 5 time more YANG modules, we can estimate that the non compact version of the YANG library will be around 3 to 4 kB, the compact version will be slightly less than 1kB.

Can we archive the same result with a deviation module instead of a complete module replacement?

Regards
Michel

From: Andy Bierman <andy@yumaworks.com>
Sent: 22 juillet 2019 20:33
To: Michel Veillette <Michel.Veillette@trilliant.com>
Cc: Carsten Bormann <cabo@tzi.org>
Subject: Re: [core] The CORE WG has placed draft-veillette-core-yang-library in state "Call For Adoption By WG Issued"

Hi,

I don't think it is needed because the client is supposed to know the SID mappings outside of YANG library.
This library is likely to be very static on a YoT device. Maybe changing once per firmware upgrade.
It does not really need optimized retrieval.

I prefer to keep the models the same between NC/RC and CORECONF.
The YANG to CBOR solution should include ways to make the message encoding more efficient.
That way, the same application logic can use whatever protocol operations are needed, instead of special CORECONF models.


Andy


On Mon, Jul 22, 2019 at 5:23 PM Michel Veillette <Michel.Veillette@trilliant.com<mailto:Michel.Veillette@trilliant.com>> wrote:
Hi Andy

About “draft-veillette-core-yang-library”, should we postpone the working group adoption of this draft to get more time to work on a different solution?

I raising this topic because the current CoMI draft (https://tools.ietf.org/html/draft-ietf-core-comi-07#section-6<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-ietf-core-comi-07%23section-6&data=02%7C01%7C%7C2489ae00202046b470fc08d70f05624c%7C4f6fbd130dfb415085c3d43260c04309%7C0%7C0%7C636994388123365593&sdata=UF0b3Tg6AFTojtId%2BfWjqzwS06UmnFD2TBa9%2B%2Ffkr3o%3D&reserved=0>) have a mandatory reference to it. We either need to change the content of CoMI or commit to bring ietf-constrained-yang-library to life.

Regards,
Michel

From: Michel Veillette
Sent: 15 juillet 2019 10:37
To: Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>; IETF Secretariat <ietf-secretariat-reply@ietf.org<mailto:ietf-secretariat-reply@ietf.org>>
Cc: draft-veillette-core-yang-library@ietf.org<mailto:draft-veillette-core-yang-library@ietf.org>; core-chairs@ietf.org<mailto:core-chairs@ietf.org>; Core <core@ietf.org<mailto:core@ietf.org>>
Subject: RE: [core] The CORE WG has placed draft-veillette-core-yang-library in state "Call For Adoption By WG Issued"

Hi Andy

I effectively see some values in supporting the module names.
However, these names should be optional leaves and not mandatory keys.
Simply augmenting the existing “ietf-yang-library” will increase its size, which makes this solution even less friendly to constrained devices and networks.

Hope to see you in MTL to discuss these changes,
Michel

From: Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Sent: 12 juillet 2019 17:16
To: IETF Secretariat <ietf-secretariat-reply@ietf.org<mailto:ietf-secretariat-reply@ietf.org>>
Cc: draft-veillette-core-yang-library@ietf.org<mailto:draft-veillette-core-yang-library@ietf.org>; core-chairs@ietf.org<mailto:core-chairs@ietf.org>; Core <core@ietf.org<mailto:core@ietf.org>>
Subject: Re: [core] The CORE WG has placed draft-veillette-core-yang-library in state "Call For Adoption By WG Issued"



On Thu, Jul 11, 2019 at 8:32 AM IETF Secretariat <ietf-secretariat-reply@ietf.org<mailto:ietf-secretariat-reply@ietf.org>> wrote:

The CORE WG has placed draft-veillette-core-yang-library in state
Call For Adoption By WG Issued (entered by Carsten Bormann)

The document is available at
https://datatracker.ietf.org/doc/draft-veillette-core-yang-library/<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-veillette-core-yang-library%2F&data=02%7C01%7C%7C2489ae00202046b470fc08d70f05624c%7C4f6fbd130dfb415085c3d43260c04309%7C0%7C0%7C636994388123365593&sdata=r0Q%2F%2BiyhhWFRFeGUI0n0IXUVjk9m%2BcXSxyQfvDGtSUs%3D&reserved=0>


I do not know if there is a clear problem statement presented and agreed upon by the CORE WG yet.
The YANG Library (RFC 8525) is used by a server to provide a client with details about the YANG modules
that are implemented in the server.

The draft proposed for adoption is a cut-and-paste-and-replace version of this RFC.
The strings used as list keys (e.g., /yang-library/module/name) are replaced by SID values.
Other key leafs such as /yang-library/schema/name are replaced by int8 leafs instead of strings.

IMO there are better solution approaches, considering that this data structure will be
relatively static, and there is a caching mechanism built into RFC 8525 to reduce
retrieval of the entire YANG library.

It does not seem realistic that a server would have only SIDs installed and no way to get the module names.
This is a short list, unlike the list of YANG data nodes. So it should be OK to simply augment the existing module
with SID values.  If the list key replacements are really needed, then a deviation module could be used by CORECONF
(e.g. deviate replace {type-stmt}) instead of a replacement module.

I agree it will be important for a CORECONF client to determine the YANG library details for each server.
This could be offline data or directly retrievable from the server. The solution need to be resolved by the WG.
I support the problem statement by not this solution.


Andy



Comment:
Till 2019-07-18

_______________________________________________
core mailing list
core@ietf.org<mailto:core@ietf.org>
https://www.ietf.org/mailman/listinfo/core<https://can01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Fcore&data=02%7C01%7C%7C2489ae00202046b470fc08d70f05624c%7C4f6fbd130dfb415085c3d43260c04309%7C0%7C0%7C636994388123375588&sdata=bDB3hCRSWLR%2BTWigUMmLlTSndkumQc469l46HjE%2BgPI%3D&reserved=0>