> On Jul 28, 2017, at 3:34 AM, Robert Wilton <rwil...@cisco.com> wrote:
> 
> Hi Lada,
> 
> 
> On 26/07/2017 11:46, Ladislav Lhotka wrote:
>> "Sterne, Jason (Nokia - CA/Ottawa)" <jason.ste...@nokia.com 
>> <mailto:jason.ste...@nokia.com>> writes:
>> 
>>> OK – so the same leaf (in the schema) has the same value space in the 
>>> conventional datastores and in the operational datastore.  That probably 
>>> makes sense since a single schema describes the model for that leaf whether 
>>> it is accessed in conventional DSes or the operational DS.
>>> 
>>> But I think that also means that *if* you need slightly different
>>> value spaces for an item, then you’ll need to split it into multiple
>>> leafs in the schema.
>> This is easier said than done: will there be "foo" and "foo-state" as
>> sibling leaves, both present in <operational>, as sec. 4.7 indicates?
>> 
>> Apart from value space mismatch, there are other potential issues like
>> the one that I mentioned in Prague: "if-feature" applies to
>> configuration but not to state data. An example is in ietf-routing: in
>> config, "router-id" leaf is only present if "router-id" feature is
>> advertised (other servers derive router-id by other means), but in state
>> data "router-id" does not depend on the feature.
> It is perhaps worth noting that the proposed NMDA YANG library allows for 
> different features to be expressed in different datastores.  Not that I am 
> actually suggesting that this would be a good solution here.
> 
>> 
>> The assumption made in NMDA that config and state data schemas can be
>> unified is IMO simply broken. YANG, being basically a document-oriented
>> schema language, is not designed to support such tricks.
> I agree that you cannot align config and state schema values in all cases.  
> However, I think that in the vast majority of cases there is close alignment 
> between the configured value, and what the system is using. Optimizing for 
> this common case should make management systems simpler for the mainline 
> cases.  There will always be some exceptions, but that is OK too.

Is this true for if-feature statement only?

What happens if I have a ‘must' statement that is written for validating 
configuration? Will it be enforced on operational datastore?

