Ladislav Lhotka <[email protected]> wrote:
> Hi Martin,
> 
> thanks for the review.
> 
> Martin Bjorklund <[email protected]> writes:
> >   o  Last paragraph of section 3 and the "description" in the
> >      extension.
> >
> >      The text says that semantics are defined "by other means".  I
> >      think the semantics should be defined in the
> >      description/reference statements (by using links or inline text
> >      doesn't matter).
> 
> Kent argued that an extension definition in YANG cannot make an
> annotation part of the contract between the server and client: the
> client can ignore it, and so the fact that the extension is defined in a
> module advertised by the server isn't sufficient for the server to start
> using the annotation and expect the client to take it into
> account.

Agreed.

> Hence "by other means", which can be, e.g. a capability.

Take the inactive thing as an example.  I would assume that by
advertising the module where inactive is advertised, the server
announces that it implements the syntax *and semantics* of this new
annotation.  I do not expect one capability for the syntax, and
another for the semantics.

(I also note that your requirement lists:

   2.  Syntax and semantics of annotations must be documented and the
       documentation must be easily accessible.
)


But I also don't want this document to go into all details of how
different annotations can be used; this needs to be carefully designed
for each annotation.  

I suggest something like this:

OLD:

   By advertising a YANG module in which metadata annotation A is
   defined using the "md:annotation" statement, a server specifies
   support for the syntax of annotation A.  This means that
   configuration or state data, RPC messages and notifications will be
   considered syntactically valid if annotation A is attached to any
   data node instance, provided that all rules stated in this document
   are observed.

   However, the semantics of an annotation, usage rules, and expected
   behavior of clients and servers MUST be specified separately by other
   means that are outside the scope of this document.

NEW:

   By advertising a YANG module in which metadata annotation A is
   defined using the "md:annotation" statement, a server specifies
   support for the syntax and semantics of annotation A.  This means that
   configuration or state data, RPC messages and notifications will be
   considered syntactically valid if annotation A is attached to any
   data node instance, provided that all rules stated in this document
   are observed.


and

OLD:

          A server announces syntactic support for a particular
          annotation by including the module in which the annotation is
          defined among the advertised YANG modules (e.g., in NETCONF
          hello message).

          Semantics and usage rules for an annotation MUST be specified
          separately. The 'description' and/or 'reference' statements
          SHOULD provide corresponding links.

NEW:

          A server announces support for a particular
          annotation by including the module in which the annotation is
          defined among the advertised YANG modules (e.g., in NETCONF
          hello message).




/martin

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

Reply via email to