Ladislav Lhotka <lho...@nic.cz> wrote:
> On Fri, 2018-04-27 at 12:19 +0100, Robert Wilton wrote:
> > 
> > On 27/04/2018 12:03, Ladislav Lhotka wrote:
> > > On Fri, 2018-04-27 at 11:23 +0100, Robert Wilton wrote:
> > > > On 27/04/2018 11:03, Martin Bjorklund wrote:
> > > > > Hi,
> > > > > 
> > > > > Ladislav Lhotka <lho...@nic.cz> wrote:
> > > > > > On Thu, 2018-04-26 at 17:52 -0700, Andy Bierman wrote:
> > > > > > > On Wed, Apr 25, 2018 at 10:53 PM, Ladislav Lhotka <lho...@nic.cz>
> > > > > > > wrote:
> > > > > > > > Ladislav Lhotka <lho...@nic.cz> writes:
> > > > > > > > 
> > > > > > > > > On Wed, 2018-04-25 at 08:04 -0700, Andy Bierman wrote:
> > > > > > > > > > On Wed, Apr 25, 2018 at 7:05 AM, Ladislav Lhotka 
> > > > > > > > > > <lhotka@nic.c
> > > > > > > > > > z>
> > > > > > > > > > wrote:
> > > > > > > > > > > On Wed, 2018-04-25 at 15:55 +0200, Juergen Schoenwaelder
> > > > > > > > > > > wrote:
> > > > > > > > > > > > On Tue, Apr 24, 2018 at 04:36:01PM +0200, Martin 
> > > > > > > > > > > > Bjorklund
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > > Ladislav Lhotka <lho...@nic.cz> wrote:
> > > > > > > > > > > > > > Martin Bjorklund <m...@tail-f.com> writes:
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > Hi,
> > > > > > > > > > > > > > > 
> > > > > > > > > > > > > > > I am not sure what this statement tells us re. the
> > > > > > > > > > > > > > > issue
> > > > > > > > > > > > > > > in
> > > > > > > > 
> > > > > > > > this
> > > > > > > > > > > email
> > > > > > > > > > > > > > > thread.
> > > > > > > > > > > > > > 
> > > > > > > > > > > > > > It tells us that, in my view, the approach taken in
> > > > > > > > > > > > > > this
> > > > > > > > > > > > > > document
> > > > > > > > 
> > > > > > > > is a
> > > > > > > > > > > > > > bad idea.
> > > > > > > > > > > > > 
> > > > > > > > > > > > > Do you mean that the WG shoud drop this document?  And
> > > > > > > > > > > > > people that
> > > > > > > > > > > > > need yang-data should continue to use the version in
> > > > > > > > > > > > > 8040?  Or that
> > > > > > > > > > > > > people that need yang-data do not have a valid use 
> > > > > > > > > > > > > case
> > > > > > > > > > > > > and
> > > > > > > > > > > > > they
> > > > > > > > > > > > > should do something else?
> > > > > > > > > > > > 
> > > > > > > > > > > > One option is that people use yang-data as defined in 
> > > > > > > > > > > > RFC
> > > > > > > > > > > > 8040
> > > > > > > > > > > > until
> > > > > > > > > > > 
> > > > > > > > > > > IMO, people should use plain YANG. With the new YANG 
> > > > > > > > > > > library
> > > > > > > > > > > it
> > > > > > > > > > > will be
> > > > > > > > > > > possible
> > > > > > > > > > > to confine such non-NM schemas in a special datastore so
> > > > > > > > > > > that
> > > > > > > > > > > the
> > > > > > > > 
> > > > > > > > intention
> > > > > > > > > > > should be clear and multi-module schemas with all the
> > > > > > > > > > > additional
> > > > > > > > > > > data
> > > > > > > > > > > (versions,
> > > > > > > > > > >    features, deviations) can be used.
> > > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > I don't see how yang-data interferes with "plain YANG" at 
> > > > > > > > > > all.
> > > > > > > > > > It is for data that is not in scope for plain YANG.
> > > > > > > > > 
> > > > > > > > > My question is why this extension is needed in the first 
> > > > > > > > > place.
> > > > > > > > 
> > > > > > > > For example, RFC 8040 could have used two modules instead of
> > > > > > > > "ietf-restconf", one with the contents of grouping "errors" and
> > > > > > > > the
> > > > > > > > other with the contents of grouping "restconf". No extension.
> > > > > > > > 
> > > > > > > 
> > > > > > > This is true. We used to do this before yang-data was available.
> > > > > > 
> > > > > > If I remember correctly, the stuff was inside groupings that were 
> > > > > > not
> > > > > > used
> > > > > > anywhere.
> > > > > 
> > > > > Which doesn't quite work, since no namespace is attached to the nodes.
> > > 
> > > Note that this is not what I was proposing. For RESTCONF errors, the 
> > > module
> > > I
> > > had in mind could be like this:
> > > 
> > > module ietf-restconf-errors {
> > > 
> > >    container errors { // same content as in RFC 8040
> > >      ...
> > >    }
> > > 
> > >    ...
> > > 
> > > }
> > > 
> > > Please explain why this cannot serve the given purpose, apart from the 
> > > fact
> > > that
> > > it looks like configuration which it isn't - but this can be explained in
> > > the
> > > module description.
> > 
> > It is the "because it looks like configuration" that I don't like.
> 
> IMO this won't change even if the same data is inside the "yang-data" 
> extension
> because RFC 7950 says in sec. 7.21.1:
> 
>    If the top node does not specify a "config" statement, the default is 
> "true".
> 
> So even though the description of "yang-data" says that the "config" statement
> is ignored if present, it doesn't mean that schema nodes lose the config
> property.

