Andy Bierman <a...@yumaworks.com> wrote:
> On Wed, Aug 19, 2015 at 10:49 AM, Martin Bjorklund <m...@tail-f.com> wrote:
> 
> > Andy Bierman <a...@yumaworks.com> wrote:
> > > On Wed, Aug 19, 2015 at 5:49 AM, Martin Bjorklund <m...@tail-f.com>
> > wrote:
> > >
> > > > Hi,
> > > >
> > > > [joining this discussion a bit late]
> > > >
> > > > Ladislav Lhotka <lho...@nic.cz> wrote:
> > > > >
> > > > > > On 10 Aug 2015, at 18:46, Andy Bierman <a...@yumaworks.com> wrote:
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Mon, Aug 10, 2015 at 9:37 AM, Ladislav Lhotka <lho...@nic.cz>
> > > > > > wrote:
> > > > > >
> > > > > > > On 10 Aug 2015, at 17:32, Andy Bierman <a...@yumaworks.com>
> > wrote:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Mon, Aug 10, 2015 at 4:24 AM, Ladislav Lhotka <lho...@nic.cz>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > On 10 Aug 2015, at 12:17, Andy Bierman <a...@yumaworks.com>
> > wrote:
> > > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > I am strongly against changing the contract on extensions.
> > > > > > > > They MAY be ignored by any YANG tool. Period.
> > > > > > > > That means they are far from mandatory.
> > > > > > > > They are little more than a keyword and a description clause.
> > > > > > >
> > > > > > > So do you prefer my proposed solution -02 or -03?
> > > > > > >
> > > > > > > ** Solution Yxx-03
> > > > > > >
> > > > > > >    Make extensions optional. This means that extensions won't be
> > > > > > >    allowed to change YANG language, NETCONF protocol, and
> > validity of
> > > > > > >    datastores and protocol messages.
> > > > > > >
> > > > > > >
> > > > > > > This is how we use extensions to tag YANG data models
> > > > > > > to drive automation tools.
> > > > > >
> > > > > > But that means, for example, that annotations cannot be defined
> > via an
> > > > > > extension statement as in draft-ietf-netmod-yang-metadata.
> > > > > >
> > > > > >
> > > > > >
> > > > > > Which means these statements should be real instead of extensions.
> > > > > > If the statements are defining data that is exchanged between
> > > > > > peers in a standard protocol, then YANG extensions are not
> > > > > > appropriate.
> > > > >
> > > > > I agree, and -03 is my preferred solution, too.
> > > >
> > > > I strongly disagree.  IMO the IETF usage of extensions so far (NACM,
> > > > annotations) works well (in the case of NACM proven by multiple
> > > > independent implementations), and follows how extensions were intended
> > > > to be used, and obviously, how the WG has understood them up until
> > > > now.
> > > >
> > > > If the sentence:
> > > >
> > > >    If a YANG compiler does not support a particular extension, which
> > > >    appears in a YANG module as an unknown-statement (see Section 12),
> > > >    the entire unknown-statement MAY be ignored by the compiler.
> > > >
> > > > in 6020 can be interpreted to mean that an occurance of an extension
> > > > is non-normative, we should fix it so that it matches what was
> > > > intended and how it is used.
> > > >
> > > > Juergen suggested this replacement text, which I support.  Maybe it
> > > > can be improved even more.
> > > >
> > > >        If a YANG parser does not support a particular extension, which
> > > >        appears in a YANG module as an unknown-statement (see Section
> > 13),
> > > >        the entire unknown-statement MAY be ignored by the parser. Note
> > > >        that even in this case the semantics associated with the
> > extension
> > > >        still apply (as if they were part of a description statement).
> > > >
> > > >
> > >
> > > I strongly disagree with this change.
> > > This would mean that every tool is required to support the
> > > semantics of every extension ever defined.
> >
> > No.  It means that if a server advertises module that uses some
> > extension to define some behaviour, the server supports that
> > behavior.  Just as we expect a server to support the text in
> > description statements.
> >
> > For example, the nacm: extensions do not apply unless ietf-netconf-acm
> > is advertised (and nacm is enabled).  I expect most extensions to work
> > this way.  Another example is if we actually defined i2rs:ephemeral;
> > this would have no effect unless the "i2rs" capability (whatever that
> > is) is also advertised.
> >
> > The text also means that it is perfectly ok for a client to ignore the
> > extension if it doesn't understand it.  For example, if the client has
> > no idea what the ephemeral datastore it, it doesn't matter that a node
> > is marked with i2rs:ephemeral true.
> >
> > > For example,
> > > we have our own extensions that cause the server to
> > > perform internal tasks certain ways (like ywx:sil-delete-children-first).
> > >
> > > According to the text you propose, all servers would have to
> > > provide the behavior embodied in the syntax of this extension
> > > statement?
> >
> > Yes, all servers that advertise such a module.  B/c as you note below
> > it is "well-behaved".  So the defintion probably says something like
> > "if the server implements SIL, then it will delete the children before
> > it deletes the node itself".
> >
> > > This extension does not alter any protocol behavior
> > > at all, so it is "well-behaved".
> > >
> > > A server MAY skip over the entire extension and completely ignore it.
> > > Other servers are not required to provide the behavior described
> > > in the extension semantics.
> >
> > Yes.  Aren't we in agreement here?
> >
> >
> >
> No -- I agree with Randy's interpretation of MAY.
> 
> However, IMO description-stmts are normative, so if plain text in
> the NACM RFC says the nacm YANG extensions MUST be supported,
> then I think that makes it mandatory.
> 
> YANG conformance does not make it mandatory.
> 
> We are in agreement if you mean the RFC or module
> containing the YANG extension can define the conformance for the extension.

Yes, maybe this is what I am trying to say.  I guess I can't see how
that would be possible if you insist that all extensions always are
truly OPTIONAL.

> But I don't agree that statements related to data handling and
> datastores should ever be extensions. IMO NACM extensions
> should really be YANG 1.1 keywords and the extensions should
> be deprecated.

I don't understand why you think that.  We agree that it is ok for the
RFC/module for NACM to defined the conformance for the nacm
extensions (and this apparently work in multiple implementations), so
why should these be proper statements?

> I like YANG extensions -- they are like the minor leagues for YANG
> statements. :-)
> But once they are stable and there is consensus they are useful, they should
> probably be made mandatory by converting them to regular statements.

This is probably true in some cases, but I also like the idea of
extensibility and modularity.  It's a feature, not a bug, that we
could define NACM w/o revising YANG.


/martin

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

Reply via email to