Re: [YANG] import statement

Ladislav Lhotka <lhotka@cesnet.cz> Sat, 03 May 2008 21:10 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 B75CE3A6B6E; Sat, 3 May 2008 14:10:52 -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 2D67A3A6A42 for <yang@core3.amsl.com>; Sat, 3 May 2008 14:10:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.801
X-Spam-Level:
X-Spam-Status: No, score=-0.801 tagged_above=-999 required=5 tests=[AWL=-0.151, BAYES_00=-2.599, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, J_CHICKENPOX_33=0.6]
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 YjnIwS88ys-A for <yang@core3.amsl.com>; Sat, 3 May 2008 14:10:46 -0700 (PDT)
Received: from office2.cesnet.cz (office2.cesnet.cz [195.113.144.244]) by core3.amsl.com (Postfix) with ESMTP id 3A4A53A63D3 for <yang@ietf.org>; Sat, 3 May 2008 14:10:45 -0700 (PDT)
Received: from [172.29.2.201] (asus-gx.lhotka.cesnet.cz [195.113.161.161]) by office2.cesnet.cz (Postfix) with ESMTP id 383A4D800C7 for <yang@ietf.org>; Sat, 3 May 2008 23:10:47 +0200 (CEST)
From: Ladislav Lhotka <lhotka@cesnet.cz>
To: yang@ietf.org
In-Reply-To: <20080503.222459.40411510.mbj@tail-f.com>
References: <1209840281.14759.57.camel@missotis> <20080503.211049.33022544.mbj@tail-f.com> <1209845563.14759.70.camel@missotis> <20080503.222459.40411510.mbj@tail-f.com>
Organization: CESNET
Date: Sat, 03 May 2008 23:10:48 +0200
Message-Id: <1209849048.14759.97.camel@missotis>
Mime-Version: 1.0
X-Mailer: Evolution 2.12.1
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

Martin Bjorklund píše v So 03. 05. 2008 v 22:24 +0200:
> > Then augment performs two fundamentally different things  
> 
> I don't agree.  Why?
> 

With the absolute argument, augment inserts something carrying its own
namespace in between foreign namespace nodes. In particular, no name
conflicts can ever happen.

With uses and the descendant form of augment, you are first adopting
something to your namespace and then modifying it. Names can clash here.
For example, the author of the imported module may add an optional node
to a grouping that from his point of view is perfectly backward
compatible change. This may however break the importing module if a node
added by augment happens to have the same name and is added at the same
place.

The syntax

  uses foo:bar {
    augment baz {
     ...
    }
  }
  uses boo:hoo;

has at least the advantage that it doesn't matter if boo:hoo uses baz.

Lada

-- 
Ladislav Lhotka, CESNET
PGP Key ID: E74E8C0C

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