Re: [netmod] [Netconf] Alternative YANG library structure for 7895bis

Robert Wilton <rwilton@cisco.com> Mon, 11 December 2017 11:16 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 3EBDC124BE8; Mon, 11 Dec 2017 03:16:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level:
X-Spam-Status: No, score=-14.501 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, 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 v6YGbLF6cYZi; Mon, 11 Dec 2017 03:16:27 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61C70120721; Mon, 11 Dec 2017 03:16:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6991; q=dns/txt; s=iport; t=1512990986; x=1514200586; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=5kjSd3jH59ZldufV7PYlKd9u4VaEx0ebwfr9PHOf9mI=; b=G5ib0b0CQOvHyxYpr2jAtXNlAHrdQKOXRd1F5yf4QhbrP1GxgN5WiRUR 3IgAF04DeAD6VEUDBLJvcQXwERkcArrL9d8+u2rE0EikCT90f+CwOwqao zhok9nkWeyIGtT/u2I3Lsv4E5D6hKpUJY1wnfZN31XO735l8bCAQ8cQ+v E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DSAAAKaC5a/xbLJq1SCRkBAQEBAQEBA?= =?us-ascii?q?QEBAQEHAQEBAQGEJHQnhAKKIXSPVi+XDIIVChgLhElPAoUuGAEBAQEBAQEBAWs?= =?us-ascii?q?ohSIBAQEBAgEBASEPAQU2CxALGAICIwMCAicfEQYBDAYCAQEXigUIEKdDgieKY?= =?us-ascii?q?wEBAQEBAQEBAQEBAQEBAQEBAQEBAR2BD4JZg2GBaSmDAoR1FBaDFYJjBaMRh3m?= =?us-ascii?q?NKIIWY4kYJIcujl+Hf4E7HzmBTzIaCBsVOoIpCYJJHIFnQTeJZwEBAQ?=
X-IronPort-AV: E=Sophos;i="5.45,391,1508803200"; d="scan'208";a="824856"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Dec 2017 11:16:24 +0000
Received: from [10.63.23.92] (dhcp-ensft1-uk-vla370-10-63-23-92.cisco.com [10.63.23.92]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id vBBBGNMl020129; Mon, 11 Dec 2017 11:16:24 GMT
To: Vladimir Vassilev <vladimir@transpacket.com>, Andy Bierman <andy@yumaworks.com>, Kent Watsen <kwatsen@juniper.net>
Cc: "netconf@ietf.org" <netconf@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
References: <75e91419-9436-d1b7-29f6-02e3ff4ff86d@transpacket.com> <668cc9e1-c006-ce25-1473-549bc0b71a7d@cisco.com> <6cc655e0-1c28-fe75-b854-08e2d878816c@transpacket.com> <20171208.160306.109290175567894287.mbj@tail-f.com> <20171208150614.axuynu4atpg7aaj2@elstar.local> <b3159aa5-93e4-23eb-406e-083289a4767d@transpacket.com> <20171208153442.roomf7rhixtckrfk@elstar.local> <1512750289.11843.3.camel@nic.cz> <C030AD08-2E8B-4248-994B-04C802296024@juniper.net> <CABCOCHQZLirVDqGNysAkRFXruPKxyXrBQ+xyagU9y3QHRV6d0g@mail.gmail.com> <9b62952b-d3e6-2db2-6aac-9a544a991078@transpacket.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <3aac1b82-9cfb-97af-cecb-c469587c37d1@cisco.com>
Date: Mon, 11 Dec 2017 11:16:23 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <9b62952b-d3e6-2db2-6aac-9a544a991078@transpacket.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/eCobbsmkTj5Aru5985Mdj7-GpIk>
Subject: Re: [netmod] [Netconf] Alternative YANG library structure for 7895bis
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: Mon, 11 Dec 2017 11:16:29 -0000

Hi Vladimir,


On 09/12/2017 11:49, Vladimir Vassilev wrote:
> On 12/08/2017 07:01 PM, Andy Bierman wrote:
>
>> Hi,
>>
>> A library per datastore sounds too complicated.
> I am not proposing that.
I'm slightly lost, because I thought that was exactly what you were 
proposing! ;-)

>
>
> The fundamental point proposed is that the datastore relevant bits are 
> kept in the ietf-datastores module instead of merging everything in a 
> new ietf-yang-library entangled monster module. If needed 
> ietf-datastores can augment ietf-yang-library but ietf-yang-library 
> should be usable on its own without ietf-datastores. The solution is 
> coherent and modular and addresses the problem statement.

The issue with this is that datastore augmentations to YANG library 
would end up changing the meaning of the existing YANG library nodes.  
E.g. an old client that ignores the datastore augmentations is going to 
get a nasty surprise when the server does not behave how it expects.  
E.g. because the configuration node that it thinks should be there isn't 
there because it only supported in <operational>.

This was one of the reasons for changing YANG library.

