Re: [netmod] Proposal for minimalist full NMDA support in schema mount

Martin Bjorklund <mbj@tail-f.com> Fri, 23 February 2018 09:36 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 790571243FE for <netmod@ietfa.amsl.com>; Fri, 23 Feb 2018 01:36:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level:
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 djMS3JCY_LeJ for <netmod@ietfa.amsl.com>; Fri, 23 Feb 2018 01:36:30 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 5F5771242EA for <netmod@ietf.org>; Fri, 23 Feb 2018 01:36:30 -0800 (PST)
Received: from localhost (h-80-27.A165.priv.bahnhof.se [212.85.80.27]) by mail.tail-f.com (Postfix) with ESMTPSA id DBF911AE02BE; Fri, 23 Feb 2018 10:36:28 +0100 (CET)
Date: Fri, 23 Feb 2018 10:36:28 +0100
Message-Id: <20180223.103628.1174590223555999274.mbj@tail-f.com>
To: rwilton@cisco.com
Cc: lberger@labn.net, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <195c3186-25ce-3019-1eda-34096fbc8de3@cisco.com>
References: <090b951e-8627-183b-6fe1-ae46da5a90bc@labn.net> <195c3186-25ce-3019-1eda-34096fbc8de3@cisco.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/VQXkdDxXJlFBkWgETk9SQBWOmnE>
Subject: Re: [netmod] Proposal for minimalist full NMDA support in schema mount
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: Fri, 23 Feb 2018 09:36:32 -0000

Hi,

Robert Wilton <rwilton@cisco.com> wrote:
> Hi Lou,
> 
> I think that this solution is inferior to the model presented in
> pre-09.

I agree.  Servers that are NMDA-compliant, or implements YANG Library
bis will have to present schemas in two different structures,
depending on where the schema is used, and clients will have to code
for both.  With the solution in pre-09, there is just one structure.
A single structure also has other benefits (apart from being simpler),
e.g., if we augment it with the meta data that has been discussed
recently, we can augment a single structure.


/martin



> I would prefer that we publish pre09 instead, potentially including
> the -08 model in the appendix if that helps progress the document in a
> more expedient fashion.
> 
> Thanks,
> Rob
> 
> 
> On 22/02/2018 16:18, Lou Berger wrote:
> > Hi,
> >
> > (I have a bunch of different roles WRT this work.  This mail is being
> > sent as an individual - as chair, I fully support the previous chair
> > statements on this draft.)
> >
> > Chris and I have come up with a proposal on how to provide full NMDA
> > as part the existing schema-mount module.  Our motivation was to
> > enable full NMDA support with *minimal* change to the model and
> > disruption to the LC'ed work.  The key NMDA limitation, with -08, that
> > we are aiming to address is the ability to support different mounted
> > schema in different datastores for non-inline mount points. (See more
> > detailed description below if interested full nuances of limitations
> > of -08)
> >
> > What we came up with was  to simply add a (leaf)list to identify in
> > which datastores a
> > schema-mount schema is valid/present. This is somewhat similar to
> > YL-bis schema/module-set. Specifically we're proposing (see below for
> > full tree below):
> >
> >            +--ro schema* [name]
> >               +--ro name           string
> > ADD          +--ro datastore*    ds:datastore-ref {revised-datastores}
> >
> > This approach has the advantages of supporting different mounted
> > schema in different DSes, working with both NMDA and non-NMDA
> > implementations, supporting all of the extensively discussed features
> > of schema mount (including recursive mounts), and having minor/scoped
> > impact on all dependent work.  The main downside is that it isn't the
> > most optimal/compact solution possible if we were to base this work on
> > YL-bis/pre09 draft.  Of course -08 isn't necessarily optimal from all
> > perspectives, but it is what was agreed to as sufficient by those who
> > contribute to the WG discussion.
> >
> > In short, we see this as a solution to  addresses the raised last call
> > issue with the minimal impact on -08 and dependent work -- which is
> > what is appropriate given where we are in the process.
> >
> > So our/my question really is:
> >
> >     Is this a solution that you/all can live with?
> >
> > Note: optimization, design preference and perfect alignment with use
> > or YL-bis are not part of our question as we both don't think that is
> > the right question given where we are in the WG process.
> >
> > Lou (with ideas developed with Chris, and chair hat off)
> >
> > ======
> > Details -- for those who want
> > ======
> > As background, my understanding/view is that the -08 version of the
> > both NMDA and non-NMDA supporting implementations, but there are
> > limitations in its NMDA applicability. Used with Yang Library,
> > [rfc7895], only non-NMDA implementations can be supported.  When used
> > with the revised Yang Library defined in
> > [I.D.ietf-netconf-rfc7895bis-],  NMDA implementations  can be
> > supported with certain limitations. Specifically, this document
> > requires use of the now deprecated module-list grouping, and the same
> > schema represented in schema list of the Schema Mount module MUST be
> > used in all datastores.  Inline type mount points, which don't use the
> > schema list,  can support different schema in different data stores
> > not by instantiating the [I.D.ietf-netconf-rfc7895bis-] version of
> > YANG library under the inline mount point.
> >
> >     module: ietf-yang-schema-mount
> >         +--ro schema-mounts
> >            +--ro namespace* [prefix]
> >            |  +--ro prefix    yang:yang-identifier
> >            |  +--ro uri?      inet:uri
> >            +--ro mount-point* [module name]
> >            |  +--ro module        yang:yang-identifier
> >            |  +--ro name          yang:yang-identifier
> >            |  +--ro config?       boolean
> >            |  +--ro (schema-ref)?
> >            |     +--:(inline)
> >            |     |  +--ro inline?       empty
> >            |     +--:(use-schema)
> >            |        +--ro use-schema* [name]
> >            |           +--ro name
> >            |           |       -> /schema-mounts/schema/name
> >            |           +--ro parent-reference*   yang:xpath1.0
> >            +--ro schema* [name]
> >               +--ro name           string
> > ADD          +--ro datastore*    ds:datastore-ref {revised-datastores}
> >               +--ro module* [name revision]
> >               |  +--ro name                yang:yang-identifier
> >               |  +--ro revision            union
> >               |  +--ro schema?             inet:uri
> >               |  +--ro namespace           inet:uri
> >               |  +--ro feature*            yang:yang-identifier
> >               |  +--ro deviation* [name revision]
> >               |  |  +--ro name        yang:yang-identifier
> >               |  |  +--ro revision    union
> >               |  +--ro conformance-type    enumeration
> >               |  +--ro submodule* [name revision]
> >               |     +--ro name        yang:yang-identifier
> >               |     +--ro revision    union
> >               |     +--ro schema?     inet:uri
> >               +--ro mount-point* [module name]
> >                  +--ro module        yang:yang-identifier
> >                  +--ro name          yang:yang-identifier
> >                  +--ro config?       boolean
> >                  +--ro (schema-ref)?
> >                     +--:(inline)
> >                     |  +--ro inline?       empty
> >                     +--:(use-schema)
> >                        +--ro use-schema* [name]
> >                           +--ro name
> >                           |       -> /schema-mounts/schema/name
> >                           +--ro parent-reference*   yang:xpath1.0
> >
> > We would expect that the revised-datastores feature would be used
> > (perhaps required) for any implementation that supports
> > ietf-datastores
> > and yl-bis.
> >
> >
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod