----- Original Message ----- From: "Martin Bjorklund" <[email protected]> To: <[email protected]> Sent: Monday, May 23, 2016 3:10 PM > > This comment from the Gen-ART review deserves it's own thread. > > gen-art> - section 9.9 > gen-art> > gen-art> The leafref type is used to declare a constraint on the value space > gen-art> of a leaf, based on a reference to a set of leaf instances in the > gen-art> data tree. The "path" substatement (Section 9.9.2) selects a set of > gen-art> leaf instances, and the leafref value space is the set of values of > gen-art> these leaf instances. > gen-art> > gen-art> The first sentence isn't quite right. Perhaps: > gen-art> > gen-art> The value space of a leaf with leafref type is one of the values of > gen-art> a set of leaf instances in the data tree. The "path" substatement > gen-art> (Section 9.9.2) selects the set of leaf instances, and the leafref > gen-art> value space is the set of values of these leaf instances. > gen-art> > gen-art> - section 9.9.3 > gen-art> > gen-art> If "require-instance" is "true", it means that the instance being > gen-art> referred MUST exist for the data to be valid. This constraint is > gen-art> enforced according to the rules in Section 8. > gen-art> > gen-art> If "require-instance" is "false", it means that the instance being > gen-art> referred MAY exist in valid data. > gen-art> > [...] > gen-art> Also, I think the second paragraph means that if require-instance is > gen-art> false, the referred-to instance need not exist. But it's not clear to > gen-art> me what that would mean -- if there are no instances referenced by the > gen-art> XPath expression, then the set of value values of the leafref would be > gen-art> empty and the leafref would necessarily be invalid. ... I think these > gen-art> paragraphs need to be expanded in some way. > > mbj> Right; so what we want to say is: > mbj> > mbj> - the value space is the same as the value space of the referred > mbj> leaf > mbj> > mbj> - there is an additional constraint if require-instance is true that > mbj> the referred to leaf instance must exist > mbj> > mbj> How about > mbj> > mbj> OLD: > mbj> > mbj> The leafref type is used to declare a constraint on the value space > mbj> of a leaf, based on a reference to a set of leaf instances in the > mbj> data tree. The "path" substatement (Section 9.9.2) selects a set of > mbj> leaf instances, and the leafref value space is the set of values of > mbj> these leaf instances. > mbj> > mbj> If the leaf with the leafref type represents configuration data, and > mbj> the "require-instance" property (Section 9.9.3) is "true", the leaf > mbj> it refers to MUST also represent configuration. Such a leaf puts a > mbj> constraint on valid data. All such nodes MUST reference existing > mbj> leaf instances or leafs with default values in use (see Section 7.6.1 > mbj> and Section 7.7.2) for the data to be valid. This constraint is > mbj> enforced according to the rules in Section 8. > mbj> > mbj> NEW: > mbj> > mbj> The leafref type is used to declare a constraint on the value space > mbj> of a leaf, based on a reference to a set of leaf instances in the > mbj> data tree. The "path" substatement (Section 9.9.2) is used to refer > mbj> to another leaf node. The leafref value space is the value space of > mbj> this leaf node. > mbj> > mbj> If the "require-instance" property is "true", there MUST exist an > mbj> instance, or a leaf with a default value in use (see Section 7.6.1 > mbj> and Section 7.7.2), of the leaf being referred to with the same value > mbj> as the leafref value in a valid data tree. > mbj> > mbj> If the leaf with the leafref type represents configuration data, and > mbj> the "require-instance" property (Section 9.9.3) is "true", the leaf > mbj> it refers to MUST also represent configuration. > > Does anyone have comments on this proposal?
yes! I realise that the discussion is moving on, and corner cases are appearing, but I think that the NEW paragraph is still a tough read. I rearrange the words - more or less -and get NEW The leafref type is used to declare a constraint on the value space of a leaf. The "path" substatement (Section 9.9.2) which MUST be present references another leaf node. The value space of this other leaf node defines a set of values, which may be empty (e.g. when the leaf node is not present in the data tree). If the "require-instance" property is "true", then the value of the leaf with the leafref type MUST exist in the set of values; the set of value includes leafs with have a default value in use (see Section 7.6.1 and Section 7.7.2) If the leaf with the leafref type represents configuration data, and the "require-instance" property (Section 9.9.3) is "true", then the target of the "path" substatement MUST also represent configuration data. Tom Petch > /martin > > _______________________________________________ > netmod mailing list > [email protected] > https://www.ietf.org/mailman/listinfo/netmod _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
