Re: [netmod] 'status' statement needed on every node

Andy Bierman <andy@yumaworks.com> Wed, 06 September 2017 17:04 UTC

Return-Path: <andy@yumaworks.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 F0DFB13292A for <netmod@ietfa.amsl.com>; Wed, 6 Sep 2017 10:04:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.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 2lyerTl3dFmb for <netmod@ietfa.amsl.com>; Wed, 6 Sep 2017 10:04:28 -0700 (PDT)
Received: from mail-io0-x22f.google.com (mail-io0-x22f.google.com [IPv6:2607:f8b0:4001:c06::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 88F6C132199 for <netmod@ietf.org>; Wed, 6 Sep 2017 10:04:28 -0700 (PDT)
Received: by mail-io0-x22f.google.com with SMTP id b142so6205444ioe.1 for <netmod@ietf.org>; Wed, 06 Sep 2017 10:04:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=R4ILr0nIwnOdJ6nn4plWFMkd1wYadl4CkePcUibizfg=; b=RfHsF/cC1UkcZb61cc7/QmFai+XUZMRXjW9q6rKOqltwP+qUTXQgyY1U1JeprYcBqM v8qm40IBwgqz4ng6r7cibpA6g0etWocSWiTXp9JJWCm0d7z0wkfYRBmspHaxFFxmzvGj BynFc0UG+A5ox7K8lOyP/3HF8Eqh51qaBhJ+VuDX9o+ZwOmSfLgsvrkcxXCLap39L+jq gWDJM8Plxlw1+X5mSE4WmXd/sqFY82FfhyVR3KtEf9Vzvr2cZ3WGnyklSdmWj/Bz+E4G CKzsm6WG2URO0wO+UgCyf5uSoOzOHG+rroprmeZ/Qj6hVsLoNQmQhSMCxDVxSbyNQrt6 DfBQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=R4ILr0nIwnOdJ6nn4plWFMkd1wYadl4CkePcUibizfg=; b=f+TzGOvsjVJuBbfMaI6r4sWdXg6GDUQPsVCEklUGa/OOXV8ooQKaTTmGm7z2rE+Pyf Cx7Qt5Ih7bTMkh6y4mh7IsAUqy6zb0pfKdAhb7xy+7GfsVMx0BHBJbMMrdKEGT0IUIVf J4F2quaDFRKN9kdqygtD+aB+7S3Dt+ZPBnsaFeBAsk9shrF9mxQBfDwMFa08vzYhQt58 DvTsAWbfG50VsO766rkZisLX4Aa0Saiy9jHXX9kl1qcRKv/pYwQ6ZUwo2VBsu7CduDxN 1+k/3KZQIQirD+Rk/S1+8sHnxf1Co4ZC4amnswTx6eN++aQp+a3CUeoCG0EJnhzSHRzD vjSg==
X-Gm-Message-State: AHPjjUhZp0jBPGnjwCq+qCMDvUzDvg8ywCidnZOhZ/2ts/bkYVzWK7Ym vcoi12o6XD1E0IvmEFca43kgChrtiS7k
X-Google-Smtp-Source: AOwi7QDNEgPXrVgr6HQFXY/AMVqX1LuP/urv15re/QfAZcCBt+VTh52seyBgGw47N3AMjUfLtyl3nobegkiGD3sa3wM=
X-Received: by 10.107.32.205 with SMTP id g196mr3493002iog.349.1504717467662; Wed, 06 Sep 2017 10:04:27 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.36.6.206 with HTTP; Wed, 6 Sep 2017 10:04:26 -0700 (PDT)
In-Reply-To: <20170906.085421.399708327964847720.mbj@tail-f.com>
References: <20170905190151.fizr5dljufbyuyty@elstar.local> <B1BB11D4-9051-458E-ACCE-991ADEA4884A@juniper.net> <20170906064440.4br5kjna6toeqzlo@elstar.local> <20170906.085421.399708327964847720.mbj@tail-f.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 06 Sep 2017 10:04:26 -0700
Message-ID: <CABCOCHSqNOM89dkxWwf3tfHkWFu6qOOTODPNKOrajvoTyVjAgw@mail.gmail.com>
To: Martin Bjorklund <mbj@tail-f.com>
Cc: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="001a1140be0e260264055888569a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/X9xlXxUXeiQDBYbDZ2h82-OmmBk>
Subject: Re: [netmod] 'status' statement needed on every node
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, 06 Sep 2017 17:04:31 -0000

On Tue, Sep 5, 2017 at 11:54 PM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > On Tue, Sep 05, 2017 at 10:50:03PM +0000, Kent Watsen wrote:
> > >
> > >
> > >
> > > >> I still don't know what it means to define hierarchical data and
> say the
> > > >> parent is deprecated but not the descendant nodes.
> > > >
> > > > It is odd but can happen anyway. A current augmentation of something
> > > > that got deprecated likely stays current. I would hope that tools
> warn
> > > > if they see this but that's it.
> > >
> > > This example seems to provide support for saying status should be
> > > inherited.
> >
> > No, I do not support your conclusion. I think it is crucial that
> > whoever maintains an augmenting module is actually aware that his
> > module depends on something deprecated. Silently deprecating (and
> > eventually obsoleting) definitions maintained by other parties is in
> > my view not a good idea. It is far better to clearly indicate that
> > there is some work to do by the augmenting module maintainer.
> >
> > > But, to be clear, you agree that if a parent is deprecated,
> > > than its decedents should be deprecated as well, right?
> >
> > Yes.
> >
> > > >> This is rather non-intuitive, as is the idea that all descendant
> > > >> nodes need to be manually edited (status is not inherited).
> > > >
> > > > Not a big deal. The benefit is that a reader like me knows clear that
> > > > the definition I am look at is deprecated, no need to search
> backwards
> > > > to find out.
> > >
> > > tree diagrams do this too, though I like Martin's approach of removing
> > > the deprecated -state trees from the tree diagram altogether.
> > >
> > >
> > >
> > > >> It also means the objects expanded from groupings cannot ever be
> > > >> changed (clearly a bug in YANG).
> > > >
> > > > Yes, bug in YANG.
> > >
> > > Is this the same issue I raised?
> > >
> > >   import ietf-foo {
> > >     prefix f;
> > >   }
> > >
> > >   container bar {
> > >     uses f:foo;
> > >   }
> > >
> > >   container baz {
> > >     status deprecated;
> > >     uses f:foo;            <-- oops, descendants not deprecated!
> > >   }                           (not a problem if status inherited)
> >
> > I think I look at this very differently. If something is defined in
> > f:foo that is current, then this is inherited where f:foo is
> > used. What we need is a way to refine that if the usage context has
> > differnet requirements, like we allow to refine other properties of a
> > grouping to adapt it to the usage context.
>
> I think that marking the uses statement with status deprecated should
> mean that all nodes in the grouping are "auto-refined" with status
> deprecated.  Listing them all in explciit refine doesn't help
> anyone imo.
>
>
Lifecycle status of abstract definitions (identity, typedef, grouping)
should only
be changed it applies to all possible usage of the definition. Modules that
use
these external definitions should only override the deprecated or obsolete
status
with extreme caution.

The uses-stmt should not even have a status-stmt since conformance is only
for the
conceptual grouping expansion, not for the grouping or the uses statements.
The only useful interpretation is that it applies to actual data nodes
(after all
nested groupings have been expanded).

I would refine your "auto-refine" a bit :-)
It does not increase the status enum, just lower it to the uses-stmt status
value
   uses(current) -> do not convert any status during expansion
   uses(deprecated) --> convert current to deprecated; leave obsolete
unchanged
   uses(obsolete) --> convert current and deprecated to obsolete

There is still no ability to say that an expanded data node is deprecated,
e.g., deprecate some but not all of the nodes from the uses expansion.





> /martin
>
>
Andy


> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>