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

Robert Wilton <rwilton@cisco.com> Thu, 22 December 2016 10:40 UTC

Return-Path: <rwilton@cisco.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 3858B1297F1 for <netmod@ietfa.amsl.com>; Thu, 22 Dec 2016 02:40:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.622
X-Spam-Level:
X-Spam-Status: No, score=-17.622 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-3.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 aNp2EiYkFMhG for <netmod@ietfa.amsl.com>; Thu, 22 Dec 2016 02:40:04 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 36A3912952C for <netmod@ietf.org>; Thu, 22 Dec 2016 02:40:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4242; q=dns/txt; s=iport; t=1482403204; x=1483612804; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=6Ag4QVsE9/O6PpNQzJ4zQWBuZLbqiMY0v3SPoDn+lVc=; b=HtaYaIDZn8f7VqJUnqJ2371MOE8zXO8Uzt50q2eYAdp7VcaeqHSpCDFb kb7+BtipaYxLifv8zX0FDHC05JqcrM2erRWaZ6P7Z648klzM0i88QV3N+ cXEMQed0w9DlYN7r/JPm/idJX/X18rTt4oRoTTZBPPwiI79Au/CbKO9YW M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CVAgBNrVtY/xbLJq1eGQEBAQEBAQEBAQEBBwEBAQEBgzUBAQEBAYEqWY5DlV6TBoQYgmyDNgKCKhEBAgEBAQEBAQFiKIRpAQU4QRALDgIIJwdGEQYNBgIBAYhpq0+LAgEBAQEBAQEBAQEBAQEBAQEBASCGSIICCIJZhBMihXcFmnmROoojhi+KQINmhA81IYEHFg2GDz40hjuCLgEBAQ
X-IronPort-AV: E=Sophos;i="5.33,387,1477958400"; d="scan'208";a="649108830"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Dec 2016 10:39:46 +0000
Received: from [10.63.23.74] (dhcp-ensft1-uk-vla370-10-63-23-74.cisco.com [10.63.23.74]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id uBMAdjnl028768; Thu, 22 Dec 2016 10:39:46 GMT
To: Martin Bjorklund <mbj@tail-f.com>
References: <FD1A7B81-23CA-41EF-AD2D-342E53C9A890@nic.cz> <CABCOCHS+doMN=JWP+1Y=RpEHhBHvUCA5EdJwJPVbhd9w7gGzTg@mail.gmail.com> <8ac64b13-469c-31fe-9d2b-ad0487204d69@cisco.com> <20161222.112242.1766522035191268644.mbj@tail-f.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <8d2df0d5-b662-23a6-8339-1acf5086ae62@cisco.com>
Date: Thu, 22 Dec 2016 10:39:45 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
MIME-Version: 1.0
In-Reply-To: <20161222.112242.1766522035191268644.mbj@tail-f.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/OytD00t6Z98Bt6k78RB_RIcr5ZQ>
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: Thu, 22 Dec 2016 10:40:06 -0000


On 22/12/2016 10:22, Martin Bjorklund wrote:
> Robert Wilton <rwilton@cisco.com> wrote:
>>
>> On 22/12/2016 10:00, Andy Bierman wrote:
>>>
>>> On Wed, Dec 21, 2016 at 11:49 PM, Ladislav Lhotka <lhotka@nic.cz
>>> <mailto:lhotka@nic.cz>> wrote:
>>>
>>>
>>>      > On 22 Dec 2016, at 07:22, Randy Presuhn
>>>      <randy_presuhn@alumni.stanford.edu
>>>      <mailto:randy_presuhn@alumni.stanford.edu>> wrote:
>>>      >
>>>      > Hi -
>>>      >
>>>      > On 12/21/2016 3:55 PM, Andy Bierman wrote:
>>>      >>
>>>      >>
>>>      >> On Wed, Dec 21, 2016 at 3:41 PM, Juergen Schoenwaelder
>>>      >> <j.schoenwaelder@jacobs-university.de
>>>      <mailto:j.schoenwaelder@jacobs-university.de>
>>>      >> <mailto:j.schoenwaelder@jacobs-university.de
>>>      <mailto:j.schoenwaelder@jacobs-university.de>>> wrote:
>>>      > ...
>>>      >>    Perhaps I am blinded by the way @deprecate or __attribute__
>>>      >>    ((deprecated)) or [[deprecated]] work in various programming
>>>      >>    languages. All these annotations do not deprecate my code,
>>>      they just
>>>      >>    cause the generation of warnings so that I get aware of the
>>>      issue and
>>>      >>    can do my homework.
>>>      >>
>>>      >>
>>>      >> There are no protocols that let you manage orphaned data nodes
>>>      >> without any parent.  No way to represent it in XML or JSON either.
>>>      >> No way to specify a RESTCONF target resource that leaves out
>>>      >> some intermediate data nodes.
>>>      >
>>>      > Deprecating (or obsoleting) a definition does not orphan data nodes.
>>>      > Perhaps I'm blinded by the way SNMP works, but it seems to me that
>>>      > a robust client will need to be able to process data corresponding
>>>      > to deprecated (or obsolete) definitions.  Likewise, developers
>>>      > of server-side software may find themselves in situations where
>>>      > supporting obsolete definitions is a commercial necessity.  Things
>>>      > certainly played out that way in the SNMP world.  I agree with
>>>      Juergen
>>>      > that tool-generated warnings seem to be the correct way to go.
>>>
>>>      I agree that making a node deprecated or obsolete doesn't mean
>>>      that its descendants are orphaned, it just means they cannot be
>>>      current, and then "current" shouldn't be the default status for
>>>      them - also because the descendants may come from other modules
>>>      (via groupings and augments) that cannot be changed.
>>>
>>>      Even if the default status is inherited, tools can still generate
>>>      warnings. A data modeller can decide whether and where it makes
>>>      sense to have the "status" statement explicitly, but isn't forced
>>>      to do it everywhere.
>>>
>>>
>>>
>>> NETCONF and RESTCONF have no mechanisms for accessing data other than
>>> top-down from the top-level YANG data node to the target node.
>>> Removing an ancestor node from the server implementation effectively
>>> removes
>>> the entire subtree from the implementation.  (The value of the YANG
>>> status-stmt
>>> of the descendant nodes has nothing to do with it)
>> I agree that this certainly seems to be the case if a node is marked
>> as obsolete.  It seems that it implicitly forces all child nodes to be
>> obsolete as well regardless of which module they were defined in.
> No I don't think this is correct.  If module B augment X in module A,
> and X is obsolete, it does NOT mean that the augmented nodes in B are
> automatically obsolete.  However, in an implementation that doesn't
> implement X, the augmented nodes from B are obviously also not
> implemented.
I can get where you are coming from, but if you had a GUI viewer that 
was looking at the combined schema tree, I think that you would to see 
those descendant children nodes marked in some way to indicate that 
implementations may validly not return them. Reporting them as current 
when one of their parent nodes was obsolete would seem to be deceptive.

Is it that you are trying to differentiate between being explicitly 
obsolete vs 'implicitly obsolete' through parentage?

Rob


>
>
> /martin
> .
>