Re: [netmod] augment and if-feature

worley@ariadne.com (Dale R. Worley) Fri, 17 March 2017 14:03 UTC

Return-Path: <worley@alum.mit.edu>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5564D129441 for <netmod@ietfa.amsl.com>; Fri, 17 Mar 2017 07:03:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.933
X-Spam-Level:
X-Spam-Status: No, score=-1.933 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.665, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QXZWAXXesH4m for <netmod@ietfa.amsl.com>; Fri, 17 Mar 2017 07:03:17 -0700 (PDT)
Received: from resqmta-ch2-03v.sys.comcast.net (resqmta-ch2-03v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:35]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 48FC612943C for <netmod@ietf.org>; Fri, 17 Mar 2017 07:03:17 -0700 (PDT)
Received: from resomta-ch2-18v.sys.comcast.net ([69.252.207.114]) by resqmta-ch2-03v.sys.comcast.net with SMTP id osSZcXvw2dEjjosTMco0V4; Fri, 17 Mar 2017 14:03:16 +0000
Received: from hobgoblin.ariadne.com ([IPv6:2601:192:4603:9471:222:fbff:fe91:d396]) by resomta-ch2-18v.sys.comcast.net with SMTP id osTKcviVQpxUzosTLcF1OL; Fri, 17 Mar 2017 14:03:16 +0000
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id v2HE3EJv032023; Fri, 17 Mar 2017 10:03:14 -0400
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id v2HE3EQb032020; Fri, 17 Mar 2017 10:03:14 -0400
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: Robert Wilton <rwilton@cisco.com>
Cc: andy@yumaworks.com, joey.boyd@adtran.com, netmod@ietf.org
In-Reply-To: <67e7ba2b-c526-fd9b-f39f-14f5b0490f4f@cisco.com> (rwilton@cisco.com)
Sender: worley@ariadne.com
Date: Fri, 17 Mar 2017 10:03:14 -0400
Message-ID: <87pohgova5.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4wfAyhE/DrEbMaetpmv4G1tSkq+bkIRx1rWW+nEg2RFPB2+Ap5nvmR4qF0osOdt38pReU5Y5HaUYlKO8Wrqhe79NkruhioZmzsJj6e29SPBH+tKkPwFPbH CvkMh2y+6zJLD+iubulOEUGt52++5B7He/KYRT6Mh3hCJ/X00nBkf7hbYf85e3Jf6xr3aTGE5w5trhf5qaBf8KsLR750r35diQ60lXC+4N8LvI1xDkNcaGwD yJOCA+jFvnfOdW95s2DS0g==
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Dhk_TTdt4phsGag_bsyhFWq0NXI>
Subject: Re: [netmod] augment and if-feature
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Mar 2017 14:03:21 -0000

Robert Wilton <rwilton@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