Re: [netmod] augment and if-feature

Martin Bjorklund <mbj@tail-f.com> Wed, 15 March 2017 07:28 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 E149112969C for <netmod@ietfa.amsl.com>; Wed, 15 Mar 2017 00:28:13 -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 dm5iRFmv_bfj for <netmod@ietfa.amsl.com>; Wed, 15 Mar 2017 00:28:12 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 9608212969B for <netmod@ietf.org>; Wed, 15 Mar 2017 00:28:12 -0700 (PDT)
Received: from localhost (unknown [173.38.220.40]) by mail.tail-f.com (Postfix) with ESMTPSA id 96A291AE02A7; Wed, 15 Mar 2017 08:28:09 +0100 (CET)
Date: Wed, 15 Mar 2017 08:28:14 +0100
Message-Id: <20170315.082814.1668142020606045450.mbj@tail-f.com>
To: phil@juniper.net
Cc: joey.boyd@adtran.com, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <201703142223.v2EMNpnW074003@idle.juniper.net>
References: <20170314.215041.1542757804066431921.mbj@tail-f.com> <201703142223.v2EMNpnW074003@idle.juniper.net>
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/CD1iDylmSojfAvqcVv4StcN-LCc>
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 07:28:14 -0000

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.

If you don't advertise a certain module, I don't think you can claim
that your implementation contains that module.

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.

> 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.
> 
> Thanks,
>  Phil
> 


/martin