Hi,

Kent Watsen <kwat...@juniper.net> wrote:
> [As a contributor]
> 
> Note: this is a -00 document, but only because the draft's name
> changed.  In reality this is like a
> draft-voit-netmod-peer-mount-requirements-04.  Looking at the diffs,
> there aren't many changes, mostly cleanup and adding the "schema
> mount" concept.  That is, the new "yang mount" term is use to cover
> all of "schema mount", "alias mount", and "peer mount".
> 
> My comment is mostly high-level.  I'm wondering about the need for
> this draft to include schema mount at all.  That is, a schema mount
> solution draft is now an adopted WG item, and I'm unsure if the
> authors of that draft are looking to this one to define requirements.
> Perhaps the goal is to define the umbrella term "yang mount", but to
> be honest, I don't really see a need to have a term that spans both
> schema and data mounts.  I'm not sure how others feel about this, but
> my thoughts are that we should define terms like:
> 
> - scheme-mount
> - data-mount
> - remote data mount   (a.k.a. peer mount)
> - local data mount        (a.k.a. alias mount)
> 
> More so than:
> 
> yang-mount
> - scheme-mount
> - alias-mount
> - peer-mount

Listening to Eric's presentation yesterday, I realized that I have a
slightly different view on these terms.

I prefer to separate the *schema* (data model) from how things are
implemented.  The various proposals for specific implementations (peer
mount and alias mount etc) all need a "schema mount" to take of
defining a proper data model.   (This was the whole point of defining
structural-mount...)

For example, suppose we have:

  container logical-devices {
    list logical-device {
      key name;
      ...
      yangmnt:mount-point logical-device;
    }
  }

With the associated yang-library, a client might learn that
ietf-interfaces is mounted under the "logical-device" mount mount.

Now, the client knows that there are paths:

  /logical-devices/logical-device/if:interfaces/if:interface

but the client doesn't necessarily have to know if the the interfaces
data is implemented w/ "peer mount" or some other mechanism.


So, in my view, we have:

  schema mount
      |
      +---- peer mount
      +---- alias mount
      +---- other cool mount



As a concrete example, peer mount might be used like this (example
taken from draft-clemm-netmod-mount-03):

   import ietf-schema-mount {
     prefix yangmnt;
   }
   import ietf-peer-mount {
     prefix pmnt;
   }

   ...

   list network-element {
     key "element-id";
     leaf element-id {
       type element-ID;
     }
     container element-address {
       ... // choice definition that allows to specify
           // host name,
           // IP addresses, URIs, etc
     }
     yangmnt:mount-point "interfaces" {
       pmnt:target "./element-address";
       pmnt:subtree "/if:interfaces";
     }
     ...
   }


A client that knows about the generic, abstract schema mount can work
with this, without knowing anything of the specific implementation of
peer mount.

[Actually, since peer mount is just one implementation technique, I'd
prefer to decouple the definition of this implementation detail from
the data model, but that's a different topic.]


/martin

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

Reply via email to