On Thu, Oct 15, 2015 at 10:37:49PM +0200, Martin Bjorklund wrote:
> 
> > * p12/p13
> > 
> >   We import 7 terms from RFC 6241. Would it make sense to copy the
> >   necessary text in order to avoid a too strict binding to RFC 6241?
> >   In particular, 'client' and 'server' means NETCONF client and server
> >   if we import from RFC 6241 but this may be a bit narrow given that
> >   we have RESTCONF as well. In an ideal world, we would factor out
> >   core architectural concepts but the best we can do is likely to
> >   define core concepts inline, pointing out where they are the same.
> >   The idea is to loosen the coupling to RFC 6241. Example:
> > 
> >   OLD
> > 
> >    o  datastore: an instantiated data tree
> > 
> >   NEW
> > 
> >    o  datastore: A conceptual place to store and access information.
> >       A datastore might be implemented, for example, using files, a
> >       database, flash memory locations, or combinations thereof.
> >       [Matches the definition in RFC 6241.]
> 
> To start with, I think we should define client and server more
> generically than just NETCONF:
> 
>   server: An entity that provides access to YANG-defined data to a
>           client, over some network management protocol.
> 
>   client: An entity that can access YANG-defined data on a server,
>           over some network management protocol.
> 

Yes, we should definately open things up so that RESTCONF clients and
servers are covered.

> > * p13
> > 
> >   Would it make sense to add a sentence right at the beginning of
> >   section 4 stating that section 4 is intended to provide orientation
> >   for the first time reader but that section 4 is not normative?
> 
> How about:
> 
>   This non-normative section is intended to give a high-level
>   overview of YANG to first-time readers.

OK

> > * p16
> > 
> >   Perhaps simplify:
> > 
> >   OLD
> > 
> >     A leaf instance contains simple data like an integer or a string.  It
> >     has exactly one value of a particular type and no child nodes.
> > 
> >   NEW
> > 
> >     A leaf data node has exactly one value of a particular type and no
> >     child nodes.
> 
> We changed this to "leaf instance" after discussion with Lada.  I
> think it makes sense to mention that it is supposed to contain data
> like an integer or string, so I think I prefer to keep this text as
> is.

I think the document uses 'leaf' in different meanings; sometimes a
leaf is a 'leaf schema node instance' and sometimes a leaf is 'any leaf
of the tree'. This is what got me started here but perhaps the context
is clear enough (hence the 'perhaps simplify').

> > * p28
> > 
> >   Start section 5 by saying that this section defined language
> >   concepts and that it is normative, e.g.
> > 
> >     This normative section defines core language concepts.
> 
> But aren't all sections normative unless we say so?  Otherwise it
> seems we should start every section by saying that it is either
> normative or not.

OK

> > * p49
> > 
> >   Is the text in section 7.1.3 correct when it says all identifiers
> >   defined by the module? I mean, schema node identifiers are
> >   namespaced by module names and their prefixes. And data node
> >   identifiers are using the namespace in the XML encoding. Here is
> >   an attempt of a rewrite:
> > 
> >      The "namespace" statement defines the XML namespace that all data
> >      node identifiers defined by the module are qualified by in the
> >      XML encoding. Data node identifiers defined inside a grouping are
> >      an exception q(see Section 7.13 for details).  The argument to
> >      the "namespace" statement is the URI of the namespace.
> 
> It's actually not only data nodes, it is also rpc, actions,
> notifications, identities.  How about:
> 
>   The "namespace" statement defines the XML namespace that all
>   identifiers defined by the module are qualified by in the XML
>   encoding, with the exception of identifiers for data nodes, action
>   nodes, and notification nodes defined inside a grouping (see ^uses^
>   for details).  The argument to the "namespace" statement is the URI
>   of the namespace.

OK

> > * p61
> > 
> >   Should the text in 7.5.4.1 and 7.5.4.2 say explicitly that we talk
> >   about NETCONF when we refer to <rpc-error>? Or should the text try
> >   to be more generic, saying that the respective fields will be
> >   carried in error message in protocols that use YANG? It is actually
> >   somewhat opaque what an error-app-tag is or how it should be used.
> 
> I think we can say "If the constraint evaluates to false, the string is
> passed as <error-message> in the <rpc-error> in NETCONF."  Other
> protocols have to define how these fields are used.

