Re: [netmod] Balazs comments on draft-ietf-netmod-system-config-00

2022-12-06 Thread maqiufang (A)
Hi, Balazs,

Thanks for the comments, much appreciated! I am trying to prepare a new version 
resolving your comments, please also see my reply below.

From: netmod [mailto:netmod-boun...@ietf.org] On Behalf Of Balázs Lengyel
Sent: Friday, December 2, 2022 11:01 PM
To: netmod@ietf.org<mailto:netmod@ietf.org>
Subject: [netmod] Balazs comments on draft-ietf-netmod-system-config-00

Hello,
Some comment on draft-ietf-netmod-system-config-00.

General:
I support this work, I see it as important.
Thanks, Balazs. I see it both important and interesting. Since there is a broad 
implementation among multiple vendors, the authors would always welcome 
contributions from the WG.
I think this draft should be dependent on the immutable draft. I see limited 
value of system-configuration if there is no way to protect It from client 
modification.
While I agree that a lot of system configuration need to be protected from 
client modification, this work tries to define a standard mechanism to :1) 
allow the client to see what system configuration is available (includes 
inactive system configuration which is not present in ) ;2) enable 
the client to reference system configuration without having to copy it into 
 explicitly; 3) support a better configuration of descendant nodes of 
system configuration.
Ch 1)
Why is explicit copying bad?  Why do we need resolve-system parameter?  the You 
should motivate that.
I think the reason is that we always want the life easier and more convenient 
for clients. The device exists a lot of system configuration, the client would 
like to leafref system configuration (or put system configuration in when/must 
statement) directly in , without having to declaring the referenced 
item in  manually. Sure, we will try to state it clearly in the 
Introduction section.

Ch 1.4)
edit-config and edit-data cannot be used towards the startup datastore. 
Copy-config can.
Agree that edit-config and edit-data cannot be used towards . This 
sentence that might cause confusion can be traced from RFC7950 Sec.8.3.3 "If 
the datastore is 'running' or 'startup', these constraints MUST be enforced at 
the end of the  or  operation." Given the next 
comment that you made, see my proposed changes below.


" If the target
   datastore of the / or  is
   "candidate", the server's copy referenced nodes from  to the
   target datastore is delayed until a  or  operation
   takes place."
This means that  the device has to remember that resolve-system was used. Is 
this fact visible for other clients? What if someone overrides items that were 
planned for resolve-system?
Other clients (not the one that used the resolve-system) will be confused.
What happens if I have a must statement including a "count () <= max" on list 
items. Another client might create max number of list entries. This could 
prevent the device from adding new list-entries based on resolve-system.
IMHO delaying the copy is a bad idea.
Thanks for pointing this out. I think your arguments are valid to me. The 
server having to remember that there is a resolve-system parameter used before 
just complicates the implementation. Since this parameter is carried with the 
RPC operation, it makes sense the copy operation should always be finished at 
the end of RPC operation itself.  Proposed update:

OLD:" According to the NETCONF constraint enforcement model defined in the
section 8.3 of [RFC7950], if the target datastore of the / or  is "running" or "startup", the
server's copy referenced nodes from  to the target datastore
MUST be enforced at the end of the / or
 operations during the validation.  If the target
datastore of the / or  is
"candidate", the server's copy referenced nodes from  to the
target datastore is delayed until a  or  operation
takes place."
NEW: "The server's copy referenced nodes from  to the target datastore 
MUST be enforced at the end of the / or  
operations. This is regardless of which target datastore it is."

1.5.2)  IMHO we should have the same capability in Netconf too.
I am thinking that a client can discover if the server supports the 
resolve-system parameter by reading the YANG library information in 
 and checking if the server supports the 
"ietf-netconf-resolve-system" YANG module. Given that, there is no need to 
define a resolve-system capability identifier for NETCONF. Thoughts?

2) Define what does it mean if a part of system configuration is not active/ 
not applied? In which datastore is it visible? If I explicitly copy a 
conditionally-active item into  (while its condition is still not met) 
does it become active?
If system configuration is inactive, it means this configuration is not "in 
use" and does not actually impact the current running configuration of the 
device. According to the definition of the Operational datastore in NMDA draft, 
such

[netmod] Balazs comments on draft-ietf-netmod-system-config-00

2022-12-02 Thread Balázs Lengyel
Hello,
Some comment on draft-ietf-netmod-system-config-00.

General:
I support this work, I see it as important.

I think this draft should be dependent on the immutable draft. I see limited 
value of system-configuration if there is no way to protect It from client 
modification.

Ch 1)
Why is explicit copying bad?  Why do we need resolve-system parameter?  the You 
should motivate that.

Ch 1.4)
edit-config and edit-data cannot be used towards the startup datastore. 
Copy-config can.


" If the target
   datastore of the / or  is
   "candidate", the server's copy referenced nodes from  to the
   target datastore is delayed until a  or  operation
   takes place."
This means that  the device has to remember that resolve-system was used. Is 
this fact visible for other clients? What if someone overrides items that were 
planned for resolve-system?
Other clients (not the one that used the resolve-system) will be confused.
What happens if I have a must statement including a "count () <= max" on list 
items. Another client might create max number of list entries. This could 
prevent the device from adding new list-entries based on resolve-system.
IMHO delaying the copy is a bad idea.

1.5.2)  IMHO we should have the same capability in Netconf too.

2) Define what does it mean if a part of system configuration is not active/ 
not applied? In which datastore is it visible? If I explicitly copy a 
conditionally-active item into  (while its condition is still not met) 
does it become active?


3)  3.1) The headers seem strange. I would consider changing them. #Ch3  is  
about Static Characteristics of what?
Regards Balazs
___
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod