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