Re: [netmod] Query about augmenting module from submodule in YANG 1.0

Vladimir Vassilev <vladimir@transpacket.com> Mon, 07 August 2017 19:30 UTC

Return-Path: <vladimir@transpacket.com>
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 9C3A91325CD for <netmod@ietfa.amsl.com>; Mon, 7 Aug 2017 12:30:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.089
X-Spam-Level:
X-Spam-Status: No, score=0.089 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, SPF_PASS=-0.001] autolearn=ham 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 KP2o9LO09yre for <netmod@ietfa.amsl.com>; Mon, 7 Aug 2017 12:30:36 -0700 (PDT)
Received: from mail.transpacket.com (s91205186171.blix.com [91.205.186.171]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1041B13247F for <netmod@ietf.org>; Mon, 7 Aug 2017 12:30:35 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id 0290514033DD; Mon, 7 Aug 2017 21:30:33 +0200 (CEST)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id YYg3S2a2xgIY; Mon, 7 Aug 2017 21:30:32 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by mail.transpacket.com (Postfix) with ESMTP id C51C514033DE; Mon, 7 Aug 2017 21:30:32 +0200 (CEST)
Received: from mail.transpacket.com ([127.0.0.1]) by localhost (mail.transpacket.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id zuV05tfqnBQ5; Mon, 7 Aug 2017 21:30:32 +0200 (CEST)
Received: from [192.168.2.191] (cm-84.211.71.154.getinternet.no [84.211.71.154]) by mail.transpacket.com (Postfix) with ESMTPSA id 8837C14033D6; Mon, 7 Aug 2017 21:30:32 +0200 (CEST)
To: "Ivory, William" <wi274w@intl.att.com>
References: <E3378E0605547F4E854DEE0CB1116AB020865B@gbcdcmbx03.intl.att.com> <85A1FF5A-EF0B-4278-B4FF-3FE431486B2C@tail-f.com> <E3378E0605547F4E854DEE0CB1116AB02102DC@gbcdcmbx03.intl.att.com>
Cc: "'netmod@ietf.org'" <netmod@ietf.org>
From: Vladimir Vassilev <vladimir@transpacket.com>
Message-ID: <11857e8e-f46e-dc2e-cf99-80224859d221@transpacket.com>
Date: Mon, 07 Aug 2017 21:30:32 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.6.0
MIME-Version: 1.0
In-Reply-To: <E3378E0605547F4E854DEE0CB1116AB02102DC@gbcdcmbx03.intl.att.com>
Content-Type: multipart/alternative; boundary="------------867F8D49873980A68CDCA5DF"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/h0WhQdjhi-axTyVt2-ze0ClD47k>
Subject: Re: [netmod] Query about augmenting module from submodule in YANG 1.0
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: Mon, 07 Aug 2017 19:30:39 -0000

Hello,

IMO "submodule"s  are a striking example of redundant complexity in an 
otherwise very close to perfection YANG (regardless if it is YANG 1.0 or 
1.1).

Modules and submodules have been around for a while however the ratio of 
the currently published modules compared with the submodules is about 40 
modules to 1 submodule (if one ignores all the modules and submodules 
from  particular networking hardware manufacturer that is particularly 
keen on using submodules). As a far but still relevant analogy Java has 
a limitation of 1 file per class and this atomicity has proven to be an 
advantage especially in terms of enforcing modularity. IMO there is 
nothing that can be done with the help of submodules that can not be 
done without them.

For the sake of the argument can you provide a synthesized description 
of the problem that lead you to a drastic solution like "we’ll look at 
trying to put everything into submodules in this case."?

Vladimir

On 08/07/2017 04:37 PM, Ivory, William wrote:
>
> Hi Jan,
>
> Thanks – we’ll look at trying to put everything into submodules in 
> this case.
>
> Regards,
>
> William
>
> *From:*Jan Lindblad [mailto:janl@tail-f.com]
> *Sent:* 07 August 2017 14:28
> *To:* Ivory, William <wi274w@intl.att.com>
> *Cc:* netmod@ietf.org
> *Subject:* Re: [netmod] Query about augmenting module from submodule 
> in YANG 1.0
>
> The submodule concept in YANG 1.0 is, well, not very useful, and even 
> less intuitive. That's why it saw major rework in YANG 1.1.
>
> A YANG 1.0 submodule cannot reference the module that includes it, 
> directly or indirectly. This is because in YANG 1.0 the symbols in 
> other submodules of the same namespace are invisible to the submodule 
> unless they are explicitly included. And parent modules can't be 
> included by a submodule because that would lead to an inclusion loop. 
> It is possible to reference (augment, etc) other sibling submodules, 
> though. So if you split your modules cleverly, you might be able to 
> resolve your referential constraints anyway.
>
> If you really want to take the submodule path, I'd recommend moving to 
> YANG 1.1. In the interest of preserving the hair tone of IT-architects.
>
> /jan
>
>     We’re trying to solve a modularity problem with a YANG module by
>     splitting it into submodules and augmenting the parent module from
>     each submodule.  However, despite the wording below in YANG 1.0
>     section 7.15, we’ve found a couple of threads online with comments
>     suggesting it’s only allowed in YANG 1.1?  Would appreciate
>     clarification.
>
>     RFC 6020 section 7.15 suggests it is allowed:
>
>     ‘
>
>        The "augment" statement allows a module or submodule to add to the
>
>        schema tree defined in an external module, or the current
>     module and
>
>        its submodules, and to add to the nodes from a grouping in a "uses"
>
>        statement.
>
>     ‘
>
>     Versus online comments
>     here:https://www.ietf.org/mail-archive/web/netmod/current/msg15418.html
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mail-2Darchive_web_netmod_current_msg15418.html&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=FmJP9CH54z5mG3DFGBdc_9q1TLpYQ31-TQ-26_Qa9vw&m=YC4w6Zi9KhBp0MnnvA42_qdR2aM3uOFWpZYtgF122Ec&s=OxxQRDucETBaDPn4KGNWcLlu4e8AMSfuyJJjrklp3R0&e=>
>
>     ‘> On 01 Mar 2016, at 10:38, Anton Tkáčik <anton.tkacik at pantheon.tech> wrote:
>
>     >
>
>     > Hi,
>
>     > Noticed other issue with example set,
>
>     > Inhttps://github.com/mbj4668/pyang/issues/194
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mbj4668_pyang_issues_194&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=FmJP9CH54z5mG3DFGBdc_9q1TLpYQ31-TQ-26_Qa9vw&m=YC4w6Zi9KhBp0MnnvA42_qdR2aM3uOFWpZYtgF122Ec&s=bkakKJEZzCBq3BkP5NzW-wDX6KOZHpOnT0u-ySg8rS0&e=>  Lada stated that in YANG 1.0 submodule can not augment nodes
>
>     > defined in parent model.
>
>     >
>
>     > Is that correct that submodule can not augment definition defined in parent module?
>
>       
>
>     This isn't possible in YANG 1.0 but will be possible in 1.1. However, in the present case the definition being augmented from the submodule is arguably in a different module.
>
>       
>
>     Lada
>
>     ‘
>
>     Thanks,
>
>     William
>
>     _______________________________________________
>     netmod mailing list
>     netmod@ietf.org <mailto:netmod@ietf.org>
>     https://www.ietf.org/mailman/listinfo/netmod
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_netmod&d=DwMFaQ&c=LFYZ-o9_HUMeMTSQicvjIg&r=FmJP9CH54z5mG3DFGBdc_9q1TLpYQ31-TQ-26_Qa9vw&m=YC4w6Zi9KhBp0MnnvA42_qdR2aM3uOFWpZYtgF122Ec&s=x7sK1jWYtSsQJr8r6G7FjWR5gAoMtgv6zRwxT4bzMGQ&e=>
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod