Yes, my comment on the YANG library checksum reference has been adequately addressed by the -03 version of the draft.

Thanks,
Rob


On 05/02/2018 21:33, Mahesh Jethanandani wrote:
For folks that provided comments as part of LC, please verify that your 
comments have been adequately addressed by -03 version of the draft.

Thanks

Mahesh Jethanandani
[email protected]

On Feb 5, 2018, at 9:43 AM, Martin Bjorklund <[email protected]> wrote:

Hi,

Mahesh Jethanandani <[email protected]> wrote:
This closes the LC for the two NDMA drafts for NETCONF and RESTCONF.

As part of the LC, there were a couple of comments/questions
raised. In particular

- Vladmir reported an error, which Martin said is fixed in his local copy.
Fixed.

- Robert suggested that “/yang-library/checksum” should be a
  reference. Juergen supported that comment, so I am assuming that
  that will be incorporated into the draft.
Yes, fixed.

- Andy had questions around datastore set to “conventional”
Fixed.

  , about origin filter limited to 1 source
Fixed.

  and the behavior of with-defaults.
There were no additional changes to the document from the discussion
about this.

  I see some discussion around it with the authors
  agreeing that some of them need some text clarifying the
  position. Can the authors please post the suggested text/additions
  for the WG to review.
- Anything else??

Once an updated draft has been posted, I will do a writeup on the
drafts and send it to IESG.
The issues above are now addressed, in
draft-ietf-netconf-nmda-netconf-03.

There were no additional comments on
draft-ietf-netconf-nmda-restconf-02, so I believe this version is
ready.


/martin


Thanks.

On Jan 31, 2018, at 10:16 AM, Juergen Schoenwaelder 
<[email protected]> wrote:

On Wed, Jan 31, 2018 at 04:53:48PM +0000, Eric Voit (evoit) wrote:
I do have one additional thought below on draft-ietf-netmod-revised-datastores 
section 5.3 default handling process.  See in-line...

Well, this document is with the RFC editor now. I do not think it needs
clarification. It already has text in 5.3 such as:

  Requests to retrieve nodes from <operational> always return the value
  in use if the node exists, regardless of any default value specified
  in the YANG module.  If no value is returned for a given node, then
  this implies that the node is not used by the device.

/js

From: Robert Wilton -X, January 31, 2018 6:31 AM


Hi Andy,

On 31/01/2018 09:22, Andy Bierman wrote:


On Wed, Jan 31, 2018 at 12:11 AM, Juergen Schoenwaelder <[email protected] 
<mailto:[email protected]><mailto:[email protected] 
<mailto:[email protected]>>> wrote:
On Tue, Jan 30, 2018 at 12:35:33PM -0800, Andy Bierman wrote:
Hi,

I have some questions about these drafts.

1) what if datastore set to "conventional"?
   There are many places where a datastore-ref type is used.
   However, "conventional" is valid for base "datastore", even though
   it is ambiguous as a datastore selector.
We can add explicit text that an identity that does not resolve to a
datastore implemented by the server results in an invalid value error.


OK


2) origin filter is limited to 1 source
  This filtering seems rather limited.  A client must retrieve
<with-origin> and check
   all the values in use, then make repeated requests for each source as a
different
   <origin-filter> leaf
If the client does <with-origin>, then it has all origin information
and it can filter locally. That said, we could make origin-filter a
leaf-list which is logically ORed so that one can retrieve
origin-filter=or:system or origin-filter=or:learned in one request.


OK

3) with-defaults broken
   The operational datastore does not support with-defaults.
    Instead, the client must use origin-filter=or:default or with-origin
    and check all the origin attributes.  Since a client needs to use
    with-defaults for other datastores, this special handling of
<operational>
    seems unhelpful.
I think the with-defaults semantics for conventional configuration
datastores are much more complicated than necessary for the
operational state datastore. Note that that the operational state
datastore reports in-use values not really defaults:

<leaf or:origin='default'>foo</leaf>

