Re: [netmod] adoption poll for yang-versioning-reqs-02
Martin Bjorklund <mbj@tail-f.com> Wed, 20 March 2019 13:54 UTC
Return-Path: <mbj@tail-f.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 5427612787F for <netmod@ietfa.amsl.com>; Wed, 20 Mar 2019 06:54:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=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 kLD3-1mVKuJ0 for <netmod@ietfa.amsl.com>; Wed, 20 Mar 2019 06:54:42 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 9F3D112782C for <netmod@ietf.org>; Wed, 20 Mar 2019 06:54:41 -0700 (PDT)
Received: from localhost (h-4-215.A165.priv.bahnhof.se [158.174.4.215]) by mail.tail-f.com (Postfix) with ESMTPSA id D26171AE039A; Wed, 20 Mar 2019 14:54:39 +0100 (CET)
Date: Wed, 20 Mar 2019 14:54:39 +0100
Message-Id: <20190320.145439.1107389062091531440.mbj@tail-f.com>
To: rwilton@cisco.com
Cc: kent+ietf@watsen.net, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <96f475459f6049bfa20c66412983f4a2@XCH-RCD-007.cisco.com>
References: <aee7d9770a2c4570a3185a1ebeef4c36@XCH-RCD-007.cisco.com> <20190320.083022.2046737837256499330.mbj@tail-f.com> <96f475459f6049bfa20c66412983f4a2@XCH-RCD-007.cisco.com>
X-Mailer: Mew version 6.7 on Emacs 25.2 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/uO7mz0OgrCt7ftUVTTz_SFM3xmo>
Subject: Re: [netmod] adoption poll for yang-versioning-reqs-02
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, 20 Mar 2019 13:54:45 -0000
"Rob Wilton (rwilton)" <rwilton@cisco.com> wrote: > Hi Martin, > > > -----Original Message----- > > From: Martin Bjorklund <mbj@tail-f.com> > > Sent: 20 March 2019 07:30 > > To: Rob Wilton (rwilton) <rwilton@cisco.com> > > Cc: kent+ietf@watsen.net; netmod@ietf.org > > Subject: Re: [netmod] adoption poll for yang-versioning-reqs-02 > > > > Hi, > > > > "Rob Wilton (rwilton)" <rwilton@cisco.com> wrote: > > > Hi Martin, > > > > > > Thanks for the review and comments. > > > > > > A couple of points: > > > > > > 1) Lots of models outside those published in SDOs are already not > > > following the RFC 7950 revision rules. > > > > Right, and I think that is ok. If vendors want to break backwards > > compatibility it > > is up to them. With the current rules you can have tool that detect > > this and flags > > it. You can then fix the problem or release the new NBC module > > anyway, but > > you have been warned. > > Customers will accept this or not. > > [RW] > Revision-dates don't help here, and are not sufficient to indicate the > true version history of a module when it is not chronologically > ordered. > > Vendors want a way to accurately communicate to clients how the module > is actually being changed, in a way that is easier for them to > understand. If I'm at 1.0.1M and see 1.0.2M it doesn't help me much. > > > I think that it is better to > > > have a versioning scheme that reflects how YANG models are actually > > > evolving rather than have all vendor and OC YANG modules either just > > > ignoring the rules, or using clever tricks that strictly conform with > > > the rules but go against the spirit of them (e.g. just publish an > > > entirely new set of YANG modules for each release). Also noting that > > > having a scheme that allows non-backwards-compatible changes does not > > > require that everyone uses them - IETF could continue to always > > > publish backwards compatible modules. The obvious alternative here is > > > that each vendor comes up with their own versioning extension and > > > ignores the RFC 7950 section 11 rules anyway, but I'm not sure how > > > that really helps client<->server interop. > > > > The client<->server interop will not magically work better if we allow > > NBC > > changes. > [RW] > It helps clients understand the nature of the changes. The draft we talk about does not mention anything about helping clients understand the diffs, BC or not. > I don't believe that vendors are making NBC changes to make client > lives harder, they are trying to fix bugs and make their software > better. I obviously agree that it would be better to put more effort > into producing higher quality models in the first place, but there > will always be mistakes, particularly for vendor models that have much > less peer review than YANG modules produced by SDOs. > > > > > > > 2) I don't understand how the RFC 7950 approach of "deprecate a buggy > > > node, and replace with a working node" really works in practice, > > > particularly for configuration data nodes where you have two clients > > > interacting with a server, one interacting with the old path, and > > > another using the new path. Perhaps there is a robust scheme that > > > works in all cases, but it isn't obvious to me. Historically, for CLI > > > we just translate the CLI from old to new format and then return the > > > new format when the running config is requested. But that will still > > > break an old client that doesn't understand how to read the new CLI, > > > even if the server supports them writing via the old CLI. > > > > > > Even if there is a workable solution for this simple case, I suspect > > > that there are many slightly more complicated cases that don't work > > > (e.g. rekeying a list, changing defaults, incompatible types). > > > > I fully agree. This is difficult in the general case. In the worst > > case you'll have to > > give up on backwards compatibility and only implement the new version > > of the > > module (I believe this is possible both with the current versioning > > rules, and with > > the proposed rules). > [RW] > Implementing a new module and not supporting the old to fix one leaf This is a strawman; I never recommended changing an entire module to fix one leaf. > has a massive impact: > - it breaks all clients using that module (regardless of whether they > were using the leaf) > - it forces updates to all modules that augment or depend on the old > module. > > Say we hypothetically decide that "link-up-down-trap-enable" in RFC > 8343 is wrong should be mandatory true. Is the right solution here > really to define a new "ietf-interfaces-2" YANG module and require all > 50 or so YANG modules that augment IETF interfaces to be updated? > > It seems that this would be a much more impactful change than allowing > an NBC change to that module, and documenting that as version 2.0.0. > > I am sure that if YANG allows NBC changes then some folks will use > them for purposes that they should not. But I also believe that those > same folk will make those same changes regardless of what an RFC > states. But I also think that many vendors will try and use NBC > changes as a way to make their models better, improve the quality of > YANG data models. > > > > > > > In short, I don't agree with the premise that the current YANG > > > versioning schema using revision dates is working just fine, and no > > > changes are needed. > > > > But this is not what the draft is about! There is nothing in the > > draft that talks > > about problems introduced by using the revision dates. > [RW] > > I think that "revision-date" and RFC 7950 section 11 module update > rules go hand in hand. > > If your objection is that we don't quite describe the problem clearly > enough then that can be fixed. > > My interpretation is that your objection is more fundamental than > that. Yes. > I.e. you don't think that we should be using semantic > versioning at all My objection is that I don't agree with the problem statement and I don't think that we should allow NBC in published modules. /martin > , and we should keep RFC 7950 section 11 rules and > revision dates for versioning YANG models. But I think that the > overwhelming evidence is that the current scheme does not work for > everyone, even if it might be sufficient for YANG modules produced in > the IETF. > > Thanks, > Rob > > > > > > > > /martin > > > > > > > > > > > > Thanks, > > > Rob > > > > > > > > > -----Original Message----- > > > From: netmod <netmod-bounces@ietf.org> On Behalf Of Martin Bjorklund > > > Sent: 19 March 2019 15:12 > > > To: kent+ietf@watsen.net > > > Cc: netmod@ietf.org > > > Subject: Re: [netmod] adoption poll for yang-versioning-reqs-02 > > > > > > Hi, > > > > > > I have read this document, and I do not think it should be adopted. > > > > > > I object to the idea that we should allow non-backwards-compatible > > > changes to published YANG modules. > > > > > > The draft motivates this idea with: > > > > > > we must recognize that many YANG > > > modules are actually generated YANG modules (for example, from > > > internal databases) > > > > > > I do not agree that we should change what we allow in published > > > modules b/c of this. > > > > > > It also motivates this idea with: > > > > > > The points made above lead to the logical conclusion that the > > > standardized YANG modules have to be perfect on day one (at least the > > > structure and meaning), which in turn might explain why IETF YANG > > > modules take so long to standardize. > > > > > > I disagree with this. First of all, we have already published > > > revision two of several YANG modules (ietf-inet-types, ietf-yang-type, > > > ietf-interfaces, ietf-ip, ietf-routing, ...), so the statement that > > > "standardized YANG modules have to be perfect on day one" is simply > > > not true. > > > > > > Second, I don't think the upgrade rules are the reason it takes a long > > > time to standardize IETF models (I think it has to do with the process > > > itself, including the fact that models get reviews from many different > > > people with different background.) [BTW, is it true that drafts with > > > YANG models take longer time from wg -00 to published RFC than other > > > drafts?] > > > > > > > > > This said, I think there are some important points that the draft > > > raises, and that I think we should continue to work on; specifically > > > 2.3, 2.5, 2.6, 2.7. But I don't think that these areas require > > > changes to the versioning scheme, and I think it is a mistake to > > > include these areas in this draft. > > > > > > Some comments on section 4, The Problem Statement: > > > > > > o Any non-backwards-compatible change of a definition requires > > > either a new module name or a new path. This has been found > > > costly to support in implementations, in particular on the client > > > side. > > > > > > Yes I agree there is a cost associated with this. But I have come > > > across vendor modules that make NBC changes w/o introducing a new > > > path, and this is also costly to handle. > > > > > > o Since non-backwards-compatible changes require either a new module > > > name or a new path, such changes will impact other modules that > > > import definitions. In fact, with the current module versioning > > > scheme other modules have to opt-in in order to use the new > > > version. This essentially leads to a ripple effect where a non- > > > backwards-compatible change of a core module causes updates on a > > > potentially large number of dependent modules. > > > > > > This is by design. We cannot have a situation where a legal > > > modification to a module leads to other modules becoming invalid. > > > > > > o YANG has a mechanism to mark definitions deprecated but it leaves > > > it open whether implementations are expected to implement > > > deprecated definitions and there is no way (other than trial and > > > error) for a client to find out whether deprecated definitions are > > > supported by a given implementation. > > > > > > As I wrote above, I agree that this is a problem that should be > > > solved. But this is not a motivation for changing YANG versioning. > > > > > > o YANG does not have a robust mechanism to document which data > > > definitions have changed and to provide guidance how > > > implementations should deal with the change. While it is possible > > > to have this described in general description statements, having > > > these details embedded in general description statements does not > > > make this information accessible to tools. > > > > > > This might also be worth exploring, but this is not a motivation for > > > changing YANG versioning. > > > > > > > > > > > > /martin > > > > > > > > > > > > Kent Watsen <kent+ietf@watsen.net> wrote: > > > > Seeing as how we all need to read this draft anyways, in preparation > > > > for our meeting in Prague, it seems like a good time for this poll. > > > > Thusly, this email begins a 1-week adoption poll for: > > > > > > > > > > > > https://tools.ietf.org/html/draft-verdt-netmod-yang-versioning-reqs- > > > > 02 > > > > <https://tools.ietf.org/html/draft-verdt-netmod-yang-versioning-reqs > > > > -0 > > > > 2> > > > > > > > > Please voice your support or objections before March 20. > > > > > > > > Note that this draft defines *requirements* and its intended status > > > > is "Informational." I believe that it is good for WGs to formalize > > > > requirements, even taking such drafts thru Last Call, in order to > > > > ensure consensus on the requirements. This is the "adoption" call, > > > > to ascertain if the WG agrees with that statement; if adopted, a > > > > separate "last call" will be issued to ensure to correctness of the > > > > draft's content. > > > > > > > > Kent (and Lou and Joel) > > > > > > > > > > > > > > _______________________________________________ > > > netmod mailing list > > > netmod@ietf.org > > > https://www.ietf.org/mailman/listinfo/netmod > > > >
- [netmod] adoption poll for yang-versioning-reqs-02 Kent Watsen
- Re: [netmod] adoption poll for yang-versioning-re… Balázs Lengyel
- Re: [netmod] adoption poll for yang-versioning-re… Joe Clarke
- Re: [netmod] adoption poll for yang-versioning-re… Rob Wilton (rwilton)
- Re: [netmod] adoption poll for yang-versioning-re… Reshad Rahman (rrahman)
- Re: [netmod] adoption poll for yang-versioning-re… Martin Bjorklund
- Re: [netmod] adoption poll for yang-versioning-re… Rob Wilton (rwilton)
- Re: [netmod] adoption poll for yang-versioning-re… Andy Bierman
- Re: [netmod] adoption poll for yang-versioning-re… Martin Bjorklund
- Re: [netmod] adoption poll for yang-versioning-re… Rob Wilton (rwilton)
- Re: [netmod] adoption poll for yang-versioning-re… Rob Wilton (rwilton)
- Re: [netmod] adoption poll for yang-versioning-re… Andy Bierman
- Re: [netmod] adoption poll for yang-versioning-re… Martin Bjorklund
- Re: [netmod] adoption poll for yang-versioning-re… Rob Wilton (rwilton)
- Re: [netmod] adoption poll for yang-versioning-re… Rob Wilton (rwilton)
- Re: [netmod] adoption poll for yang-versioning-re… Reshad Rahman (rrahman)
- Re: [netmod] adoption poll for yang-versioning-re… Kent Watsen
- Re: [netmod] adoption poll for yang-versioning-re… Andy Bierman
- Re: [netmod] adoption poll for yang-versioning-re… Kent Watsen
- Re: [netmod] adoption poll for yang-versioning-re… Lou Berger
- Re: [netmod] adoption poll for yang-versioning-re… Joel Jaeggli
- Re: [netmod] adoption poll for yang-versioning-re… Andy Bierman
- Re: [netmod] adoption poll for yang-versioning-re… Charles Eckel (eckelcu)
- Re: [netmod] adoption poll for yang-versioning-re… Kent Watsen
- Re: [netmod] adoption poll for yang-versioning-re… Martin Bjorklund
- Re: [netmod] adoption poll for yang-versioning-re… Andy Bierman
- Re: [netmod] adoption poll for yang-versioning-re… Reshad Rahman (rrahman)
- Re: [netmod] adoption poll for yang-versioning-re… Andy Bierman
- Re: [netmod] adoption poll for yang-versioning-re… Balázs Lengyel