Hi Italo,

For NMDA:

  *   The device should accept the configuration if it is plausible that the 
configuration could be applied.  E.g., if you had the right linecards inserted, 
with the right optics, and the configuration won't exhaust the available 
resources.
  *   Once the device has accepted the configuration, then it should make its 
best effort to apply that configuration, but some of that configuration could 
fail to be applied for many reasons.  E.g., hardware missing or failed, process 
bugs/failures, out of resources.
  *   The operational datastore always reports exactly what the device is 
actually doing.   I.e., the operator is expected to monitor the operational 
state of the device to determine whether the device is working correctly (which 
includes whether the expected configuration has been successfully applied).  
Enhancements like NMDA-diff may help achieve this.

Conversely, the device can decide that the configuration is not valid and then 
reject the configuration change (with appropriate errors being reported).  Then 
the configuration and operational state of the device is left unchanged.

Regards,
Rob

// As a contributor.


From: netmod <[email protected]> On Behalf Of Italo Busi
Sent: 08 March 2021 20:24
To: '[email protected]' <[email protected]>
Subject: [netmod] Question about validation of the running datastore

Hi all,

I have a doubt about how and when the configured data in the running datastore 
can be validated.

According to section 5.1.3 of RFC8342:

   <running> MUST always be a valid configuration data tree, as defined
   in Section 8.1 of [RFC7950].

In some cases, there are some complex semantic validation rules which cannot be 
encoded in the rules defined in Section 8.1 of [RFC7950].

In this case the configuration is, from a semantic perspective, invalid and 
cannot be applied, even if the configuration data tree is valid as defined in 
Section 8.1 of [RFC7950].

It is not clear to me what is the expected behavior of the system when the 
client provides such a configuration.

One possible option is that the system accepts that configuration but it does 
not apply it. In this case, the configuration is written in the <running> 
datastore, but never applied in the <operational> datastore.

Another possible option is that the system accepts that configuration, it does 
not apply it but returns to the client a warning message. Also in this case, 
the configuration is written in the <running> datastore, but never applied in 
the <operational> datastore.

A third option is that the system rejects that configuration and returns to the 
client an error message. In this case, the configuration is not written in the 
<running> datastore and thus never applied in the <operational> datastore.

I am wondering whether all these implementation options are allowed or whether 
there are some standard requirements/restrictions on some of them.

Thanks, Italo

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

Reply via email to