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.


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

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


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

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

Reply via email to