[yang-doctors] YANG doctor review of draft-ietf-dhc-dhcpv6-yang-03
Ladislav Lhotka <lhotka@nic.cz> Wed, 14 September 2016 14:49 UTC
Return-Path: <lhotka@nic.cz>
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 D9AC812B347; Wed, 14 Sep 2016 07:49:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 VqF6kNuHGXr2; Wed, 14 Sep 2016 07:49:16 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 27D4912B8CD; Wed, 14 Sep 2016 07:14:26 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 505081CC00D3; Wed, 14 Sep 2016 16:14:27 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: draft-ietf-dhc-dhcpv6-yang.all@ietf.org
User-Agent: Notmuch/0.22.1 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 14 Sep 2016 16:14:29 +0200
Message-ID: <m237l24lh6.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/GXHkGqZeIidMzpziZmK_ICrKPs4>
Cc: yang-doctors@ietf.org
Subject: [yang-doctors] YANG doctor review of draft-ietf-dhc-dhcpv6-yang-03
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: Wed, 14 Sep 2016 14:49:18 -0000
Hi, I was assigned to be the YANG doctor for this document. Here is my review: **** General comments ***** Data model organisation The "ietf-dhcpv6" module covers schemas for DHCPv6 servers, clients and relays. All these data are defined in the same main module, not in "sub-modules" as the I-D says on p. 2 (unless we make a distinction between "submodule" and "sub-module"). In my view, though, each of these three parts should in fact be in a separate *main* module. I assume that in many (most?) cases a particular managed device will play just one of the three roles, so it should then advertise only the part of the data model that's corresponds to its role. If multiple functions are co-located in the same device, it can advertise multiple modules in YANG library. ***** Descriptions Many descriptions in the "ietf-dhcpv6" module provide no information at all. This is quite typical: container oro-options { description "oro options"; ... } Such descriptions need to be expanded. In the case above, the description should at least explain what "oro" means. In many cases, it would also be useful to provide references to relevant RFCs and other documents using the "reference" statement. On the other hand, some descriptions (e.g., of "mo-tab" container) are longer but difficult to read because of sloppy formatting. Giving these descriptions more structure (paragraphs, itemised lists) would certainly help. Also, some of the descriptions are copied verbatim in Sec. 2. It may prove difficult to keep this information synchronised in the future revisions of the I-D. I'd suggest to trim the items in "Introduction of important nodes" to a single sentence or so. The authoritative description of each parameter can always be found in the module. ***** Metadata My suggestion is to use the same or similar template for module metadata as the existing NETMOD modules (e.g. in RFC 7223). In particular: - The I-D is intended for Standards Track, so the "contact" statement must also contain WG mailing-list and web information (see sec. 4.7 of RFC 6087). - Adding a new "revision" statement for every I-D revision becomes unwieldy. RFC 6087 permits to use just one "revision" statement throughout the I-D stage, and just bump the revision date in its argument each time after the module was changed. To keep track of the changes in the I-D stage, it is better to have a change log section in the I-D that will get removed just before the document becomes an RFC. **** Specific comments - Leafs that are list keys are mandatory by definition, the "mandatory" statement is not necessary for them. - The "duidtype" type is an union with overlapping members. For example, in the XML serialisation it is impossible to distinguish between a decimal and hexadecimal number if the latter contains only digits. I suggest to prefix the hexadecimal string with "0x". - The top-level nodes "server", "relay" and "client" are containers with presence, and their "presence" statement says "Enables server (relay, client)". But then each of them has the mandatory "enable" child. I think it would be better to define "true" as the default value for "enable" - then it has to be present with the "false" value only if the corresponding role is to be disabled while keeping the container in configuration. - Each server option also has an "enable" leaf with identical definition, so this leaf should be defined in a grouping to avoid copying and pasting it to every option. Also, could this leaf have the default of "false" instead of being mandatory? The options that are not present then needn't appear in the configuration. - Given the large number of options and their possible combination, I wonder whether "uint8" is enough as the type for "option-set-id". - Are all the options required to be supported by every server implementation? If not, then defining corresponding features might be good. - I don't understand how the "new-or-standard-option" is supposed to work. It seems it is there to allow for new options to be added in the future, but then I don't get why it is called "new-or-standard". More explanation in the description and an example in the text would be helpful. - What is the purpose of the "ipv6-address" leafs in "server-attributes" and "relay-if"? How are they related to an IPv6 address that can be configured via the "ietf-ip" module [RFC 7277]? - Could the leaf-list "interfaces-config" under "serv-attributes" contain just leafref references to interfaces configured via "ietf-ip"? -- Ladislav Lhotka, CZ.NIC Labs PGP Key ID: E74E8C0C
- [yang-doctors] YANG doctor review of draft-ietf-d… Ladislav Lhotka
- Re: [yang-doctors] YANG doctor review of draft-ie… Linhui Sun
- Re: [yang-doctors] YANG doctor review of draft-ie… Bernie Volz (volz)
- Re: [yang-doctors] YANG doctor review of draft-ie… Ladislav Lhotka
- Re: [yang-doctors] YANG doctor review of draft-ie… Tomek Mrugalski
- Re: [yang-doctors] YANG doctor review of draft-ie… Ladislav Lhotka
- Re: [yang-doctors] YANG doctor review of draft-ie… Bernie Volz (volz)
- Re: [yang-doctors] YANG doctor review of draft-ie… Ladislav Lhotka
- Re: [yang-doctors] YANG doctor review of draft-ie… ian.farrer