Re: [yang-doctors] YANG doctor review of draft-ietf-pim-igmp-mld-yang-02

Benoit Claise <bclaise@cisco.com> Mon, 13 March 2017 14:24 UTC

Return-Path: <bclaise@cisco.com>
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 D115B129692; Mon, 13 Mar 2017 07:24:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.522
X-Spam-Level:
X-Spam-Status: No, score=-14.522 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, 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 x-KJi-EDtloV; Mon, 13 Mar 2017 07:24:21 -0700 (PDT)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8FDA812940B; Mon, 13 Mar 2017 07:24:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7435; q=dns/txt; s=iport; t=1489415060; x=1490624660; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=C5vofbU/cOb/Qq/FiyT0mlMPmww8wqOLAzjZk1MHkgY=; b=ZvYWWjCZDLS15i9PEXC/qS19tXQYURytQK2wVKL45IT8lngNOk6UOfn7 KtlHKMny6zhSQH9Ezy6XA0u3QR11GZf92RkKaY7h0x58vm7Lvn+zXZCyj cRaHYgQws8iLef+0P562pxuqJhdOMhdYWOGULmOrbMz3BuqHSpnfuvV3w 4=;
X-IronPort-AV: E=Sophos;i="5.36,159,1486425600"; d="scan'208";a="651418610"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Mar 2017 14:24:18 +0000
Received: from [10.60.67.87] (ams-bclaise-8916.cisco.com [10.60.67.87]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id v2DEOIDg017148; Mon, 13 Mar 2017 14:24:18 GMT
To: Guofeng <guofeng@huawei.com>, Stig Venaas <stig@venaas.com>
References: <9185E63A-484F-46E9-A999-D90B0B39C38F@cisco.com> <3914b7fd-b1ce-92f2-9bdd-1907f209ea93@cisco.com> <26C188D59156FB48A93A72ACF12DE0A5B15C7502@dggemm507-mbs.china.huawei.com> <CAHANBt+7C0RefA3g+-GL=ebN+Nv+BieDZs6_N_5YGG_K2A4nng@mail.gmail.com> <CAHANBtK0gN0Ab_TWcYBaJ5gs1sxLjYa97BbJ9jgsk_KPcvOO0g@mail.gmail.com> <26C188D59156FB48A93A72ACF12DE0A5B15CD2E0@dggemm507-mbs.china.huawei.com>
From: Benoit Claise <bclaise@cisco.com>
Message-ID: <bed2a0d7-7c25-7564-862e-1b4a1f9ab8c4@cisco.com>
Date: Mon, 13 Mar 2017 15:24:18 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1
MIME-Version: 1.0
In-Reply-To: <26C188D59156FB48A93A72ACF12DE0A5B15CD2E0@dggemm507-mbs.china.huawei.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/sg_7Vl43yBptcHYEeDyWhHzkO1k>
Cc: Xufeng Liu <xufeng.liu.ietf@gmail.com>, "draft-ietf-pim-igmp-mld-yang.all@ietf.org" <draft-ietf-pim-igmp-mld-yang.all@ietf.org>, Xufeng Liu <Xufeng_Liu@jabil.com>, Stig Venaas <stig@cisco.com>, "anish.ietf@gmail.com" <anish.ietf@gmail.com>, YANG Doctors <yang-doctors@ietf.org>, "Jan Lindblad (jlindbla)" <jlindbla@cisco.com>
Subject: Re: [yang-doctors] YANG doctor review of draft-ietf-pim-igmp-mld-yang-02
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.17
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: Mon, 13 Mar 2017 14:24:23 -0000

Hi Feng,

Still a warning with yanglint.
http://www.claise.be/IETFYANGPageCompilation.html

Regards, Benoit
> Hi,
>
> We modified the problem in the following URL and will submit out the updated draft today.
> https://www.ietf.org/tools/idnits?url=https://www.ietf.org/archive/id/draft-ietf-pim-igmp-mld-yang-02.txt
>
> Thanks,
> Feng
>
> -----Original Message-----
> From: Stig Venaas [mailto:stig@venaas.com]
> Sent: Thursday, March 09, 2017 4:04 AM
> To: Guofeng <guofeng@huawei.com>
> Cc: Benoit Claise <bclaise@cisco.com>; Jan Lindblad (jlindbla) <jlindbla@cisco.com>; Stig Venaas <stig@cisco.com>; YANG Doctors <yang-doctors@ietf.org>; Mehmet Ersue <mersue@gmail.com>; draft-ietf-pim-igmp-mld-yang.all@ietf.org; Xufeng Liu <Xufeng_Liu@jabil.com>; Xufeng Liu <xufeng.liu.ietf@gmail.com>; anish.ietf@gmail.com
> Subject: Re: YANG doctor review of draft-ietf-pim-igmp-mld-yang-02
>
> Hi
>
> Please also try to address the nits at
> https://www.ietf.org/tools/idnits?url=https://www.ietf.org/archive/id/draft-ietf-pim-igmp-mld-yang-02.txt
>
> Stig
>
>
> On Tue, Mar 7, 2017 at 2:15 PM, Stig Venaas <stig@venaas.com> wrote:
>> Hi
>>
>> Great if you can post a new version by the cutoff on Monday, or more
>> precisely
>> 2017-03-13 (Monday): Internet Draft submission cut-off (for all
>> drafts, including -00) by UTC 23:59
>>
>> We can then get a WGLC started.
>>
>> Stig
>>
>>
>> On Tue, Mar 7, 2017 at 4:37 AM, Guofeng <guofeng@huawei.com> wrote:
>>> Hi Jan and Benoit,
>>>
>>> Thanks for your comments. we/authors will discuss and answer the following comments.
>>>
>>> Thanks again,
>>> Feng
>>>
>>> From: Benoit Claise [mailto:bclaise@cisco.com]
>>> Sent: Monday, March 06, 2017 9:51 PM
>>> To: Jan Lindblad (jlindbla) <jlindbla@cisco.com>; Stig Venaas
>>> <stig@cisco.com>
>>> Cc: YANG Doctors <yang-doctors@ietf.org>; Mehmet Ersue
>>> <mersue@gmail.com>; draft-ietf-pim-igmp-mld-yang.all@ietf.org
>>> Subject: Re: YANG doctor review of draft-ietf-pim-igmp-mld-yang-02
>>>
>>> Thanks Jan,
>>>
>>> Including the draft authors, chairs, and ADs.
>>>
>>> Regards, Benoit
>>> I am the assigned YANG doctor for the document in the subject. My primary focus has been the YANG model itself, and I'm far from an expert at IGMP or MLD.
>>>
>>> Here are my comments:
>>>
>>> - In section 2.2, it is stated that:
>>>
>>>     For the same reason, wide constant ranges (for example, timer
>>>
>>>     maximum and minimum) will be used in the model.  It is expected
>>> that
>>>
>>>     vendors will augment the model with any specific restrictions that
>>>
>>>     might be required.
>>> The above statement is false, YANG augmentations can never restrict a base model. If vendor restrictions of ranges etc are needed, YANG deviations could be used. Each such deviation significantly reduces the interoperability and thus value of this model, however, so for places where variation is expected even before hand, I would much rather prefer that this variability is built right into the model. One possible way of doing that for leafs with possible variations in range is described further down.
>>>
>>> - In section 2.3, it is stated:
>>>
>>>     The current draft contains IGMP and MLD as separate schema
>>> branches
>>>
>>>     in the structure. The reason for this is to make it easier for
>>>
>>>     implementations which may optionally choose to support specific
>>>
>>>     address families. And the names of objects may be different
>>> between
>>>
>>>     the ipv4 (IGMP) and ipv6 (MLD) address families.
>>> The current YANG file organization causes a lot of repetition, which is tiring for model author and reader alike. A testament of this is that pretty much all mistakes in the model occur twice, i.e. a clear sign of copy-paste modeling. The cited paragraph also mentions the possibility for a device to implement only IGMP or only MLD. The current YANG model do not make either of them optional by e.g. an if-feature statement. Another possibility that comes to mind would be to separate the IGMP and MLD documents into separate modules. Implementations could then choose which one(s) to implement.
>>>
>>> - Section 3.1 specifies a global level, interface-global level and an interface-specific level of shadowing attributes for an interface. Can't say I understand the difference between the global and interface-global level really. Also when it comes to the YANG manifestation of this, the grouping interfaces-config-attributes overlaps quite a bit with grouping interfaces-config-attributes-igmp-mld. Why are both these levels needed, and if they are, why don't they use the same grouping? Supposing there's a reason, why is much of the content duplicated in two groupings?
>>>
>>> - Section 3.1 also states:
>>>
>>>     Where fields are not genuinely essential to protocol operation,
>>> they
>>>
>>>     are marked as optional. Some fields will be essential but have a
>>>
>>>     default specified, so that they need not be configured explicitly.
>>>
>>>     The module structure also applies, where applicable, to the
>>>
>>>     operational state and notifications as well.
>>> In fact, no leafs are marked mandatory anywhere in the model. Apart from keys, this means they are all optional. There are two sides to examine around this:
>>> + Configuration leafs: There is no description of what happens if a leaf isn't set. E.g if the igmp/global/enable leaf is true or false, I know how to intepret that. But what does it mean if it doesn't have a value? This is a general concern for more or less every leaf.
>>> + Operational leafs: Since no leafs are mandatory, there is no requirement to include any particular leaf in a reply. This will make it hard for implementations reading the igmp/mld status, since they will have to be coded to cope with any and every leaf not being present in the query result. It would be good if some core leafs were defined as mandatory, so that applications could count on them being present.
>>>
>>> - At the end, section 3.1 says:
>>>
>>>     The IGMP and MLD model augments "/rt:routing/rt:control-plane-
>>>
>>>     protocols" as opposed to augmenting "/rt:routing/rt:control-plane-
>>>
>>>     protocols/ rt:control-plane-protocol" as the latter would allow
>>>
>>>     multiple protocol instances per VRF, which does not make sense for
>>>
>>>     IGMP and MLD.
>>> It would certainly be possible to locate the igmp and mld containers under /routing/control-plane-protocols/control-plane-protocol and still keep the requirement with a single instance of these containers, if desired. I'm not opposed to the current design, but I'd just like to point out that the statement above is not necessarily true.
>>>
>>> Then on a more detailed level, I'd like to see (line numbers according to rfcstrip):
>>>
>>> - Leaf last-member-query-interval on line 315, 447: Add a units
>>> statement
>>>
>>> - Leaf robustness-variable on line 353, 491: What do these values mean?
>>>
>>> - Leaf group-policy on line 393, 431, 544: Is any string value ok, or what would be a valid value?
>>>
>>> - Leaf dr on line 577: Maybe a slightly more verbose name would be easier for operators?
>>>
>>> - Leaf interface on line 780, 820: Maybe "name" would be a better name?
>>>
>>> - Line 825, 917: This is an ipv6 leaf, but the description talks
>>> about IPv4