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

Lou Berger <lberger@labn.net> Fri, 06 October 2017 13:01 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 C81811349AE for <yang-doctors@ietfa.amsl.com>; Fri, 6 Oct 2017 06:01:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.701
X-Spam-Level:
X-Spam-Status: No, score=-4.701 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, SPF_PASS=-0.001] autolearn=unavailable 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 i6bBnKmZHzRA for <yang-doctors@ietfa.amsl.com>; Fri, 6 Oct 2017 06:00:58 -0700 (PDT)
Received: from gproxy4-pub.mail.unifiedlayer.com (gproxy4-pub.mail.unifiedlayer.com [69.89.23.142]) (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 9328D1349B4 for <yang-doctors@ietf.org>; Fri, 6 Oct 2017 06:00:52 -0700 (PDT)
Received: from cmgw4 (unknown [10.0.90.85]) by gproxy4.mail.unifiedlayer.com (Postfix) with ESMTP id 3B267176089 for <yang-doctors@ietf.org>; Fri, 6 Oct 2017 07:00:49 -0600 (MDT)
Received: from box313.bluehost.com ([69.89.31.113]) by cmgw4 with id JD0l1w00A2SSUrH01D0oNs; Fri, 06 Oct 2017 07:00:49 -0600
X-Authority-Analysis: v=2.2 cv=OZLoNlbY c=1 sm=1 tr=0 a=h1BC+oY+fLhyFmnTBx92Jg==:117 a=h1BC+oY+fLhyFmnTBx92Jg==:17 a=IkcTkHD0fZMA:10 a=xqWC_Br6kY4A:10 a=02M-m0pO-4AA:10 a=2HyfR_PSAAAA:8 a=uX8G0ybSAAAA:8 a=48vgC7mUAAAA:8 a=j3Z76cjpAAAA:8 a=dtDrH-5Levq-ZukVAA8A:9 a=V25fX3KtGABqdy8Y:21 a=T-yt0G-x7IVT-zpb: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=tX9t6pPyOWvegW12kTwg0FdcR9/V13gV26mfXc9Jf1c=; b=VPnXh8CrfrZPWXxZ21i20e7rXM 5KAqYm4cgZiEGt9IYp7kWnMiinsq5TLtZZUxVaGOYWn0KHNWWRy0LJTtVThmlN45LvG8WF2+O4wYp vNjuOAPsZZJmexSHrQQhRz7PO;
Received: from pool-100-15-84-20.washdc.fios.verizon.net ([100.15.84.20]:41832 helo=[IPv6:::1]) by box313.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.87) (envelope-from <lberger@labn.net>) id 1e0SFA-002ESw-R2; Fri, 06 Oct 2017 07:00:44 -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> <5da176b2-594f-9144-56d0-2bc8afeefacb@labn.net> <c13eb8c5-4cae-05b5-4712-892141c223e1@cisco.com>
From: Lou Berger <lberger@labn.net>
Message-ID: <8f72465e-255c-f6d1-4f5f-865bd5ac6631@labn.net>
Date: Fri, 06 Oct 2017 09:00:41 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
MIME-Version: 1.0
In-Reply-To: <c13eb8c5-4cae-05b5-4712-892141c223e1@cisco.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Content-Language: en-US
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: 1e0SFA-002ESw-R2
X-Source:
X-Source-Args:
X-Source-Dir:
X-Source-Sender: pool-100-15-84-20.washdc.fios.verizon.net ([IPv6:::1]) [100.15.84.20]:41832
X-Source-Auth: lberger@labn.net
X-Email-Count: 5
X-Source-Cap: bGFibm1vYmk7bGFibm1vYmk7Ym94MzEzLmJsdWVob3N0LmNvbQ==
X-Local-Domain: yes
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/Jigm52HLQFpOe9uKxSIU3r38r4I>
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 13:01:01 -0000


On 10/6/2017 8:55 AM, Benoit Claise wrote:
> Lou,
>> Benoit,
>> 	
>> I agree this we should move this to netmod WG list.  Do you want to kick
>> it off or should I?
> Ok, I'll do it (most probably on Monday)
okay, I can send something to day that gives the 8049 specific context.

>> 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.
> Like what I proposed below? 
well, a variant of it. 

> This would be a new YANG statement.
>     <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
the difference is I'd change the name as well, e.g., ietf-l3vpn-svc-2

> Note also that draft-claise-semver was also an attempt at solving the
> semantic versioning issue.
>
Understood.

Lou
> Regards, Benoit
>> 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/>
>>>>>
>>>> .
>>>>
>> .
>>
>