Re: [netmod] [Netconf] Alternative YANG library structure for 7895bis
Andy Bierman <andy@yumaworks.com> Wed, 15 November 2017 18:29 UTC
Return-Path: <andy@yumaworks.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB051126C22 for <netmod@ietfa.amsl.com>; Wed, 15 Nov 2017 10:29:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 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_LOW=-0.7, 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 SNrhGmAi07ig for <netmod@ietfa.amsl.com>; Wed, 15 Nov 2017 10:29:37 -0800 (PST)
Received: from mail-lf0-x22d.google.com (mail-lf0-x22d.google.com [IPv6:2a00:1450:4010:c07::22d]) (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 4AF3B1200B9 for <netmod@ietf.org>; Wed, 15 Nov 2017 10:29:36 -0800 (PST)
Received: by mail-lf0-x22d.google.com with SMTP id 73so13023401lfu.10 for <netmod@ietf.org>; Wed, 15 Nov 2017 10:29:36 -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:from:date:message-id:subject:to :cc; bh=1xvxlbh0LejcuvE3uv+GV6G5ZCI4c7ItKhIw0zta1Oc=; b=hSvFC9RoVzwM3MZrtLohCTT9DT7ThT6sbKekU03DtClksT9jK98U27foh5JFBmxMPP S2XLu7ls3hSFY4kscUekwJzt1HqlR5DNofBldb1djtPNQJeTGlxiOsh/L1a7MNa6ooly v4ZWs527gPqPIkUDIkGPx6gu2x5QS57Lln7aWOGMUgMP54gSaVDLLirszDXxA2uRezUB 38YpKLeb+oqyzhWsxU0lJqON5G4Q4LSfnzbvU0a6DdEDniPkWLm3m/4ufoH/iV/G1v7D Ks35+Ml2t688trLKbYTqjp1n7o/iK6AjYo7Oh8iBDTtFzTvL6rSH9jZTkz1Pyd5r5via Z3bQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=1xvxlbh0LejcuvE3uv+GV6G5ZCI4c7ItKhIw0zta1Oc=; b=aTAbJVu0rqemwwTR1TodNH3hLHWki+U5F5GDvJavtxsC+sQGXxd4inkOyQlQ+bxgSM rda2VZz3euHhrvd9S4Fxd5y7SsbCdig9ni1EEVMt/S2/uqASnXeF/lING2QqSrDm0dPF fICFwyUCB4D28x265IHJWSRRpeCkOmwNmsfaCFzueMMobMKDZKgqq8wSe/WhKSwPhRId 9Y51UFg6FAMIvSLg7hgB716NpxFkRp7erH1J+wpYCqrJEYXLonhJZrKgIo6+7dnPlNxb wtOwAgR6V0tk03+f5kFl2d0rBGzjbCVpK8dXBLzx++wMgsftJf1Z67bkOI0Kxg3669sR XydQ==
X-Gm-Message-State: AJaThX6ACLHHJ1zkUluaiDDehjHqZ/YCtqI3yAl39j+rKN5SkqQfih2D NACYpxv/GWqRA+fZsbc1Newz0EKQAqt5KQsRyIOKvA==
X-Google-Smtp-Source: AGs4zMYzQUt7yD5CxSeSEmhOqUEzHEzWkm5QrQ1Vxqg/EPxWfWL1e91x0BWKAqX0rNJrJhBnlc14ey83fstytjWe1XQ=
X-Received: by 10.25.162.140 with SMTP id l134mr5557760lfe.126.1510770574299; Wed, 15 Nov 2017 10:29:34 -0800 (PST)
MIME-Version: 1.0
Received: by 10.25.33.81 with HTTP; Wed, 15 Nov 2017 10:29:33 -0800 (PST)
In-Reply-To: <668cc9e1-c006-ce25-1473-549bc0b71a7d@cisco.com>
References: <e35fe233-af5b-58f2-35e4-901eb7eea454@cisco.com> <75e91419-9436-d1b7-29f6-02e3ff4ff86d@transpacket.com> <668cc9e1-c006-ce25-1473-549bc0b71a7d@cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 15 Nov 2017 10:29:33 -0800
Message-ID: <CABCOCHS_uni9xJxS=+1-R7LcA35WiVxLPAeFO=NgL+RnFDVc8w@mail.gmail.com>
To: Robert Wilton <rwilton@cisco.com>
Cc: Vladimir Vassilev <vladimir@transpacket.com>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="001a11411a4c6b371d055e09afe0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/vtC1HdhSVfeSocSSSKUgq8V6S_A>
Subject: Re: [netmod] [Netconf] Alternative YANG library structure for 7895bis
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Nov 2017 18:29:40 -0000
Hi, The per-datastore feature aspect of NMDA is a new and significant change to YANG. | | +--ro feature* [name] | | | +--ro name yang:yang-identifier | | | +--ro not-implemented-in* | | | -> /yang-library/datastore/name YANG does not define feature conformance at this granularity. I strongly object to this change to YANG conformance. A server can only advertise a YANG feature if it implemented on the entire server. This extra complexity is not present on the openconfig solution or requirements. Comparing any datastore to <operational> is much more complex (any may not be possible) if the features are different for a given module. I do not see how <operational> can be true superset of the conventional datastores if the features are different. Andy On Wed, Nov 15, 2017 at 9:29 AM, Robert Wilton <rwilton@cisco.com> wrote: > I don't think that this is really a good idea. You would end up returning > server metadata in addition to the configuration. > > I still think that the YANG library proposal is the best solution. > > Thanks, > Rob > > > On 16/11/2017 01:21, Vladimir Vassilev wrote: > > Hello, > > I have a proposal based on <get-data> that provides an elegant solution to > consider as a 3rd option. It is based on keeping exactly the same model as > in RFC 7895 and using <get-data> RPC to retrieve datastore specific > yang-library instance data in a similar way one would use <get-data> to > retrieve the datastore contents. In addition a top level config=false > container e.g. /datastores with list of supported datastores that does not > need to be part of the yang-library module: > > module: ietf-datastores > +--ro datastores > | +--ro datastore* [name] > | +--ro name identityref > > Vladimir > > On 11/09/2017 05:51 PM, Robert Wilton wrote: > > Hi, > > Given some of the feedback related to the complexity of the YANG library > bis structure, we have come up with two other possible structures for the > YANG library data: > > (1) A simplified structure to make YANG library meet the NMDA > requirements, but that is closer to the existing YANG library structure, > and arguably simpler. > (2) An enhanced version of the structure (1) above, that is also extended > to allow the structure to be reused for schema-mount via an augmentation. > > For reference, at the end of this email, I have also included the tree > diagram of the existing YANG library, and the current YANG library bis > draft (draft-ietf-netconf-rfc7895bis-02) version. > > Considering the two new YANG library structures: > > ------------------------ > > *(1) A simplified structure to make YANG library meet the NMDA > requirements, but that is closer to the existing YANG library structure.* > > The main changes are: > (i) Split "implemented modules" and "import-only-modules" into two > separate lists, making the most important list (i.e. implemented modules) > keyed by module name only and hence easier to reference. > (ii) Assume modules are implemented in all datastores by default (with a > "not-implemented-in" leaflist of datastores that a module is not > implemented in). > (iii) Assume that features are implemented in all datastores by default > (with a "not-implemented-in" leaflist of datastores that a feature is not > implemented in). > (iv) Deleted module-sets. > (v) Datastores are now just a list of supported datastores (that could > potentially be extended with further per datastore properties in future). > > Manually generated tree output for proposed YANG library: > > module: ietf-yang-library > +--ro yang-library > +--ro modules > | +--ro module* [name] > | | +--ro name yang:yang-identifier > | | +--ro revision? revision-identifier > | | +--ro schema? inet:uri > | | +--ro namespace inet:uri > | | +--ro submodule* [name] > | | | +--ro name yang:yang-identifier > | | | +--ro revision? yang:yang-identifier > | | | +--ro schema? inet:uri > | | +--ro not-implemented-in* > | | | -> /yang-library/datastore/name > | | +--ro feature* [name] > | | | +--ro name yang:yang-identifier > | | | +--ro not-implemented-in* > | | | -> /yang-library/datastore/name > | | +--ro deviation* > | | -> ../name > | | > | +--ro import-only-module* [name revision] > | +--ro name yang:yang-identifier > | +--ro revision union > | +--ro schema? inet:uri > | +--ro namespace inet:uri > | +--ro submodule* [name] > | +--ro name yang:yang-identifier > | +--ro revision yang:revision-identifier > | +--ro schema? inet:uri > +--ro datastore* [name] // Allows future per datastore properties. > | +--ro name identityref > +--ro checksum string > > ------------------------------ > > *(2) An enhanced version of the structure (1) above, that is extended to > allow the structure to be reused for schema-mount via an augmentation.* > > This is similar to the structure above, except that the "the set of > modules" is contained in a list of named schema (e.g. similar to the schema > mount draft), allowing this structure to be re-used for schema mount. > > Schema mount would be expected to augment yang-library to add in the > additional schema mount information. In the tree diagram, I have shown the > schema-mount mount-point augmentation, but not including namespaces yet. > > Every server would be required to provide at least one schema in the > schema list, and the primary schema for the device would always be given > the name "primary". > > module: ietf-yang-library > +--ro yang-library > +--ro schema* [name] > | +--ro name string > | +--ro checksum string > | +--ro module* [name] > | | +--ro name yang:yang-identifier > | | +--ro revision? yang:revision-identifier > | | +--ro schema? inet:uri > | | +--ro namespace inet:uri > | | +--ro submodule* [name] > | | | +--ro name yang:yang-identifier > | | | +--ro revision? yang:yang-identifier > | | | +--ro schema? inet:uri > | | +--ro not-implemented-in* > | | | -> /yang-library/datastore/name > | | +--ro feature* [name] > | | | +--ro name yang:yang-identifier > | | | +--ro not-implemented-in* > | | | -> /yang-library/datastore/name > | | +--ro deviation* > | | | -> ../name > | | +- schema-mount:mount-point* [label] > | | +--ro label yang:yang-identifier > | | +--ro config? boolean > | | +--ro (schema-ref) > | | +--:(inline) > | | | +--ro inline? empty > | | +--:(use-schema) > | | +--ro use-schema* [name] > | | +--ro name > | | | -> /yang-library/schema/name > | | +--ro parent-reference* yang:xpath1.0 > | | > | +--ro import-only-module* [name revision] > | +--ro name yang:yang-identifier > | +--ro revision union > | +--ro schema? inet:uri > | +--ro namespace inet:uri > | +--ro submodule* [name] > | +--ro name yang:yang-identifier > | +--ro revision yang:revision-identifier > | +--ro schema? inet:uri > +--ro datastore* [name] // Allows future per datastore properties. > | +--ro name identityref > +--ro checksum string > > Please can you provide comments on these structures, in particular: > > Is this version better (i.e. simpler) that the version currently in > draft-ietf-netconf-rfc7895bis-02 (below)? > > Should we try and make the structure extensible for schema-mount via > augmentation (i.e. version (2)), or is it better that schema-mount has its > own separate subtree? > > For reference only I have included the existing YANG library and YANG > library bis draft tree diagrams. > > Thanks, > Rob > > > ----------------------------- > > *** FOR REFERENCE ONLY *** > > (3) The current YANG library structure in YANG library bis > (draft-ietf-netconf-rfc7895bis-02) > > module: ietf-yang-library > +--ro yang-library > +--ro modules > | +--ro module* [id] > | +--ro id string > | +--ro name yang:yang-identifier > | +--ro revision? revision-identifier > | +--ro schema? inet:uri > | +--ro namespace inet:uri > | +--ro feature* yang:yang-identifier > | +--ro deviation* [module] > | | +--ro module -> ../../id > | +--ro conformance-type enumeration > | +--ro submodule* [name] > | +--ro name yang:yang-identifier > | +--ro revision? revision-identifier > | +--ro schema? inet:uri > +--ro module-sets > | +--ro module-set* [id] > | +--ro id string > | +--ro module* -> ../../../modules/module/id > +--ro datastores > | +--ro datastore* [name] > | +--ro name identityref > | +--ro module-set > | -> ../../../module-sets/module-set/id > +--ro checksum string > > ----------------------------- > > *** FOR REFERENCE ONLY *** > > (4) The current YANG library structure (RFC 7895) > > +--ro modules-state > +--ro module-set-id string > +--ro module* [name revision] > +--ro name yang:yang-identifier > +--ro revision union > +--ro schema? inet:uri > +--ro namespace inet:uri > +--ro feature* yang:yang-identifier > +--ro deviation* [name revision] > | +--ro name yang:yang-identifier > | +--ro revision union > +--ro conformance-type enumeration > +--ro submodule* [name revision] > +--ro name yang:yang-identifier > +--ro revision union > +--ro schema? inet:uri > > > > > _______________________________________________ > Netconf mailing listNetconf@ietf.orghttps://www.ietf.org/mailman/listinfo/netconf > > > > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod > >
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Martin Bjorklund
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Andy Bierman
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Andy Bierman
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Martin Bjorklund
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Martin Bjorklund
- Re: [netmod] [Netconf] Alternative YANG library s… Juergen Schoenwaelder
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Juergen Schoenwaelder
- Re: [netmod] [Netconf] Alternative YANG library s… Ladislav Lhotka
- Re: [netmod] [Netconf] Alternative YANG library s… Kent Watsen
- Re: [netmod] [Netconf] Alternative YANG library s… Andy Bierman
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Juergen Schoenwaelder
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Juergen Schoenwaelder
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Andy Bierman
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Juergen Schoenwaelder
- Re: [netmod] [Netconf] Alternative YANG library s… Martin Bjorklund
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Martin Bjorklund
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Juergen Schoenwaelder
- Re: [netmod] [Netconf] Alternative YANG library s… Vladimir Vassilev
- Re: [netmod] [Netconf] Alternative YANG library s… Robert Wilton
- Re: [netmod] [Netconf] Alternative YANG library s… Andy Bierman