> On 05 Oct 2015, at 17:35, Balazs Lengyel <balazs.leng...@ericsson.com> wrote:
> 
> Hello,
> What do the mandatory statements mean in the following model ?
> 
>           choice scen8 {  // Embedded choices with multiple mandatory cases; 
> invalid scenario
>               case A {
>                   choice subChoiceA {
>                       mandatory true;
>                       case A {
>                           leaf scen8-num1 { type uint8; }
>                       }
>                       case B {
>                           leaf scen8-num2 { type uint8; }
>                       }
>                   }
>               }
>               case B {
>                   choice subChoiceB {
>                       mandatory true;
>                       case A {
>                           leaf scen8-num1 { type uint8; }
>                       }
>                       case B {
>                           leaf scen8-num2 { type uint8; }
>                       }
>                   }
>               }
>           }
> 
> Answers:
> A1) They mean nothing because the case around subChoiceA/B might not exist, 
> in which case its underlying statements are not valid.
> A2) They mean that one case from both subChoiceA AND subchoiceB must exist 
> leading to two cases in choice scen8 which is not allowed, hence this is an 
> invalid model?

In the first place, it should be an error because of colliding names - all the 
leaves defined in sub-cases have the same parent. However, pyang doesn't flag 
it as an error.

> 
> Generally I find choices embedded in choices to be so complicated that IMHO 
> they SHOULD be immediately prohibited. If you think about all the variants of 
> embedded choices with mandatory and default placed on some or a bunch of 
> them, even understanding what they mean becomes a headache. BAD !!!! In the 
> beginning YANG was about easy-understanding. However these combinations are 
> unclear even after repeatedly reading the RFC :-(

Yes, it is quite complicated. Normally, such embedded choices shouldn't be 
needed but they can happen if, e.g. the internal choices are defined in 
groupings.

> As the very least we SHOULD prohibit mandatory/default on the inside choice.

I think it would be better to ignore them (and tools may issue a warning).

Lada 

> 
> regards Balazs
> 
> -- 
> Balazs Lengyel                       Ericsson Hungary Ltd.
> Senior Specialist
> ECN: 831 7320
> Mobile: +36-70-330-7909              email: balazs.leng...@ericsson.com
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

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




_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to