Re: [YANG] import statement

Andy Bierman <ietf@andybierman.com> Sat, 03 May 2008 20:24 UTC

Return-Path: <yang-bounces@ietf.org>
X-Original-To: yang-archive@optimus.ietf.org
Delivered-To: ietfarch-yang-archive@core3.amsl.com
Received: from core3.amsl.com (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 18F333A6CC4; Sat, 3 May 2008 13:24:41 -0700 (PDT)
X-Original-To: yang@core3.amsl.com
Delivered-To: yang@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0841F3A6CB8 for <yang@core3.amsl.com>; Sat, 3 May 2008 13:24:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.514
X-Spam-Level:
X-Spam-Status: No, score=-0.514 tagged_above=-999 required=5 tests=[AWL=-0.158, BAYES_00=-2.599, J_CHICKENPOX_33=0.6, RCVD_IN_NJABL_PROXY=1.643]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uup2cLlxpuqs for <yang@core3.amsl.com>; Sat, 3 May 2008 13:24:39 -0700 (PDT)
Received: from smtp113.sbc.mail.mud.yahoo.com (smtp113.sbc.mail.mud.yahoo.com [68.142.198.212]) by core3.amsl.com (Postfix) with SMTP id 2FE7A3A6ACC for <yang@ietf.org>; Sat, 3 May 2008 13:24:39 -0700 (PDT)
Received: (qmail 70538 invoked from network); 3 May 2008 20:24:40 -0000
Received: from unknown (HELO ?127.0.0.1?) (andybierman@att.net@67.127.166.23 with plain) by smtp113.sbc.mail.mud.yahoo.com with SMTP; 3 May 2008 20:24:38 -0000
X-YMail-OSG: IQPiCfcVM1lH_svYmocQ.eRJU.hTuT8h.jBNbkoN_usrYtQxxMreor8vjc.BmaMff4DbWHXnpmFfhChWfeS_Mrz7dgRb0TXJ4fqAYq.fBDR8760kYqlgGh8s14k0MovXJ6I-
X-Yahoo-Newman-Property: ymail-3
Message-ID: <481CCA04.7070109@andybierman.com>
Date: Sat, 03 May 2008 13:24:36 -0700
From: Andy Bierman <ietf@andybierman.com>
User-Agent: Thunderbird 2.0.0.14 (Windows/20080421)
MIME-Version: 1.0
To: Ladislav Lhotka <lhotka@cesnet.cz>
References: <1209828663.14759.40.camel@missotis> <481C9D3E.1050602@andybierman.com> <1209840281.14759.57.camel@missotis> <20080503.211049.33022544.mbj@tail-f.com> <1209845563.14759.70.camel@missotis>
In-Reply-To: <1209845563.14759.70.camel@missotis>
Cc: yang@ietf.org
Subject: Re: [YANG] import statement
X-BeenThere: yang@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: YANG modeling Language for NETCONF <yang.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/yang>, <mailto:yang-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/yang>
List-Post: <mailto:yang@ietf.org>
List-Help: <mailto:yang-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang>, <mailto:yang-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Sender: yang-bounces@ietf.org
Errors-To: yang-bounces@ietf.org

Ladislav Lhotka wrote:
> Martin Bjorklund píše v So 03. 05. 2008 v 21:10 +0200:
>> Ladislav Lhotka <lhotka@cesnet.cz> wrote:
>>> Andy Bierman píše v So 03. 05. 2008 v 10:13 -0700:
>>>> It's a bit tricky.
>>>> Augment puts nodes from the augmenting namespace and
>>>> puts it 'someplace else', which could be the same namespace.
>>>>
>>>> The uses-stmt takes nodes from 'somewhere else' and puts them 'here',
>>>> in the namespace for 'here'.
>>> That's all right, but I still think one can imagine the augment
>>> statement to be replaced by the content of its target node (augmented as
>>> specified) and said content keeps its original namespace. If it is not
>>> so, then I am seriously confused and don't really know why augment can
>>> appear in different places in the schema tree (under module, container
>>> and list).
>> "augment" just extends some other data model, identified by the target
>> node.  This target node expression can be absolute or relative
>> (descendant form).  When augment appears under container or list, the
>> descendant form must be used.  It will extend the current data model
>> in the same module.  The use case is this:
> 
> Then augment performs two fundamentally different things - it is not
> very clear from sect. 7.15. With the descendant form, it would be IMO
> better to pack the augment statement with the uses statement where the
> augmented node appears, like this:
> 
>    module x { 
>      container y {
>        uses foo:bar {
>        	 augment baz {
>          ...
>          }
>        }
>      }
>    }


Not sure if this has any semantic impact.
In my code, it doesn't really make any difference
if 'augment baz' was inside the 'uses foo:bar' or not.
It would be extra work to make sure it was one way or the other.

I think of the uses-stmt as containing the refinements
for the grouping.  I suppose it makes sense to have it
contain both the refinements and extensions.

> 
> With the absolute form, can the target node be e.g., a container inside
> a grouping?

no.  you cannot augment a grouping (from outside the grouping).

> 
> Lada
> 

Andy

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