Re: [netmod] Deviations and augmentations
Robert Wilton <rwilton@cisco.com> Tue, 13 November 2018 15:54 UTC
Return-Path: <rwilton@cisco.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 0F8B6128CF2 for <netmod@ietfa.amsl.com>; Tue, 13 Nov 2018 07:54:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.97
X-Spam-Level:
X-Spam-Status: No, score=-14.97 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.47, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 RjIohTz1C_dc for <netmod@ietfa.amsl.com>; Tue, 13 Nov 2018 07:54:15 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C7155128A6E for <netmod@ietf.org>; Tue, 13 Nov 2018 07:54:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=30746; q=dns/txt; s=iport; t=1542124455; x=1543334055; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=8qDOgHj8qWfkEMKkan3EvIjs1kZZYW/PFfflv2QqUio=; b=BwQp/qe+kKnk/+1c9qouQ1zh65Iz1oSsNTJ9qfZ+zHLX8DOgnrHpAAOD q/UM7/iA7Dqm67r2cYKJxEBg3l1x+LWTOmiHp44VOjRida+hxbeOtKO2U ypYuYLKpfdAqg5bFr5FfC+/McsXLlNq8oqSNxhlc03IAzmTrcLz4BGSPa k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AOAACu8upb/xbLJq1kGwEBAQEDAQEBBwMBAQGBUQYBAQELAYENSIEUD0AhEieDeIgYX40rlzUUgWMDDRgBCoQDRgKDXjQNDQEDAQECAQECbRwMhToBAQEDAQEBIUsLBQsLGCABBgMCAicfEQYNBgIBAReDBgGBeQgPqAeBLx+FIYRgBYwZgUA/gTiBbX6DGwEBgS4BEgEHAoMaglcCiRsli0wSijgJhjeDL4c2BhiBWIgAgUGFWolah0qGWYFDOGRxMxoIGxU7gmyBdzAXiF6FPj8DMItjgj4BAQ
X-IronPort-AV: E=Sophos;i="5.54,499,1534809600"; d="scan'208,217";a="7960227"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Nov 2018 15:54:12 +0000
Received: from [10.63.23.62] (dhcp-ensft1-uk-vla370-10-63-23-62.cisco.com [10.63.23.62]) by aer-core-3.cisco.com (8.15.2/8.15.2) with ESMTP id wADFsBeX011538; Tue, 13 Nov 2018 15:54:12 GMT
To: Andy Bierman <andy@yumaworks.com>
Cc: Balázs Lengyel <balazs.lengyel@ericsson.com>, Martin Bjorklund <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <a8c912c8-a7a5-1852-d053-10f0f11076e8@cisco.com> <20181112.173351.1984161388756642220.mbj@tail-f.com> <cbe0103b-112e-4687-e119-0698ea6cb9f4@cisco.com> <77b69d64-2ce2-29d9-77a9-04a7159003a9@ericsson.com> <CABCOCHQmA1PaVTu7oLiECXLrCULqW1KJddDRvYaDmE4xWu5AmA@mail.gmail.com> <98d6293c-d762-4d21-a9e2-c9cb20f74135@cisco.com> <CABCOCHR-vygv+Fq8JWGMm59-V6CB4PkqfSA_5mR8xBUqwi6xDw@mail.gmail.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <453368b2-aa52-f09a-ea0b-960255bce46b@cisco.com>
Date: Tue, 13 Nov 2018 15:54:11 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0
MIME-Version: 1.0
In-Reply-To: <CABCOCHR-vygv+Fq8JWGMm59-V6CB4PkqfSA_5mR8xBUqwi6xDw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------41375586AB8DE4B0DF9189D0"
Content-Language: en-US
X-Outbound-SMTP-Client: 10.63.23.62, dhcp-ensft1-uk-vla370-10-63-23-62.cisco.com
X-Outbound-Node: aer-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/6HdkyFbES-AMRBZNOCuBegyQyEA>
Subject: Re: [netmod] Deviations and augmentations
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: Tue, 13 Nov 2018 15:54:18 -0000
On 13/11/2018 15:32, Andy Bierman wrote: > > > On Tue, Nov 13, 2018 at 7:28 AM, Robert Wilton <rwilton@cisco.com > <mailto:rwilton@cisco.com>> wrote: > > > On 13/11/2018 15:17, Andy Bierman wrote: >> >> >> On Tue, Nov 13, 2018 at 5:46 AM, Balázs Lengyel >> <balazs.lengyel@ericsson.com >> <mailto:balazs.lengyel@ericsson.com>> wrote: >> >> Hello, >> >> We also need a method for removing stuff. It does happen that >> some functionality is deemed not important enough, outdated, >> too expensive to maintain, so we want to remove it. >> >> * Augment is clearly not the tool for that. >> * Deviations are not intended for that (from rfc 7950: >> "server deviation: A failure of the server ...") >> >> >> Removing nodes is easy with the status-stmt. Update the module >> and set the status to deprecated or obsolete. > > Yes, but obsoleting nodes should be regarded as a > non-backwards-compatible change because it can break clients that > were relying on those nodes. > > > I don't think RFC 7950 says that. RFC 7950 states '"obsolete" means that the definition is obsolete and SHOULD NOT be implemented and/or can be removed from implementations.' So if there was a client using those definitions it would break, hence it is a non-backwards-compatible change. > Removing outdated functionality is exactly what the status-stmt is for. Agreed. > IMO we should learn to use the YANG that is already there. We are trying to make what we have today better. Specifically, so that a client can look at a semver numbers between two modules revisions and determine whether or not they might be broken by that change. Today, just using the status element alone to mark removed nodes means that a client would have to check for all changes in the module between two revisions to determine whether or not the new module revision is backwards compatible with the old one. Thanks, Rob > Thanks, > Rob > > > > Andy > >> >> >> Andy >> >> >> So we still need Semver(or something akin) and the >> possibility to do NBC changes. >> >> Balazs >> >> On 2018. 11. 12. 18:08, Robert Wilton wrote: >>> >>> >>> On 12/11/2018 16:33, Martin Bjorklund wrote: >>>> Robert Wilton <rwilton@cisco.com> >>>> <mailto:rwilton@cisco.com> wrote: >>>>> In the Thursday Netmod meeting, it was interesting to hear >>>>> Rob Shakir >>>>> describe how deviations and augmentations are used in >>>>> OpenConfig to >>>>> add functionality into an older YANG model where the >>>>> semver rules >>>>> prevent the version number from being incremented. >>>>> >>>>> Further, I think that someone (Martin?) stated on the >>>>> audio bridge >>>>> that this was an intended/allowed behavior for deviations. >>>> I said that using augmentations (not deviations) was one >>>> idea we >>>> originally had for solving the "branching problem". >>> Ah, OK. I agree that makes sense. >>> >>>> >>>> I think that this works for OC b/c they don't branch their >>>> modules. >>>> Hence I think it is important that we decide if branching is a >>>> requirement or not. >>> So, I think that this probably works for adding >>> enhancements, but not for the (arguably more important) bug >>> fix case, unless there is a reasonable solution to having >>> two config data nodes both modifying the same underlying >>> property. Perhaps under some reasonable constraints this >>> could be made to work - but I don't know. >>> >>> Of course, even for enhancements it is not necessarily a >>> perfect solution. E.g. backporting some subset of a module >>> already coded/implemented in latest to an older release. >>> And yes, we really do get asked to do this sometimes, >>> although it is relatively rare. >>> >>> Thanks, >>> Rob >>> >>>> >>>> >>>> /martin >>>> >>>> >>>>> This surprised me, because I thought that RFC 7950 was >>>>> quite explicit >>>>> that this is not what deviations are intended for. My >>>>> reading of RFC >>>>> 7950 is that the deviation statement represents the case >>>>> where the >>>>> server *implementation* does not match the >>>>> *specification*. However, >>>>> the versioning issue that we are discussing are bug >>>>> fixes/changes in >>>>> the specification rather than the bug fixes in the >>>>> implementation. >>>>> >>>>> Personally, I'm really not keen on using deviations to >>>>> represent bug >>>>> fixes to older YANG models for three reasons: >>>>> >>>>> (i) It is changing the meaning of deviation. It is much >>>>> cleaner to >>>>> keep the meaning of deviation statements as they are >>>>> defined today, >>>>> and not conflate their semantics. >>>>> (ii) A different mechanism is used to put a bug fix into >>>>> an older >>>>> branch rather than in the head of the development. >>>>> (iii) For clients to track the lifecycle of modules they >>>>> would not >>>>> only need to know the module version number but would also >>>>> need to >>>>> find and track all associated deviation modules. This seems >>>>> significantly more complex for clients than the modified >>>>> semver that >>>>> was proposed. >>>>> >>>>> --- >>>>> >>>>> I think that has also been some suggestion that >>>>> augmentations (or >>>>> duplicate YANG modules with their major version number >>>>> changed) can be >>>>> used to make bug fixes in a completely backwards >>>>> compatible way. >>>>> However, I still don't understand a robust scheme of how >>>>> this works. >>>>> >>>>> --- >>>>> >>>>> Finally, there were some comments about using augmentation >>>>> modules for >>>>> enhancements. This is fine, where appropriate (e.g. a non >>>>> trivial >>>>> number of data nodes are being added as an enhancement) >>>>> then a >>>>> separate module may be the right way to go. But here, I >>>>> presume that >>>>> the new functionality will always be tracked by that >>>>> separate module. >>>>> If that functionality folds back into the original module >>>>> at some >>>>> point in the future, then obviously a non backwards >>>>> compatible version >>>>> change is being forced on to the client, along with >>>>> additional work on >>>>> the server as well. >>>>> >>>>> I think that there are also many cases where the number of >>>>> data nodes >>>>> being added via an enhancement is small compared to the >>>>> size of the >>>>> module being updated. In this case I believe that it >>>>> better to add >>>>> these data nodes into the module itself, perhaps >>>>> predicated under >>>>> if-feature if appropriate. >>>>> >>>>> Thanks, >>>>> Rob >>>>> >>>>> >>>>> _______________________________________________ >>>>> netmod mailing list >>>>> netmod@ietf.org <mailto:netmod@ietf.org> >>>>> https://www.ietf.org/mailman/listinfo/netmod >>>>> <https://www.ietf.org/mailman/listinfo/netmod> >>>> . >>>> >>> >>> _______________________________________________ >>> netmod mailing list >>> netmod@ietf.org <mailto:netmod@ietf.org> >>> https://www.ietf.org/mailman/listinfo/netmod >>> <https://www.ietf.org/mailman/listinfo/netmod> >> >> -- >> Balazs Lengyel Ericsson Hungary Ltd. >> Senior Specialist >> Mobile: +36-70-330-7909 email:Balazs.Lengyel@ericsson.com <mailto:Balazs.Lengyel@ericsson.com> >> >> >> _______________________________________________ >> netmod mailing list >> netmod@ietf.org <mailto:netmod@ietf.org> >> https://www.ietf.org/mailman/listinfo/netmod >> <https://www.ietf.org/mailman/listinfo/netmod> >> >> >
- [netmod] Deviations and augmentations Robert Wilton
- Re: [netmod] Deviations and augmentations Martin Bjorklund
- Re: [netmod] Deviations and augmentations Andy Bierman
- Re: [netmod] Deviations and augmentations Robert Wilton
- Re: [netmod] Deviations and augmentations Balázs Lengyel
- Re: [netmod] Deviations and augmentations Robert Wilton
- Re: [netmod] Deviations and augmentations Andy Bierman
- Re: [netmod] Deviations and augmentations Robert Wilton
- Re: [netmod] Deviations and augmentations Andy Bierman
- Re: [netmod] Deviations and augmentations Robert Wilton
- Re: [netmod] Deviations and augmentations Andy Bierman
- Re: [netmod] Deviations and augmentations Juergen Schoenwaelder
- Re: [netmod] Deviations and augmentations Robert Wilton
- Re: [netmod] Deviations and augmentations Juergen Schoenwaelder
- Re: [netmod] Deviations and augmentations Robert Wilton
- Re: [netmod] Deviations and augmentations Andy Bierman
- Re: [netmod] Deviations and augmentations Ebben Aries