> On 16 Dec 2015, at 14:08, Jernej Tuljak <[email protected]> wrote:
> 
> Martin Bjorklund je 16.12.2015 ob 13:48 napisal:
>> Jernej Tuljak <[email protected]> wrote:
>>> Martin Bjorklund je 25.11.2015 ob 11:16 napisal:
>>>> Ladislav Lhotka <[email protected]> wrote:
>>>>> Hi,
>>>>> 
>>>>> I'd like to resolve this issue. Here is a complete example (valid, I
>>>>> believe):
>>>>> 
>>>>> module context {
>>>>>    namespace "http://example.com/context";;
>>>>>    prefix ctx;
>>>>> 
>>>>>    leaf foo {
>>>>>      config false;
>>>>>      type uint32;
>>>>>    }
>>>>>    rpc oper {
>>>>>      output {
>>>>>        must "/foo mod foo = 0";
>>>>>        leaf foo {
>>>>>          type uint32;
>>>>>        }
>>>>>      }
>>>>>    }
>>>>> }
>>>>> 
>>>>> 1. What does the accessible tree look like?
>>>> Note that the anser to this depends on the outcomne of Y04.  Andy has
>>>> strong objections to Y04-02, and proposed Y04-04 instead.
>>>> 
>>>> Assuming Y04-02, and assuming /foo has the value 20 and the oper rpc's
>>>> result has foo = 10, the accessible tree would look like this:
>>>> 
>>>>     <root>
>>>>       +-- oper
>>>>       |   +-- foo = 10
>>>>       +-- foo = 20
>>>> 
>>>> 
>>>> (If we instead move back to Y04-04, the accessible tree would be:
>>>> 
>>>>     <root>
>>>>       +-- oper
>>>>           +-- foo = 10
>>>> 
>>>> )
>>>> 
>>>>> 2. What is the context node for the "must" expression?
>>>>   /oper
>>> This change to the accessible tree (1.0 --> 1.1) may break some
>>> existing "when" XPath expressions (those under "output" statement).
>> Maybe.  The old text said:
>> 
>>    o  If the context node represents RPC output parameters, the tree is
>>       the RPC reply instance document.
>> 
>> So this probably meant that for this definition:
>> 
>>   module ex {
>>     ...
>>     prefix x;
>>     ...
>>     rpc foo {
>>       output {
>>         leaf bar { ... }
>>       }
>>     }
>>   }
>> 
>> The accessile tree was:
>> 
>>    nc:rpc-reply
>>      +-- x:bar
>> 
>> This is very NETCONF-specifc.  With 1.1, the tree would be:
>> 
>>    x:foo
>>      +-- x:bar
>> 
>> which is protocol-neutral.
>> 
>>> Is
>>> this compatible with 1.1 charter - "All compliant YANG 1.0 modules
>>> must be accepted as compliant YANG 1.1 modules"?
>>> 
>>>   rpc my-rpc {
>>>     output {
>>>       uses my-stuff {
>>>         when "specific-param = 'foo'";// 1.0
>>> // when "my-rpc/specific-param = 'foo'" // 1.1
>> This is not correct.  If a relative path is used, it would be the same
>> in 1.0 and 1.1.
> 
> I disagree due to current text:
> 
>   o  data node: A node in the schema tree that can be instantiated in a
>      data tree.  One of container, leaf, leaf-list, list, anydata, and
>      anyxml.
> 
>   o  If the XPath expression is defined in a substatement to an
>      "output" statement in an "rpc" or "action" statement, the
>      accessible tree is the RPC or action operation instance, all state
>      data in the server, and the running configuration datastore.  The
>      root node has top-level data nodes in all modules as children.
>      Additionally, for an RPC, the root node also has the node
>      representing the RPC operation being defined as a child.  The node
>      representing the operation being defined has the operation's
>      output parameters as children.
> 
>   o  If the "when" statement is a child of a "uses", "choice", or
>      "case" statement, then the context node is the closest ancestor
>      node to the "uses", "choice", or "case" node that is also a data
>      node.  If no such node exists, the context node is the root node.
>      The accessible tree is tentatively altered during the processing
>      of the XPath expression by removing all instances (if any) of the
>      nodes added by the "uses", "choice", or "case" statement.
> 
> 
> It clearly says that the context node is the root node ("/"), not the node 
> representing the RPC ("/my-rpc"), which is a child to root node. The "root 
> node" aka "document root" can only mean a single thing XPath terminology.

RFC 6020 clearly says that the tree is the rpc reply instance document, so it 
is a different document whose root node coincides with <rpc-reply>. The problem 
of 6020bis is that we need a definition that's independent of XML, and that's 
not so easy, but I agree with Martin that nothing should change for relative 
paths.

Lada 

> 
> Jernej
> 
>> 
>> If an absolute path is used, it would be:
>> 
>>    when "/nc:rpc-reply/x:specific-param = 'foo'"; // 1.0
>>    when "/x:my-rpc/x:specific-param = 'foo'";     // 1.1
>> 
>> 
>> I wonder if any implementation of 1.0 supports this absolute form.
>> 
>> 
>> /martin
>> 
>> 
>>>       }
>>>       leaf specific-param {
>>>         type string;
>>>       }
>>>     }
>>>   }
>>> 
>>> Jernej
>>> 
>>>> /martin
>>>> 
>>>> 
>>>> 
>>>>> Thanks, Lada
>>>>> 
>>>>> Martin Bjorklund <[email protected]> writes:
>>>>> 
>>>>>> Ladislav Lhotka <[email protected]> wrote:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> Y02-01 allows "must" as a substatement of "input", "output" and
>>>>>>> "notification" but for these cases the specification of the context
>>>>>>> node in sec. 7.5.3 doesn't work.
>>>>>>> 
>>>>>>>     o  The context node is the node in the accessible tree for which the
>>>>>>>        "must" statement is defined.
>>>>>> You are right.  But note how the accessible tree is defined.  There is
>>>>>> a node for the operation / notification.  This node should be the
>>>>>> context node:
>>>>>> 
>>>>>>     o  If the "must" statement is a substatement of a "notification"
>>>>>>        statement, the context node is the node representing the
>>>>>>        notification in the accessible tree.
>>>>>> 
>>>>>>     o  If the "must" statement is a substatement of a "input"
>>>>>>        statement, the context node is the node representing the
>>>>>>        operation in the accessible tree.
>>>>>> 
>>>>>>     o  If the "must" statement is a substatement of a "output"
>>>>>>        statement, the context node is the node representing the
>>>>>>        operation in the accessible tree.
>>>>>> 
>>>>>> 
>>>>>> /martin
>>>>> -- 
>>>>> Ladislav Lhotka, CZ.NIC Labs
>>>>> PGP Key ID: E74E8C0C
>>>>> 
>>>> _______________________________________________
>>>> netmod mailing list
>>>> [email protected]
>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>> 
>> _______________________________________________
>> netmod mailing list
>> [email protected]
>> https://www.ietf.org/mailman/listinfo/netmod
>> 
> 
> _______________________________________________
> 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