Robert Wilton <rwil...@cisco.com> writes:
> To quote Joey's example,  I think that both of the following modules are 
> valid (presuming that they are both implemented by a device) regardless 
> of which features are enabled.  Do you agree?
>
> module base-module {
>    prefix bmod;
>
>    feature things;
>    feature widgets;
>
>    container things {
>      if-feature things;
>      ...
>      container widgets {
>        if-feature widgets;
>        ...
>      }
>    }
> }
>
> module augment-module {
>    prefix amod;
>
>    augment "/bmod:things" {
>      container other-things {
>      }
>    }
>
>    augment "/bmod:things/bmod:widgets" {
>      container other-widgets {
>      }
>    }
> }

Does it remain valid if base-module is changed to:

    module base-module {
       prefix bmod;

       feature things;
       feature widgets;

       container things {
         if-feature things;
         ...
         }
       }
    }

As I analyze it, the augment statement is unconditional, but the
presence of its target node can be (1) unconditional, (2) conditional,
or (3) *never* present.

My preferred approach is that an augment is only valid if it is
"present" only if the target node is present (a condition I think can be
verified statically).  But if we allow the augment to silently have no
effect if the target node is not present in the current implementation,
do we still require that there is some possible implementation in which
the target node exists?

Dale

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

Reply via email to