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

Andy Bierman <andy@yumaworks.com> Wed, 21 December 2016 09:52 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 45708129412 for <netmod@ietfa.amsl.com>; Wed, 21 Dec 2016 01:52:33 -0800 (PST)
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 4ZiwVagVYw1e for <netmod@ietfa.amsl.com>; Wed, 21 Dec 2016 01:52:31 -0800 (PST)
Received: from mail-qk0-x235.google.com (mail-qk0-x235.google.com [IPv6:2607:f8b0:400d:c09::235]) (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 85B58126B6D for <netmod@ietf.org>; Wed, 21 Dec 2016 01:52:31 -0800 (PST)
Received: by mail-qk0-x235.google.com with SMTP id u25so65425690qki.2 for <netmod@ietf.org>; Wed, 21 Dec 2016 01:52:31 -0800 (PST)
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=rYVVGOyLcMMAGfQvVLKMZyEQRNkbZ4iCEzIetmVHiVs=; b=TAu103kEsGxWzZp1F8/i8lJvksSgu79IR6nqwD38kDJx9YGSDJMAnJcK93ALdYLmga Eb0Gelxo3ttMs183I74fgQq4QDy8AtKAlT6DwUnHifr0TGEvFJF+tsEjpTSgLSxy4Upk 87OFMBhEK5H3iuA+2M7YZDT5+YPboq28IHeFMCuK1J3m4EWvrlPH3uNcAqN6ATWkK80S NZUPzaYKHHuyVJkfgZU0svBJOv1hh5Mdk41tgXakQBp2Y3kgzU17rHkAglwtHbZy5nvN Gk0IOuiCabjqx+Q3+4RvZxpwY+7SUmrYnTaD5hKG/aaKrntGSwxJmpsGzALazBfSy9xY L/5A==
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=rYVVGOyLcMMAGfQvVLKMZyEQRNkbZ4iCEzIetmVHiVs=; b=FQRFy9jJEstvhGDBtk4zQ3TwWMU4BvoeuzRsTGMI279ngpmVgnk4uY8Cj1xH577wlP dI2jV66Om5VyjiIxHou5AFtkHRm6hPKJUfUTqc00lC40c7pb2DM+FGEGCfnC7blNsOL0 EehxmDAkEaxMlFe1GXs3+gM9DOnHNgbUJExtmqS8Y3O3J4P0VtFnSfa6w5T+aS021PDZ g3WV5ySpcqx2I+Z7tmkrBWe+4AULg/rt6YkUD4fmlfxsZnL+igw1KzDSe7K+x1WzMG5O V+yipG4jpwMw8yGr4cm/DOAocsROqaUNy7etgNlkqn58bmDqgo+gs9kHAs0qvcCghCKS 2Hpw==
X-Gm-Message-State: AIkVDXLEZ4dHNe2vggbuyfoMRrHlizNTTEIJGvF9nT2v7+H+ITMuh+REKtE06yHC+GGtQElE3NoTnBPFpRms7g==
X-Received: by 10.55.135.197 with SMTP id j188mr3782996qkd.71.1482313950571; Wed, 21 Dec 2016 01:52:30 -0800 (PST)
MIME-Version: 1.0
Received: by 10.12.175.113 with HTTP; Wed, 21 Dec 2016 01:52:30 -0800 (PST)
In-Reply-To: <20161221.103208.1910010141581780305.mbj@tail-f.com>
References: <1db67b1d-36ef-5cc6-425f-7e22de7e80ae@cisco.com> <20161220.210335.1870203216124697421.mbj@tail-f.com> <m2wpety744.fsf@birdie.labs.nic.cz> <20161221.103208.1910010141581780305.mbj@tail-f.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 21 Dec 2016 01:52:30 -0800
Message-ID: <CABCOCHQPRbAbeEg=4-oNzXX6nxJhNbow+ebQy+Qv5NOfngeN7w@mail.gmail.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary="94eb2c0777e6787e560544281cd7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/S-42gspvyDx9vE6uaGAcnk1s0QI>
Cc: "netmod@ietf.org" <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 09:52:33 -0000

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.

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.
So how do I access a deprecated /foo/child node inside an obsolete /foo
container?


Andy



>
> > I think that "obsolete" should apply to the whole subtree, no matter
> > what status descendants have, and "deprecated" should apply to the whole
> > subtree except for parts that are obsolete.
>
> Maybe, but this is not how it works in YANG 1 and 1.1.  For the
> reasoning behind this, see above.  Maybe this is not perfect, and
> something that we should look into if we update YANG.  But I don't
> think this is a problem.
>
>
> /martin
>
>
>
> >
> > Lada
> >
> > >
> > >
> > > /martin
> > >
> > >
> > >
> > >>
> > >> container old {
> > >>   status deprecated;
> > >>   leaf new {
> > >>     description "what status do I have?";
> > >>   }
> > >> }
> > >>
> > >> Thanks,
> > >> Rob
> > >>
> > >>
> > >> Full 7.21.2 text from 7950:
> > >>
> > >> 7.21.2.  The "status" Statement
> > >>
> > >>    The "status" statement takes as an argument one of the strings
> > >>    "current", "deprecated", or "obsolete".
> > >>
> > >>    o  "current" means that the definition is current and valid.
> > >>
> > >>    o  "deprecated" indicates an obsolete definition, but it permits
> > >>       new/continued implementation in order to foster interoperability
> > >>       with older/existing implementations.
> > >>
> > >>    o  "obsolete" means that the definition is obsolete and SHOULD NOT
> be
> > >>       implemented and/or can be removed from implementations.
> > >>
> > >>    If no status is specified, the default is "current".
> > >>
> > >>    If a definition is "current", it MUST NOT reference a "deprecated"
> or
> > >>    "obsolete" definition within the same module.
> > >>
> > >>    If a definition is "deprecated", it MUST NOT reference an
> "obsolete"
> > >>    definition within the same module.
> > >>
> > >>    For example, the following is illegal:
> > >>
> > >>      typedef my-type {
> > >>        status deprecated;
> > >>        type int32;
> > >>      }
> > >>
> > >>      leaf my-leaf {
> > >>        status current;
> > >>        type my-type; // illegal, since my-type is deprecated
> > >>      }
> > >>
> > >
> > > _______________________________________________
> > > netmod mailing list
> > > netmod@ietf.org
> > > https://www.ietf.org/mailman/listinfo/netmod
> >
> > --
> > Ladislav Lhotka, CZ.NIC Labs
> > PGP Key ID: 0xB8F92B08A9F76C67
> >
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>