Vladimir Vassilev <[email protected]> writes:

> On 08/20/2016 10:29 AM, Juergen Schoenwaelder wrote:
>>
>> As document shepherd, I believe there is no strong agreement on the
>> problem and there is no concrete proposal with strong consensus for a
>> modification of the document (which is in AUTH48). In fact, there has
>> been no defect description and proposed bug fix at all on the NETMOD
>> mailing list.
> Hello,
>
> I have strong objection to the text proposed as solution to issue #41:
>
> 6.4.1 Xpath Context:
>
>      If a node that exists in the accessible tree has a non-presence
>      container as a child, then the non-presence container also exists in
>      the tree.
>
> The description of the issue itself is:
>
>      Y41: clarification of "must" in NP-container <<Y41>>
>
>
> I believe the 5 mails in the 
> http://www.ietf.org/mail-archive/web/netmod/current/msg10015.html did 
> not address all the negative consequences of such change in the rules 
> for evaluation of validation statements regarding non-presence 
> containers and the solution that was taken is not acceptable for the 
> following reasons:
>
> [1] the proposed text is not a clarification as indicated in Y41 but a 
> backward incompatible change of the YANG validation statement evaluation 
> rules.

The charter doesn't limit YANG 1.1 to clarifications. The adopted
solution addresses ambiguous cases like this:

container top {
  must "foo > 42";
  leaf foo {
    type uint8;
  }
  leaf bar {
    type boolean;
    default true;
  }
}

If "top" doesn't exist, then according to sec. 7.6.1 of RFC 6020, the
default value of "bar" is in use, so somehow the NP-container "top"
should also be in use. The question then arises whether the "must"
constraint applies or not.

>
> [2] the clarification introduces further confusion for models like NACM 
> where non-presence containers are used for access control and their 
> explicit creation and deletion is the only sane way to enforce the 
> configured rules. Always present non-presence containers that MAY be 
> auto deleted by servers ... how will this work exactly?

IMO the problem is in this auto-deletion option. I suspect my example
above may also be unclear from the NACM point of view - do the rules set
for "top" apply if "top" hasn't been explicitly configured?

>
> [3] the proposed text leads to increased processing of large number of 
> validation checks which is very unlikely to bring real value to YANG. 20 
> non-presence containers with must statements per interface in 
> 96-interface switch is already heavy Xpath evaluation task. A task that 
> in YANG 1.0 was not necessary if the containers were not explicitly
> created.

Some implementations did it anyway and some didn't, which was considered
a problem.

>
> [4] the proposed text leads to less flexibility and excludes certain 
> practical validation models e.g. 
> https://www.ietf.org/mail-archive/web/netconf/current/msg11609.html

Well... If the goal it to prevent np2_leaf from appearing when np1_leaf
is configured, then the most natural solution is to put a must statement on
np1_leaf:

leaf np1_leaf {
  type string;
  must "not(../../np2/np2_leaf)";
}

Or if you insisted on having it on the "np1" container, you can do this:

  must "not(np1_leaf) or not(../np2/np2_leaf)";

Lada

>
> [5] the proposed text inflicts problems 1-4 and its clarification effect 
> is not working for me.
>
> I have a concrete proposal for a solution on the issue - remove the 
> "non-presence containers MAY be deleted automatically" text from YANG 
> 1.1 instead of opening Pandora's box:
>
> Instead of building further the pipe dream of non-presence containers 
> that MAY be deleted automatically I propose that flexibility removed 
> from YANG 1.1. All non-presence containers have to be created explicitly 
> and the validation statements must be evaluated only for explicitly 
> created containers (so long there is no change from YANG 1.0) and these 
> containers MUST be deleted explicitly (replacing the "MAY be deleted 
> automatically" YANG 1.0 optimization attempt which is the origin of the 
> pipe dream) as one would logically expect. It is semantical meaning that 
> is not present not the container which still has its usage giving 
> structure to the data and especially in cases like NACM and validation 
> statements where without certain explicit create/delete rules things get 
> really confusing.
>
> The concrete proposal in form of a patch to RFC6020 sent in this e-mail 
> to the netconf mailing list: 
> https://www.ietf.org/mail-archive/web/netconf/current/msg11637.html 
> There will be even more obsoleted clarification text that will be 
> irrelevant if the concept change is applied to YANG 1.1
>
> Vladimir
>
> _______________________________________________
> netmod mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C

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

Reply via email to