Hi,

Last week I published an updated version of draft-wilton-netmod-refined-datastores-01 <https://datatracker.ietf.org/doc/draft-wilton-netmod-refined-datastores/>that proposes an alternative datastore architecture to that proposed in draft-schoenw-netmod-revised-datastores-01 <https://datatracker.ietf.org/doc/draft-schoenw-netmod-revised-datastores/>

These two drafts came out of the discussions related to the opstate problem, and the differences effectively represent some of the points on which the adhoc design team didn't reach consensus on.

Fundamentally, both of these drafts provide an architecture to solve the same problem, and hence there are quite a few similarities between the drafts: 1) both drafts split the running configuration datastore into the abstract concept of separate intended configuration and applied configuration datastores. 2) both drafts introduce a new "operational state datastore" (but with different contents and semantics). 3) both drafts suggest how the I2RS ephemeral state would fit into the architecture (but in different ways) 4) both drafts introduce the concept of system created config true nodes in the "operational state datastore", and both drafts agree that these nodes exist outside the applied configuration.

From my understanding, I think that the following are the key points where the two drafts differ, and hence were input from the WG is particularly desirable:

1) draft-schoenw refines (or perhaps redefines) the NETCONF definition of the "running configuration datastore" to be just the clients persistent intended configuration. draft-wilton gives this datastore a new name (i.e. persistent configuration) and keeps the "running configuration datastore" defined as the combined intended + applied (and supported in a mostly backwards compatible way).

2) draft-schoenw defines the intended config and applied config as regular datastores, that clients would optionally be able to query and interact with in the same way as for regular datastores. Conversely, draft-wilton defines both intended config and applied config as "abstract datastores", meaning that although a server could expose them as regular datastores, but there is no requirement to, instead it is proposed that the information contained within them would be made available via an optional YANG metadata extension to the other datastores (e.g. along the lines described in draft-wilton-netconf-opstate-metadata-00 <https://datatracker.ietf.org/doc/draft-wilton-netconf-opstate-metadata/>).

3) draft-schoenw defines the applied configuration as a datastore defined separately from the "operational state datastore". draft-wilton treats the "applied configuration" as a subset of the config true leaves in the "operational state datastore". This particular difference has a couple of key implications:

3a) In draft-schoenw the config true leaves in the "operational state datastore" do not represent the configuration that has been applied, but instead represent the operational state of the device, but overlaid (where possible) onto the config true schema nodes. E.g. a device might have a config true "ethernet speed" leaf that is set to "auto" in the "applied configuration datastore", but that would be set to the actual speed of the interface (e.g. 10Gbits/s) in the "operational state datastore". In draft-wilton, the config true leaves in the "operational state datastore" represent the exact applied configuration plus system created entries. In the same ethernet speed example, the "ethernet speed" config true leaf would be set to "auto" in the "operational state datastore", and a separate config false leaf also in the "operational state datastore" would be used to represent the actual speed of the interface (which may also need to be expressed using a different datatype anyway). Separate config false leaves are only required where the system state could differ from the configured leaf value (i.e. as is the case for NETCONF/YANG implementations today that return running configuration + separate config false state nodes for operational state).

3 b) Because draft-schoenw defines the applied configuration as a separate datastore, this requires that clients that want to learn of the applied configuration have to interact with the separate applied configuration datastore. With draft-wilton, clients only need to interact with the operational state datastore + optional metadata to learn of the applied configuration.

4) draft-schoenw introduces the concept of active/inactive configuration, this is not currently considered in draft-wilton.

5) draft-schoenw proposes that ephemeral configuration is handled after applied configuration, and is handled as extra input into the operational state datastore. draft-wilton proposes ephemeral configuration to be part of both the intended and applied configuration for the system and hence handled more like a separate optional datastore. draft-wilton defines that the "operational state datastore" also contains the applied ephemeral configuration and ephemeral operational state.

6) draft-wilton defines how statistics are handled as part of the "operational state datastore".

Juergen, I have tried to keep this as an objective comparison between the two drafts. Of course, If I have misrepresented any of the points of draft-schoenw in any way then please correct my comments above.

Comments from WG participants is welcome.

Thanks,
Rob

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

Reply via email to