Re: [netmod] Does the YANG "status" statement inherit from its parent node?

Martin Bjorklund <mbj@tail-f.com> Wed, 21 December 2016 10:54 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 74015129554 for <netmod@ietfa.amsl.com>; Wed, 21 Dec 2016 02:54:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.001
X-Spam-Level:
X-Spam-Status: No, score=-5.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-3.1, SPF_PASS=-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 yPRSDEADc-gQ for <netmod@ietfa.amsl.com>; Wed, 21 Dec 2016 02:54:42 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 29F6512954F for <netmod@ietf.org>; Wed, 21 Dec 2016 02:54:42 -0800 (PST)
Received: from localhost (unknown [173.38.220.36]) by mail.tail-f.com (Postfix) with ESMTPSA id 4CE1E1AE030A; Wed, 21 Dec 2016 11:54:40 +0100 (CET)
Date: Wed, 21 Dec 2016 11:54:38 +0100
Message-Id: <20161221.115438.163227970004322277.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHQPRbAbeEg=4-oNzXX6nxJhNbow+ebQy+Qv5NOfngeN7w@mail.gmail.com>
References: <m2wpety744.fsf@birdie.labs.nic.cz> <20161221.103208.1910010141581780305.mbj@tail-f.com> <CABCOCHQPRbAbeEg=4-oNzXX6nxJhNbow+ebQy+Qv5NOfngeN7w@mail.gmail.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/eNgOZQeg3038aPwNf25N98E92N4>
Cc: netmod@ietf.org
Subject: Re: [netmod] Does the YANG "status" statement inherit from its parent node?
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
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, 21 Dec 2016 10:54:43 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Wed, Dec 21, 2016 at 1:32 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> > Ladislav Lhotka <lhotka@nic.cz> wrote:
> > > Martin Bjorklund <mbj@tail-f.com> writes:
> > >
> > > > Robert Wilton <rwilton@cisco.com> wrote:
> > > >> Hi,
> > > >>
> > > >> The definition of "status" in RFC 7950 in section 7.21.2 (full text
> > > >> below), states:
> > > >>
> > > >> If no status is specified, the default is "current".
> > > >>
> > > >> From my interpretation of the text in the draft, this implies that the
> > > >> status of the "new" child leaf in the following example is "current",
> > > >> and that this example is allowed!
> > > >>
> > > >> My questions are:
> > > >>  - Is my interpretation of the current text correct?
> > > >
> > > > Yes.
> > > >
> > > >>  - Is this actually the best behaviour, or should it inherit like the
> > > >>    config statement?
> > > >
> > > > I think the idea was that if the status != current, it is better for
> > > > the reader if it is explicitly stated.
> > > >
> > > >>  Should I raise an errata for this?
> > > >
> > > > No.
> > > >
> > > > However, we could have said that a current node under a deprecated
> > > > node (etc) in the same module is an error, in order to force people
> > > > (through the useage of YANG validators) to detect and fix this.
> > >
> > > Since "current" is the default, correctly deprecating a subtree would
> > > mean to explicitly add the "status" statement to every single node in
> > > the subtree.
> >
> > Yes.
> >
> 
> Please explain what it means for YANG to say
> "The parent node is deprecated and going away but the child nodes are not.
> They are current and are staying around."  This does not seem to make any
> sense.

Agreed.  But this should be invalid also if the status statements are
given explicitly:

  container a {
    status deprecated;
    container b {
      status current;
    }
  }

> Clearly an obsolete node removes all access of its descendant nodes.
> There is no way to access /foo/child if /foo has been removed from the
> server.

Yes.

> So how do I access a deprecated /foo/child node inside an obsolete /foo
> container?

You can't.


/martin