No, this is not correct.  7.21.1 says:

   If "config" is not specified, the default is the same as the parent
   schema node's "config" value.

Note how it says *schema node*.  Nodes in a grouping that don't have a
config statement don't have a config property.  Also, the same text
about ignoring config is present for input/output/notfication.

Nodes in a yang-data extension statement thus also do not have a
config value, since yang-data is not a data definition statement.

This is an argument *for* an extension statement.  If you just define
special nodes as normal nodes with a special description statement,
you really break the rules for YANG.


/martin



> This may look like nitpicking but it illustrates the general problem: YANG was
> designed for a very specific context and using it elsewhere requires creative
> interpretation of its spec, with "yang-data" extension or without.
> 
> > 
> > If the server supports and advertises this module then it is reasonable 
> > to expect that a client should be able to configure the errors 
> > container, since it is configuration ...
> 
> There is no point for the server to advertise it as a part of the standard
> datastores such as "intended". And in order to advertise it as a schema for
> error messages, it is IMO possible to use the trick that I suggested: define a
> special datastore for it, such as "error-messages". So it will be the 
> datastore
> that enforces the desired semantics, and clients that support it can use it in
> the intended way.
> 
> > 
> > At least marking it as config false would be slightly better.
> > 
> > > 
> > > With this module, one could validate error messages using generic YANG 
> > > tools
> > > etc.
> > > 
> > > (I am not proposing to update RFC 8040, just using it as an example.)
> > > 
> > > > OK.  So, using plain groupings doesn't work.
> > > > 
> > > > In cases where groupings are being used within a YANG defined RPC, then
> > > > presumably they do work OK?
> > > > 
> > > > Is the specific problem scenario where the data is external to YANG
> > > > defined RPCs, but yet it is still desirable to use a YANG schema and one
> > > > of the associated YANG encodings to describe/encode the data?
> > > > 
> > > > 
> > > > > > > > What would be wrong with this solution? Instead, the reader is
> > > > > > > > overwhelmed with the complexity of the "yang-data" definition, 
> > > > > > > > and
> > > > > > > > most
> > > > > > > > tools cannot process the module.
> > > > > > > 
> > > > > > > There are tools that can use yang-data.
> > > > > > > Not all use-cases involve a server to query for a yang-library.
> > > > > > 
> > > > > > Sure, but it is not necessary, I meant it just as an option. Such 
> > > > > > YANG
> > > > > > modules
> > > > > > can be passed straight to tools.
> > > > > > 
> > > > > > > Offline tools need to know about the special data somehow.
> > > > > > 
> > > > > > Why? Let's say I want the ascii tree, and pyang will be able to
> > > > > > generate
> > > > > > it. All
> > > > > > right, there will be "rw" labels that don't apply but it is not a 
> > > > > > big
> > > > > > deal.
> > > > > > 
> > > > > > > The yang-data extension prevents data-def-stmts from being treated
> > > > > > > as if they were configuration or operational data.
> > > > > > 
> > > > > > This would be a problem if this yang-data is mixed with standard 
> > > > > > data
> > > > > > in
> > > > > > the
> > > > > > same module. IMO this can be avoided, and then for it is essentially
> > > > > > irrelevant
> > > > > > for tools whether it is normal data or not.
> > > > > > 
> > > > > > > I agree with you that unconstrained use of yang-data is 
> > > > > > > questionable
> > > > > > > for a standard extension. The bar should be that all tools which
> > > > > > > choose
> > > > > > > to implement the extension should provide the user with the same
> > > > > > > behavior.
> > > > > > > Declaring that behavior out-of-scope does not help 
> > > > > > > interoperability
> > > > > > > at
> > > > > > > all.
> > > > > > 
> > > > > > Yes, and so my proposal here is to silently misuse YANG somewhat 
> > > > > > where
> > > > > > necessary
> > > > > > rather than spend cycles on a Standard Track document that gives a
> > > > > > false
> > > > > > impression of a general solution.
> > > > > 
> > > > > I am strongly opposed to this.  IMO it is much better to put such
> > > > > structures in an extension, which tools that don't understand it will
> > > > > ignore, than relying on description statements in normal data nodes,
> > > > > which no tool can understand without hard coding special cases.
> > > > 
> > > > I'm also opposed to this.
> > > > 
> > > > Stuff that looks like configuration should be configuration, and stuff
> > > > that looks like state should be state.  If this data is going to be
> > > > described in YANG then I think that there must be a programmatic way to
> > > > indicate that the resultant schema is not configuration or operational
> > > > state, but something else instead.  An extension seems to achieve this.
> > > 
> > > YANG spec deals exclusively with configuration and state data, and using 
> > > its
> > > statements inside an extension doesn't make this basic fact go away.
> > > Specifying
> > > all necessary changes properly inside a description of an extension is
> > > simply
> > > impossible.
> > 
> > If an implementation needs to support generating the error messages then 
> > they can support the yang-data extension if they want (or just hard code 
> > what they expect to receive).
> 
> Or support the "error-messages" datastore, see above.
> 
> Lada
> 
> > 
> > Otherwise, devices can also ignore the yang-data extension and it 
> > doesn't seem to do any harm since its doesn't change the behaviour in 
> > any way.
> > 
> > Thanks,
> > Rob
> > 
> > 
> > > 
> > > Lada
> > > 
> > > > Thanks,
> > > > Rob
> > > > 
> > > > 
> > > > > 
> > > > > > It would be great to remove NETCONF specifics from YANG and I'd be
> > > > > > willing
> > > > > > to
> > > > > > contribute to this work.
> > > > > 
> > > > > This is a different topic though.
> > > > > 
> > > > > 
> > > > > /martin
> > > > > 
> > > > > 
> > > > > > Lada
> > > > > > 
> > > > > > > > Lada
> > > > > > > > 
> > > > > > > 
> > > > > > > Andy
> > > > > > >    
> > > > > > > > > > A plain client can ignore yang-data and not affect and RPC,
> > > > > > > > > > notification,
> > > > > > > > 
> > > > > > > > or
> > > > > > > > > > data
> > > > > > > > > > definitions in plain YANG.
> > > > > > > > > 
> > > > > > > > > A plain (NC/RC) client should never see such data even if it 
> > > > > > > > > is
> > > > > > > > > not
> > > > > > > > 
> > > > > > > > protected by
> > > > > > > > > yang-data in YANG. On the other hand, tools will be able to
> > > > > > > > > process
> > > > > > > > > such
> > > > > > > > 
> > > > > > > > schemas
> > > > > > > > > (generate the ascii tree, convert it to something else, 
> > > > > > > > > generate
> > > > > > > > > sample
> > > > > > > > > instances etc.) without explicitly supporting yang-data.
> > > > > > > > > 
> > > > > > > > > Lada
> > > > > > > > > 
> > > > > > > > > >    
> > > > > > > > > > > Lada
> > > > > > > > > > > 
> > > > > > > > > > 
> > > > > > > > > > Andy
> > > > > > > > > >    
> > > > > > > > > > > > there is a version of YANG that has a proper and 
> > > > > > > > > > > > complete
> > > > > > > > > > > > integrated
> > > > > > > > > > > > solution. (If for example yang-data is used to declare
> > > > > > > > > > > > error
> > > > > > > > > > > > content
> > > > > > > > > > > > for RPCs, then more extensions are needed or a proper
> > > > > > > > > > > > integration
> > > > > > > > 
> > > > > > > > into
> > > > > > > > > > > > YANG. Is it really good to introduce augment-yang-data
> > > > > > > > > > > > (instead of
> > > > > > > > > > > > making augment work with say 'data' in YANG 1.2)? And 
> > > > > > > > > > > > then
> > > > > > > > > > > > we
> > > > > > > > > > > > do
> > > > > > > > > > > > uses-yang-data etc.
> > > > > > > > > > > > 
> > > > > > > > > > > > /js
> > > > > > > > > > > > 
> > > > > > > > > > > 
> > > > > > > > > > > -- 
> > > > > > > > > > > Ladislav Lhotka
> > > > > > > > > > > Head, CZ.NIC Labs
> > > > > > > > > > > PGP Key ID: 0xB8F92B08A9F76C67
> > > > > > > > > > > 
> > > > > > > > > > > _______________________________________________
> > > > > > > > > > > netmod mailing list
> > > > > > > > > > > netmod@ietf.org
> > > > > > > > > > > https://www.ietf.org/mailman/listinfo/netmod
> > > > > > > > > 
> > > > > > > > > -- 
> > > > > > > > > Ladislav Lhotka
> > > > > > > > > Head, CZ.NIC Labs
> > > > > > > > > PGP Key ID: 0xB8F92B08A9F76C67
> > > > > > > > > 
> > > > > > > > > _______________________________________________
> > > > > > > > > netmod mailing list
> > > > > > > > > netmod@ietf.org
> > > > > > > > > https://www.ietf.org/mailman/listinfo/netmod
> > > > > > > > 
> > > > > > > > _______________________________________________
> > > > > > > > netmod mailing list
> > > > > > > > netmod@ietf.org
> > > > > > > > https://www.ietf.org/mailman/listinfo/netmod
> > > > > > 
> > > > > > -- 
> > > > > > Ladislav Lhotka
> > > > > > Head, CZ.NIC Labs
> > > > > > PGP Key ID: 0xB8F92B08A9F76C67
> > > > > > 
> > > > > > _______________________________________________
> > > > > > netmod mailing list
> > > > > > netmod@ietf.org
> > > > > > https://www.ietf.org/mailman/listinfo/netmod
> > > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > > netmod mailing list
> > > > > netmod@ietf.org
> > > > > https://www.ietf.org/mailman/listinfo/netmod
> > > > > .
> > > > > 
> > 
> > 
> -- 
> Ladislav Lhotka
> Head, CZ.NIC Labs
> PGP Key ID: 0xB8F92B08A9F76C67
> 

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

Reply via email to