Re: [core] progressing ietf-core-yang-cbor and ietf-core-sid

Andy Bierman <andy@yumaworks.com> Sun, 19 January 2020 05:37 UTC

Return-Path: <andy@yumaworks.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 4F594120059 for <core@ietfa.amsl.com>; Sat, 18 Jan 2020 21:37:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.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 Ig6O6Tj2VyWs for <core@ietfa.amsl.com>; Sat, 18 Jan 2020 21:37:03 -0800 (PST)
Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 816F012004C for <core@ietf.org>; Sat, 18 Jan 2020 21:37:02 -0800 (PST)
Received: by mail-lf1-x134.google.com with SMTP id l18so21433148lfc.1 for <core@ietf.org>; Sat, 18 Jan 2020 21:37:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=IaUXtPe34MDzoAdRkwo6oKv1w2aouieF+XgLrBhAc0g=; b=wPsLPMdVFxDP8bitTlhTgqwm14mtRtHS1Cnf3Q5oarGKl4AbNOuveQeaG+iIuKghjw mQAwhhn+OUaBJqnZI5wOyfNCKtut4xEZhmrEfAhteNfdQCAlaLsn0Y8l2YRQRbjsFNlw dpkrjZEUFXZ/5meBVyx9WpAyKEYDMN5y3QNI08O+1yBImhFhlA50DoaWDNarZ4kroYVc gYGqCmiysBloaCk3K2njM4MkgmpC5JWjNJhQWSpfcGzC1v0NYli4dHl6IH+vSfsc1m5g u/n/f7PsPsVUGxapuoc7z5ScQvyRyz1M8lO8budqqGOsvZ7GP9E8PO0tw2CL7ks/DgFG ygUg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=IaUXtPe34MDzoAdRkwo6oKv1w2aouieF+XgLrBhAc0g=; b=AToMn9UzkQfF1DXDa4+q2WgxdyXFs1wSW7sz2ONBl9a6QrHkViWleHaat4N53Rk255 RZuOiXjpaAUnfDbzMYAjqfydRddnRKZ95F4uwN3VRyZA3jOXC2r7lFbUsgstgnsHoaSD HR9583UTG8IjOwFdPFgubNJxwqgIdf5faiAHnuqqLgh63nmDA6kQkIDOK2UZW9vPhYBK 7kkcfbppGadFB4B9rPxx0H1oN3oodfOgrI4Ou37v/LSbuw/FqXAZLPUm7+pnVNNzIg3C f5VkoYhmWsWeNGc3PpTWqgTR+dnTFVg70Q7o4u2KUHcGT91H1vPTY+bfF7VQgbFVMIlH YH5g==
X-Gm-Message-State: APjAAAXCk8DMaEfSTC0tz8MiXPWLxDn9tNql9xpyTBMkJlaeH1tvGEOB YufgYcXVts9U0tuKOlktlO9rAN6THXixbK0UXBTTwwvdajM=
X-Google-Smtp-Source: APXvYqxQhgxYcKr6rgMXiZymHbEPEpBlUpydA6ncTj3o9V7cTjQuAVtIxOLRKzOWza7N0NPPKopTySulTi4+GfBXuGk=
X-Received: by 2002:a19:48c5:: with SMTP id v188mr10059741lfa.100.1579412220638; Sat, 18 Jan 2020 21:37:00 -0800 (PST)
MIME-Version: 1.0
References: <29380.1565102380@localhost> <BL0PR06MB50428065032ECC2AB3345F619AD70@BL0PR06MB5042.namprd06.prod.outlook.com> <7505.1565633977@localhost> <BL0PR06MB50424C618A704460E4A8F8D99AA90@BL0PR06MB5042.namprd06.prod.outlook.com> <18990.1577231446@localhost> <CAJFkdRyWOfCb4U09rEJ-ZMR3GUuk-rmQ+f3Fs164Mxs8qkeVuw@mail.gmail.com> <22612.1578626081@localhost> <CAJFkdRztFUxdGcdvtTgB=9c-e_BwDAgLTmVPJ+OB8-dgs1sGog@mail.gmail.com> <15754.1578789013@localhost> <CAJFkdRy_3pC37ZxzhTmzqRgWjwDvEFTuhu5Z8+_ktaJgoeOGfg@mail.gmail.com> <6025.1578939111@localhost> <F67A7C80-0955-4836-9B84-66CB52AB6FD9@tzi.org> <26398.1579112884@localhost> <0805B57C-3DCB-4601-976C-2D51CE812312@tzi.org> <14603.1579125396@localhost> <CFF6555D-85EF-42CB-B773-17116F9CC554@tzi.org> <18568.1579133839@localhost> <CABCOCHRJ6-YUSn=MXGMtJT5tK3m9uR3U1K2xYd2UgW2MYkv6ig@mail.gmail.com> <CAJFkdRy8tDbYnnyr-mCer-Bip6s7pcXyGQPmo+nO8zRavSTm1w@mail.gmail.com> <CABCOCHRXH4AqYh6y9wVtCdA8T01sG7tAXmhzwzAk3QV9OjLonA@mail.gmail.com> <5C3B4919-5513-4342-888D-998A11366D36@tzi.org>
In-Reply-To: <5C3B4919-5513-4342-888D-998A11366D36@tzi.org>
From: Andy Bierman <andy@yumaworks.com>
Date: Sat, 18 Jan 2020 21:36:49 -0800
Message-ID: <CABCOCHQy71hMB+NkZZw__Kkov8n-MsqEV3O4pEx5K_DsAnQUDw@mail.gmail.com>
To: Carsten Bormann <cabo@tzi.org>
Cc: Ivaylo Petrov <ivaylo@ackl.io>, Core <core@ietf.org>, Alexander Pelov <alexander@ackl.io>
Content-Type: multipart/alternative; boundary="0000000000005d8c6f059c779058"
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/ojoTGMyrVEquCMeeymaTvscTsF4>
Subject: Re: [core] progressing ietf-core-yang-cbor and ietf-core-sid
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: Sun, 19 Jan 2020 05:37:08 -0000

