Subject: [netmod] Schema-mount question: Augmentation to the Mounted Module

From: "Xufeng Liu" <[email-masked]>
Date: Tue, 13 Jun 2017 16:27:24 -0400

Hi Lada,

We have got two questions on how to specify the module entries in a schema:

1.	Are augmentations of parent modules inherited when augmented module
is listed in schema-mounts schema?

For example, ietf-ospf module augments ietf-routing. When we include
ietf-routing to the schema entry, is ietf-ospf automatically included?

2.	When we have ietf-yang-library mounted under a parent (LNE), does
ietf-yang-library have to contain exactly the same list of Yang modules as
the list contained in the "schema" entry under "schema-mount"?

For example, ietf-ospf module augments ietf-routing. When we mount
ietf-routing ietf-yang-library to LNE, should we list ietf-ospf in the mount
module list? And also in ietf-yang-library?

It would be great if these can be clarified.

Thanks,

- Xufeng

---

From: Ladislav Lhotka <[email-masked]>
Date: Wed, 14 Jun 2017 13:17:34 +0200

Hi Xufeng,

please see my answers inline.

> ietf-routing to the schema entry, is ietf-ospf automatically included?

No, you also have to include "ietf-ospf" in the "module" list inside the
corresponding "schema" entry, exactly as you do in the top level YANG
library, otherwise ietf-ospf won't be mounted.

> the list contained in the "schema" entry under "schema-mount"?

I am not sure I understand but do you mean an LNE mounted schema defined via
the "use-schema" case that also includes ietf-yang-library? This is a
corner case we probably haven't thought about but it IMO doesn't make
any sense to do so because the applicable YANG library that counts is
inside the "schema" entry. Martin, should we address this anomaly?

BTW, I think that normally LNE schema is supposed to be mounted using the
"inline" case, and then of course ietf-yang-library is required but
there is no "schema" entry under "schema-mounts" to worry about.

Lada

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67

---

From: Lou Berger <[email-masked]>
Date: Wed, 14 Jun 2017 07:43:08 -0400

Hi,

(speaking as contributor...)

> library, otherwise ietf-ospf won't be mounted.

I agree.  The draft should have text that makes this explicit.

> inside the "schema" entry. Martin, should we address this anomaly?

I think this is a very real scenario for LNE.  Consider a 'host' system
that allows read only views of the LNE and wants the benefit of
"use-schema".  In this case, library under the mount point is still
needed for client access within the mounted LNE. 

It seems to me that in this case the mounted library module data must
exactly match what is listed in the corresponding "schema" entry under
"schema-mount" in order to ensure deterministic client views/behavior. 
Again, I think this should be made explicit in the draft.

> there is no "schema" entry under "schema-mounts" to worry about.
Both inline and non-inline LNE usage is expected in real systems...

Lou

---

From: Ladislav Lhotka <[email-masked]>
Date: Wed, 14 Jun 2017 15:22:01 +0200

> On 14 Jun 2017, at 13:43, Lou Berger <[email-masked]> wrote:
> 
> Hi,
> 

Why? It should be sufficiently clear that modules that are not listed in "schema" are not present in the mounted schema. An augment is just a special mechanism of contributing schema nodes. 

> needed for client access within the mounted LNE.

In this case it would IMO be much better if the server inside the LNE provide YANG library data separately for its clients. The client of the host system needn't see it because it is just redundant.

> Again, I think this should be made explicit in the draft.

Another option is to ban ietf-yang-library in schemas mounted via "use-schema". I still think it is wrong to tout "inline" and "use-schema" as the same "schema mount" concept. If we clearly separated the two concepts, "inline" would become an absolute no-brainer requiring just a single YANG extension statement, and "use-schema" would also be easier to explain with no confusing exceptions and qualifications. It's just simple divide-and-conquer in terms of the spec, with no limitations compared to the current options.

Lada

---

From: Lou Berger <[email-masked]>
Date: Wed, 14 Jun 2017 09:47:00 -0400

Hi Lada,

> Why? It should be sufficiently clear that modules that are not listed in "schema" are not present in the mounted schema. An augment is just a special mechanism of contributing schema nodes. 

