Re: [dhcwg] My read of draft-ietf-dhc-dhcpv6-yang-00

Linhui Sun <lh.sunlinh@gmail.com> Mon, 09 November 2015 11:24 UTC

Return-Path: <lh.sunlinh@gmail.com>
X-Original-To: dhcwg@ietfa.amsl.com
Delivered-To: dhcwg@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DDD4C1A916F for <dhcwg@ietfa.amsl.com>; Mon, 9 Nov 2015 03:24:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 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, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
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 RggaLq2d-3vZ for <dhcwg@ietfa.amsl.com>; Mon, 9 Nov 2015 03:24:47 -0800 (PST)
Received: from mail-wm0-x229.google.com (mail-wm0-x229.google.com [IPv6:2a00:1450:400c:c09::229]) (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 5FA201A9165 for <dhcwg@ietf.org>; Mon, 9 Nov 2015 03:24:47 -0800 (PST)
Received: by wmnn186 with SMTP id n186so97585966wmn.1 for <dhcwg@ietf.org>; Mon, 09 Nov 2015 03:24:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=LkRRUNJGk4ImTVK+yww2I+VU8HeIsjtBoxoHV88EEXE=; b=rfgOou9NDPOgpPSjU+JYnzkPy0loUrh6dqbarQJkJIG4kK96bxaJ5Mq3K439xWTSb9 5pXjjBIvZu16KNT3+XtVRllYx1zXMGJlws/sb0EfBswfKtQi1oaALQpu+XtGEng2fpwM veeQHEaWP7PSnLKd/4PtxnaYCpHYrcAzw0cn88h/e626ptiFSVoBB8MC0HmxiNt1I0jn 6/GIzWfhlYEa+XhA8xYauSTGlSRum08z7cKVvSXuPmfPy/NlRCz40ypQ+xyRZs/WRElz BZBvdjtf+lX/4ATTYcJfgYASoaRGCqYSc8vNgnQtz9tMsqAw4T2MjgyVsUdyCL17kyc0 qnxQ==
X-Received: by 10.194.78.15 with SMTP id x15mr32685670wjw.144.1447068285812; Mon, 09 Nov 2015 03:24:45 -0800 (PST)
MIME-Version: 1.0
Received: by 10.28.173.15 with HTTP; Mon, 9 Nov 2015 03:24:26 -0800 (PST)
In-Reply-To: <563A2126.8080409@gmail.com>
References: <563A2126.8080409@gmail.com>
From: Linhui Sun <lh.sunlinh@gmail.com>
Date: Mon, 09 Nov 2015 19:24:26 +0800
Message-ID: <CAO_YprZmbZ+t3grgnY5t_MD-yhr+tE4n8OewC9wU8wNz=AKvSw@mail.gmail.com>
To: Marcin Siodelski <msiodelski@gmail.com>
Content-Type: multipart/alternative; boundary="047d7bfcfd7a244713052419d79e"
Archived-At: <http://mailarchive.ietf.org/arch/msg/dhcwg/8HjwCgi6g6NX37ty7g71FA_82bk>
Cc: DHC WG <dhcwg@ietf.org>
Subject: Re: [dhcwg] My read of draft-ietf-dhc-dhcpv6-yang-00
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.15
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, 09 Nov 2015 11:24:52 -0000

Hi Marcin,

Sorry for the delay and really thanks for your detailed review, please see
comments inline.

Regards,
Linhui

2015-11-05 0:15 GMT+09:00 Marcin Siodelski <msiodelski@gmail.com>:

> In Prague I mentioned I'd review the YANG models for DHCP. There is
> never good time to review a document that ends up being 84 pages long. I
> finally had a look into this today and reviewed some bits of YANG models
> for DJCPv6. Note that it is not all. I just try to highlight the most
> obvious things that occurred to me while reading this (mostly client and
> server sections).
>
>
> Abstract
> "There has no unified method to configure DHCPv6 server ,relay and
>    client itself, always pre-configured manually by operators."
>
> This sentence sounds a bit odd. There are some typos. There is
> extraneous "itself". Also, I am not sure what this is trying to say:
>
[LH]: Agree the "itself" is redundant, will remove it.

> "always pre-configured manually by operators", in the context of this
> draft. I think this draft doesn't eliminate manual configuration, it
> merely introduces unified data structures. The configuration would still
> have to be "manual", regardless if remote or local. Or maybe I am
> reading something that it doesn't try to say.

[LH]: I agree the manual configuration is still inevitable with the help of
YANG model. I think the statement here is so absolute that may mislead
people. How about changing to "There has no unified method to configure
DHCPv6 server, relay and client itself, typically pre-configured by
operators through traditional configuration manners (e.g. command line
interfaces)."

>
>
> Introduction
> For completeness, it may also be worth to mention that not only does
> this model provide means to configure the server, client and relay, but
> it also provides means to gather statistics and notifications from the
> server. Perhaps, this could be also mentioned in abstract.
>
> I am not clear what the difference between "configuration" and
> "management" is.
>
[LH]: IMO, configuration is for those "rw" nodes while the management is
for the "ro" nodes. Do you think we need a very clear distinction between
those two terminologies? Or do you think the concept of "management" should
contain the "configuration"?

>
> I am not very enthusiastic about the paragraph starting:
> "For DHCPv6 client configuration..."
>
> I'd suggest something more like this, because it is shorter and less
> convoluted:
>
> "The DHCPv6 client module provides means to control the DHCPv6 client
> software running on host. For example, it allows for specifying whether
> or not the client should request specific DHCP options when it contacts
> the DHCP server. This model is not intended to be used to replace or
> override host configuration, which a DHCP client (being controlled using
> this model) receives from the DHCP server."


>
> I don't understand the need for sections 2.1-2.3, as they don't convey
> any information. Are they going to be extended with any specific text?
>
[LH]: This sections are supposed to be filled with several general and
brief description of the model structure (i.e. the server, relay and client
respectively). I think we will complement this in the next version.

>
>
> 3.1 DHCPv6 server tree diagrams
>
> Is the ultimate goal to describe *all* elements of the tree under the
> tree? Or, you assume that some of those elements don't require
> description  in section 3.1 because they are described in section 4?
>
[LH]: The YANG validator requires us that each data node should have a
description, that is what you could see in section 4. For the Section 3, I
would prefer to provide descriptions of some important nodes.

>
> Proposed models do not make use of the *default* values. There are many
> mandatory parameters without default values, which probably implies that
> I'd need to always configure them. Is this really the intent?
>
[LH]: We are not intended to imply that people have to configure them every
time. RFC6020 does define how to make a default value for the leaf (use the
"default" statement). We will add this statements in the next version.

>
> For example "container sol-max-rt-option" includes a leaf "enable" which
> indicates whether this option will be included in the option set - I
> read it as it will be sent to the client. Wouldn't it be more convenient
> to assume that it is sent if specified, i.e. default for "enable" would
> be true. If I don't want to send it, I'd set it to false explicitly.
>
[LH]: Agree.

>
> "ipv6-address" - What address is this? A server could actually contain
> multiple interfaces and multiple addresses on each of them. Is this an
> address recommended to use to connect to the server with a NETCONF?
>
[LH]: It has nothing to do with the NETCONF. I'm just wondering wether to
remove it or make it compatible with the "interfaces-config" list. What's
your suggestion?

>
> "pd-function" - As a matter of curiosity. You define this knob to
> enable/disable prefix delegation. But, can you actually enable/disable
> address assignment?
>
[LH]: I'm afraid I cannot understand what you mean here. Do you mean we
should not enable/disable the prefix delegation?

>
> "stateless-service"
> The definition of this says:
> "A boolean value specifies whether the server
>       support client-server exchanges involving two messages defined in
>       ([RFC3315])."
>
> which is ambiguous. It should rather explicitly mention
> Information-request. Note that there are other possibilities for
> exchanges involving two messages, e.g. Solicit-Reply (with Rapid Commit).
>
[LH]: Agree, will improve the description in the next version.

>
>
> I am also wondering if it should be possible to define "pd-function" and
> "rapid-commit" per network range, e.g. allow prefix delegation for
> client's connected to this network but not to that network?
>
[LH]: I think it is a good feature and that is what you provide in Kea.
After a brief talk with Tomek before, I think we will make the nodes both
available in global and network ranges in the next version.

>
> "interfaces-config"
> Doesn't a free-text type of configuration for listing active interfaces,
> together with optional unicast addresses violate the structure of the
> YANG model that is hierarchical? Moreover, the current description
> doesn't really explain how to enable multiple selected interfaces, or
> all interfaces. Should they be listed as comma separated names? Or, is
> it left up to the implementation of the server?


> I also think that enabling all interfaces by default may cause
> significant issues. If I forget to specify the interface configuration
> and I enable the server, it would start replying to all messages it
> detects on any of its interfaces. This could disrupt the operation of
> the network to which the server is connected.

[LH]: I think this part definitely need to be refined, I will respond this
later.

>


> "vendor-info"
> Is this intended to include the name of the server software and its
> version? For example: isc-dhcp-4.3?
>
[LH]: Yes

>
>
> 3.3. DHCPv6 Client Tree Diagrams
>
> "cli-id"
> I don't know what this is, and there is no description. Client
> identifier? How does it relate to DUID?
>
[LH]: The only reason that "cli-id" was introduced is DUID is a large value
(i.e. not appropriate to be a key value), we use the "cli-id" as the key
value for some lists. But I think we need to omit the "cli-id" to use the
unified DUID.

>
> "duid"
> Per RFC3315 terminology DUID is:
> "A DHCP Unique IDentifier for a DHCP
> participant; each DHCP client and server
> has exactly one DUID.  See section 9 for
> details of the ways in which a DUID may
> be constructed."
>
> In other words defining DUID per interface would violate the rule of one
> DUID per client, no?
>
[LH]: I think that is why the client should be in a per-interface manner,
am I right?

>
>
> "mo-tab"
> Is there any particular reason for this awkward configuration using the
> MO flags, rather than:
>
> - "request-pd" boolean
> - "request-na" boolean
> - "stateless" boolean
>
> where "stateless" being true means send Information-request, and if it
> is false, the other two indicate what stateful options to request.
>
[LH]: We have discussed these before the dhc session, the "mo-tab" seems to
be difficult to understand and redundant. But I don't understand what the
"request-pd" & "request-na" mean here, I think the "stateless" is enough.

>
> On that matter, there is also an interesting question how to configure
> the client to request more than one IA_NA if it needs to do so.
>
> I recognize that there is the "ro identity-associations" but it is read
> only and probably to only gather the configuration that the client has
> obtained, not to configure the client to request a specific address(es).
> And how about hints? For example a hint for prefix length.
>
[LH]: I think this should be included in the "client-configured-options"
container, how about adding the IA_PD option in that  container?

>
>
> I also couldn't find in the models the way to configure dedicated
> options for specific hosts. Container "reserved-addresses" merely
> includes mappings between the DUIDs and addresses, but it is frequently
> desired to also provide specific options for clients having reservations.
>
[LH]: Are you talking about the server side configuration? If so, we could
specified a specific option set for specific hosts (i.e. under the "hosts"
container).

>
> Also, per RFC6939 the link-layer address of the client may be provided
> by the relay, in which case it should be possible to do static
> reservation based on the MAC address, rather than DUID.
>
[LH]: This needs to be added to the relay portion, thanks.

>
> Marcin
>
> _______________________________________________
> dhcwg mailing list
> dhcwg@ietf.org
> https://www.ietf.org/mailman/listinfo/dhcwg
>