Re: [core] CBOR Encoding of Data Modeled with YANG
Andy Bierman <andy@yumaworks.com> Tue, 08 December 2015 14:51 UTC
Return-Path: <andy@yumaworks.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 1DA371B2EB0 for <core@ietfa.amsl.com>; Tue, 8 Dec 2015 06:51:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level:
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=no
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 OF1ezjrdXBHX for <core@ietfa.amsl.com>; Tue, 8 Dec 2015 06:51:57 -0800 (PST)
Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (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 5263E1B2EA4 for <core@ietf.org>; Tue, 8 Dec 2015 06:51:56 -0800 (PST)
Received: by lfs39 with SMTP id 39so14212994lfs.3 for <core@ietf.org>; Tue, 08 Dec 2015 06:51:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=cJNUe6ujimAPD4hwhVhQYT7iN7pnTVE4tc11OJAIZzQ=; b=QRwzCHF0MO4DxZe3JNrSHDuLvNVeApYSJkTPPP0l15ZFbUI21Wr7z+Am7RJQc4DovY RlvCktAOPvsNg+yO/xKSTNWTTm8n9NkIjac/RfconfREyYYqOgbsQPKLPv06Ja9hFMPm th+2qxuBHb/QP0euqHxniZaHEEZo3kaLBtrmpfSl4B2t32G90ip+jWXHdkp+lXgtWNrh GRVcE6VgwjK/YI2JmVhNmvfzuuACTiHatcICrRsGCWcynskdmXQNtgER/9Q8ScDW5XXC oVR4CtNlIlIX9Q4qT8+l7UlHa+27PBkj8gJHVLXwk0sz1MqLd8GMTOImLph9xt5OnRmN /ygw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=cJNUe6ujimAPD4hwhVhQYT7iN7pnTVE4tc11OJAIZzQ=; b=OrVZ5EW5XBeyPQBUJRwbKFAbyrfFBOMIMzlxDrvFFz53PWfYADaOpcUqey7iBcMHUt Ho7wxXhT4GCGlKpHvoNqmomW1xDXBDnlv+SKJkvK1RwMvstSX/y6nMx+4So/mULP6cob YgqC1NC4LyV25kF2Zqqyz34ZnQs6ZmCtU9UHSDFS36U6rpqP8nL1/pN3huCuWkQWKV8b UKtEvve6HhAFfuk+ey2TSulPYRuT7TA97xXx4yYF+Ot8ars6s5wMAGJJcEo16Clyg3N3 SSJc0Ft7NOVapDuCCC7yKjDWjWsk1svdZJ5vf8bEcGwIdTcqEodv02qZhBzFy0KQPm47 sgFw==
X-Gm-Message-State: ALoCoQkoPujSTfym/V/1iLHISB2cyLzbEYQ2FxRTyOT7QvpZagYcDg6SZTI5eCb0iiNgLsf4D1aRXX/RWM0C3xXl5vB/JgR0OQ==
MIME-Version: 1.0
X-Received: by 10.25.18.92 with SMTP id h89mr1857477lfi.54.1449586314387; Tue, 08 Dec 2015 06:51:54 -0800 (PST)
Received: by 10.112.144.36 with HTTP; Tue, 8 Dec 2015 06:51:54 -0800 (PST)
In-Reply-To: <5666D6D4.3090006@ackl.io>
References: <20151207091044.GA59864@elstar.local> <BLUPR06MB1763ABFE8DE1E0E18F5F06A5FE090@BLUPR06MB1763.namprd06.prod.outlook.com> <20151207194229.GA61491@elstar.local> <BLUPR06MB1763B7F9EBF812C06DB04252FE090@BLUPR06MB1763.namprd06.prod.outlook.com> <20151207203826.GA61647@elstar.local> <BLUPR06MB1763E9AB0D1E4A0478D47C05FE090@BLUPR06MB1763.namprd06.prod.outlook.com> <20151208093350.GA62650@elstar.local> <5666AE1A.2040908@ackl.io> <20151208105530.GA62785@elstar.local> <64B950CF-863D-4440-AF7A-F8DF79C80409@telecom-bretagne.eu> <20151208115310.GA62928@elstar.local> <5666D6D4.3090006@ackl.io>
Date: Tue, 08 Dec 2015 06:51:54 -0800
Message-ID: <CABCOCHSWb1p65UjKNVnn4nPLMqhmLnGyuDSxYZYhT5S5HWjkSA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Alexander Pelov <a@ackl.io>
Content-Type: multipart/alternative; boundary="001a113fb2a457407e0526641d1a"
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/VMXuAHFzqvvJ10SkJZvMAdOocwI>
Cc: Core <core@ietf.org>
Subject: Re: [core] CBOR Encoding of Data Modeled with YANG
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, 08 Dec 2015 14:51:59 -0000
Hi, It is not clear to me how manual numbering of objects can be practical. Automatic numbering really means "write a program that does the manual numbering". YANG allows new nodes to be added anywhere. Only the relative order of nodes is maintained across revisions. Some nodes, like "augment" are not ordered at all and they can change order from 1 revision to the next. If a grouping in an external module is extended, then all "uses" of the grouping will be extended. If "import without revision" is used, then the specific external grouping is not even knowable and it is impossible to number the expanded "uses" correctly. If any module ever has more than 1024 objects, they will be ignored, since the numbering has a hard limit on objects per module. These seem like significant issues that cannot be ignored. Andy On Tue, Dec 8, 2015 at 5:10 AM, Alexander Pelov <a@ackl.io> wrote: > Dear Juergen, > > Thanks for the great remarks! Indeed, we have had lots of lengthy > discussions on the way structured data node IDs work, and there are several > ways to handle the situations you describe. > > We've reached a consensus to first detail the most demanded and least > controversial part - the YANG-CBOR mapping. Having structured data node IDs > allows for all existing designs to operate with this. > > I've provided you with the baseline algorithm, which covers one aspect of > the data node IDs. Structured data node IDs also allow for private module > ID space, and for non-managed modules (e.g. as the example you provide). > They also allow for having COMI-style hashes if you need them. The draft > which will describe the full operation will come shortly after the > YANG-CBOR draft. > > I think that it would be nice if you can contribute, as your remarks can > help clear the readability of the document and point on examples that must > be provided to cover the full spectrum of YANG use-cases. > > Best, > Alexander > > > Le 08/12/2015 12:53, Juergen Schoenwaelder a écrit : > >> On Tue, Dec 08, 2015 at 12:11:00PM +0100, Alexander Pelov wrote: >> >>> Dear Juergen, >>> >>> See inline. >>> >>> Le 8 déc. 2015 à 11:55, Juergen Schoenwaelder < >>>> j.schoenwaelder@jacobs-university.de> a écrit : >>>> >>>> On Tue, Dec 08, 2015 at 11:16:58AM +0100, Alexander Pelov wrote: >>>> >>>>> Dear Juergen, >>>>> >>>>> The algorithm is straightforward - assign in increasing order a data >>>>> node ID to each element on the schema tree. If you have a revision of a >>>>> module, you do the diff between the old and the new tree, and add the >>>>> new data node IDs at the end of the numbering. >>>>> >>>> So I need access to the complete revision history in order to determine >>>> data node IDs, correct? >>>> >>> It is not a must. You can manually indicate the node IDs of the newly >>> added elements. If you want a completely automated allocation of IDs, then >>> yes. The way I think this will work is - the publisher of a module will use >>> the automatic tool to generate the statements, which will then be indicated >>> in the YANG definition. >>> >>> I want independently developed systems to interoperate. In general, I >> can't assume modules have data node IDs (since a YANG module like lets >> say ietf-interfaces simply does not define them). >> >> What about imports without a revision (a nasty >>>> source of ambiguity)? >>>> >>>> There are two points in your question. The first is straightforward - >>> Data node IDs make sense within the scope of a module. Changing a module >>> does not affect the different modules which import it, with the possible >>> exception of groupings, where the classical data node ID algorithm >>> assignment kicks in (or manual ID assignment if the module author prefers >>> so). In any case, I would refer you to RFC 6020, section 5.1.1. where the >>> question of acceptability of imported modules is treated. >>> >> I am talking about imports _into_ a module that may be ambigous from >> the viewpoint of the importing module. Section 5.1.1 is about import >> by revision, my question was about what happens if there is an import >> without revision. We had lengthy discussions in NETMOD what this means >> for conformance and the outcome roughly is that this requires a >> runtime lookup to find out which module revisions have been used by a >> given implementation, that is, your algorithm would not only need the >> complete revision history but also runtime information in order to >> calculate unique data node ids. >> >> There are alternate designs possible in the solution space. I like to >> understand the trade-offs between them. >> >> /js >> >> > _______________________________________________ > core mailing list > core@ietf.org > https://www.ietf.org/mailman/listinfo/core >
- [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG weigengyu
- Re: [core] CBOR Encoding of Data Modeled with YANG Kepeng Li
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Alexander Pelov
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Alexander Pelov
- Re: [core] CBOR Encoding of Data Modeled with YANG Carsten Bormann
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Alexander Pelov
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Alexander Pelov
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Alexander Pelov
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Ladislav Lhotka
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Carsten Bormann
- Re: [core] CBOR Encoding of Data Modeled with YANG Ladislav Lhotka
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Ladislav Lhotka
- Re: [core] CBOR Encoding of Data Modeled with YANG Ladislav Lhotka
- Re: [core] CBOR Encoding of Data Modeled with YANG peter van der Stok
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG peter van der Stok
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Juergen Schoenwaelder
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Ladislav Lhotka
- Re: [core] CBOR Encoding of Data Modeled with YANG Carsten Bormann
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Ladislav Lhotka
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Ladislav Lhotka
- Re: [core] CBOR Encoding of Data Modeled with YANG Michel Veillette
- Re: [core] CBOR Encoding of Data Modeled with YANG Andy Bierman
- Re: [core] CBOR Encoding of Data Modeled with YANG peter van der Stok