> On 22 Jan 2016, at 14:28, Robert Wilton <rwil...@cisco.com> wrote:
> 
> Hi Lada,
> 
> Please see inline ...
> 
> On 22/01/2016 12:41, Ladislav Lhotka wrote:
>> Robert Wilton <rwil...@cisco.com> writes:
>> 
>>> Hi Lada, Martin,
>>> 
>>> I've reviewed both draft-bjorklund-netmod-structural-mount-00 and
>>> draft-lhotka-netmod-ysdl-00.
>>> 
>>> In comparing these two drafts, the main differences that I perceive are:
>>> 
>>> 1) structural-mount allows the mounted data model to publish its
>>> supported schema at the mount point, but ysdl requires the mounting
>>> device to know and publish the schema for all mounted data models.
>> I am not sure what you mean by "publish" but I think really the only
>> difference is that structural-mount provides schema information as
>> regular state data and YSDL as meta-data.
> I was really referring to the inline-yang-library option in structural mount 
> that allows the actual YANG schema to be deferred to the mounted device 
> implementing yang-library (and which is available at the mount point).  This 
> is the option that I would anticipate would be used in the LNE model.

YSDL doesn't address any kind of remote mounts. It just adds a pull-style 
method for the schema construction but everything is local to the device. I 
think that mounting data from other devices is a different matter with specific 
problems (access) that don't exist in YSDL.

> 
>> 
>> In my view, the definition of a data model schema is really
>> meta-data. The module "ietf-yang-structural-mount" and its data would
>> require special treatment anyway - for example, it has to be found in a
>> well-known location, so it cannot itself be mounted.
> Yes, I can see how it is meta-data, but I'm not sure that it is significantly 
> different from the information provided in yang-library which is represented 
> a s regular YANG operational module.

It doesn't really matter how the schema info is retrieved, as long as it is 
state data available at a well-known location. As I wrote, YSDL could be just 
an augmentation of yang-library.

Lada

> 
> For structural-mount: A mounted model should be able to make the mount-points 
> structure available at the mount point if required. I.e. the solution is able 
> to naturally recurse (as Martin confirmed in reply to Robert Varga's email).
> 
>> 
>>> 2) A corollary of (1) is that structural-mount also allows different
>>> schema data models to be published at the mount point (e.g. under a
>>> list), but ysdl does not.
>> True, but it can be easily emulated by using either a choice (or a
>> "dynamic choice" using "when") and defining different sub-schemas as
>> different cases. I'd argue this is a more robust approach.
> I don't think that emulating this with a choice is going to be particularly 
> clean.  In addition, the device that is doing the mounting doesn't 
> necessarily know what models the mounted device actual implements.  For ysdl 
> to work for this scenario, the mounting device would probably need to query 
> the yang-library (and/or ysdl meta-information to allow the solution to 
> recurse) for each mounted device to construct the meta-data for it. At this 
> point I would argue that it is easier to just provide direct access to the 
> yang-library for the mounted device (as structural-mount solution proposes).
> 
>> 
>>> 3) structural-mount has a mount node embedded directly in the schema,
>>> where as for ysdl, the equivalent mount points are only specified in the
>>> ysdl meta-schema.
>>> 4) ysdl is extensible to cover other non mount related use-cases (such
>>> as anydata) where being able to dynamically make available the schema is
>>> useful.
>>> 5) structural-mount also covers RPCs and Notifications, whereas these
>>> appear to be outside the scope of ysdl.
>> This is just an omission on the part of YSDL. The approach proposed for
>> structural-mount can be used as well.
> OK.
> 
>> 
>>> 6) The ysdl meta-data language appears to be more flexible, and hence
>>> also more complex, than the equivalent "mount-points" schema defined in
>>> structural-mount.
>>> 7) For structural-mount the "mount-points" table is returned as a normal
>>> oper data YANG module in the mounting device, whereas for ysdl, protocol
>>> extensions would be required to NETCONF/RESTCONF to access the schema
>>> meta-data.
>> First, structural-mount uses an extension that has to be considered
>> mandatory because otherwise no interoperability can take place. So I
>> don't think that it seamlessly integrates into NETCONF/RESTCONF.
> I think that only clients and devices that need to mount other models would 
> need to support it.  Whether this means it becomes mandatory would presumable 
> depend on how widely the mount node used in standard YANG models.
> 
>> 
>> And second, I actually considered to simply extend yang-library with the
>> YSDL data, but I decided to keep it separate in order to avoid
>> additional delays for the yang-library spec.
>> 
>>> Considering these differences:
>>> 
>>> For points (1) and (2), I can think of scenarios where having a mounted
>>> device being able to provide its schema via yang-library and for that
>>> schema to differ for different mounted devices is probably a requirement
>>> for some plausible mount scenarios.  E.g. one that I can think of is the
>>> case that you have a YANG controller that is exposing an aggregated YANG
>>> model for a set of devices, it seems that you would need to be
>>> accommodate mounted devices that are made by different vendors and
>>> running different software versions which would imply that their schema
>>> may also be different.
>> Right, you would use a (dynamic) choice in this case.
> As per above, I'm not really convinced that this works as a solution.
> 
>> 
>>> For point (3), this is a matter of preference, I like that fact that the
>>> mount point is explicit in the schema in structural-mount.  The ysdl
>> But this means using a YANG extension with all the problems regarding
>> conformance. And this extension is quite far-reaching.
> I would think that depends on how many models end up needing to mount other 
> models.
> 
> Thanks,
> Rob
> 
> 
>> 
>> Lada
>> 
>>> meta-schema appears to be more flexible because it can in effect put
>>> mount points anywhere, but even with structural mount this same
>>> flexibility could presumably still be achieved by augmenting with a
>>> mount point.
>>> 
>>> For point (4), I think that this is useful functionality, and perhaps if
>>> structural-mount is to be used as the base draft going forward it might
>>> be worth considering whether the solution could be able to cover, or be
>>> cleanly extended, to this use case.
>>> 
>>> For point (5), I definitely think that it is beneficial that
>>> structural-mount has an intuitive solution for RPCs and Notifications.
>>> 
>>> For points (6) and (7) my gut instinct is that the structural-mount
>>> would be easier to standardize and also less work to implement.
>>> 
>>> 
>>> Some of my points above may be incorrect, and that might swing the
>>> balance between the two solutions, so please correct me if I have got
>>> anything wrong.  Otherwise, just considering the written drafts as they
>>> stand now, my personal preference is that I would favour using
>>> structural-mount as a starting point for a solution.
>>> 
>>> Martin, I also have some comments/questions on the structural-mount
>>> draft, I'll put these into a separate email.
>>> 
>>> Thanks,
>>> Rob

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




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

Reply via email to