Hi,

On 09/01/2017 21:17, Andy Bierman wrote:


On Mon, Jan 9, 2017 at 12:51 PM, Juergen Schoenwaelder <[email protected] <mailto:[email protected]>> wrote:

    On Mon, Jan 09, 2017 at 09:18:46PM +0100, Ladislav Lhotka wrote:
    >
    > I am more concerned about use cases that are not known so far,
    and so I am against standardizing this (or any other) workflow as
    the only one supported by NETCONF/RESTCONF and YANG. I believe
    both the protocols and YANG can work with any set of datastores,
    but their choice depends on the use case at hand. Why should IoT
    developers be exposed to the running-intended-applied complexity,
    even if they are allowed to lump all three into one?
    >

    Please point me to the statement in the I-D that makes you believe an
    implementation is required to support all datastores.

    > > There are no standard mechanisms that cause <running> to be
    > > different from <intended>, so I would agree the intended datastore
    > > needs a lot more standards support before it is useful.
    > >
    >
    > The only difference seems to be the presence of templates but I
    don't know what they are.
    >

    The I-D says:

                                |        // e.g., removal of 'inactive'
                                |        // nodes, expansion of templates

    So it is not just templates. And yes, these are things several
    real-world implementations can do but where the IETF did not yet
    managed to standardize anything. The basic question is whether we want
    a model that is (a) capable to match real-world implementation and
    that allows for future standards of existing proprietary technology or
    (b) we go with what we have today (either chartered or published) and
    we keep revising the model as we move ahead.



I think itt is not realistic to say that datastores are optional.

e.g. <enabled> leaf:  If there is a standard way to enable/disable config
then individual "enabled" leafs are redundant. However XPath (must/when)
has no way to describe if the subtree is enabled (which is a show-stopper)

<foo-config> vs <foo-oper>. If the applied or operational datastore is assumed,
then there is no need to model the redundant config-as-operstate.
If this is left out of the model, then the datastore becomes mandatory.
If it is left in the model, the datasore becomes redundant.

The basic premise that these datastores are optional is flawed.
One cannot design a YANG module assuming the datastores are present
if they are in fact optional.

I agree that these datastores are not all really optional.

Current YANG models are structured assuming that there is no operational state datastore. They could be used on devices that support an operational state datastore, but there would likely be duplication of some of the data because it is represented in two places.

But to design clean models with combined config and state, it is necessary to assume support for both "running" and also "operational state" datatstores. Such models could theoretically be used by devices that don't support the operational state datastore, but key information would be unavailable, so this doesn't feel like a pragmatic solution. However, it would to straight forward to write tooling (i.e. a plugin to pyang) that takes a YANG module designed assuming an operational state datastore and generate the missing config false leaves so that the model could also be used on devices that don't support an operational state datastore.

This raises the question, or how do you know whether a model has been designed assuming support for an operational state datastore? For me the simplest solution appears to be to mark the models as YANG version 2.0. I would also propose revising NETCONF and RESTCONF to version 2, allowing the protocols to change to support an operational state datastore in a clean way. E.g. if a device supports an operational state datastore then it doesn't really make sense to continue to support the existing NETCONF GET operation.

Thanks,
Rob




    /js


Andy

    --
    Juergen Schoenwaelder           Jacobs University Bremen gGmbH
    Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
    Fax:   +49 421 200 3103         <http://www.jacobs-university.de/
    <http://www.jacobs-university.de/>>




_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to