Re: [netmod] OpsState Direction Impact on Recommended IETF YANG Model Structure

Robert Wilton <rwilton@cisco.com> Wed, 27 July 2016 17:05 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 1F67612D1A3 for <netmod@ietfa.amsl.com>; Wed, 27 Jul 2016 10:05:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.807
X-Spam-Level:
X-Spam-Status: No, score=-15.807 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.287, 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 vhn20ADOrCgb for <netmod@ietfa.amsl.com>; Wed, 27 Jul 2016 10:05:06 -0700 (PDT)
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 0098712D1AF for <netmod@ietf.org>; Wed, 27 Jul 2016 10:05:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=16191; q=dns/txt; s=iport; t=1469639105; x=1470848705; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to; bh=t0ttgdbD5HX8yftKySvGgDsiY3eGhumkswmByEqjXco=; b=HtgpgRvUYRJOibA3ySsxATdeETBfzH66aAKCPRcv9L0R68Ly4BGHwyXY 0AH5CbdwlZrxy2wgQ1f68Y7DY02H/9JWCW2NPChSkUQnnNmZywfQRAwyY LhjTWrGM+Rt0aYm/reHGbYdfC///vLeEtb4mXnspey9Anp1FhSwley6Y3 A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0C/CACo6JhX/xbLJq1dgnGBTrQ+gnaEDIYdAoIAAQEBAQEBXieEXAEBBAEjVgULCw4KKgICVwYBDAgBAReIDgiuaI1QAQEBAQEBAQEBAQEBAQEBAQEBAQEBHIYqgXgIgk2EKoMXgloFmTGOfIlVhWuMLYN4VIN5O4hyAQEB
X-IronPort-AV: E=Sophos;i="5.28,430,1464652800"; d="scan'208,217";a="637755704"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Jul 2016 17:05:02 +0000
Received: from [10.63.23.91] (dhcp-ensft1-uk-vla370-10-63-23-91.cisco.com [10.63.23.91]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id u6RH52si030709; Wed, 27 Jul 2016 17:05:02 GMT
To: Kent Watsen <kwatsen@juniper.net>, netmod WG <netmod@ietf.org>
References: <D3A935F0.6A4DC%acee@cisco.com> <eb15fd23-2c0a-50c4-1ebc-7c0e4867dfd8@cisco.com> <20160721174033.GB54646@elstar.local> <d18f5dd0-64d0-e223-88a9-faa4df4b7866@cisco.com> <DCB3EBBF-5EB1-4C8E-AA55-F59C4B5A8E4D@juniper.net> <bed9398c-0e6a-450e-d2ac-b381b6bebf87@cisco.com> <5296754B-8178-4B1B-B4A6-FE228ABB8E7F@juniper.net>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <9367f4b1-7814-e175-32e8-d518438b841d@cisco.com>
Date: Wed, 27 Jul 2016 18:05:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <5296754B-8178-4B1B-B4A6-FE228ABB8E7F@juniper.net>
Content-Type: multipart/alternative; boundary="------------FE404E6435B5DA3750DB63ED"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/cdE_VVAQQOsYv-AvEZRJlPWXW_w>
Subject: Re: [netmod] OpsState Direction Impact on Recommended IETF YANG Model Structure
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, 27 Jul 2016 17:05:08 -0000


On 26/07/2016 21:36, Kent Watsen wrote:
>
> <Rob Wilton writes>
>
>
> So my thinking is that if we can't merge "foo-state" into "foo" then 
> instead we should have consistent rules that explicitly state that for 
> all IETF models "foo" and "foo-state" are separate trees with a 
> consistent naming convention and structure.  That should hopefully 
> allow tooling to programmatically relate the two separate trees 
> together.  It may give a path to allow "foo-state" to be merged into 
> "foo" in future, but once IETF has standardized 600+ models with 
> separate sub-trees, I cannot see that they would get merged back 
> together again.
>
> What other alternatives are available?  As a WG we need to tell the 
> other WGs how the IETF YANG models should be structured.
>
> In short, unfortunately I think that we have probably already missed 
> the opportunity to merge "foo" and "foo-state" subtrees together ...
>
> </Rob Wilton>
>
> Firstly, I’m trying to get a sense of how big a problem this 
> foo/foo-state thing is.  [Note: by foo-state, I’m only referring to 
> counters, not opstate].
>
RW:
By counters, I think that we also mean any config false nodes that don't 
directly represent "applied configuration", right?  E.g. is an interface 
operationally up or down.

>    I know about RFC 7223, which was done out of consideration for 
> system-generated interfaces, but how many other such models are there 
> envisioned to be?
>
RW:
- Any models that augment RFC 7223 and have config false nodes will be 
impacted.
- I thought that quite a lot of other IETF models that are in the 
process of being standardized have a top level split between "foo" and 
"foo-state".  E.g the ISIS model (draft-ietf-isis-yang-isis-cfg-08) has 
this split.  I suspect that all the routing models will be structured 
similarly.
- Although it is perhaps worth pointing out that I think that the 
OpenConfig modules effectively have exactly this same issue (e.g. they 
have a combined interfaces tree keyed by config true leaves), and they 
pragmatically just ignore the issue of system created interface entries.

>  Is this issue currently blocking models from progressing, or are we 
> getting ourselves wrapped around a hypothetical?
>
RW:
I think that it is blocking models from progressing.

The current guidance for "intended vs applied" is clear.  I.e. there 
must not be "config false" leaves in the IETF YANG data models to 
represent "applied config".

But there is no clear guidance for the rest of operational state that 
isn't applied config.  The other WGs need clear guidance (effectively 
now) to ensure that they can start publishing models as RFCs.


>   If RFC 7223 is an outlier, then we can address it as a special case 
> (perhaps via the related-state/related-config YANG annotations).  What 
> do you think?
>
RW:
Personally, I would like one common convention that applies to all IETF 
YANG models.

Idealistically I would like foo and foo-state to be merged because I 
think that will make the models easier to use and maintain in the long 
term, but I don't know if we are just too late to go in that direction.  
It seems to me that the NETMOD WG really should try to come to a 
decision quite quickly on this, but I don't know how to encourage that.  
A virtual interim on just this topic perhaps?

> Next, regarding paths forward (assuming 7223 is not an outlier), I’m 
> thinking the opposite.  I’m quite sure that we would never merge the 
> 600+ models with separate subtrees back together again.  So I’m 
> thinking we immediately merge foo and foo-state in all active YANG 
> models (so that the YANG “conceptual” models are stable and good) 
> *and* then we use your idea to programmatically generate the 
> “foo-state” tree, presumably only when needed.  This foo-state tree 
> could be generated offline by tools and provided as a second YANG 
> module in drafts.  In this way, servers (opstate aware or not) can 
> advertise if clients can access the foo-state tree (an opstate-aware 
> server may still advertise it for business reasons, and it can 
> ‘deprecate’ the tree when no longer needed).   We could do the same 
> without tools today by just using a feature statement on, for 
> instance, the interfaces-state container, but I like pushing for 
> tooling upfront so that we’re guaranteed mergeability later.  Thoughts?
>
RW:
So the generated "foo-state" tree would contain a copy of all config 
false nodes in the YANG schema and a "config false copy" of any config 
true nodes in the YANG schema that are required to provide parental 
structure for the descendant config false nodes.
- The Xpath expressions would also need to be adjusted, and possibly 
some of those might break (or need to be fixed by hand).
- Groupings might be a problem, but potentially they could be expanded.

Technically this solution might work, but is it possible to get everyone 
to agree that this is the right direction to go in before we spend time 
on this?

Thanks,
Rob


> Kent // as a contributor
>