OK

> > * p63
> > 
> >   Should the last paragraph in 7.5.7 be factored out into its own
> >   subsection titled "NETCONF <get> and <get-config> Operations"?  The
> >   text is not really anymore about XML encoding (which may be used
> >   with RESTCONF). Or the text is actually about the encoding but
> >   should be written to simply state that non-presence containers can
> >   be pruned in encodings (without restricting this to NETCONF).
> 
> This makes sense.  I think the last paragraph can be replaced with:
> 
>   If a non-presence container does not have any child nodes, the
>   container may or may not be present in the XML encoding.

OK

> > * p67
> > 
> >   Similar to the comment for p63. Perhaps the right way is to phrase
> >   this in such a way that is simply says leaf nodes containing a
> >   default value may not be present in the XML encoding. Simply remove
> >   NETCONF <get> or <get-config> specifics.
> 
> Or maybe we should simply remove the last paragraph completely?  For
> NETCONF, RFC 6243 details how leafs with defaults are handled.

Well, yes, but then readers may not know about RFC 6243. Perhaps state
that leaf nodes containing a default value may not be present in the
XML encoding and point to RFC 6243 for further details how NETCONF
handles leafs with defaults (and I think the reference to RFC 6243
would be informative).

> > * p100
> > 
> >   The XML encoding text starts with detailing NETCONF specifics.
> >   Would it make sense to separate the XML encoding of the rpc and its
> >   input/output from the specifics how the RPCs fit into NETCONF's
> >   <rpc> system?
> 
> 
> Hmm.  NETCONF and RESTCONF use quite different encodings of rpcs and
> their output.
> 
> NETCONF:
> 
>   <rpc message-id="101"
>        xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>     <rock-the-house xmlns="http://example.net/rock";>
>       <zip-code>27606-0100</zip-code>
>     </rock-the-house>
>   </rpc>
> 
>   <rpc-reply message-id="101"
>              xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>     <ok/>
>   </rpc-reply>
> 
> RESTCONF:
> 
>    POST to  .../rock-the-house
> 
>    <input xmlns="http://example.net/rock";>
>     <zip-code>27606-0100</zip-code>
>    </input>
>     
>    result: 204 no content
> 
> 
> Maybe it would have been better to have a common encoding, like:
> 
>     <rock-the-house xmlns="http://example.net/rock";>
>       <input>...</input>
>     </rock-the-house>  
> 
>    and
> 
>     <rock-the-house xmlns="http://example.net/rock";>
>       <output>...</output>
>     </rock-the-house>  
> 
> but this cannot be done now.
> 
> So, maybe the simplest solution would be to rename the section to
> "NETCONF XML Encoding"?

You mean section 7.14.4? Well, OK... Too bad these RPC encodings are
actually different. Out of curiosity, was there a specific reason not
to use

    <rock-the-house xmlns="http://example.net/rock";>
      <zip-code>27606-0100</zip-code>
    </rock-the-house>

in the RESTCONF POST or did this "just happen"?

> > * p105
> > 
> >   Again, the proposal is to separate the XML encoding of notifications
> >   from the details how notifications work with RFC 5277.
> 
> Also notifications are encoded differently in RESTCONF and NETCONF.

Hm.
 
> > * p120
> > 
> >   The text in section 7.21.1 talks about NETCONF specific operations.
> >   Is this actually necessary? Can the purpose of the config statement
> >   not be described by referring to general concepts such as
> >   configuration datastores instead of using protocol specific
> >   operations?
> 
> Yes, maybe we can just say:
> 
>   Data nodes representing configuration are part of configuration
>   datastores.

Yes.
 
> > * p123
> > 
> >   "All leaf data values MUST match the type constraints..." may be
> >   read as 'all data nodes that contain values' or 'all instantiations
> >   of nodes defined by the leaf statement'.
> 
> I don't really see what you mean.  Can you suggest new text?

See above, I think 'leaf' sometimes means an instance of a leaf schema
node and sometimes it means all leaf instances of the data tree. Or I
am confused. I think here you mean 'all leaf instances of the data
tree' and not the subset of all 'instances of a leaf schema nodes'.

/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/>

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

Reply via email to