Because it it ambiguous  to one (very clueful) reader, it won't be clear
to others (who may or may not be clueful)...

> In this case it would IMO be much better if the server inside the LNE provide YANG library data separately for its clients. The client of the host system needn't see it because it is just redundant.

huh?  The intent was for the same information to be available from both
in this use case.  All that is needed is a one or two sentences to cover
this case.  Do you want me to propose text?  (Yes, we could do this in
the LNE document, but these seems like a generic, not model-specific topic.)

> Another option is to ban ietf-yang-library in schemas mounted via "use-schema". I still think it is wrong to tout "inline" and "use-schema" as the same "schema mount" concept. If we clearly separat…

I don't see how this helps.  The scenario being discussed doesn't have
anything to do with inline case.  This is the case of the LNE which can
support the exposure of the same information (data) via multiple YANG
servers.  One (the hosts) that sees all information and the other that
sees information from the (jailed) mount point.

Lou

---

From: Martin Bjorklund <[email-masked]>
Date: Wed, 14 Jun 2017 19:07:14 +0200 (CEST)

Ladislav Lhotka <[email-masked]> wrote:
> Why? It should be sufficiently clear that modules that are not listed
> in "schema" are not present in the mounted schema. An augment is just
> a special mechanism of contributing schema nodes.

Yes I agree.  But let's see if we can clarify the text.  Xufeng, what
in the current text led you to believe that a module in the parent
schema would be automatically present in the mounted schema?

> In this case it would IMO be much better if the server inside the LNE
> provide YANG library data separately for its clients. The client of
> the host system needn't see it because it is just redundant.
> 
> >  
> > 
> Another option is to ban ietf-yang-library in schemas mounted via
> "use-schema".

This won't help.  The question is still the same - if you use
"use-schema", and one of the mounted modules is "ietf-yang-library",
does the contents of the yang library in both places have to be the
same?

Anyway, I think the answer is that from the current specification, it
follows that the contents *will* be the same.

/martin

> I still think it is wrong to tout "inline" and
> "use-schema" as the same "schema mount" concept. If we clearly
> separated the two concepts, "inline" would become an absolute
> no-brainer requiring just a single YANG extension statement, and
> "use-schema" would also be easier to explain with no confusing
> exceptions and qualifications. It's just simple divide-and-conquer in
> terms of the spec, with no limitations compared to the current
> options.
> 
> Lada
> 
> >

---

From: "Xufeng Liu" <[email-masked]>
Date: Wed, 14 Jun 2017 14:15:46 -0400

Hi Martin,

> -----Original Message-----
> From: Martin Bjorklund [mailto:[email-masked]]
> Sent: Wednesday, June 14, 2017 1:07 PM
> To: [email-masked]
> Cc: [email-masked]; [email-masked]; draft-ietf-netmod-schema-
> [email-masked]; [email-masked]
> Subject: Re: [netmod] Schema-mount question: Augmentation to the Mounted
> Module
> 
> > >>> We have got two questions on how to specify the module entries in
> > >>> a
> > >>> schema:
> > >>>
> > >>>
> > >>>
> > >>> 1. Are augmentations of parent modules inherited when augmented
> > >>> module is listed in schema-mounts schema?
> > >>>
> > >>> For example, ietf-ospf module augments ietf-routing. When we
> > >>> include ietf-routing to the schema entry, is ietf-ospf automatically
> included?
> > >> No, you also have to include "ietf-ospf" in the "module" list
> > >> inside the corresponding "schema" entry, exactly as you do in the
> > >> top level YANG library, otherwise ietf-ospf won't be mounted.
> > >
> Yes I agree.  But let's see if we can clarify the text.  Xufeng, what in
the current
> text led you to believe that a module in the parent schema would be
> automatically present in the mounted schema?
> 
[Xufeng] Thanks for looking at this. The confusion is because of the lack of
text, I would say. The term "mount" has an analogy to the Unix file system
"mount", where what we only specify the parent directory and child file
system (the connecting relationship at the connection point). Also, similar
is the command for the Unix soft/hard links, where we don't need to check if
there are other links under the child. 