In terms of the idea of just re-using YANG library but export a separate 
copy for each datastore I think that this has its own problems:
- I don't like the idea of returning meta-data along with configuration 
for a <get-data> on any of the configuration datastores.
- How does a client know whether the YANG library for <running> applies 
to the whole server (as it does today) vs just applies to the <running> 
datastore (as it would for an NMDA server)?
- It requires more handshaking between the client and server to get the 
schema, since a separate request would be required for each datastore 
that is supported.

So, for me, I think that the only way that this solution works, would be 
to define a new <get-server-metadata> RPC, but even then I think that it 
would make sense to combine the data together into a new YANG library 
structure.

At the end of the day, I don't think that a new YANG library is going to 
be were the real cost for supporting NMDA comes from.  I think that the 
real work is supporting <operational> independently from <running> both 
in the client and servers. But I also think that once servers start 
implementing this properly that it will simplify automation, because 
rather than a client having to guess what state a server is in, it can 
actually querey, or be notified of it, without having to write a lot of 
model specific code.

Thanks,
Rob


>> I prefer the proposal that was made at the IETF meeting that had
>> a 'not-implemented-in' leaf-list and a single module list.
> This constraint is already specified in the text of the revised 
> datastores draft. Clients conforming to the draft can expect servers 
> to comply with the MUST requirement even if there is a separate 
> yang-library data tree for each datastore the constraint of 
> configuration stores mapping to 'operational' should be enforced 
> according to the draft. There is no contradiction here.
>
> That said I would be also be OK with ietf-datastores augmenting 
> ietf-yang-library with such a leaf-list ('not-implemented-in' 
> leaf-list) as a more constrained flavor of the same approach instead 
> of going for independent copies of yang-library data. For any of that 
> to happen change in ietf-datastores.yang is needed and change in the 
> original rfc7895 ietf-yang-library is not needed at all.
>
> Vladimir
>
>>
>> Why is it interesting to have a separate module list for regular 
>> modules and imported modules?
>> I prefer to keep the conformance leaf and not change the module list.
>>
>> NMDA needs to be possible to implement with a single schema tree such 
>> that a module
>> is implemented in all datastores, or a subset of all datastores.  
>> Otherwise it probably won't
>> get supported in clients.
>>
>>
>> Andy
>>
>>
>>
>> On Fri, Dec 8, 2017 at 9:21 AM, Kent Watsen <kwatsen@juniper.net 
>> <mailto:kwatsen@juniper.net>> wrote:
>>
>>     CC-ing NETCONF, where the draft is being worked on.
>>
>>     Kent
>>
>>
>>     On Fri, 2017-12-08 at 16:34 +0100, Juergen Schoenwaelder wrote:
>>     > On Fri, Dec 08, 2017 at 04:19:28PM +0100, Vladimir Vassilev wrote:
>>     > >
>>     > > Yes. The default value for yang-library-datastore leaf is
>>     ds:operational
>>     > > (the only possible one for the ds:operational datastore). This
>>     is backward
>>     > > compatible. If one needs different model for 'running', etc.
>>     then a new
>>     > > datastore identity has to be defined  and set in place of the
>>     default value.
>>     > > Then this identity can be used to read the yang-library data 
>> with
>>     > > <get-data>.
>>     > >
>>     >
>>     > Sorry, but I have to ask this: How do I obtain the schema for the
>>     > datastore (lets call it <running-library>) that reports the
>>     schema for
>>     > <running>? Is there another <running-library-library> datastore?
>>     Will
>>     > the recursion end? Perhaps it does since <running-library-library>
>>     > might have itself listed as the schema defining datastore. I guess
>>     > Lada will like these kind of meta and meta-meta datastores.
>>
>>     Not really. Metadata needn't be in datastores.
>>
>>     Lada
>>
>>     >
>>     > /js
>>     >
>>     --
>>     Ladislav Lhotka
>>     Head, CZ.NIC Labs
>>     PGP Key ID: 0xB8F92B08A9F76C67
>>
>>     _______________________________________________
>>     netmod mailing list
>>     netmod@ietf.org <mailto:netmod@ietf.org>
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_netmod&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=5qj6BQUSwqYmkAVeKz5axFV8k3gxYEPSJ5Cp0RSnxrE&s=I7fR1GY5lN2hVMkDuvryrhDeRypike3wPeFRrvQI5l8&e=
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_netmod&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=5qj6BQUSwqYmkAVeKz5axFV8k3gxYEPSJ5Cp0RSnxrE&s=I7fR1GY5lN2hVMkDuvryrhDeRypike3wPeFRrvQI5l8&e=>
>>
>>
>>     _______________________________________________
>>     netmod mailing list
>>     netmod@ietf.org <mailto:netmod@ietf.org>
>>     https://www.ietf.org/mailman/listinfo/netmod
>>     <https://www.ietf.org/mailman/listinfo/netmod>
>>
>>
>>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf