Re: [yang-doctors] Review of draft-wu-l3sm-rfc8049bis?

Lou Berger <lberger@labn.net> Fri, 06 October 2017 12:48 UTC

Return-Path: <lberger@labn.net>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6355A1349B6 for <yang-doctors@ietfa.amsl.com>; Fri, 6 Oct 2017 05:48:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (768-bit key) header.d=labn.net
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 MmZFbGYZR5mk for <yang-doctors@ietfa.amsl.com>; Fri, 6 Oct 2017 05:48:19 -0700 (PDT)
Received: from gproxy9-pub.mail.unifiedlayer.com (gproxy9-pub.mail.unifiedlayer.com [69.89.20.122]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2FBA81349AE for <yang-doctors@ietf.org>; Fri, 6 Oct 2017 05:48:19 -0700 (PDT)
Received: from cmgw3 (unknown [10.0.90.84]) by gproxy9.mail.unifiedlayer.com (Postfix) with ESMTP id CF9D61E07B0 for <yang-doctors@ietf.org>; Fri, 6 Oct 2017 06:48:18 -0600 (MDT)
Received: from box313.bluehost.com ([69.89.31.113]) by cmgw3 with id JCoE1w00J2SSUrH01CoHVr; Fri, 06 Oct 2017 06:48:18 -0600
X-Authority-Analysis: v=2.2 cv=K/VSJ2eI c=1 sm=1 tr=0 a=h1BC+oY+fLhyFmnTBx92Jg==:117 a=h1BC+oY+fLhyFmnTBx92Jg==:17 a=IkcTkHD0fZMA:10 a=02M-m0pO-4AA:10 a=2HyfR_PSAAAA:8 a=uX8G0ybSAAAA:8 a=48vgC7mUAAAA:8 a=j3Z76cjpAAAA:8 a=3zg8wBWrFYUqPoOQyGQA:9 a=4flaZABZUG_lNeNA:21 a=r0mHz3BFoMT_-Z5m:21 a=QEXdDO2ut3YA:10 a=FvgKqOQ44qUA:10 a=JrSEOxZJtCQA:10 a=0zSPmqmPh2d1CTP8umvz:22 a=uNZJWEtFmtcl922f2nWS:22 a=w1C3t2QeGrPiZgrLijVG:22 a=9ZYBcOd_X9kS2t7VFny2:22
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=labn.net; s=default; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version :Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=G3s5KKwtRA5QMn7Qj5i+f3XKbunCeTMxSI0nvp58uzw=; b=d5LC2w61ZXPdgm73iPxBj7hoqs uMi1OjBnj1pFW5DEcKYUa++b4Bd0Ik+Zk10x0lVtwjuwxEwu7U4MO9u3Pn9p2lJc6WOre4Qgl6NMD k0HmEeuYt8fzK/eh/NoOAFgBY;
Received: from pool-100-15-84-20.washdc.fios.verizon.net ([100.15.84.20]:41670 helo=fs2.dc.labn.net) by box313.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.87) (envelope-from <lberger@labn.net>) id 1e0S34-002CKb-Ds; Fri, 06 Oct 2017 06:48:14 -0600
To: Benoit Claise <bclaise@cisco.com>, Jan Lindblad <janl@tail-f.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Cc: Adrian Farrel <adrian@olddog.co.uk>, YANG Doctors <yang-doctors@ietf.org>, draft-wu-l3sm-rfc8049bis.all@ietf.org, "Joe Clarke (jclarke)" <jclarke@cisco.com>
References: <262fdd36-5213-f716-016a-02442c427a0a@labn.net> <EA5D631C-818D-4F84-83C9-26B8A2D73A70@tail-f.com> <196ce82f-2bc3-18c5-4232-2a874efb5062@labn.net> <50B59D11-E865-4025-AAFA-7E2505B540B9@tail-f.com> <20171005140709.xdzqbhyanhpzkyzi@elstar.local> <015901d33de8$083822c0$18a86840$@olddog.co.uk> <20171005161039.rgxdyqlzkg7a4pqn@elstar.local> <5CA105C4-E0DA-4DF0-9001-E47D3C7514BA@tail-f.com> <6887e486-5a02-ddd2-925a-a821872b6a31@cisco.com>
From: Lou Berger <lberger@labn.net>
Message-ID: <5da176b2-594f-9144-56d0-2bc8afeefacb@labn.net>
Date: Fri, 06 Oct 2017 08:48:12 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <6887e486-5a02-ddd2-925a-a821872b6a31@cisco.com>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - box313.bluehost.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - labn.net
X-BWhitelist: no
X-Source-IP: 100.15.84.20
X-Exim-ID: 1e0S34-002CKb-Ds
X-Source:
X-Source-Args:
X-Source-Dir:
X-Source-Sender: pool-100-15-84-20.washdc.fios.verizon.net (fs2.dc.labn.net) [100.15.84.20]:41670
X-Source-Auth: lberger@labn.net
X-Email-Count: 7
X-Source-Cap: bGFibm1vYmk7bGFibm1vYmk7Ym94MzEzLmJsdWVob3N0LmNvbQ==
X-Local-Domain: yes
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/aNhUTTa4eTflPvV1GeA3fgBfSHI>
Subject: Re: [yang-doctors] Review of draft-wu-l3sm-rfc8049bis?
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Oct 2017 12:48:21 -0000

