Re: [yang-doctors] Small modules discussion from LSR [Fwd: [Lsr] When to augment LSR base YANG modules...]

Christian Hopps <chopps@chopps.org> Tue, 02 April 2019 10:31 UTC

Return-Path: <chopps@chopps.org>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B12AE12009E for <yang-doctors@ietfa.amsl.com>; Tue, 2 Apr 2019 03:31:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, 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 ZX2Hh_QSZrlG for <yang-doctors@ietfa.amsl.com>; Tue, 2 Apr 2019 03:31:22 -0700 (PDT)
Received: from smtp.chopps.org (smtp.chopps.org [54.88.81.56]) by ietfa.amsl.com (Postfix) with ESMTP id 2AB841204EB for <yang-doctors@ietf.org>; Tue, 2 Apr 2019 03:31:22 -0700 (PDT)
Received: from stubbs.int.chopps.org (047-050-069-038.biz.spectrum.com [47.50.69.38]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by smtp.chopps.org (Postfix) with ESMTPSA id 26271604E5; Tue, 2 Apr 2019 06:31:21 -0400 (EDT)
From: Christian Hopps <chopps@chopps.org>
Message-Id: <6974CC7A-9CC2-4621-A0C5-FBF2C3E34E4A@chopps.org>
Content-Type: multipart/signed; boundary="Apple-Mail=_A460EB1C-2C69-44B2-8622-7010E7E2C482"; protocol="application/pgp-signature"; micalg=pgp-sha512
Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\))
Date: Tue, 2 Apr 2019 06:31:20 -0400
In-Reply-To: <c691b0e1a8c64b1c8a31070f0d600fc8@XCH-RCD-007.cisco.com>
Cc: Christian Hopps <chopps@chopps.org>, YANG Doctors <yang-doctors@ietf.org>, Yingzhen Qu <yingzhen.qu@huawei.com>
To: "Rob Wilton (rwilton)" <rwilton@cisco.com>
References: <9FACB29E-7E8C-4FDB-B45F-9002AC891113@cisco.com> <FD6BB1BD-E1DE-4117-BC0E-F3A3847DA26B@chopps.org> <c691b0e1a8c64b1c8a31070f0d600fc8@XCH-RCD-007.cisco.com>
X-Mailer: Apple Mail (2.3445.102.3)
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/C1iI8zPra3z_j2Ee3MT57697j2M>
Subject: Re: [yang-doctors] Small modules discussion from LSR [Fwd: [Lsr] When to augment LSR base YANG modules...]
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Apr 2019 10:31:27 -0000

> On Apr 2, 2019, at 5:52 AM, Rob Wilton (rwilton) <rwilton@cisco.com>; wrote:
> 
> Hi Chris,
> 
> I don’t think that there is a one size fits all answer here.
> 
> If the enhancement is small, and is likely to be reasonably widely used then my view is that adding it as an optional feature to the base module is a better choice in the long term.
> 
> If the feature is larger, or esoteric, and perhaps won’t be widely deployed then I would think that putting it into a separate module might be a better choice.
> 
> I actually think that it is the IETF process that is perhaps the difficult thing here.  I.e. I think that you want to republish a new revision of the base module, but in a way that gets processed more quickly by the IESG.  E.g. request that they only review/comment on the diffs between the current revision and the previous one.  Or somehow publish an updated revision of the module on github without assigning it a new RFC number every time.

Yes, although I'm trying to do a couple things:

- Get YANG management support added at the same time as the functionality, not as an after thought maybe someday, maybe never.
- Reduce the cost of adding the YANG support. A stand-alone document is very expensive time and effort wise, separate IESG reviews, directorate reviews, last-calls.

I had wondered if we could use errata on the base vs doing a brand new bis version of the base module; however, this seems to be trading too much process overhead with perhaps not quite enough.

To the first goal, I wrote that reverse metric module a couple days ago as an example. I have to wonder when or even if it would have gotten written (or the equivalent feature added) otherwise. Instead I suspect it would just get added into N vendors models as people move on to other things in the WG.

