Re: [netmod] augment and if-feature
Martin Bjorklund <mbj@tail-f.com> Wed, 15 March 2017 10:20 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 15894129A9E for <netmod@ietfa.amsl.com>; Wed, 15 Mar 2017 03:20:41 -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, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 HsBG-pPQSIAe for <netmod@ietfa.amsl.com>; Wed, 15 Mar 2017 03:20:39 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id A0255129A9D for <netmod@ietf.org>; Wed, 15 Mar 2017 03:20:39 -0700 (PDT)
Received: from localhost (unknown [173.38.220.40]) by mail.tail-f.com (Postfix) with ESMTPSA id 79E131AE02A7; Wed, 15 Mar 2017 11:20:38 +0100 (CET)
Date: Wed, 15 Mar 2017 11:20:44 +0100
Message-Id: <20170315.112044.1525149482580030224.mbj@tail-f.com>
To: rwilton@cisco.com
Cc: phil@juniper.net, netmod@ietf.org, joey.boyd@adtran.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <bb5472be-3882-785f-3c53-148bae6959af@cisco.com>
References: <201703142223.v2EMNpnW074003@idle.juniper.net> <20170315.082814.1668142020606045450.mbj@tail-f.com> <bb5472be-3882-785f-3c53-148bae6959af@cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / 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/lUFjfEHEWJJPsziE6umzeKRFeOg>
Subject: Re: [netmod] augment and if-feature
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
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, 15 Mar 2017 10:20:41 -0000
Robert Wilton <rwilton@cisco.com> wrote: > Hi, > > On 15/03/2017 07:28, Martin Bjorklund wrote: > > Phil Shafer <phil@juniper.net> wrote: > >> Martin Bjorklund writes: > >>> Phil Shafer <phil@juniper.net> wrote: > >>>> Martin Bjorklund writes: > >>>>>> What are your thoughts on this? Surely, an augment should not have to > >>>>>> contain if-feature statements of all parents of the augmented node. > >>>>> The spec says: > >>>>> > >>>>> When a server implements a module containing an "augment" statement, > >>>>> that implies that the server's implementation of the augmented module > >>>>> contains the additional nodes. > >>>>> > >>>>> Compare with a simple augment of a node w/o an if-feature. In this > >>>>> case, if the server implements the augmenting module, it MUST also > >>>>> implement the augmented module. > >>>> It implements the module, but it doesn't implement the nodes > >>>> since it doesn't express the feature. IMHO this is a tool > >>>> bug and/or an errata,since otherwise one has to carry features > >>>> forward, repeating the if-feature using the original modules > >>>> prefix:feature-name on every augment of feature-based nodes. > >>> Well, I agree that it would have been better to state that if a server > >>> doesn't implement the augment target, then it doesn't implement the > >>> augment either. But the text is pretty clear; this is not how it > >>> works. This is not appropriate to "fix" in an errata. > >> I'm missing the part of the text that's clear. The above quoted > >> section certainly doesn't say this. That text is saying "if you > >> implement a module that augments a set of nodes, then the server's > >> schema for that original set of nodes now includes the new set of > >> nodes". It's referring to schema nodes. > > It explicitly says that server's *implementation* of the augmented > > module contains the additional nodes. > Section "5.6.5. Implementing a Module", doesn't mention features at > all. > Section "5.6.2. Optional Features" doesn't mention implementation at > all. It only writes about portions of a model that are conditional, > supported, or valid. > Section "7.20.1. The "feature" Statement" also doesn't mention > implementation, it only writes about portions of the model being > conditional. > > So, I find the text that you are quoting as ambiguous in respect to > its applicability to features. > > > > > > > If you don't advertise a certain module, I don't think you can claim > > that your implementation contains that module. > I agree with this. > > > > > And similarly, if you don't advertise a feature, I don't think you can > > claim that your implementation implements nodes that are conditional > > on that feature. > I'm not convinced that the RFC text supports this view. The nodes > could be implemented but conditionally not supported. The same can be said about a whole module; it could be implemented but temporarily disabled. > >> And if those schema nodes are conditional based on if-feature, then > >> those nodes are still in the schema, but are not supported by a > >> server unless the if-feature condition evaluates to true. > >> > >> I don't see a conflict, > >> it's just a case that we didn't think about > >> or write about. > > This I agree with. > > > >> It's a case that's not clearly handled in the spec, > >> for which reasonable implementations can disagree. That's a bug > >> in the spec and it that can be clarified via errata. > I also think that this needs to be clarified one way or the other. > > I would also prefer it to be allowed to augment a node that is > conditional on an if-feature without having to restate the if-feature > condition, in exactly the same way that it is allowed to augment a > node with a when statement without having to restate the when > statement in the augmentation. Just to be clear - I prefer this as well. I also think the same thing applies to normal augment w/o features; if you implement module A that has an augment of B, and you don't implement B, you should still be able to state that you implement A. But I don't think it can be done in an errata. /martin
- [netmod] augment and if-feature JOEY BOYD
- Re: [netmod] augment and if-feature Martin Bjorklund
- Re: [netmod] augment and if-feature JOEY BOYD
- Re: [netmod] augment and if-feature JOEY BOYD
- Re: [netmod] augment and if-feature Phil Shafer
- Re: [netmod] augment and if-feature Martin Bjorklund
- Re: [netmod] augment and if-feature Phil Shafer
- Re: [netmod] augment and if-feature Martin Bjorklund
- Re: [netmod] augment and if-feature Robert Wilton
- Re: [netmod] augment and if-feature Martin Bjorklund
- Re: [netmod] augment and if-feature Robert Wilton
- Re: [netmod] augment and if-feature Martin Bjorklund
- Re: [netmod] augment and if-feature Phil Shafer
- Re: [netmod] augment and if-feature Phil Shafer
- Re: [netmod] augment and if-feature Andy Bierman
- Re: [netmod] augment and if-feature Dale R. Worley
- Re: [netmod] augment and if-feature Robert Wilton
- Re: [netmod] augment and if-feature Juergen Schoenwaelder
- Re: [netmod] augment and if-feature Dale R. Worley
- Re: [netmod] augment and if-feature Andy Bierman
- Re: [netmod] augment and if-feature Andy Bierman
- Re: [netmod] augment and if-feature Robert Wilton
- Re: [netmod] augment and if-feature Andy Bierman
- Re: [netmod] augment and if-feature Robert Wilton
- Re: [netmod] augment and if-feature Dale R. Worley
- Re: [netmod] augment and if-feature Robert Wilton