> On 19 Nov 2015, at 12:38, Martin Bjorklund <[email protected]> wrote:
> 
> Ladislav Lhotka <[email protected]> wrote:
>> 
>>> On 19 Nov 2015, at 10:38, Martin Bjorklund <[email protected]> wrote:
>>> 
>>> Andy Bierman <[email protected]> wrote:
>>>> Hi,
>>>> 
>>>> This text in 7.21.5 is not clear:
>>>> 
>>>>  A leaf that is a list key MUST NOT have a "when" statement.
>>>> 
>>>> I think you mean that no when-stmt can use the key leaf as
>>>> a context node.
>>>> 
>>>> These are illegal in YANG 1.1 I think:
>>>> 
>>>> 
>>>>  augment /listX {
>>>>     when "foo";
>>>>     leaf key1 { ... }
>>>>  }
>>> 
>>> Why would this be illegal?  You didn't show the definition of listX,
>>> but it cannot have "key1" as one of its keys.
>> 
>> I think Andy has a point, here is a complete example:
>> 
>>  leaf foo {
>>    type empty;
>>  }
>>  list array {
>>    key "key1";
>>    leaf bar {
>>      type empty;
>>    }
>>  }
>>  augment "/array" {
>>    when "../foo";
>>    leaf key1 {
>>      type uint8;
>>    }
>>  }
> 
> I don't think this is legal even w/o the "when" statement.  RFC 6020
> says in 7.8.2 about the "key" statetement:
> 
>   Each such leaf identifier MUST refer to a child leaf of the
>   list.  The leafs can be defined directly in substatements to the
>   list, or in groupings used in the list.
> 

OK, makes sense.

> 
> I.e., it is not legal to augment a key.  (I noticed that pyang doesn't
> detect this...)

Yes, I tried it. :-)

> 
>> Without the "when" statement it is perfectly okay but here the
>> presence of "foo" makes "key1" disappear but "array" remains.
>> 
>>> 
>>>> OR
>>>> 
>>>> 
>>>>   list listX {
>>>>      key key1;
>>>>      uses grouping1 {
>>>>         when "foo";
>>>>          // leaf key1 added via grouping
>>>>      }
>>>>   }
>>> 
>>> Why would this be illegal?
>> 
>> Similar as above.
> 
> Ah, ok, yes this should be illegal.
> 
> I think we need to add specific text for this scenario:
> 
>  If a leaf key is defined in a grouping that is used in a list, the
>  "uses" statement MUST NOT have a "when" statement.

And the same holds for "if-feature". I think these restrictions on list keys 
should be stated in sec. 7.8.2 (and possibly in 7.21.5, too).

Lada

> 
> 
> /martin
> 
> 
> 
>> 
>> Lada
>> 
>>> 
>>>> There are more ways that the key-leaf can inherit a when-stmt
>>>> but you get the idea.
>>> 
>>> I don't think a key leaf can "inherit" a when statement.
>>> 
>>>> The phrase "have a when-stmt" should be clear.
>>>> It implies that the when-stmt is a sub-statement of the leaf-stmt
>>>> but this is only 1 way the key leaf can be conditional.
>>> 
>>> 
>>> 
>>> /martin
>>> 
>>> _______________________________________________
>>> netmod mailing list
>>> [email protected]
>>> https://www.ietf.org/mailman/listinfo/netmod
>> 
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C

--
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