Re: I-D Action: draft-ietf-rtgwg-yang-vrrp-05.txt

Robert Wilton <rwilton@cisco.com> Tue, 17 October 2017 14:39 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: rtgwg@ietfa.amsl.com
Delivered-To: rtgwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1EC0D134293; Tue, 17 Oct 2017 07:39:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.49
X-Spam-Level:
X-Spam-Status: No, score=-14.49 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
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 ktXuCr1pVNoI; Tue, 17 Oct 2017 07:39:26 -0700 (PDT)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 85BDA1342AC; Tue, 17 Oct 2017 07:39:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=35429; q=dns/txt; s=iport; t=1508251148; x=1509460748; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to; bh=7S5YzUTGueSEbF2obpFqg11kk0rg+yCyXenJ0mamUh4=; b=Y+XjiFHdPvGDGsVb5YgruoFq+D7OxbLVw4XqMbf02LaYz1rrHGSLRyn8 LdbbxsPqeqU/m1UuDPTyspBmU0NiqDCWQNyUMWEzd0TtPHogNAf/3Wo7v 3/iVDMZFoUHYylbgPYt4kWc9ervejnUnrZ0LJqI47KbTViQ3sLhGVa4/L g=;
X-IronPort-AV: E=Sophos;i="5.43,391,1503360000"; d="scan'208,217";a="658132063"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Oct 2017 14:39:06 +0000
Received: from [10.63.23.135] (dhcp-ensft1-uk-vla370-10-63-23-135.cisco.com [10.63.23.135]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id v9HEd5ES021142; Tue, 17 Oct 2017 14:39:06 GMT
Subject: Re: I-D Action: draft-ietf-rtgwg-yang-vrrp-05.txt
To: Xufeng Liu <Xufeng_Liu@jabil.com>, "draft-ietf-rtgwg-yang-vrrp@ietf.org" <draft-ietf-rtgwg-yang-vrrp@ietf.org>, "rtgwg@ietf.org" <rtgwg@ietf.org>, "Benoit Claise (bclaise)" <bclaise@cisco.com>
References: <150678074289.3430.13577948437978115990@ietfa.amsl.com> <f7e2450b-865f-6121-81ac-01e70f2ae049@cisco.com> <BN3PR0201MB0867B911A5BA12EEE0CADECAF14C0@BN3PR0201MB0867.namprd02.prod.outlook.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <adc38899-11b7-7752-d2c9-f6ac588340cb@cisco.com>
Date: Tue, 17 Oct 2017 15:39:05 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <BN3PR0201MB0867B911A5BA12EEE0CADECAF14C0@BN3PR0201MB0867.namprd02.prod.outlook.com>
Content-Type: multipart/alternative; boundary="------------5C3CD12769C0B4E338E5129B"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtgwg/Xn3_FBUnm6QXFKs_O09EoXLgHiA>
X-BeenThere: rtgwg@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Routing Area Working Group <rtgwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtgwg/>
List-Post: <mailto:rtgwg@ietf.org>
List-Help: <mailto:rtgwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtgwg>, <mailto:rtgwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Oct 2017 14:39:30 -0000

Hi Xufeng,

Thanks, some comments inline ...


On 17/10/2017 14:57, Xufeng Liu wrote:
>
> Hi Rob,
>
> Thanks for examining this and providing the comments.
>
> *From:*Robert Wilton [mailto:rwilton@cisco.com]
> *Sent:* Monday, October 16, 2017 8:49 AM
> *To:* draft-ietf-rtgwg-yang-vrrp@ietf.org; rtgwg@ietf.org
> *Cc:* Benoit Claise (bclaise) <bclaise@cisco.com>; Alia Atlas 
> <akatlas@gmail.com>
> *Subject:* Re: I-D Action: draft-ietf-rtgwg-yang-vrrp-05.txt
>
> Hi draft-ietf-rtgwg-yang-vrrp draft authors,
>
> I have a couple of comments on the latest revision of this draft:
>
> 1) The top level "vrrp container" has the right name, but can be 
> "config false" since it doesn't hold any configuration today.  This is 
> noting that RFC 7950 allows the "vrrp container" to become "config 
> true" as a backwards compatible change in future if required.
>
> */[Xufeng] However, making the container “config false” would prevent 
> vendor augmentations from adding nodes that are “config true”./*
>
This equivalent logic could apply to any "config false" node in any YANG 
data tree ;-)

The generic solution here is that the standard model should be "config 
false", and the vendor model should have a deviation on the top level 
VRRP container to make it "config true" and then augment it with the 
vendor configuration.


> 2) I've also noticed that this draft defined two separate versions of 
> the VRRP YANG module.  The second version in the appendix is for 
> pre-NMDA implementations:
>
>    <CODE BEGINS> file "ietf-vrrp@2017-09-25.yang" 
> <mailto:ietf-vrrp@2017-09-25.yang>
>    module ietf-vrrp {
>      yang-version 1.1;
>      namespace "urn:ietf:params:xml:ns:yang:ietf-vrrp";
>      prefix "vrrp";
>
> And
>    <CODE BEGINS> file "ietf-vrrp@2017-09-22.yang" 
> <mailto:ietf-vrrp@2017-09-22.yang>
>    module ietf-vrrp {
>      yang-version 1.1;
>      namespace "urn:ietf:params:xml:ns:yang:ietf-vrrp";
>      prefix "vrrp";
>
> Generically, I don't think that it is a good idea to define two 
> versions of the same YANG module in one draft.
>
> */[Xufeng] /**/This is to address Alia’s comment about “/*that there is an implementation. That implies that the existing model should be in the appendix.”
> */I think that such a case has not been thoroughly discussed. In the 
> NMDA Guidelines, this case falls into category  (b).(“/*either an existing model or ...
> */”). The goal here is to provide a model that does not break the 
> existing implementation, and can work with previous version of 
> ietf-interfaces in RFC7223. For such a purpose, none of the following 
> suggestions works too well./*
>
>
I think that existing implementations should just implement whichever ID 
version of the module that they have currently implement.  I don't think 
that means that IETF should have to publish that ID version as part of 
an RFC.  It isn't like the old revision goes away once the RFC has been 
published.

Your new NMDA compatible module doesn't have any direct dependency on 
RFC7223bis, i.e. when I tried it compile your NMDA version of the VRRP 
module it works just fine with the existing RFC 7223 version of 
ietf-interfaces.yang (i.e. rev 2014-05-08).  The VRRP state nodes would 
appear under the interfaces/interface part of the tree, but given that 
VRRP would always expect to be configured to have any state this should 
be fine, and is valid YANG.

>
> If a backwards compatible NMDA version of a module is required, then 
> an extra "-state" module should be put in the appendix instead (e.g. 
> ietf-vrrp-state@2017-09-25.yang 
> <mailto:ietf-vrrp-state@2017-09-25.yang>). This "-state" module could 
> be used in conjunction with ietf-vrrp@2017-09-25.yang 
> <mailto:ietf-vrrp@2017-09-25.yang> until NMDA implementations are 
> available.
>
> */[Xufeng] There is no such a parent root “-state” module in either 
> RFC7223 or RFC7223bis, so we cannot create such a module cleanly, 
> following the conventions in the guideline. If we did, such a module 
> would break the current implementations./*
>
When generating a state tree, special consideration needs to be applied 
for modules that have already been published with existing state trees.  
In that case, the generated "-state" module would augment 
interfaces-state/interface/ipv6.

These steps here might be slightly more accurate for generating a state 
module:
https://github.com/netmod-wg/FAQ/wiki/NMDA-Modelling-FAQ#Q4

> *//*
>
>
> Alternatively, if you must define an existing pre NMDA version of the 
> VRRP module then it should definitely be given a different module 
> name, e.g. ietf-vrrp-split-tree@2017-09-25.yang 
> <mailto:ietf-vrrp-split-tree@2017-09-25.yang>. But I believe that this 
> would be an inferior solution since, compared to a separate "-state" 
> module, it will make it harder for clients to migrate to the NMDA 
> modules in future.
>
> */[Xufeng] Why is the different name necessary. The name 
> “ietf-vrrp-split-tree” has some issues: 1) breaks the currently 
> implementation; 2) the naming is arbitrary, without any conventional 
> rules; 3) brings more confusions./*
>
I just think that it is very confusing for a single draft to publish two 
module revisions with the same name.  Particularly given that two 
modules don't follow the YANG upgrade rules.  Tooling like RFC strip 
will automatically extract both revisions etc.  The name doesn't need to 
be "ietf-vrrp-split-tree", just any unique name. But as mentioned below, 
I don't think that you should need to publish it at all.

> *//*
>
> */Why can’t we use the same name? with one older version and one newer 
> version, just like ietf-interfaces with two versions (one in RFC7223 
> and RFC7223bis). The older version reflects the older (current) 
> implementation working with RFC7223 without NMDA. When the vendor 
> moves to NMDA and RFC7223bis, the newer version will be used./*
>
The version in RFC7223bis is a backwards compatible upgrade to the 
existing RFC7223 version.  I.e. it hasn't removed any existing nodes, it 
had just marked part of the tree as deprecated.

I don't see the benefit in putting the old revision into the RFC, it was 
just a working draft version of the model, a foot note in history on the 
path of standardization.

>
> Finally, having actually read at the main VRRP module, then on the 
> assumption that VRRP is always configured before it is used, then the 
> "NMDA version" may well be sufficient to use on both existing NETCONF 
> implementations and NMDA compatible NETCONF implementations.  The only 
> thing that you can't see when using the NMDA version of the module on 
> a "pre NMDA" implementation is the applied VRRP configuration.  
> Whether this is important enough to not define the extra "-state" 
> module is unclear, but my instinct would be that it is better to just 
> leave it out.
>
> */[Xufeng] The “applied configuration” is a feature that could be 
> useful, but not something that the VRRP model has to have. If it were 
> not for being close to the existing implementations, we’d use only the 
> NMDA model. The “pre NMDA” implementation uses ietf-interfaces in 
> RFC7223, which has the -state branch. A matching VRRP model would be 
> more consistent and convenient for such implementations. If we had 
> only the NMDA model, we’d force the implementation to update to the 
> NMDA VRRP model (and better with RFC7223bis). The older version of the 
> non-NMDA model would not require the implementation to change 
> immediately./*
>
> */It is all about the existing implementations. We can have several 
> levels of convenience for the implementations. If it is ok to require 
> them to upgrade now, we can drop the non-NMDA version./*
>
I don't think that we have to require them to upgrade now, I think that 
they should use whichever pre-standard version they are currently using, 
but I wouldn't put this into the RFC (not even in the appendix), it will 
just cause confusion in the long term.

E.g. for a protocol draft you wouldn't expect a RFC to describe other 
pre-standard specifications before it was standardized.  I'm not sure 
why YANG modules should be treated any differently.

Thanks,
Rob


> *//*
>
> */Thanks,
> - Xufeng/*
>
> Thanks,
> Rob
>
> *//*
>
> On 30/09/2017 15:12, internet-drafts@ietf.org 
> <mailto:internet-drafts@ietf.org> wrote:
>
>     A New Internet-Draft is available from the on-line Internet-Drafts directories.
>
>     This draft is a work item of the Routing Area Working Group WG of the IETF.
>
>              Title           : A YANG Data Model for Virtual Router Redundancy Protocol (VRRP)
>
>              Authors         : Xufeng Liu
>
>                                Athanasios Kyparlis
>
>                                Ravi Parikh
>
>                                Acee Lindem
>
>                                Mingui Zhang
>
>       Filename        : draft-ietf-rtgwg-yang-vrrp-05.txt
>
>       Pages           : 68
>
>       Date            : 2017-09-30
>
>     Abstract:
>
>         This document describes a data model for Virtual Router Redundancy
>
>         Protocol (VRRP).  Both version 2 and version 3 of VRRP are covered.
>
>     The IETF datatracker status page for this draft is:
>
>     https://datatracker.ietf.org/doc/draft-ietf-rtgwg-yang-vrrp/
>
>     There are also htmlized versions available at:
>
>     https://tools.ietf.org/html/draft-ietf-rtgwg-yang-vrrp-05
>
>     https://datatracker.ietf.org/doc/html/draft-ietf-rtgwg-yang-vrrp-05
>
>     A diff from the previous version is available at:
>
>     https://www.ietf.org/rfcdiff?url2=draft-ietf-rtgwg-yang-vrrp-05
>
>     Please note that it may take a couple of minutes from the time of submission
>
>     until the htmlized version and diff are available at tools.ietf.org.
>
>     Internet-Drafts are also available by anonymous FTP at:
>
>     ftp://ftp.ietf.org/internet-drafts/
>
>     _______________________________________________
>
>     rtgwg mailing list
>
>     rtgwg@ietf.org <mailto:rtgwg@ietf.org>
>
>     https://www.ietf.org/mailman/listinfo/rtgwg
>