Rob,

Can you take all the comments from this thread to update the proposed 
definitions for "synchronous server" and "asynchronous server" terms?

Thanks,
Kent

From: Robert Wilton <rwil...@cisco.com<mailto:rwil...@cisco.com>>
Date: Thursday, October 1, 2015 at 5:50 AM
To: Mahesh Jethanandani 
<mjethanand...@gmail.com<mailto:mjethanand...@gmail.com>>
Cc: Kent Watsen <kwat...@juniper.net<mailto:kwat...@juniper.net>>, 
"netmod@ietf.org<mailto:netmod@ietf.org>" 
<netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] opstate-reqs #6: clarify impact of synchronous vs 
asynchronous (esp. wrt intended and applied)



On 01/10/2015 00:55, Mahesh Jethanandani wrote:
One comment.

On Sep 30, 2015, at 8:02 AM, Robert Wilton 
<rwil...@cisco.com<mailto:rwil...@cisco.com>> wrote:

Hi Kent,

Just some quick comments inline ...

On 30/09/2015 15:31, Kent Watsen wrote:
[As a contributor]


I find that the term "system" is a bit ambiguous in this context.  It is 
talking about the NMS, the server, or both together?

[KENT] I believe that we're talking about the NETCONF/RESTCONF/<foo> server, 
specifically in how it processes update requests.


Anyway, I've tried to define them relative to the configuration operations 
being performed.

[KENT] Perhaps these could be collapsed if we use the terms "a/synchronous 
server" ?

Personally, I think that defining the operations is arguably more useful 
because it is feasible that you could have a server that supports both sync and 
async operations and allows the client to choose which semantics should be used 
for a particular request.




Synchronous configuration operation - A configuration request that the server 
applies synchronously with respect to the client request.  Before the server 
replies back to the client indicating the success or failure of the operation 
it MUST semantically validate the contents of the request and update the 
intended configuration of the target datastore.  If the request is to the 
running datastore then the configuration change MUST also be applied in the 
system before the server replies back to the client.  The reply to the client 
indicates whether there are any semantic errors or system errors from applying 
the configuration change.


[KENT]  This generally matches my understanding, but here are some thoughts to 
improve it:

1. I think the language "semantically validate" would exclude an ephemeral 
datastore.  We could put a qualifier on it, but I think it can be removed 
entirely as each datastore already has its own semantics around how it 
processes update requests.

My aim here is potentially tied to the definition of intended config, were I am 
suggesting that the system has to at least have been checked that the request 
is well formed and any YANG constraints in the data model have been met, before 
it is accepted as intended config, otherwise it would be rejected.



2. I like how you call out the running datastore, but it is somewhat 
NETCONF-specific.  How about something like "If the request impacts the 
intended configuration (see term), then..."

Yes your text is better and I agree that we should avoid making the description 
NETCONF specific at all.


3. "applied in the system" seems too open ended, how about this:  "...MUST also 
be propagated to and processed by the operational components of the server 
before..." ???

So my aim here was to tie it back to the definition of "applied configuration", 
but this could probably be expressed in a more direct way, e.g. perhaps ".... 
MUST update the applied configuration in the system before the server replies …"

If I understand this correctly, we are still talking about “applied 
configuration” as configuration that has been written to 
datastore/hardware/line card etc. It does not imply that anything has come out 
of it, including whether the configuration is usable. That operating 
configuration (and I just introduced another term) will be reflected by derived 
state.

Is that true?
Yes.

Rather than operating configuration I would perhaps say the "observable system 
behaviour is reflected by derived state".

E.g. if you were to change the MTU of an interface to a different value (that 
was say incompatible with a peer device) then the "applied configuration" for 
the MTU leaf would only tell you whether or not that MTU was actively being 
used by the system.   It wouldn't tell you that an ISIS session on that 
interface had gone down due to the MTU incompatibility.  That could only be 
observed by the changing of the derived state representing the status of the 
ISIS session (or an alarm).

Thanks,
Rob

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

Reply via email to