Kent Watsen <kwat...@juniper.net> wrote:
> 
> 
> > Hi Kent,
> >
> > thanks for the thorough review, see my responses inline.
> 
> Hi Lada, please see below.
> 
> 
> >> 1. From Section 4:
> >>
> >>    Routing configuration inside an NI often needs to refer to interfaces 
> >> (at
> >>    least those that are assigned to the NI), which is impossible unless 
> >> such
> >>    a reference can point to a node in the parent schema (interface name).
> >>
> >> This seems overstated.  Rather it is a result of an earlier design 
> >> decision.
> >> An alternate solution might have exported the global interfaces into a 
> >> config false list inside the mount jail.   Was such a solution
> >> discussed?

Actually, this wouldn't work, since config true leafrefs/xpaths can't
refer to this "config false" list inside the mount jail.

Besides, even a symlink approach would in fact allow for "such a
reference to point to a node in the parent schema tree".

> > Do you mean something like having "symlinks" to interfaces inside the
> > mount jail? Yes, this was discussed and rejected. According to Martin,
> > tail-f had made a very bad experience with this approach.
> 
> Yes, a little bit like a symlink inside the mount jail.  Good to hear
> that it was discussed.  I still think the above "impossible" word is
> overstating things.  Perhaps s/impossible such/possible when/?

See above; I think the current text is correct.

The point is that *somehow* the solution needs to allow for these
kinds of references; symlinks could be one solution, the
"parent-reference" that we use is another solution.

> >> 3. Also from Section 4 (same paragraph):
> >>
> >>    For the purposes of
> >>    evaluating XPath expressions within the mounted data tree, the union
> >>    of all such nodesets is added to the accessible data tree.
> >>
> >> Could this ever result in name collision?
> >
> > Potentially yes, but sibling nodes with the same name are not an issue
> > for XPath evaluation. 
> 
> I don't know if I agree that it can't be an issue.  What if the module
> has a top-level /widgets container, and there is a parent-reference to
> a /widgets container

The nodes exist in a namespace.  So if you have /widgets in two
different modules there is no issue.  However, if you mount a module A
and at the same time provide A's toplevel nodes as parent references
then you might have a problem - or not!  The document defines what
happens in this case (the result is the union).   Also note that
constructing the set of mounted modules and corresponding
parent-references is up to the implementation.

> >> Also, should how NACM interacts with mounted instance data be
> >> specified?
> >
> > This is a good question because, in principle, top-level NACM rules
> > can address instances of mounted schemas. On the other hand,
> > ietf-netconf-acm can also be a part of the mounted schema - and if
> > so, can its rules also address instances in the parent schema via
> > the parent-reference mechanism?
> >
> > But I would say it is up to rfc6536bis to deal with these questions.
> 
> I don't know, but it seems that this draft is introducing the concept.
> Not to mention, rfc6536bis is already with the IESG.  In either case,
> let's work out what it means and then decide which draft it needs to
> go into.

I think NACM in the parent node should cover access to the mounted
data.  For example, it should be possible to have a rule for:

 /network-instances/network-instance[name='foo']/vrf-root/rt:routing


> >> 5. This document does not say anything about how it relates to NMDA.
> >> Clearly all this is targeted to the conventional datastores

No, or maybe I don't understand what you mean.  Schema mount allows
for mounting config false nodes, or even doing a "read-only" mount.
Such a mount is clearly not available in the conventional datastores.

>, but how
> >> is it reflected in e.g., <operational>?  Does anything need to be said
> >> here?
> >
> > The "use-schema" case shouldn't pose big problems because it is
> > essentially an externally specified augment. The "inline" case is
> > somewhat disturbing though: could the embedded YANG library instances
> > be different in different datastores?
> 
> YANG Library is only available in <operational> (it's all config false).
> I think you mean the embedded YANG Library instances under the mount 
> points.  Yes, you may have a problem here.  Still, this isn't my question,
> is more about schema-mounting requirements across datastores.  E.g., if
> a schema-mount exists in <running>, must it existing in <intended> and
> <operational> as well?  Conversely, if a schema-mount exists in
> <operational>, must it exist in <running>?  I think this draft should
> clarify such things.

I agree that this needs to be clarified.  This issue partly comes from
the fact that schema mount uses the groupings in the old yang
library.  I think we need to use the new groupings from rfc7895bis.


> >> What if the mounted schema has deviations in <operational>.
> >
> > I don't understand why this could be an issue.
> 
> I'm not saying it's a problem yet.  I'm just stating that such things
> can occur and it's unclear that, if they do, could it cause problems.
> For instance, a mounted schema may be looking for a parent reference
> that doesn't exist because of a deviation.
> 
> 
> 
> 
> >> Nits (line-break separated):
> >>
> >> Is "other optional choices" being vague on purpose?  Should it just
> >> call out features and deviations?
> >
> >Yes, it should.
> >
> >>
> >> "the YANG library data" seems odd.  Maybe "the instance of the YANG
> >> Library module"?
> >
> > It is the same but I prefer the former. Note that the term "instance"
> > is not defined in RFC 7950.
> 
> okay
> 
> 
> >> - document, and could be possibly dealt with in a future revision of the 
> >> YANG data modeling language
> >> + document, as it needs to be dealt with as an update to the YANG data 
> >> modeling language
> >
> > I am not sure that it *needs* to be done, because it could have
> > far-reaching consequences.
> 
> Here I'm using "needs" not to mean that it "has to be done" but more that,
> if it is done, it would have to be done in an update to the YANG data 
> modeling language.  The current sentence seems too open-ended...
> 
> 
> >> - Schema mount applies to the data model
> >> + Schema mount regards the data model
> >
> > OK
> >
> >>
> >> - This document allows mounting of complete data models only.
> >> + This document allows mounting of complete modules only.
> >
> > Correct
> >
> >
> >> - may extend this model by defining
> >> + may extend this solution by defining
> >
> > Or perhaps "approach"? I would leave "solution" to marketing folks.
> 
> "approach" is fine.
> 
> 
> >> In S3, replace "YANG 1.1" with "YANG 1.1 and its continuances"?
> >
> > Not sure. For example, next version of YANG can/should turn "mount-point"
> > into a built-in statement.
> 
> So then, when we define yang-next, we'd be forced to either incorporate
> schema-mount or simultaneously publish an update to this RFC to allow
> it to work with the new version of YANG?  Even if YANG-next defined a
> built-in equilvalent, would we not want this mechanism to continue to
> be supported, for backwards compatibility?
> 
> 
> >> - A "container" or "list" node
> >> + A 'container' or 'list' node
> >
> > Actually, following RFC 7950 conventions, no quotes should be used here.
> >
> 
> I'm confused about these conventions - are they written down somewhere.
> In Martin's review of zerotouch draft, he dinged me on my mis-use of
> single-quotes, for the second time.  Looking at RFC 7950, I don't see
> the convention listed anywhere, or are you saying that the convention
> is throughout the RFC and folks are expected to implicitly understand
> what it is?

I think you just should be consistent; if you attach some semantic
meaning to single quotes vs double quotes the document needs to
explain that meaning.  If it is just for quotation, be consistent.  I
think the RFC editor prefers double quotes (but I can't find a
reference to this).

As for the term container; this is a term for an interior node,
defined in 7950, so it is used w/o quotes.   Compare with references
to the "container" statement.




/martin

_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to