This reports that the value 'foo' is in use and that it originates
from a default value. Note that this could also be

<leaf or:origin='intended'>foo</leaf>

in case the intended configuration datastore configured the value
'foo' (despite this value matching the default). The with-defaults
solution is pretty complex because it tries to handle how different
systems deal with configuration defaults. The idea is to not carry
this complexity over to in-use values in the operational state
datastore.


Before NMDA, the client could decide if it wanted to retrieve default nodes or 
not.
This client-choice has been removed from NMDA, which is a problem.
We tried to reach a sensible compromise on the data returned from operational 
(defined in section 5.3 of the NMDA architecture):
- it should return explicit values for everything that is affecting the actual 
running state of the device (regardless of whether the operational value 
matches a schema default value).
- it does not need to, and should not, return operational values for stuff that 
isn't actually in use, i.e. don't return needless and unwanted data.

In particular, if no value is returned from a particular data node in 
<operational> then, barring mgmt protocol errors, a client can assume that any 
functionality associated with that data node is off (i.e. not in use).

Some examples to illustrate the behavior:

(i) If a protocol, e.g. OSPF,  is not enabled/running then <operational> does 
not need to return any data for it.  It would be reasonable to return a flag to 
indicate that OSPF is not enabled/running.

(ii) If you have some funky widget on an interface that defaults to being off and 
isn't being used then <operational> don't need to return any data for it.

(iii) But, if you have some funky widget on an interface that defaults to being 
on, then the server should return data for it. If it is actually enabled, then 
it would indicate that it is on and return any associated values with its 
operational state, or if it is disabled then it should explicitly report that 
it is off.

(iv) I would regard that all applied configuration is "in use" by the system, 
even if it matches the default value, and hence it should be reported.


This behavior for <operational> is obviously slightly different from the existing 
with-default handling that is supported for configuration datastores.  As I recall, there 
were a couple of reasons that we decided to have a different behavior for 
<operational>:
(a) to have consistent semantics for all servers, rather than different servers 
supporting different with-defaults behaviors (which makes life harder for 
clients because they must cope with all variants).
(b) to remove any potential ambiguity if data isn't returned.  I.e. with the 
existing with-defaults semantics it is not clear to me that servers will always 
return an explicit value to indicate that a particular widget is off if the 
schema defines that the default it that is enabled.  If the server doesn't 
support a given widget at all, it is quite plausible that it will just return 
no data for it.  In theory features/deviations should handle this, but those 
don't work so well if different linecards have different capabilities.  Hence 
being explicit about stuff that is in use seems more robust.

<eric> These are good examples.  It would be great if section 5.3 could be 
tweaked to make clearer the relationship between running datastore defaults and other 
operational datastore defaults for the same tree.

For example, let’s say I create a configured subscription, and the default 
transport protocol is NETCONF.  NETCONF will be used for that subscription even 
though the node might not be populated.  In this case, the object would not 
appear in the running datastore, but MUST* appear in the operational datastore 
with the default origin (as it is in-use).

This to me is the desired behavior as it doesn’t incorrectly add information to 
the running datastore, but shows what is in-use within operational.   I suspect 
other such relationships for other operational tree defaults could be asserted, 
perhaps based on the origin.

(* Maybe ‘MUST eventually’, as obviously there is a temporal relationship 
between the two datastores.)

Eric

Thanks,
Rob






/js

Andy

--
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>





_______________________________________________

netmod mailing list

[email protected] <mailto:[email protected]><mailto:[email protected] 
<mailto:[email protected]>>

https://www.ietf.org/mailman/listinfo/netmod 
<https://www.ietf.org/mailman/listinfo/netmod>

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

--
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/ 
<https://www.jacobs-university.de/>>

_______________________________________________
netmod mailing list
[email protected] <mailto:[email protected]>
https://www.ietf.org/mailman/listinfo/netmod 
<https://www.ietf.org/mailman/listinfo/netmod>
Mahesh Jethanandani
[email protected]

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

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

Reply via email to