> 
> For the router-id, I think that my preferred solution would be to:
> Define the "configurable-router-id" feature, have a single router-id leaf, 
> then put in the description that it is only configurable if the 
> "configurable-router-id" feature is enabled.
> 
> Possibly, in future, we could extend the YANG language to allow if-feature to 
> be conditionally applied to only config true or config false elements.
> 
> An alternative solution, that works today, is to just have 2 separate, but 
> co-located, leaves:
> 1) cfg-router-id, config true, conditional on if-feature.
> 2) router-id, config false, operational.
> - In the future, we could define a YANG extension to bind the config and 
> state leaves together in the model (e.g. a related-config statement).  But I 
> think that we should see how often this issue turns up in practice before we 
> jump to doing this.
> 
> Thanks,
> Rob
> 
>> Lada
>> 
>>> Jason
>>> 
>>> From: Kent Watsen [mailto:kwat...@juniper.net]
>>> Sent: Monday, July 24, 2017 20:53
>>> To: Acee Lindem (acee) <a...@cisco.com>; Sterne, Jason (Nokia - CA/Ottawa) 
>>> <jason.ste...@nokia.com>; netmod@ietf.org
>>> Subject: Re: [netmod] nmda-guidelines-01: value space for config vs state
>>> 
>>> 
>>> Related, revised-datastores-03#section-4.7 says:
>>> 
>>>    As a result of remnant configuration, the semantic constraints
>>>    defined in the data model cannot be relied upon for <operational>,
>>>    since the system may have remnant configuration whose constraints
>>>    were valid with the previous configuration and that are not valid
>>>    with the current configuration.  Since constraints on "config false"
>>>    nodes may refer to "config true" nodes, remnant configuration may
>>>    force the violation of those constraints.  The constraints that may
>>>    not hold include "when", "must", "min-elements", and "max-elements".
>>>    Note that syntactic constraints cannot be violated, including
>>>    hierarchical organization, identifiers, and type-based constraints.
>>> 
>>> The last sentence implies that the value-space must be the same between
>>> nodes in <operational> and the conventional datastores.
>>> 
>>> Kent // contributor
>>> 
>>> 
>>> On 7/24/17, 4:35 PM, "netmod on behalf of Acee Lindem (acee)" 
>>> <netmod-boun...@ietf.org 
>>> <mailto:netmod-boun...@ietf.org><mailto:netmod-boun...@ietf.org 
>>> <mailto:netmod-boun...@ietf.org>> on behalf of a...@cisco.com 
>>> <mailto:a...@cisco.com><mailto:a...@cisco.com <mailto:a...@cisco.com>>> 
>>> wrote:
>>> 
>>> Hi Jason,
>>> 
>>> From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.ste...@nokia.com 
>>> <mailto:jason.ste...@nokia.com><mailto:jason.ste...@nokia.com 
>>> <mailto:jason.ste...@nokia.com>>>
>>> Date: Monday, July 24, 2017 at 4:32 PM
>>> To: Acee Lindem <a...@cisco.com 
>>> <mailto:a...@cisco.com><mailto:a...@cisco.com <mailto:a...@cisco.com>>>, 
>>> "netmod@ietf.org <mailto:netmod@ietf.org><mailto:netmod@ietf.org 
>>> <mailto:netmod@ietf.org>>" <netmod@ietf.org 
>>> <mailto:netmod@ietf.org><mailto:netmod@ietf.org <mailto:netmod@ietf.org>>>
>>> Subject: RE: [netmod] nmda-guidelines-01: value space for config vs state
>>> 
>>> Hi Acee,
>>> 
>>> OK – maybe this example isn’t the best.  But in the general case my concern 
>>> about using a super-set would be that it implies all those values are valid 
>>> input values for an edit-config in the candidate/running.  I can’t 
>>> immediately see a clean way to indicate that some of the values aren’t 
>>> valid for writing.
>>> 
>>> Another possible approach we could use is that if the value space is 
>>> different, then it means we should have separate leafs.   The model 
>>> designer could have 1 typedef for the common values (i.e. for 
>>> applied/intended config), and then use a union with additional values for 
>>> the state/operational leaf that supports the extra values.
>>> 
>>> Right – if there additional values that the leaf can take, then it is 
>>> probably pure operational state as opposed to applied config.
>>> 
>>> Thanks,
>>> Acee
>>> 
>>> 
>>> Jason
>>> 
>>> From: Acee Lindem (acee) [mailto:a...@cisco.com <mailto:a...@cisco.com>]
>>> Sent: Monday, July 24, 2017 16:22
>>> To: Sterne, Jason (Nokia - CA/Ottawa) <jason.ste...@nokia.com 
>>> <mailto:jason.ste...@nokia.com><mailto:jason.ste...@nokia.com 
>>> <mailto:jason.ste...@nokia.com>>>; netmod@ietf.org 
>>> <mailto:netmod@ietf.org><mailto:netmod@ietf.org <mailto:netmod@ietf.org>>
>>> Subject: Re: [netmod] nmda-guidelines-01: value space for config vs state
>>> 
>>> Hi Jason,
>>> 
>>> From: netmod <netmod-boun...@ietf.org 
>>> <mailto:netmod-boun...@ietf.org><mailto:netmod-boun...@ietf.org 
>>> <mailto:netmod-boun...@ietf.org>>> on behalf of "Sterne, Jason (Nokia - 
>>> CA/Ottawa)" <jason.ste...@nokia.com 
>>> <mailto:jason.ste...@nokia.com><mailto:jason.ste...@nokia.com 
>>> <mailto:jason.ste...@nokia.com>>>
>>> Date: Monday, July 17, 2017 at 6:22 AM
>>> To: "netmod@ietf.org <mailto:netmod@ietf.org><mailto:netmod@ietf.org 
>>> <mailto:netmod@ietf.org>>" <netmod@ietf.org 
>>> <mailto:netmod@ietf.org><mailto:netmod@ietf.org <mailto:netmod@ietf.org>>>
>>> Subject: [netmod] nmda-guidelines-01: value space for config vs state
>>> 
>>> Hi all,
>>> 
>>> A note in Rob Wilton’s presentation today in rtgwg mentioned something 
>>> about consistency in the value space for config vs state leafs.  The NMDA 
>>> approach results in the same leaf for both config & state in many cases (at 
>>> least for the cases where the separate config & state leafs were only there 
>>> to represent intended vs applied config).
>>> 
>>> But aren’t there some cases where the value space for state will be 
>>> different than the value space for config ? I’m thinking of the basic 
>>> admin/oper state for interfaces for example where config may allow 
>>> enable/disable but state may have additional values like ‘testing’.  If the 
>>> config & state value spaces aren’t 100% the same, are module designers 
>>> recommended to create a separate state leaf ?
>>> 
>>> In this particular example, the leaf you are describing would be read-only 
>>> system state as opposed to applied state. If there were such a leaf that 
>>> could take on a wider range of values of applied state values than the 
>>> intended state, I’d expect the value space would need to be the superset.
>>> 
>>> Thanks,
>>> Acee
>>> 
>>> 
>>> Rgds,
>>> Jason
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org <mailto:netmod@ietf.org>
> https://www.ietf.org/mailman/listinfo/netmod 
> <https://www.ietf.org/mailman/listinfo/netmod>
Mahesh Jethanandani
mjethanand...@gmail.com



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

Reply via email to