Hi Andy,

Are you ok with the proposed OLD/NEW changes?


/martin


Martin Bjorklund <[email protected]> wrote:
> Andy Bierman <[email protected]> wrote:
> > Hi,
> > 
> > The ABNF for "default" is wrong in the deviate-*-stmt (add, replace, delete)
> > Is says [default-stmt] but it should be *default-stmt
> 
> Thanks, fixed.
> 
> But for deviate-replace, it is not clear what the correct answer is.
> 
> This is pretty clear:
> 
>   leaf foo {
>     type int32;
>     default 42;
>   }
> 
>   deviation /foo {
>     deviate replace {
>       default 10;
>     }
>   }
> 
> But what about this:
> 
>   leaf-list bar {
>     type int32;
>     default 42;
>     default 43;
>   }
> 
>   deviation /bar {
>     deviate replace {
>       default 10;
>       default 11;
>     }
>   }
> 
> Are all defaults changed?
> 
> Compare with must and unique - they can not be replaced currently.
> 
> In order to resolve this we probably need more text as well :(
> 
> 
> OLD:
> 
>   The argument "replace" replaces properties of the target node.  The
>   properties to replace are identified by substatements to the
>   "deviate" statement.  The properties to replace MUST exist in the
>   target node.
> 
> 
> NEW:
> 
>   The argument "replace" replaces properties of the target node.  The
>   properties to replace are identified by substatements to the
>   "deviate" statement.  The properties to replace MUST exist in the
>   target node.  If multiple properties exist in the target node, all
>   of them are replaced with the new properties defined in the
>   substatements to the deviate statement.
> 
> + add an example to the section "Usage examples":
> 
> NEW:
> 
>   In this example, the original definition of a leaf list has two
>   default values "42" and "43:
> 
>     leaf-list bar {
>       type int32;
>       default 42;
>       default 43;
>     }
> 
>   A server can change this to the values "10" and "11" instead:
> 
>     deviation /base:bar {
>       deviate replace {
>         default 10;
>         default 11;
>       }
>     }
> 
> 
> Also, change the grammar:
> 
> OLD:
> 
> deviate-replace-stmt = deviate-keyword sep replace-keyword-str optsep
>                       (";" /
>                        "{" stmtsep
>                            ;; these stmts can appear in any order
>                            [type-stmt]
>                            [units-stmt]
>                            [default-stmt]
>                            [config-stmt]
>                            [mandatory-stmt]
>                            [min-elements-stmt]
>                            [max-elements-stmt]
>                        "}") stmtsep
> 
> NEW:
> 
> deviate-replace-stmt = deviate-keyword sep replace-keyword-str optsep
>                       (";" /
>                        "{" stmtsep
>                            ;; these stmts can appear in any order
>                            [type-stmt]
>                            [units-stmt]
>                            *must-stmt
>                            *unique-stmt
>                            *default-stmt
>                            [config-stmt]
>                            [mandatory-stmt]
>                            [min-elements-stmt]
>                            [max-elements-stmt]
>                        "}") stmtsep
> 
> 
> 
> 
> 
> > Is it intentional that the ABNF for deviate-delete-stmt leaves out
> > config, mandatory, max-elements, and min-elements?
> > I understand why "type" cannot be removed.
> 
> I don't really remember, but I can see that if you want to "delete"
> min-elements you can replace it and set it to 0.
> 
> > IMO the rest of the statements should be removable.
> 
> > Sec. 7.20.3.2 does not mention the restrictions indicated in the ABNF.
> > This section should make it clear a leaf has only 1 default
> > and the 0..n refers to leaf-list only.
> 
> In general, the result after applying deviations must be valid - e.g.,
> you cannot deviate "foo" as the default for an int32 leaf.
> 
> > It should also be clear that the "deviate add default" for a leaf-list
> > is YANG statement order-dependent.
> > 
> > Not as obvious -- a config=false leaf-list can have duplicate default
> > values.
> > The deviate-stmt has no way to specify which 1 to delete or replace
> > if there are duplicates.
> 
> Unless replace will replace *all*, as suggested above.
> 
> 
> /martin
> 
> _______________________________________________
> netmod mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/netmod
> 

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

Reply via email to