> > >>> ietf-yang-library have to contain exactly the same list of Yang
> > >>> modules as the list contained in the "schema" entry under
> > >>> "schema-mount"?
> > >> I am not sure I understand but do you mean an LNE mounted schema
> > >> defined via the "use-schema" case that also includes
> > >> ietf-yang-library? This is a corner case we probably haven't
> > >> thought about but it IMO doesn't make any sense to do so because
> > >> the applicable YANG library that counts is inside the "schema"
> > >> entry. Martin, should we address this anomaly?
> > >
> > > It seems to me that in this case the mounted library module data
> > > must exactly match what is listed in the corresponding "schema"
> > > entry under "schema-mount" in order to ensure deterministic client
> views/behavior.
"use-schema", and
> one of the mounted modules is "ietf-yang-library", does the contents of
the
> yang library in both places have to be the same?
> 
follows that
> the contents *will* be the same.
> 
> 
> /martin
> 
> 
> 
> > I still think it is wrong to tout "inline" and "use-schema" as the
> > same "schema mount" concept. If we clearly separated the two concepts,
> > "inline" would become an absolute no-brainer requiring just a single
> > YANG extension statement, and "use-schema" would also be easier to
> > explain with no confusing exceptions and qualifications. It's just
> > simple divide-and-conquer in terms of the spec, with no limitations
> > compared to the current options.
> >
> > Lada
> >
> > >
> > >> BTW, I think that normally LNE schema is supposed to be mounted
> > >> using the "inline" case, and then of course ietf-yang-library is
> > >> required but there is no "schema" entry under "schema-mounts" to
> > >> worry about.
> > >>> ietf-routing ietf-yang-library to LNE, should we list ietf-ospf in
> > >>> the mount module list? And also in ietf-yang-library?
> > >>>
> > >>>
> > >>>

---

From: Martin Bjorklund <[email-masked]>
Date: Fri, 16 Jun 2017 14:38:19 +0200 (CEST)

> there are other links under the child. 

I see.  Note that the analogy doesn't quite work, since there is no
requirement that the mounted module is even present in the parent
schema.  It has been suggested before that the term "mount" is
unfortunate...  Anyway, I think we can clarify that there is really no
relation between the parent schema and mounted modules, maybe like
this:

  The modules that are mounted under a mount point has no relation to
  the modules in the parent schema; specifically, if a module is
  mounted it may or may not be present in the parent schema.

/martin

---

From: "Xufeng Liu" <[email-masked]>
Date: Fri, 16 Jun 2017 12:17:47 -0400

Hi Martin,

That will be good.
Thanks,
- Xufeng

> Sent: Friday, June 16, 2017 8:38 AM
> To: [email-masked]
> Cc: [email-masked]; [email-masked]; draft-ietf-netmod-schema-
> > > Cc: [email-masked]; [email-masked];
> > > draft-ietf-netmod-schema- [email-masked]; [email-masked]
> > > Subject: Re: [netmod] Schema-mount question: Augmentation to the
> > > Mounted Module
> > >
> > > > >>> We have got two questions on how to specify the module entries
> > > > >>> in a
> > > > >>> schema:
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>> 1. Are augmentations of parent modules inherited when
> > > > >>> augmented module is listed in schema-mounts schema?
> > > > >>>
> > > > >> inside the corresponding "schema" entry, exactly as you do in
> > > > >> the top level YANG library, otherwise ietf-ospf won't be mounted.
> > > > >
> > > > Why? It should be sufficiently clear that modules that are not
> > > > listed in "schema" are not present in the mounted schema. An
> > > > augment is just a special mechanism of contributing schema nodes.
> > >
> > [Xufeng] Thanks for looking at this. The confusion is because of the
> > lack of text, I would say. The term "mount" has an analogy to the Unix
> > file system "mount", where what we only specify the parent directory
> > and child file system (the connecting relationship at the connection
> > point). Also, similar is the command for the Unix soft/hard links,
> > where we don't need to check if there are other links under the child.
> 
requirement
> that the mounted module is even present in the parent schema.  It has been
> suggested before that the term "mount" is unfortunate...  Anyway, I think
we
> can clarify that there is really no relation between the parent schema and
> mounted modules, maybe like
> this:
>