Re: [netmod] initial comments on draft-rwilton-netmod-yang-packages
Andy Bierman <andy@yumaworks.com> Wed, 30 January 2019 15:17 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 9B80B130DF6 for <netmod@ietfa.amsl.com>; Wed, 30 Jan 2019 07:17:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.031
X-Spam-Level:
X-Spam-Status: No, score=-2.031 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, 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 Ze-ZJjm4WvzB for <netmod@ietfa.amsl.com>; Wed, 30 Jan 2019 07:17:01 -0800 (PST)
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (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 3783C12F1AB for <netmod@ietf.org>; Wed, 30 Jan 2019 07:17:01 -0800 (PST)
Received: by mail-lf1-x12a.google.com with SMTP id u18so17635993lff.10 for <netmod@ietf.org>; Wed, 30 Jan 2019 07:17:00 -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=jxttWrNpPiu0a+27Xob47oJrtKgEcaj+ayVh8x5CQyg=; b=WsuDn45M8uosPVEhybRXsSEG1EP+xUGtP+jFKI6+AliT7Wj/5Hzx2Q5bNHnptCIbzx y7eYNM7uZ6NUy6WiR9FBssMffaSpc8ek9vHhcfXfB0CGHJ3l/qutXXo/7ebzvifNYeC9 TucybGXfq/TdYlIHPLsDpD+5hTZNutWWeM6gFy+sxIsw4iiNqxHwFjkCFzDmbyYn48No KBtJ7C4+XB+B3Ye8ji7tYBX3ddnYxgmUKMKAL0IpP1uTJGRVR7SRdF2OIIMPJ7FjpJ7y 1kLL92iGKL3ZmNlfal0SkW1RDCcdYJpG+HO9MSoHh5oj11ZTxx8QmoHsli8uMzS6L5H0 cidw==
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=jxttWrNpPiu0a+27Xob47oJrtKgEcaj+ayVh8x5CQyg=; b=qrMwPc0ZIAPDgfwG7to9Z4LWyO0kSxfQ9Yu8f3dZpoIskt2i5fQGtMb6iiAnVuqbOT E8KA384fGeyxRAUEu3pVDsN9KjjWqy4u2Y6yZsA3RYVTEa0ifqVwgWb+BwtpxPTokdTw cfC9EFlBxbmVgEVL8V+YPaZSi0gZuPiX5c9xlhYj4YWJ19ymBM8RNBJ/fLbNuBsq41bQ t7c8ODqHO1oDsD0Lr5w3YAq3t55S7zs8YqfV/JNQkWXwCsK+Ds+sAe2GR1XC5t+BMJk/ Hj4m4FPG8KnqpGvLbyjuz9NJPWxUYkckTuUT61erC5FoQGVD2rqqCmcXp8VR8qPudX2l Ns3w==
X-Gm-Message-State: AJcUukcpC3TBC2NkwmRFRdBh5q3bPjHg0/SRBOzhFa6zladOWtK8cote 40ofx2Ipi8hYwKdyZcGtm8RoQ/SKYgOatlkAahAZpQ==
X-Google-Smtp-Source: ALg8bN4PNVA8/LX8qUWjUVPE+1myDUh9rQfEDSAmSC5iW18Uu0GF02m5vmUCpT88A6ekQcZNs/1oCF/udYxkYFcDgPg=
X-Received: by 2002:a19:d90c:: with SMTP id q12mr25307656lfg.24.1548861418961; Wed, 30 Jan 2019 07:16:58 -0800 (PST)
MIME-Version: 1.0
References: <DB7PR07MB397887BD6B69B474618FD1469B9A0@DB7PR07MB3978.eurprd07.prod.outlook.com> <98469d28-4d53-c5c5-6487-a873a289e073@cisco.com> <VI1PR07MB39818961D1CA989CD8E1A48A9B900@VI1PR07MB3981.eurprd07.prod.outlook.com> <CABCOCHS-2tJroT2AVF0zLSh7qz5tORe_yp2LkZLf8=AFj4oq2w@mail.gmail.com> <cd8690ad-1750-917f-d7c4-ba582922037d@cisco.com>
In-Reply-To: <cd8690ad-1750-917f-d7c4-ba582922037d@cisco.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 30 Jan 2019 07:16:47 -0800
Message-ID: <CABCOCHRZnHD2Q8jNuNpiSCEzhzFjNjAv3Ynpn7rmB_8CL+=OBg@mail.gmail.com>
To: Robert Wilton <rwilton@cisco.com>
Cc: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000af1c770580ae661a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/hQNbb5VfoRAKFcYB8qV9x4tZU54>
Subject: Re: [netmod] initial comments on draft-rwilton-netmod-yang-packages
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
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, 30 Jan 2019 15:17:06 -0000
On Wed, Jan 30, 2019 at 4:19 AM Robert Wilton <rwilton@cisco.com> wrote: > Hi Andy, > > Thanks for the comments. > On 30/01/2019 01:22, Andy Bierman wrote: > > Hi, > > I originally brought up this issue in July 2015 > https://datatracker.ietf.org/doc/draft-bierman-netmod-yang-package/ > > Yes. > > The solution I propose is different in the sense that it uses YANG > instance data to define YANG packages rather than new YANG keywords. I > believe that this should make it a lower cost solution to define and > implement. > > > I think yangvalidator.org has a better solution that does not change YANG conformance. Andy > > I don't think the WG ever agreed on the problem that needs to be solved, > and that is still the case. > > That wasn't quite my impression. I also think that folks were busy > focusing on other WG activity and didn't necessarily have the time to > concentrate on this. > > My draft was aiming on solving two broad problems: > > The main goals of YANG package definitions include, but are not > restricted to: > > o To act as a simplified YANG conformance mechanism. Rather than > conformance being performed against a set of individual YANG > module revisions, conformance could also be more simply stated in > terms of YANG packages, with a set modifications (e.g. additional > modules, deviations, or features). > > o To allow YANG datastore schema to be specified in a more concise > way rather than having to list all modules and revisions. YANG > package definitions can be defined in documents that can be > referenced by a URL rather than requiring explicit lists of > modules to be shared between client and server. Hence, a YANG > package must contain sufficient information to allow a client or > server to precisely construct the schema associated with the > package. > > > > > > In reality each server has 1 package -- its entire library. > > This doesn't apply to all servers. For a long time, as a vendor, we have > had separate packages that can be independently installed, and which extend > the management model to cover the new functionality. E.g. BNG > functionality could be in a separate, independently installable, package on > top of the base router functionality. > > For a Linux server, the manageability interface will depend on what > applications have been installed. > > > The SEMVER work shows > that vendors are treating platforms as independent release trains, and not > really > developing loadable packages. > > This depends on the vendor. The YANG versioning work is trying to find a > solution that works across the industry. I believe that the versioning > requirements are different for standards developed modules, vs industry > developed modules, vs vendor modules. > > > > I think YANG 1.2 improvements for conformance (e.g., YANG-redirects, > SEMVER import) > and the YANG Catalog can solve the module compatibility issues. It is > more of a documentation > problem than a standards problem. > > Having a standard YANG module that can be used to define packages is > something this is useful and should be standardized. I believe that this > is better than each vendor coming up with their own solution for this > problem. > > Thanks, > Rob > > > > > Andy > > > > > On Tue, Jan 29, 2019 at 4:55 PM Sterne, Jason (Nokia - CA/Ottawa) < > jason.sterne@nokia.com> wrote: > >> Thanks Rob. Please see inline. >> >> Jason >> >> >> >> *From:* Robert Wilton <rwilton@cisco.com> >> *Sent:* Thursday, January 24, 2019 1:16 PM >> *To:* Sterne, Jason (Nokia - CA/Ottawa) <jason.sterne@nokia.com>; >> netmod@ietf.org >> *Subject:* Re: initial comments on draft-rwilton-netmod-yang-packages >> >> >> >> Hi Jason, >> >> Thanks for the review and comments. >> >> I've put some responses inline ... >> >> On 24/01/2019 14:56, Sterne, Jason (Nokia - CA/Ottawa) wrote: >> >> Hi guys, >> >> >> >> I've gotten most of the way through the draft and have some initial >> comments. I haven't digested the section 10 open issues yet or the examples. >> >> >> >> Section 5 mentions the following: >> >> YANG library is augmented to allow servers to report the packages >> >> that they implement and to associate those packages back to >> >> particular datastore schema. >> >> >> >> Does the combination of this draft and rfc7895bis somehow allow the same >> package to be advertised in 2 different datastores, but with different >> deviations in each datastore? I'm thinking of a case, for example, where a >> package is fully supported in the running but the package minus a few >> modules (or parts of modules) is supported in the operational datastore. >> There seems to be a 1:1 relationship between package and rfc7895bis schema. >> >> So, the intention is no, not directly. >> >> My aim here is that <running> would implement package "foo", and >> <operational> would implement package "modified-foo". Package >> "modified-foo" would import package "foo" and also specify the set of >> modules that contain the deviations "foo". >> >> I didn't want a server to be able to see that I implement package "foo", >> but then I have all these deviations that change its behavior. Instead, it >> is really implementing a different package that is based on "foo". >> >> >> >> >> >> The packages draft doesn't include any specific leaf-list for deviations. >> Section 7.2 mentions that deviations could be expressed by including >> modules that happen to contain deviations. That seems a bit inconsistent >> with rfc7895bis that has a specific leaf-list of deviations (and NETCONF >> hello that specifically explicitly labels deviation modules). >> >> I'm conflicted on this one. I don't really like the deviation list in >> YANG library because I regard it as a duplicate source of information, and >> then there is a question of which source of data do you trust. E.g. do you >> process a deviation in a module that is not listed in the deviations module >> list? >> >> *[>>JTS: ] Good point. I suppose this issue applies today already. i.e. >> what if one of the modules advertised in the <hello> is a module of >> deviations (without having been referenced by another module as a deviation >> module).* >> >> >> >> >> >> Section 5.1 says the package must be referentially complete. I can see >> the advantages of that although wondering if that might limit flexibility >> of partitioning modules into packages. I could imagine use cases for >> dividing a large set of modules into a few packages that might rev >> independently but can still all work together (especially if they rev in a >> bc manner). But maybe that just starts to introduce too much complexity? >> >> Yes, having partial packages may be useful. Perhaps just adding a leaf >> to indicate whether a package is referentially complete could be the answer >> here. >> >> >> >> >> >> I didn't understand this part of section 5.1. Can you maybe illustrate >> with an example? >> >> The version/revision of a module listed in the package module list >> >> supercedes any version/revision of the module listed in a imported >> >> package module list. This allows a package to resolve any >> >> conflicting implemented module versions/revisions in imported >> >> packages. >> >> Probably best to see example B.3. in the appendix because it exactly >> illustrates this point. >> >> Basically: >> 1) Packages must explicitly list all versions of all modules they >> define/import. >> 2) If two imported packages define different versions of modules, then >> the package that is importing them needs a way to define which version to >> use. >> 3) A package needs a way to override the version of module specified in >> an imported package. >> >> *[>>JTS: ] Thx. That example does help. I suppose the designer of the >> package needs to carefully check that the version they select can be >> successfully used by all the modules in the package. * >> >> *I think there is a minor typo in example B.3. The example-3-pkg is >> importing "* *example-import-1" but I believe you meant "* *example-import-1-pkg" >> (and some for import-2).* >> >> >> >> It might be a good idea to add a parent-version to the package module (to >> allow tracking lineage of packages). >> >> Agreed, or maybe allowing a revision history like modules. Not sure >> which is better here. Packages could get a lot of updates, and a long >> revision history would not be helpful at all. >> >> *[>>JTS: ] I think a minimum of just specifying the direct parent is >> enough to build the full tree of lineage. We don't need a long history of N >> revisions.* >> >> >> >> >> >> I like the use of groupings. That allows a manager to use this as a >> building block to compose a model that has a list of packages. >> >> OK. >> >> >> >> >> >> Having a global list of mandatory features (vs having the mandatory >> feature a per-module list) means inventing the new <module-name>:<feature> >> format. Should we instead somehow put the mandatory features against each >> module of the package? >> >> Perhaps. My thinking here was to have the list of features high up and >> very easy to find/parse. >> >> >> >> >> >> The location leaf is a uri but then the description says it must be a url >> (where the model can be retrieved). I do like that the namespace is >> separate from the location, but maybe we should make location a url type? >> >> Yes, I was thinking that is should be a URL. >> >> >> >> >> >> Do we need a namespace for package names in the model? >> >> I had them in an earlier version, but I took them out, because I wasn't >> sure that they are really useful/required. >> >> Defining a format to make package names themselves globally unique might >> be sufficient. >> >> *[>>JTS: ] I'm OK with that. It is similar to how we're finding that it >> is useful that YANG module names are globally unique (i.e. by naming with >> ietf-xxxx or companyabc-xxx).* >> >> >> >> >> >> In 7.3 we only reference module-sets and not modules. So the grouping of >> modules into sets and packages must be the same? >> >> Not necessarily. >> >> I am trying to reuse the module-set definitions as much as possible (to >> avoid duplication). One issue here is that module-sets are combined then >> all the modules must not overlap, which doesn't make the mapping to >> module-sets quite so clean. >> >> >> >> >> >> A schema can only have a single package. I think that works but it means >> a server would advertise multiple schemas if it wants to support multiple >> packages. I'm not sure if there are some downsides to that (it just >> surprised me). >> >> My aim here was: >> - multiple packages are advertised in yang-library/packages >> - datastores only report that they "implement" one [top level] package >> version. [The package itself might import other packages.] >> >> If we do package selection, then for a given YANG client session, and the >> version of YANG library available/reported by that session, it would appear >> as if the server only implements one top level package for a datastore. >> Different clients choosing different versions would see slightly different >> output depending on which package version they had selected to use. >> >> Thanks again for the review and the comments! >> >> Rob >> >> >> >> >> >> >> >> Jason >> >> >> >> >> >> >> >> *From:* netmod <netmod-bounces@ietf.org> <netmod-bounces@ietf.org> *On >> Behalf Of *Robert Wilton >> *Sent:* Thursday, December 20, 2018 12:45 PM >> *To:* netmod@ietf.org >> *Subject:* [netmod] YANG Packages >> >> >> >> Hi, >> >> I've written up an ID for a potential solution for YANG packages using >> instance data: >> >> Abstract >> >> >> >> This document defines YANG packages, an organizational structure >> >> holding a set of related YANG modules, that can be used to simplify >> >> the conformance and sharing of YANG schema. It describes how YANG >> >> instance data documents are used to define YANG packages, and how the >> >> YANG library information published by a server can be augmented with >> >> additional packaging related information. >> >> https://datatracker.ietf.org/doc/draft-rwilton-netmod-yang-packages/ >> >> Potentially this work may be of use as part of the YANG versioning design >> team work. In addition, if the WG likes this approach of defining YANG >> packages, then it might also be useful to bind a schema to a YANG instance >> data document. >> >> Some questions for members of the WG: >> >> 1) Do members of the WG agree that YANG packages is something that needs >> to be solved? >> >> 2) Is the approach in this draft of defining these as instance data >> documents a good starting point? >> >> 3) This approach augments YANG library-bis, reusing module-sets, but not >> replacing the way that modules are reported in YANG library-bis. Is this >> the right approach? This approach tries to allow module-sets to be reused >> for both schema and packages, but the YANG library-bis rules for combining >> module-sets (i.e. no conflicts) may make this harder to really reuse the >> module-sets for both purposes. >> >> Of course, any other comments or feedback is welcome and appreciated. >> >> Thanks, >> Rob >> >> _______________________________________________ >> netmod mailing list >> netmod@ietf.org >> https://www.ietf.org/mailman/listinfo/netmod >> >
- [netmod] initial comments on draft-rwilton-netmod… Sterne, Jason (Nokia - CA/Ottawa)
- Re: [netmod] initial comments on draft-rwilton-ne… Robert Wilton
- Re: [netmod] initial comments on draft-rwilton-ne… Sterne, Jason (Nokia - CA/Ottawa)
- Re: [netmod] initial comments on draft-rwilton-ne… Andy Bierman
- Re: [netmod] initial comments on draft-rwilton-ne… Robert Wilton
- Re: [netmod] initial comments on draft-rwilton-ne… Andy Bierman
- Re: [netmod] initial comments on draft-rwilton-ne… Robert Wilton
- Re: [netmod] initial comments on draft-rwilton-ne… Andy Bierman
- Re: [netmod] initial comments on draft-rwilton-ne… Robert Wilton
- Re: [netmod] initial comments on draft-rwilton-ne… Andy Bierman
- Re: [netmod] initial comments on draft-rwilton-ne… Robert Wilton
- Re: [netmod] initial comments on draft-rwilton-ne… Andy Bierman
- Re: [netmod] initial comments on draft-rwilton-ne… Robert Wilton
- Re: [netmod] initial comments on draft-rwilton-ne… Andy Bierman