In a perfect world I would add a YANG section to my functionality RFC that updated (not augment) the base module, but with augment style definition (i.e., so the entire huge base module doesn't need to be re-represented in the document). This would then cause the base document to get reissued with the changes. Sort of like IANA sections are capable of updating a registry.

So maybe your github idea is like this, we create a module definition registry where the most up-to-date module definitions go, and then RFCs can update that using something like (or exactly like) augment to document the changes to the module in the individual RFCs.

Thanks,
Chris.

> 
> Thanks,
> Rob
> 
> 
> From: yang-doctors <yang-doctors-bounces@ietf.org>; On Behalf Of Christian Hopps
> Sent: 01 April 2019 13:40
> To: YANG Doctors <yang-doctors@ietf.org>;
> Cc: Yingzhen Qu <yingzhen.qu@huawei.com>;
> Subject: [yang-doctors] Small modules discussion from LSR [Fwd: [Lsr] When to augment LSR base YANG modules...]
> 
> Hi YANG Doctors,
> 
> So I started a thread on the LSR mailing list (included below) about including small modules to augment the base protocol modules inline with the small feature drafts that modify the protocol (typically adding TLVs and some config). We probably publish 1-4 of these per year. An opposing opinion was expressed that we should batch these features into meta-modules to avoid creating "too many" modules. I don't know what too many is, and I pointed out that to a client there's really no difference between N modules and 1 module with N optional features (they all show up as capabilities).
> 
> So to quote Acee here:
> 
>           "Let's have a discussion on YANG doctors list on the merits of a small module per feature vs an aggregate model with features."
> 
> There are process issues that are outside the scope of YANG (e.g., will it cause too many authors on a document, delays caused by batching etc).. but we're curious if there are any reasons particular to YANG to do or avoid one or the other.
> 
> Thanks,
> Chris.
> 
> Begin forwarded message:
> 
> From: "Acee Lindem (acee)" <acee@cisco.com>;
> Subject: Re: [Lsr] When to augment LSR base YANG modules...
> Date: March 31, 2019 at 5:09:32 PM EDT
> To: Christian Hopps <chopps@chopps.org>;, Yingzhen Qu <yingzhen.qu@huawei.com>;
> Cc: Susan Hares <shares@ndzh.com>;, Rob Shakir <rjs@rob.sh>;, "lsr@ietf.org"; <lsr@ietf.org>;, Tony Li <tony.li@tony.li>;
> 
> Hi Chris, Yingzhen,
> 
> Let's have a discussion on YANG doctors list on the merits of a small module per feature vs an aggregate model with features.
> 
> We can try this as an experiment. Perhaps, we can get a permanent dispensation to the 5 author rule if every draft needs someone YANG fluent and familiar with the base OSPF and ISIS models.
> 
> Thanks,
> Acee
> 
> On 3/31/19, 3:41 PM, "Christian Hopps" <chopps@chopps.org>; wrote:
> 
> 
> 
> 
> On Mar 31, 2019, at 1:31 PM, Yingzhen Qu <yingzhen.qu@huawei.com>; wrote:
> 
> There are many small feature drafts in LSR, for example: https://datatracker.ietf.org/doc/draft-ietf-ospf-ospfv2-hbit/  it only adds H-bit to router-lsa.
> 
> For sure we want models to be modular, but not too many tiny pieces. Maybe we should combine a few small features like H-Bit into one module?
> 
>    But why?
> 
>    Delaying the publication of the management definition until some (so far as I can tell) arbitrary number of features has been collected negatively impacts users. What do they gain in return?
> 
>    Thanks,
>    Chris.
> 
> 
> 
> Thanks,
> Yingzhen
> 
> From: Lsr <lsr-bounces@ietf.org>; on behalf of Susan Hares <shares@ndzh.com>;
> Date: Sunday, March 31, 2019 at 7:15 AM
> To: 'Rob Shakir' <rjs@rob.sh>;, "'Acee Lindem (acee)'" <acee@cisco.com>;
> Cc: "lsr@ietf.org"; <lsr@ietf.org>;, "tony.li@tony.li"; <tony.li@tony.li>;, 'Christian Hopps' <chopps@chopps.org>;
> Subject: Re: [Lsr] When to augment LSR base YANG modules...
> 
> Rob and Acee:
> 
> I agree that with Rob that it is a generic problem that you must have a robust way to version and revise the Yang models.   This is true for configuration, operational data, and dynamic data stores.   The netmod modeling is focusing on configuration at this time.
> 
> It is critical to determine how the base models yang models prepare for augmentations.  OSPF, ISIS, BGP, FIB/RIB, and policy are key models.   Since our protocols are augmented based on capabilities, augmentation based on the same capabilities for models makes the most sense.   We can review info/data, and code functionality based on the key senses.
> 
> If we have good versioning of the base model, can revise both the data model and the capability independently.   If we utilize the grouping of data models based on the versioning, automatic deployment of this work can occur.
> 
> Acee and Chris has been actively participating on the versioning discussion in netmod’s work on versioning.   I’m sure they can report if they feel the support his there for this type of version.
> 
> BGP and rtgwg can integrate this type of version prior to the upcoming WG LC.
> 
> Sue
> 
> 
> From: Lsr [mailto:lsr-bounces@ietf.org] On Behalf Of Rob Shakir
> Sent: Saturday, March 30, 2019 2:00 PM
> To: Acee Lindem (acee)
> Cc: lsr@ietf.org; tony.li@tony.li; Christian Hopps
> Subject: Re: [Lsr] When to augment LSR base YANG modules...
> 
> I think this is a generic challenge that has to be solved across all protocols -- and relies on a robust way to version and revise YANG modules in the IETF.
> 
> In OpenConfig, as we're very lightweight for pushing a new revision, since we're just specifying new versions of modules, adding new features to an existing module is pretty trivial. They can be done as a minor revision if there's no backwards incompatible changes.  It seems better, to me, to ensure that there is common logic for how one splits up modules, to make things actually usable for developers trying to consume them, rather than needing to understand when and where in the IETF a feature was developed.
> 
> That being said -- this means one should probably expect each LSR base module to be revised with most new LSR RFCs. With the current agility of the review and publication process -- I'm not sure that is realistic either.
> 
> r.
> 
> On Sat, 30 Mar 2019 at 09:15, Acee Lindem (acee) <acee@cisco.com>; wrote:
> Speaking as WG member:
> 
> For many of the new LSR WG documents, we are already included both OSPF and IS-IS encodings in a single document. Now, we have agreed that documents requiring simple BGP-LS changes will also include the BGP-LS encoding. Given this, I don't want to add another requirement for publication of a WG document. This would also add additional reviews to the document. You've all heard the expression "divide and conquer", while let me introduce the corollary, "consolidate and stagnate".
> 
> Additionally, I agree with Yingzhen's comment that it is not clear that we want a separate YANG module for every OSPF/IS-IS feature.
> 
> Thanks,
> Acee
> 
> On 3/29/19, 4:33 AM, "Lsr on behalf of tony.li@tony.li"; <lsr-bounces@ietf.org on behalf of tony.li@tony.li>; wrote:
> 
> 
>    Chris,
> 
>    One concern is simply one of scale: doing this will increase the size of the document.  At what point do things become sufficiently awkward that we want to have a separate, concurrent document.
> 
>    In other words, if the requirement is for concurrent delivery, is co-location really a requirement?
> 
>    Regards,
>    Tony
> 
> 
> 
> On Mar 29, 2019, at 9:17 AM, Christian Hopps <chopps@chopps.org>; wrote:
> 
> 
> The base YANG modules for IS-IS and OSPF both include operational state to describe TLV data. During the discussion about OSPFv3's version of this data, I brought up the issue of when and how the base modules should be augmented to add new TLV types to the model, suggesting it be done inline and with the RFC that adds the new feature/functionality to the protocol.
> 
> I'll go farther here and say this should apply to all the YANG required for management of the new feature, and it should all be added inline with the feature (i.e., in the same draft). In other words new features/functionality should include the YANG augment required to manage said features/functionality.
> 
> This has been suggested/tried previously with SNMP with varying (low) levels of success. The difference here is 1) YANG additions (a new module perhaps just augmenting the base) is easy, whereas SNMP wasn't. Additionally, operators weren't using SNMP to fully manage functionality (e.g., not doing configuration) so a requirement for extra work was harder to justify. Operators *do* want to fully manage their networks/servers with YANG though.
> 
> The argument against this during the meeting was that it would create many small modules. I don't find this compelling (i.e., "so"? :)
> 
> Assume I'm an operator -- the actual consumer of this management stuff:
> 
> - If I'm going to use this new feature X, I need to be able to manage it. So I need it YANG for it. Not only do I need any new TLV data in the operational state, but I need the configuration and any other operational state right along with it. Otherwise each vendor has to add new YANG to their vendor modules, or the feature is useless to me. I can't use something if I can't turn it on.
> 
> - I don't care about having many smaller modules that augment the base module -- at all. Quite the opposite actually, when new functionality is accompanied by it's own module it provides me a simple way to see if that functionality is present as the module will be present in the YANG capabilities announced by the device.
> 
> I'd be interested in hearing reasons we (as a WG) shouldn't just expect a YANG module (even if it's small) to be included with drafts that add new functionality.
> 
> Thanks,
> Chris.
> _______________________________________________
> Lsr mailing list
> Lsr@ietf.org
> https://www.ietf.org/mailman/listinfo/lsr
> 
>    _______________________________________________
>    Lsr mailing list
>    Lsr@ietf.org
>    https://www.ietf.org/mailman/listinfo/lsr
> 
> 
> _______________________________________________
> Lsr mailing list
> Lsr@ietf.org
> https://www.ietf.org/mailman/listinfo/lsr
> _______________________________________________
> Lsr mailing list
> Lsr@ietf.org
> https://www.ietf.org/mailman/listinfo/lsr