[dhcwg] Review of the draft-ietf-dhc-dhcpv6-yang-03
Marcin Siodelski <msiodelski@gmail.com> Mon, 18 July 2016 15:17 UTC
Return-Path: <msiodelski@gmail.com>
X-Original-To: dhcwg@ietfa.amsl.com
Delivered-To: dhcwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D2D1412DEF6 for <dhcwg@ietfa.amsl.com>; Mon, 18 Jul 2016 08:17:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 GAerrqr5UizQ for <dhcwg@ietfa.amsl.com>; Mon, 18 Jul 2016 08:17:10 -0700 (PDT)
Received: from mail-wm0-x22a.google.com (mail-wm0-x22a.google.com [IPv6:2a00:1450:400c:c09::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0540412DF45 for <dhcwg@ietf.org>; Mon, 18 Jul 2016 07:54:29 -0700 (PDT)
Received: by mail-wm0-x22a.google.com with SMTP id f65so106686424wmi.0 for <dhcwg@ietf.org>; Mon, 18 Jul 2016 07:54:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:subject:to:message-id:date:user-agent:mime-version :content-transfer-encoding; bh=6+8CEnu5j5eiw4uvMlVwnVTzWYEqt3I1t+/FzjhDIsw=; b=AoRKwfyBZlB6xWqtaNNtPMzAecOQb8TkRMuk7525yXpQIOJj2cWdfOXLvybBoLgHVm /I2EHcFwoFLNXsv0+tphchSssMvl/eodzgwoCm+ZU/gOAvXSqjhbDWujqeUUzlboIkqk zl8ljuil13wmcLov32CwdgPXw76TLVPixLi1BfItcLkzWEBDDezVyJIZQH4cCDFYVitF Ldoj5x2zy9WX2/HxkUujodaERd/moJH6ihkiPp6XrSpcsyfuwC89K0QRDhL2iUPEsbRZ HpjHoylfGf+MfOKGWyCamKpnVFb5eV7qKG5VSkVatTuEHjROkPkUtF+/UXe16XlNrLep TJUA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:to:message-id:date:user-agent :mime-version:content-transfer-encoding; bh=6+8CEnu5j5eiw4uvMlVwnVTzWYEqt3I1t+/FzjhDIsw=; b=TKCostqWJaOiVXrJLA4JFQFh1ziK9MqHhfVnaztiT6hIrCLGEM13jGxbygN/EAZz/8 +FBgHD0C9Ham4c7C35Y2dAOf3OzIHdCxHVxrYt6Ch8l/WpAqPoxVY2ZMqfP0b1sHttbr ClRyWLPFFXNNrXMgzo7d/T0mqrP3JLSmgLYHf8C0csWycBmQDKpBVD9wXHikdSSqf2qK E1aj3ZprmlEhga1ogIj8Ch6XwxXvh36TWpFU9BECRGIA+SbX2ZTKX73W7HX3YDGTY8C2 FYca5lCinjUy3J5EVTZ/K+wKH9PT/i5bSx6pTYH2ob723uE6ps3fyR/25pjTYW5NQb2h xJlA==
X-Gm-Message-State: ALyK8tI8tltAJNlKaaaN6oRcUZGruXmWfTnH4CpjYfPhX8YiujMUAQd2PUTvuX/b8CN14A==
X-Received: by 10.28.176.7 with SMTP id z7mr36319930wme.17.1468853667108; Mon, 18 Jul 2016 07:54:27 -0700 (PDT)
Received: from dhcp-b3ee.meeting.ietf.org ([2001:67c:370:176:65f1:ce5:9a87:fa94]) by smtp.gmail.com with ESMTPSA id hr8sm1685117wjb.40.2016.07.18.07.54.25 for <dhcwg@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Jul 2016 07:54:25 -0700 (PDT)
From: Marcin Siodelski <msiodelski@gmail.com>
To: DHC WG <dhcwg@ietf.org>
Message-ID: <17bff100-29d4-61c5-f0de-661b29b4e2e4@gmail.com>
Date: Mon, 18 Jul 2016 16:54:24 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/dhcwg/0oYHl8qkj83WdlaJciStBsDSobs>
Subject: [dhcwg] Review of the draft-ietf-dhc-dhcpv6-yang-03
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dhcwg/>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2016 15:17:18 -0000
I reviewed version -03 of the document, but I mostly focused on the server part as this is where I mostly have an expertise. I am not netconf/yang expert, so some of the comments may be a result of lack of understanding of the syntax. The general suggestion I have for the document is that you should improve descriptions of particular parameters in the model. For example the description for the "operator-option-int16" says "operator integer 16 option", which doesn't explain the purpose of this parameter. The parameter in fact specifies the value for an option carrying a single field with a 2-byte long numeric value. But, with the proper description I can't tell for sure that I am right. This is going to significantly help reviewers of this document if you improve those descriptions. You should also revise existing descriptions for copy-paste errors, like for "operator-ipv6-addr" the description is "operator ipv6 address id", where as it was intended be "operator ipv6 address value". The model doesn't appear to contain all standard configurable DHCPv6 options - http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml. For example, I don't see option 88 in the model. How did you select options to be included in the model? serv-attributes/name: What exactly is the server name and how is this used? Is this something that can be retrieved by the Netconf client to identify the server it is communicating with? Should this be unique across DHCP servers in the administrative domain? In addition, I don't think this should be mandatory because not all servers would support it. Many would probably ignore it. serv-attributes/duid: First of all, there is no reason to require the DUID to be mandatory. RFC3315 specifies that the DUID-LLT is a default DUID type for the DHCP server and the server would generate the DUID using available link-layer address and generated time value. Overriding the DUID via configuration should be optional, typically if the administrator wants to use non-default DUID type, e.g. DUID-LL or DUID-EN. Technically, the value of the DUID-LLT could be assigned via configuration but there is usually no need for it. That said, I also think that there should be a way to change the DUID type, without having to specify the values for this new DUID type. In particular, you may want to say that the server should use DUID-LL, rather than the default DUID-LLT, but you want to leave it up to the server to pick the suitable link-layer address to generate the DUID. Looking at the "duidtype" typedef I don't see whether it is possible with the current model. serv-attributes/enable: Are there any particular requirements for the DHCP server implementation to react to receiving enable=true and enable=false? In particular, the server process should startup/shutdown in that case, or it is rather aimed at enabling/disabling DHCP function from the client standpoint, server starts/stops responding to DHCP messages, but the process continues to run? Or it is implementation specific? serv-attributes/ipv6-address: What is the purpose of this particular parameter? The server would typically use multiple addresses configured on the interfaces on which it is listening. Those addresses would be assigned to those interfaces by some "other" means. Why is this limited to a single address? serv-atrributes/pd-function: Should this really be mandatory? Can't we just assume that if this value isn't specified, the server would do PD for those network-ranges for which prefix-pools exist? Also, it strikes me that its odd that we don't have ability to enable/disable address assignment function, if we have ability to enable/disable pd-function and stateless-service. serv-attributes/*/option-set/operator-option-ipv6-address: I am not sure what the operator-options-* are going to be used for. The model includes a bunch of standard options already, e.g. "dns-config-option", for which the model includes the data types carried within the options. In case of the "dns-config-option" it is inet:ipv6-address. I also understand that "new-or-standard-option" allows for defining and assigning a value to any existing or not existing option (presumably in the binary or hexadecimal format). The "new-or-standard-option" contains the option code so as the server may create an instance of the option and send it out to the client. For the options like "operator-option-ipv6-address", I thought they would serve similar role like "new-or-standard-option" but would allow for specifying values of the options in much more friendly format. If this is correct, I'd think that "operator" options should contain the same set of parameters as "new-or-standard-option", including code, name, description and reference? serv-attributes/network-ranges/*/address-pool/reserved-addresses: I suggest that "reserved-addresses" are rather specified at the network-range level, not address-pool level. In many cases you don't want to include static assignments within the pool from which addresses are also allocated dynamically (to clients that don't have reservations). The reason is that it affects performance of the dynamic allocations because the server has to find the available address among those assigned statically and dynamically. If you make your reservations outside of the pool the server would only have to avoid collisions with other dynamically assigned addresses. There are also other important considerations about "reserved-addresses" and "reserved-prefixes". One of them is that, even though the DUID", is a most obvious identifier for a client, in many cases it is useless for assigning static reservations because the server administrator doesn't know the DUID until the client contacts the server for the first time. There are other options which can be considered to make a reservation, e.g. MAC address, Remote-id, Subscriber-id. The model should allow for using those (perhaps also some other identifiers) to make static reservations. Perhaps you should simply use "hosts" structure to make address/prefix reservations? serv-attributes/network-ranges/*/address-pool/reserved-prefixes: Does this structure allow for reserving multiple prefixes for the same client (requesting router)? What is "other-reserv-prefix" for? serv-attributes/network-ranges/*/hosts: Same issue with the DUID based reservations as for the "reserved-addresses" and "reserved-prefixes". It should allow for other identifiers too. client/client-if/duid: The description says (correctly) that the client has only one DUID (regardless of the interface). However, the "duid" value in the model is still specified at the interface level. So with the current model it is possible to specify different duid values for different interfaces. The "duid" specification should thus be used one level up. client/client-id/cli-id: What is "cli-id", a client idenitfier? Why not simply use DUID? Marcin
- [dhcwg] Review of the draft-ietf-dhc-dhcpv6-yang-… Marcin Siodelski