Benoit,
	
I agree this we should move this to netmod WG list.  Do you want to kick
it off or should I?

Another alternative that doesn't modify existing versioning rules is to
(a) rename the module and (b) add the "obsolete" statement to indicate
that the -N version replaces the N-1 version.

Lou


On 10/06/2017 08:40 AM, Benoit Claise wrote:
> Dear all,
> 
> The big problem: RFC8049 is broken
> The small problem: trying to maintain backward compatibility.
> 
> draft-wu-l3sm-rfc8049bis has rightly focused on the big problem.
> 
> As I mentioned in the past (see "semver.org comparison of two YANG
> modules" email in NETMOD), I believe the IETF will have to change its
> way of working in terms of backward compatibility. See also the email
> "ietf-routing or ietf-routing-2? module naming convention for NMDA
> transition. Re: [netmod] upcoming adoptions" in NETMOD. The lack of
> responses might be perceived as the IETF community not being ready for
> this discussion.
> 
> The point is that we need, in an automatic way, to make the link between
> the YANG module in RFC8049 and the YANG module in
> draft-wu-l3sm-rfc8049bis, or any non backward compatible YANG module.
> 
> Two solutions:
> 1. We keep the same module name and express that the YANG module in
> draft-wu-l3sm-rfc8049bis is not backward compatible with the RFC8049
> one. This is the openconfig way. See draft-clacla-netmod-model-catalog
> 
>       // extension statements
>          extension openconfig-version {
>            argument "semver" {
>              yin-element false;
>            }
>            description
>              "The OpenConfig version number for the module. This is
>              expressed as a semantic version number of the form:
>                x.y.z
>               where:
>                * x corresponds to the major version,
>                * y corresponds to a minor version,
>                * z corresponds to a patch version.
>              This version corresponds to the model file within which it is
>              defined, and does not cover the whole set of OpenConfig models.
>              Where several modules are used to build up a single block of
>              functionality, the same module version is specified across each
>              file that makes up the module.
> 
>              A major version number of 0 indicates that this model is still
>              in development (whether within OpenConfig or with industry
>              partners), and is potentially subject to change.
> 
>              Following a release of major version 1, all modules will
>              increment major revision number where backwards incompatible
>              changes to the model are made.
> 
>              The minor version is changed when features are added to the
>              model that do not impact current clients use of the model.
> 
>              The patch-level version is incremented when non-feature changes
>              (such as bugfixes or clarifications to human-readable
>              descriptions that do not impact model functionality) are made
>              that maintain backwards compatibility.
> 
>              The version number is stored in the module meta-data.";
>          }
> 
> 2. Or we have a different module name, let's say ietf-l3vpn-svc-2.
> Then ...  What? We create extension that will link the
> draft-wu-l3sm-rfc8049bis YANG module to the RFC8049 YANG module? Same
> principle as #1, but just more complex. Or we have a new YANG keyword?
> 
>     <CODE BEGINS>file "ietf-l3vpn-svc@2017-09-14.yang"
>     module ietf-l3vpn-svc-2 {
>      yang-version 1.1;
>      namespace "urn:ietf:params:xml:ns:yang:ietf-l3vpn-svc";
>      prefix l3vpn-svc;
>      obsolete ietf-l3vpn-svc@2017-01-2
> 
> Going from the draft-wu-l3sm-rfc8049bis YANG _module _to the
> draft-wu-l3sm-rfc8049bis _document _to lookup the IETF "obsolete" flag
> in order to understand that the RFC8049 YANG module is obsolete is not
> an automatic solution.
> Using the yangcatalog.org might be a solution, but this is just an
> offline trick.
> Using the YANG module description field might be interesting, but again
> this is not an automatic way:
> 
>      description
>       "This YANG module defines a generic service configuration
>        model for Layer 3 VPNs. This model is common across all
>        vendor implementations. This obsoletes the RFC8049 YANG 
>        module, ietf-l3vpn-svc@2017-01-2";
>      revision 2017-09-14 {
>       description
>        "First revision of RFC8049 <https://tools.ietf.org/html/rfc8049>.";
>       reference
>        "RFC xxxx: YANG Data Model for L3VPN Service Delivery";
> 
> 
> Maybe we should discuss this on the NETMOD mailing list in the end, for
> a longer term solution. Thoughts?
> However, let's not block the RFC8049bis and RFC8022bis publications at
> this point in time.
> 
> Regards, Benoit
> 
> 
>> Jürgen,
>>
>>> I do not understand the details why RFC 8049 is fundamentally
>>> broken.
>> The 8049 YANG model had broken XPATH expressions, so a compliant implementation was impossible. The qos rules architecture was at odds with other IETF models, e.g. the ACL model. I would actually call this out as a bigger problem than the former. Then, there were some minor description enhancements, added defaults and adjustments of types.
>>
>>> The abstract of the ID says:
>>>
>>>   If approved, this document obsoletes RFC 8049.  The changes are a
>>>   series of small fixes to the YANG module, and some clarifications to
>>>   the text.
>>>
>>> This does not read like fundamentally flawed and not implementable.
>> 8049 does not compile if you have a compiler that understands XPATH.
>>
>>> That said, I did react to Jan's statement that kind of indicated that
>>> these changes are generally OK - which I think they are not.
>>>
>>> If this document chooses to not follow the YANG update rules, I think
>>> this should be supported by a clear documentation why this is
>>> considered to be OK, somewhere in the document.
>> I never pretended the new module would be backwards compatible with 8049. The specific element I mentioned as being individually backwards compatible, is not according to section 11 in 7950. Thanks for clarifying that. 
>>
>> Maybe what we should do to respect section 11 rules, and give a clear message to implementors, is to give the module a new namespace and name.
>>
>> /jan
>>
>>
>>> On Thu, Oct 05, 2017 at 03:41:28PM +0100, Adrian Farrel wrote:
>>>> Pardon me for asking for some help getting this straight in my head.
>>>>
>>>> When we move from one version of an I-D to another, we don't pay any attention
>>>> to backward compatibility.
>>>>
>>>> When we revise an established module we must be backward compatible to allow the
>>>> new version to be inserted without damaging existing implementations, or we must
>>>> call the module something new to avoid confusion.
>>>>
>>>> When we have a module that cannot be implemented (because it is broken) and that
>>>> is being fixed through the obsoleting of an RFC, do we *really* care about
>>>> backward compatibility? If we do care, then the answer is simple: we revise the
>>>> module name, etc. If the issue isn't a big deal, we go ahead as written.
>>>>
>>>> Thanks,
>>>> Adrian
>>>>
>>>>> -----Original Message-----
>>>>> From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de]
>>>>> Sent: 05 October 2017 15:07
>>>>> To: Jan Lindblad
>>>>> Cc: Lou Berger; YANG Doctors; draft-wu-l3sm-rfc8049bis.all@ietf.org
>>>>> Subject: Re: [yang-doctors] Review of draft-wu-l3sm-rfc8049bis?
>>>>>
>>>>> On Thu, Oct 05, 2017 at 03:44:24PM +0200, Jan Lindblad wrote:
>>>>>> Lou,
>>>>>>
>>>>>>> What about the type changes (int32->int64,
>>>>>> This is a backwards compatible change according to both 6020 and 7950.
>>>>>>
>>>>>>> int->string)?
>>>>>> Even if a type change int->str might qualify as "backwards compatible"
>>>>> according to 6020 and 7950, the particular change at hand is not because of
>>>>> considerable changes in semantics.
>>>>>
>>>>> I think both type changes are problematic. RFC 7950 says:
>>>>>
>>>>>   o  A "type" statement may be replaced with another "type" statement
>>>>>      that does not change the syntax or semantics of the type.  For
>>>>>      example, an inline type definition may be replaced with a typedef,
>>>>>      but an int8 type cannot be replaced by an int16, since the syntax
>>>>>      would change.
>>>>>
>>>>> /js
>>>>>
>>>>>> /jan
>>>>>>
>>>>>>
>>>>>>> On 10/5/2017 9:27 AM, Jan Lindblad wrote:
>>>>>>>> Lou,
>>>>>>>>
>>>>>>>> I have reviewed the updated model from a YANG perspective. The old
>>>>> model contained syntax errors(!), so there was no way to (correctly) implement
>>>>> it. Hence I believe requirements on backwards compatibility should be treated
>>>>> lightly.
>>>>>>>> /jan
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>>   Has there been a review conducted or is there one planned for
>>>>>>>>> draft-wu-l3sm-rfc8049bis?  If not, I think one is needed.  I'm looking
>>>>>>>>> at it now as part of RtgDir review and I believe some non-backwards
>>>>>>>>> compatible changes in the defined yang module.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Lou
>>>>>>>>>
>>>>>>>>> PS for module diffs see:
>>>>>>>>>
>>>>>>>>> https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-wu-l3sm-
>>>>> rfc8049bis-05.txt&url1=rfc8049
>>>>>>>>> _______________________________________________
>>>>>>>>> yang-doctors mailing list
>>>>>>>>> yang-doctors@ietf.org
>>>>>>>>> https://www.ietf.org/mailman/listinfo/yang-doctors
>>>>>> _______________________________________________
>>>>>> yang-doctors mailing list
>>>>>> yang-doctors@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/yang-doctors
>>>>> --
>>>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>>>> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>> -- 
>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>>
>> .
>>
>