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

"Ivory, William" <william.ivory@intl.att.com> Wed, 23 August 2017 10:28 UTC

Return-Path: <william.ivory@intl.att.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 B627A13236D for <netmod@ietfa.amsl.com>; Wed, 23 Aug 2017 03:28:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.399
X-Spam-Level:
X-Spam-Status: No, score=-5.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-2.8, URIBL_BLOCKED=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 pP3_lidlWI1z for <netmod@ietfa.amsl.com>; Wed, 23 Aug 2017 03:28:44 -0700 (PDT)
Received: from mx0a-00191d01.pphosted.com (mx0b-00191d01.pphosted.com [67.231.157.136]) (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 713091321B6 for <netmod@ietf.org>; Wed, 23 Aug 2017 03:28:44 -0700 (PDT)
Received: from pps.filterd (m0049459.ppops.net [127.0.0.1]) by m0049459.ppops.net-00191d01. (8.16.0.21/8.16.0.21) with SMTP id v7NAPhmj011678; Wed, 23 Aug 2017 06:28:40 -0400
Received: from alpi155.enaf.aldc.att.com (sbcsmtp7.sbc.com [144.160.229.24]) by m0049459.ppops.net-00191d01. with ESMTP id 2ch7q0s939-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 23 Aug 2017 06:28:40 -0400
Received: from enaf.aldc.att.com (localhost [127.0.0.1]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id v7NASdGV024151; Wed, 23 Aug 2017 06:28:40 -0400
Received: from mlpi409.sfdc.sbc.com (mlpi409.sfdc.sbc.com [130.9.128.241]) by alpi155.enaf.aldc.att.com (8.14.5/8.14.5) with ESMTP id v7NASWfx024050 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 23 Aug 2017 06:28:34 -0400
Received: from gbcdccas03.intl.att.com (gbcdccas03.intl.att.com [135.76.180.11]) by mlpi409.sfdc.sbc.com (RSA Interceptor); Wed, 23 Aug 2017 10:28:19 GMT
Received: from GBCDCMBX03.intl.att.com ([135.76.31.134]) by gbcdccas03.intl.att.com ([135.76.180.11]) with mapi id 14.03.0361.001; Wed, 23 Aug 2017 11:28:17 +0100
From: "Ivory, William" <william.ivory@intl.att.com>
To: 'Robert Wilton' <rwilton@cisco.com>, 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>
CC: 'Alex Campbell' <Alex.Campbell@Aviatnet.com>, "'netmod@ietf.org'" <netmod@ietf.org>
Thread-Topic: [netmod] Query about augmenting module from submodule in YANG 1.0
Thread-Index: AdMMOPUClm48yMKSSEeEurX4RbXaiADP5++AAAR9DaAACC3kAAAcrpQgAD0R+IAAAWwvgAAAa7wAAlFjp4AACPgnkABCnQKAABQ6ExD///QegP//4ixwgABFaYD//+mjQIAAIWGA///u20A=
Date: Wed, 23 Aug 2017 10:27:17 +0000
Deferred-Delivery: Wed, 23 Aug 2017 10:28:17 +0000
Message-ID: <E3378E0605547F4E854DEE0CB1116AB0221339@gbcdcmbx03.intl.att.com>
References: <E3378E0605547F4E854DEE0CB1116AB02102DC@gbcdcmbx03.intl.att.com> <11857e8e-f46e-dc2e-cf99-80224859d221@transpacket.com> <E3378E0605547F4E854DEE0CB1116AB0210631@gbcdcmbx03.intl.att.com> <defe35bb-bb8b-f1f0-d8c4-2d2d0f23731b@transpacket.com> <1502290869.16638.15.camel@nic.cz> <20170809151312.GC42207@elstar.local> <6ef68131-f731-0edc-b731-d7ec85924f03@cisco.com> <E3378E0605547F4E854DEE0CB1116AB021CE2D@gbcdcmbx03.intl.att.com> <1503440878003.28215@Aviatnet.com> <E3378E0605547F4E854DEE0CB1116AB02205D9@gbcdcmbx03.intl.att.com> <20170823072435.wv7pvndrm5du5q3x@elstar.local> <E3378E0605547F4E854DEE0CB1116AB0220656@gbcdcmbx03.intl.att.com> <a2f53f90-3bfc-38ba-7a7e-9d8d26202c48@cisco.com> <E3378E0605547F4E854DEE0CB1116AB02212E9@gbcdcmbx03.intl.att.com> <f22eaa91-20c4-c458-f57a-212949397b6a@cisco.com>
In-Reply-To: <f22eaa91-20c4-c458-f57a-212949397b6a@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [135.76.181.254]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-RSA-Inspected: yes
X-RSA-Classifications: public
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-08-23_04:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1708230156
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/nouGbUkpZMAwYEjelHaCzZXBVKY>
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: Wed, 23 Aug 2017 10:28:47 -0000

Yes, we'll consider that.

Thanks,

William

-----Original Message-----
From: Robert Wilton [mailto:rwilton@cisco.com] 
Sent: 23 August 2017 11:26
To: Ivory, William <william.ivory@intl.att.com>; 'Juergen Schoenwaelder' <j.schoenwaelder@jacobs-university.de>
Cc: 'Alex Campbell' <Alex.Campbell@Aviatnet.com>; 'netmod@ietf.org' <netmod@ietf.org>
Subject: Re: [netmod] Query about augmenting module from submodule in YANG 1.0



On 23/08/2017 11:09, Ivory, William wrote:
> Hi Robert,
>
> Probably shouldn't have mentioned packages as that's really a diversion from the main point.  What submodules provide is a way to differentiate YANG nodes in a single namespace so that while still belonging to that single namespace, subsets may be handled by different daemons simply by routing according to submodule id.  That keeps all the identifying logic within YANG.
>
> Obviously if we could start afresh, we'd use separate modules from day one.  However, we have existing YANG that needs to remain to be backwards-compatible, so that isn't an option.
Another potential solution that doesn't use sub modules could be to define a bespoke YANG extension to annotate your YANG schema tree with any necessary routing information for it to be handled by the appropriate daemon.

Thanks,
Rob

> Regards,
>
> William
>
> -----Original Message-----
> From: Robert Wilton [mailto:rwilton@cisco.com]
> Sent: 23 August 2017 10:46
> To: Ivory, William <william.ivory@intl.att.com>; 'Juergen 
> Schoenwaelder' <j.schoenwaelder@jacobs-university.de>
> Cc: 'Alex Campbell' <Alex.Campbell@Aviatnet.com>; 'netmod@ietf.org' 
> <netmod@ietf.org>
> Subject: Re: [netmod] Query about augmenting module from submodule in 
> YANG 1.0
>
> Hi William,
>
> I think that there might be some downsides to your proposed solution of using submodules - which you may have already considered:
>
> 1) All of the debian packages will have to be installed together to allow the YANG module to be built, or otherwise there will be missing submodules, and the module will fail to compile (since the top level module must list all included sub-modules).
> 2) It might end up with your requiring tight versioning of all of your debian packages together with the same version number, or otherwise you may need greater care over how the sub-modules are updated and dependencies are handled.
>
> If your YANG was being designed from scratch then using separate YANG modules may allow for a cleaner solution - but I appreciate that may not help you with where you are now.
>
> Thanks,
> Rob
>
>
> On 23/08/2017 09:24, Ivory, William wrote:
>> Sorry - meant Debian packages.  We have a large YANG module that really ought to be handled by multiple daemons, so plan to use submodules so we can identify the different parts and process them in the right place.  Recombining into a single module would lose that granularity.
>>
>> William
>>
>> -----Original Message-----
>> From: Juergen Schoenwaelder
>> [mailto:j.schoenwaelder@jacobs-university.de]
>> Sent: 23 August 2017 08:25
>> To: Ivory, William <william.ivory@intl.att.com>
>> Cc: 'Alex Campbell' <Alex.Campbell@Aviatnet.com>; 'Robert Wilton'
>> <rwilton@cisco.com>; 'netmod@ietf.org' <netmod@ietf.org>
>> Subject: Re: [netmod] Query about augmenting module from submodule in 
>> YANG 1.0
>>
>> What are packages? I think submodules declare to which module they belong, no? Perhaps you are doing something that submodules do not even support.
>>
>> /js
>>
>> On Wed, Aug 23, 2017 at 07:08:10AM +0000, Ivory, William wrote:
>>> ...  except that if the whole reason for splitting into submodules was to allow the submodules to belong to different packages in our system, combining them back again is not possible.  I wouldn't be splitting them unless I needed to for good reason.
>>>
>>> William
>>>
>>> -----Original Message-----
>>> From: Alex Campbell [mailto:Alex.Campbell@Aviatnet.com]
>>> Sent: 22 August 2017 23:28
>>> To: Ivory, William <william.ivory@intl.att.com>; 'Robert Wilton'
>>> <rwilton@cisco.com>; 'netmod@ietf.org' <netmod@ietf.org>
>>> Subject: Re: [netmod] Query about augmenting module from submodule 
>>> in YANG 1.0
>>>
>>> Hi,
>>>
>>> I'm not Rob, but my understanding is that if a module author wanted to migrate to YANG 2.0, they could merge their submodules back into the main module - which is not a difficult procedure and does not break compatibility with clients.
>>>
>>> Alex
>>> ________________________________________
>>> From: netmod <netmod-bounces@ietf.org> on behalf of Ivory, William 
>>> <william.ivory@intl.att.com>
>>> Sent: Tuesday, 22 August 2017 1:44 a.m.
>>> To: 'Robert Wilton'; 'netmod@ietf.org'
>>> Subject: Re: [netmod] Query about augmenting module from submodule 
>>> in YANG 1.0
>>>
>>> Hi Rob,
>>>
>>> That would make it very hard to update existing 1.x YANG models to use new features in YANG 2.x if they used submodules.  Maybe that's something that no one would ever consider doing anyway, or maybe YANG 1.1 already has similar differences to 1.0?  I had (perhaps naively) assumed that you could migrate a namespace / model from YANG 1.0 to 2.0?
>>>
>>> Regards,
>>>
>>> William
>>>
>>> -----Original Message-----
>>> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Robert 
>>> Wilton
>>> Sent: 21 August 2017 11:24
>>> To: netmod@ietf.org
>>> Subject: Re: [netmod] Query about augmenting module from submodule 
>>> in YANG 1.0
>>>
>>>
>>>
>>> On 09/08/2017 16:13, Juergen Schoenwaelder wrote:
>>>> On Wed, Aug 09, 2017 at 05:01:09PM +0200, Ladislav Lhotka wrote:
>>>>> I remember that in early stages of YANG there was some irrational 
>>>>> fear of introducing too many namespaces, and submodules may be a 
>>>>> consequence of it. As you write, submodules provide no benefits 
>>>>> whatsoever in terms of modularity, but the overhead in terms of 
>>>>> metadata, IANA registration etc. is pretty much the same as for 
>>>>> modules.
>>>> In case YANG 2.0 is ever done, I suggest someone files a proposal 
>>>> to remove submodules if the cost/benefit ratio is at odds. There is 
>>>> nothing wrong with removing stuff that has been found problematic.
>>> I agree.
>>>
>>> I've added
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_netm
>>> o
>>> d
>>> -2Dwg_yang-2Dnext_issues_26&d=DwICAg&c=LFYZ-o9_HUMeMTSQicvjIg&r=p8ky
>>> e
>>> K
>>> 3u4ZYiaQ2ZPGqwkyXmQgBH6r5jpYiYWzhqJ48&m=l7c4IPL049A2bVVO14fyBMly211x
>>> U
>>> 6 1xSHgPlAT7owI&s=-kR4fUtXArQy0RwWb32DpT1bP4X_cNqt2zJVoC0JiX8&e=
>>>
>>> Rob
>>>
>>>> The motivation for submodules was that organizations maintaining 
>>>> large modules with multiple people can do so without having to mess 
>>>> around with tools like m4 scripts to produce a single module from 'snippets'
>>>> and to avoid integration surprises. But perhaps using m4 scripts 
>>>> and decent version control systems (that can integrate and compile 
>>>> on
>>>> checkin) is indeed cheaper than having submodules part of the YANG 
>>>> language itself.
>>>>
>>>> /js
>>>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_ma
>>> i
>>> l
>>> man_listinfo_netmod&d=DwICAg&c=LFYZ-o9_HUMeMTSQicvjIg&r=p8kyeK3u4ZYi
>>> a
>>> Q
>>> 2ZPGqwkyXmQgBH6r5jpYiYWzhqJ48&m=l7c4IPL049A2bVVO14fyBMly211xU61xSHgP
>>> l A T7owI&s=t7vGIH8ABuAm00e-bkSowD9eawModGq0N2OkjANtpYI&e=
>>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_ma
>>> i
>>> l
>>> man_listinfo_netmod&d=DwIFAw&c=LFYZ-o9_HUMeMTSQicvjIg&r=p8kyeK3u4ZYi
>>> a
>>> Q
>>> 2ZPGqwkyXmQgBH6r5jpYiYWzhqJ48&m=esi8GPSc1xVjTt9SKxqzNHRDXT2P1h01a-Ue
>>> b n ST-Yo&s=PctKy3ij6W0TQs1NFp18SX8MQtYKeG9RxADh3cphcxU&e=
>>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_ma
>>> i
>>> l
>>> man_listinfo_netmod&d=DwIBAg&c=LFYZ-o9_HUMeMTSQicvjIg&r=p8kyeK3u4ZYi
>>> a
>>> Q
>>> 2ZPGqwkyXmQgBH6r5jpYiYWzhqJ48&m=RH3zvD2B8_s4uw1PXm_ka37vgz9_q2Rc87tD
>>> 8 K fZ9jA&s=XydU0vXE0AEg2FDE-kx_Ae6rOOAh5koxEeJ2cefgDNA&e=