Subject: Re: [netmod] Consensus call on yang-00088: new "refine" statement

From: "Ersue, Mehmet (NSN - DE/Munich)" <[email-masked]>
Date: Wed, 5 Nov 2008 15:48:40 +0100

I support all of the changes based on the condition that the 
top-level 'augment' should be kept.

Martin B. wrote:
> I pefer to keep the top-level statement called 'augment', since this
> usage is most similiar to how the term is used in SMIv2.
> 
> I suggest 'extend' for the other statement.  When a grouping is used,
> it can be refined and extended.

I agree with Martin that the top-level statement should be 
called 'augment', since this is the most natural way to call it 
and it matches the use in SMIv2.
I agree also to use 'extend' for the other statement.

Cheers,
Mehmet

> Subject: [netmod] Consensus call on yang-00088: new "refine" statement
> 
> 1. Should we add a refine statement (assuming we have 'augment'
>    inside uses) in "uses"?
> 
>    Rough Consensus from the interim: make this change
> 
> 2. Should we have an 'augment' statement inside the 'uses'
>    (while keeping the top-level 'augment')?
> 
>    (very) Rough Consensus from the interim: make this change
> 
> 3. Should we put a "when" as a substatement of a leaf?
> 
>    Rough Consensus from the interim: yes, assuming #2 is yes.
> 
> 4. Should we have two 'augment' keywords?
> 
>    Rough Consensus from the interim: yes, assuming #2 is yes.
> 
> More details below...
> 
> The current way YANG does things is to use an overlay and a
> conditional change.  For example:
> 
> container x
>   augment . {
>   when "..." ;
>   leaf a { foo } ;
>   }
> 
> ------------------------------------------------------------------
> First subissue: 1. Should we add a refine statement (assuming
> we have 'augment' inside uses) in 'uses'.
> 
> That would look like this:
> 
> uses foo {
>   refine "b/c" {
>     default 42;
>     ...
>   }
> }
> 
> First consensus call is to determine whether we're going to add
> the refine statement and change the "overlay" way of doing things
> that we do today (see above).  The sense of the room at the
> interim was that we have rough consensus to do so.
> 
> However, adding separate keywords for refining each kind of node
> (refine-leaf, refine-container, etc.) generated no support, so
> that is off the table.
> 
> ------------------------------------------------------------------
> Second subissue: 2. Should we have an 'augment' statement inside
> the 'uses' (while keeping the top-level 'augment')?
> 
> That would mean, for example:
> 
> uses foo {
>   augment "b/c" {
>     ...
>   }
> }
> 
> This is 'just a syntactic change'. You cannot do more than you
> could before.  Advantage is that you know which node the 'uses'
> come from.
> 
> This does not disallow the top-level augment; it adds the augment
> to 'uses'.  'augment' was originally written to add nodes to a
> different namespace.  At the top-level, 'augment' adds nodes to
> someone else's namespace, whereas this 'augment' adds to the
> current namespace.
> 
> It also means we no longer have definitions spread out in
> seemingly unrelated places.  Moving the augments inside uses
> forces you to collect related statements (the augment and the
> uses).  Forces model writers to collect related information
> rather than spreading it around.
> 
> The interim had very rough consensus to make this change.  The
> primary argument for was the clear association of the 'augment'
> with the definition of the 'nodes' being augmented (clarity).
> Some of the arguments against were that what we have works fine
> and a worry of lost flexibility (unclear what flexibility,
> though).
> 
> ------------------------------------------------------------------
> Third subissue: 3. Should we put a "when" as a substatement of a leaf
> 
> If we move augment to the uses statement (see previous subissue),
> we need to have "when" 'everywhere' (leaf, leaf-list, container,
> grouping, case, choice, notification, input, output).
> 
> Rough concensus from the interim was that if #2 is introduced,
> this should be as well.
> 
> ------------------------------------------------------------------
> Fourth subissue: 4. Should we have two 'augment' keywords?
> 
> Should we have two keywords (for top-level 'augment' and for
> 'augment' inside uses)?  For example, the 'augments' under uses
> could be called "extend".
> 
> Rough consensus in the meeting to have two different names.  What
> the second name should be has not been decided.
> 
> Suggestions welcome!
> _______________________________________________
> netmod mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netmod
> 
_______________________________________________
netmod mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/netmod