Ladislav Lhotka <lho...@nic.cz> wrote:
> 
> > On 29 Jul 2015, at 13:47, Juergen Schoenwaelder
> > <j.schoenwael...@jacobs-university.de> wrote:
> > 
> > On Wed, Jul 29, 2015 at 12:57:09PM +0200, Ladislav Lhotka wrote:
> >> 
> >>> On 29 Jul 2015, at 12:25, Juergen Schoenwaelder
> >>> <j.schoenwael...@jacobs-university.de> wrote:
> >>> 
> >>> On Wed, Jul 29, 2015 at 09:34:17AM +0200, Martin Bjorklund wrote:
> >>>> Hi,
> >>>> 
> >>>> Andy Bierman <a...@yumaworks.com> wrote:
> >>>> 
> >>>>> I do not agree that YANG extensions should be used for IETF standards
> >>>>> track
> >>>>> modules.
> >>>> 
> >>>> I strongly disagree.  This was one of the two original ideas behind
> >>>> extension statements (the other was that vendors could add their own
> >>>> stuff).
> >>> 
> >>> An extension defines certain semantics. For example:
> >>> 
> >>> extension default-deny-write {
> >>>   description
> >>>         "Used to indicate that the data model node
> >>>          represents a sensitive security system parameter.
> >>> 
> >>>          If present, and the NACM module is enabled (i.e.,
> >>>          /nacm/enable-nacm object equals 'true'), the NETCONF server
> >>>          will only allow the designated 'recovery session' to have
> >>>          write access to the node.  An explicit access control rule is
> >>>          required for all other users.
> >>> 
> >>>          The 'default-deny-write' extension MAY appear within a data
> >>>          definition statement.  It is ignored otherwise.";
> >>> }
> >>> 
> >>> If a data model writer uses an extension, then the semantics
> >>> associated with the extension are embedded in the data model. The
> >>> extension can be seen as a shorthand for copying the semantics
> >>> directly into the description clause. In other words, an
> >> 
> >> The difference is that YANG spec doesn’t say descriptions may be
> >> ignored.
> > 
> > I do not get it, please help me.
> 
> A client that ignores constraints expressed in a description statement
> should be considered broken. I am not sure it is also the case for a
> client that ignores an extension and the implied semantics, because
> sec. 6.3.1 seems to allow it.

The reason that the text about MAY ignore is there was to allow a tool
like pyang to function even if it finds an extension like yuma:root in
a model.  pyang doesn't "understand" this extension, yet it can
process the module.

I like Juergens analogy with text in the description statement - you
can write any rules in the description statement, or you can choose to
formalize it in an extension.  Sometimes such rules are directed to a
client, sometimes to a server, sometimes to the YANG compiler
(e.g., code generation directives), and sometimes to humans reading
the module.


/martin


> In fact, I think it can be applied to the server, too: An implementor
> may take a module, remove extensions he doesn’t want to implement (or
> let a “compiler” remove them) and implement the modified form of the
> module.
> 
> > 
> >>> implementation has to implement the semantics no matter which
> >>> tool is used.
> >> 
> >> I agree, but then I think the text you have in PS should be removed
> >> entirely. There is again the issue of old client support that IMO
> >> doesn’t hold water anyway: a client that doesn’t fully understand the
> >> semantics of the data model cannot be guaranteed to work, and is in
> >> fact dangerous.
> >> 
> > 
> > Again, I do not get it. There are non-machine readable semantics
> > anyway. A decent client better understands the semantics - otherwise
> > it is just a clueless yang browser. So why is there a problem with
> > extension statements (which are just a shorthand for semantics that
> > happen to be machine readable for those tools that are programmed to
> > read and understand them).
> 
> As I said, it is unclear (to me at least) from the text in 6.3.1
> whether extensions are an integral part of the contract expressed by
> the module. If I had a contract with an insurance company saying
> “Anybody who cannot read fine print may ignore it”, I would get quite
> nervous.
> 
> Lada
> 
> > 
> > /js
> > 
> > -- 
> > 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/>
> 
> --
> 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