On Thu, Jan 16, 2020 at 9:47 AM Carsten Bormann <cabo@tzi.org> wrote:

> On 2020-01-16, at 13:50, Andy Bierman <andy@yumaworks.com> wrote:
> >
> > There is a significant amount of metadata needed to generate a SID file,
> > starting with all the previous YANG revisions or SID files, and when/if
> > the SID files have been reset vs. updated with preserved numbers.
>
> Well, specifically, the current YANG module and the previous SID file; not
> the entire history of the universe.
>
> The need for the previous SID file means that there needs to be a single
> lineage; SID files cannot be independently progressed.  This calls for
> central entity (or a blockchain :-).
> What we need to define unambiguously is who that entity is.
> One we are at the IANA, the Designated Expert (DE) can play this role.
> But we need to define the process leading up to this.
> (Yes, that process will evolve, and we probably also need to allow
> exceptions.
> But there must be strong guide rails that work for the vast majority of
> cases.)
>
> Adding a version number to the SID file could indeed help with
> accidents/disasters.
> But it could also lead to people thinking they can get away with
> concurrent lineages; thinking that version numbers will fix any fallout.
> That would be a disaster on its own, most likely leading to permanent
> universe splits.
> So I’m not so sure we want to open that Pandora’s box.
>
>

We already opened Pandora's box by attempting to create a 1-flat-number
globally unique, multi-module,
multi-owner object identifier. I think YANG is quite different than the MAC
address example of success
in this endeavour because YANG modules need the numbers assigned in the
development phase,
not the manufacturing phase.

YANG has many features that make it easier on the writer and harder on the
tool maker,
such as no order dependencies, but is has some guardrails. No matter how
the writer may
possibly alter or refactor a YANG module, nothing unintentional can change
the YANG identifier for
any defined data node.  SID has no such guardrails.

I think there is a practical solution for deployment, which does not
require the use of the
centrally maintained SID files, which is not realistic for 4 reasons:
  - no way to apply changes to an incorrect SID file (without a
sid-file-identifier)
  - no way for vendors to apply deviations on any YANG modules, e,.g
deviation { not-supported; }
  - the SID file generation depends on the specific revisions of all
modules imported
    and submodules included by the target YANG module
  - vendors are already failing to deploy YANG modules from a central
source model.
    The NETCONF and RESTCONF protocols have robust mechanisms to discover
and
    retrieve the actual YANG files used by the server, and vendors rely on
this feature.
    Some vendors need model branching and other complexity that make SID
assignment even harder
    (see
https://tools.ietf.org/html/draft-ietf-netmod-yang-versioning-reqs-02)

CORECONF (and SID in general) needs a SID file retrieval mechanism.
Perhaps based on YANG Data Instance Files
https://tools.ietf.org/html/draft-ietf-netmod-yang-instance-file-format-06
A server will make the URI of this resource known somehow, which can be
used if needed,
before a client starts using SIDs.

In addition, or instead of listing YANG modules, the data is SID files,
maybe 1 super-SID-file JSON object.
It is not realistic that a client will be able to use all global SID files
based on the YANG module name
and revision date, especially in the development phase. The IANA SID file
may be useful after the YANG
module is very stable.

More solution details:
  - The WG or vendor can maintain an informal public archive of SID files.
  - The YangModels repo update process should include SID files.
https://github.com/YangModels/yang
  - Vendors still need the public SID file for the starting point, or maybe
use it unchanged
  - The SID files need <CODE BEGINS> support and probably some tool changes
in the ID-submission process
  - IANA will only archive the RFC version, just like YANG modules.



Grüße, Carsten
>


Andy