[dhcwg] My WGLC comment on draft-ietf-dhc-rfc3315bis-05 - part 1

Tomek Mrugalski <tomasz.mrugalski@gmail.com> Mon, 22 August 2016 19:49 UTC

Return-Path: <tomasz.mrugalski@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 1190112D7D1 for <dhcwg@ietfa.amsl.com>; Mon, 22 Aug 2016 12:49: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 oNWKrPFVxQ_0 for <dhcwg@ietfa.amsl.com>; Mon, 22 Aug 2016 12:49:14 -0700 (PDT)
Received: from mail-lf0-x234.google.com (mail-lf0-x234.google.com [IPv6:2a00:1450:4010:c07::234]) (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 3B2B812D1AA for <dhcwg@ietf.org>; Mon, 22 Aug 2016 12:49:14 -0700 (PDT)
Received: by mail-lf0-x234.google.com with SMTP id b199so85853843lfe.0 for <dhcwg@ietf.org>; Mon, 22 Aug 2016 12:49:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=JKScPTFZEvNchwad+Azyl2j2cl31QhBZCQpBjNY45Fg=; b=gk+6jj3G4KCZT2xNBagqRToMciLyq/xAIQ2ic+4PvSbC82Dtp/hwyvlFT0Z2B+/HGg fehMioWYiZBGetnpqmQKDiMoY3mNPxuk5vPRs6rT2Ty6oNtm7QUT7FV5Vf3jJbmY9M2I kzBTTk+H1SD48LUllR7e0oMxNgLtYitZEq3uHAkS2VppGJ98303pK/VampxSVprJnRa1 gT6OKn+R7revBv7POxuSg8wuFZCkVrb4xVdrY2W2W3fuusECPgjsUSUf6qDlpRUyB9HU soScsmGhqkA1SognRFPNWeoAVBNZe5Y3wlFvp0ZPbFliolNSjQ0mtLDtT1MlLssfzPoB mvEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=JKScPTFZEvNchwad+Azyl2j2cl31QhBZCQpBjNY45Fg=; b=iTzRnvrmjMxAsOoQaMHw7Lr9CGGInZFi52S167/3X1Kk8++m/Amr6nl+qqrwkeRGIO dVvMm/3rEjFg8r4qYrB8DGUT4RSF4tr8N2ssGbdmJJHFIpNk7HEhguk7edcTiOJjNDRv QjF/vokgXiOJWPaAzI9tCBTo1etw1DqdFKLwXQxPLZ7MWRDEmjQ/JnfiMyxVqvwn+R0W fwhZiOFSU5S85IYaINE0Ss0eGc1YH7NDiCo0CqPtO48+n8NjXbf5Kv1UGNva4eAHpd7H wTp8yVAXBBisK4yQCFMZL274Dpyg4nkg0IRiA3S2/M350mkEUl6hfsP4v6W7cSHZdfrH zGxw==
X-Gm-Message-State: AEkoout+Et7FvmTMskyrS2SVA5wxMM5bQg2475Flgekzz08MtXWSRMeSUuJZ/O02vM9viw==
X-Received: by 10.25.210.80 with SMTP id j77mr5809843lfg.139.1471895351792; Mon, 22 Aug 2016 12:49:11 -0700 (PDT)
Received: from voyager2.local (093105179034.dynamic-ww-02.vectranet.pl. [93.105.179.34]) by smtp.googlemail.com with ESMTPSA id g74sm3884343ljg.24.2016.08.22.12.49.10 for <dhcwg@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Aug 2016 12:49:10 -0700 (PDT)
To: dhcwg@ietf.org
References: <12abb2fcf3094a459d6022c1d8002887@XCH-ALN-003.cisco.com>
From: Tomek Mrugalski <tomasz.mrugalski@gmail.com>
Message-ID: <d05fe705-2f99-c499-0a0f-ecd705018def@gmail.com>
Date: Mon, 22 Aug 2016 21:50:47 +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
In-Reply-To: <12abb2fcf3094a459d6022c1d8002887@XCH-ALN-003.cisco.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/dhcwg/6sno0RF3nrQdaxibWkjhpAannd4>
Subject: [dhcwg] My WGLC comment on draft-ietf-dhc-rfc3315bis-05 - part 1
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, 22 Aug 2016 19:49:17 -0000

On 15/08/16 15:26, Bernie Volz (volz) wrote:
> Just a friendly reminder that this (extended) WGLC is scheduled to
> end in a week (August 22nd).
Due to my poor time management and other duties in my day job, I failed
to review the complete document. Here's a partial review I managed to
complete so far. I plan to review the remainder of the text in the
coming days.

While I have many comments, they are mostly editorial in nature. With my
co-chair hat off, I strongly support this work.

Here's my review for pages 1 through 50.

Abstract : => ,
hosts => IPv6 nodes (as the PD is used by routers)

Section 1. The text should mention requestor and leasequery mechanism.
One paragraph somewhere in the introduction with references to RFC5007,
RFC5460 and RFC7653 should do the trick. Maybe somewhere around the text
that mentions servers, clients and relays. If you think it's
inappropriate to mention it that early, we can add one paragraph long
section 1.6 that explains it and then point to that in Section 1.

Need parentheses around section references in the last paragraph of
Section 1.

Section 1.1: extensions published => extensions were published

Section 1.4 seems to mention some more common exchanges (inf-req ->
reply), (solicit -> reply), (renew -> reply). It does not mention
others: (release -> reply), (rebind -> reply), (decline -> reply),
(confirm -> reply). Maybe adding a text similar to: "There are other two
message exchanges defined when the client and the server have
established a relationship: to renew or rebind existing leases (renew
and rebind messages), to release them (release message) or to inform the
server that the address leased is being used by other devices (decline
message)."?

Section 1.5 (4 messages exchanges) mentions Renewal mechanism. It
shouldn't, because it's a 2 messages exchange.

Section 4.1: "Every interface has a link-local address." Is this still
true these days? I recall some discussion on v6ops (or was it 6man?)
about certain tunneling interfaces lacking link-local address. IIRC it
was 6rd tunnel, but I may be wrong.

Section 4.2 binding definition should mention prefixes in its first
sentence.

Section 4.2 delegating router definition "responding to prefix request".
No such thing as prefix request is defined. Need to reword this one
slightly.

'DHCP realm' this definition was used in Delayed Auth protocol, which
is now removed. We should remove that definition as well.

DUID definition - it mentions that each client and server has one. Do
we want to mention that relays optionally may have one as well (see RFC5460)

IA definition - "holds one type of address" => "holds one type of
addresses or prefixes". I would also add "one IA may hold more than one
address or prefix of the same type, e.g. multiple temporary addresses".

Section 6 is called DHCP constants, but it does not contain the most
frequently used constants - the option codes. I think there should be a
pointer to Section 22, which defines the option codes, which are another
type of constants.

Section 6.3: request, renew, rebind, reply, release, inf-request
descriptions should mention prefixes as well.

The link in section 6.4 is incorrect. Status codes are not defined in
20.12, but in 20.13.

Section 8.1. link-address definition. "An address that will be used" =>
"An address that may be used". There are cases when it is not used,
for example when the relay inserts interface-id or it's not the relay
closest to the client.

What should be the hop-count set to when a relay forward client's
message? Text in 8.1 suggests 1 ("Number of relay agents that have
relayed this message", but text in 18.1.1 suggests 0 ("The hop-count in
the Relay-forward message is set to 0.")

Section 10. I think we should remove this sentence: "Clients and servers
MUST NOT in any other way interpret DUIDs.". This is a fiction that many
servers are violating for very good reasons. Removing it would settle
the issue raised in ticket #162. If you're not comfortable with removing
it completely, maybe substituting it with "Servers MAY interpret DUIDs
for policy, logging and other purposes, but MUST use the whole DUID to
identify clients." would be better?

Section 10.4: "DUID-LL MUST NOT be used by DHCP clients or servers that
cannot tell whether or not a network interface is permanently attached
to the device on which the DHCP client is running." I think we should
replace MUST NOT with SHOULD NOT for couple reasons. First, with enough
engineering time everything is replaceable. Second, with the advent of
virtualization software (and virtualization-like techniques, like
docker) it's increasingly difficult to say what is permanently attached
and what is not. Who knows what SDN will allows in couple years?

Section 11.1 "The configuration information in an IA consists of one or
more IPv6 addresses along with the times T1 and T2 for the IA." That's
not true for IA_TA, which does not have T1/T2 timers.

Section 12.1 could use a reference to ietf-dhc-topo-conf (currently in
RFC-Ed queue).

Section 12.3: Add "The same is true for IA_PD." after "The IAID number
space for the IA_TA option IAID number space is separate from the IA_NA
option IAID number space."

Section 13: "sends DHCP messages to the
All_DHCP_Relay_Agents_and_Servers." => "sends DHCP messages to the
All_DHCP_Relay_Agents_and_Servers multicast address."

Section 13.1 "the server still has the lease that was requested just
previously" The word 'just' doesn't seem to fit there. The sentence
should be rephrased.

"This loops can" => "This loop can"

Section 14 "A client is not expected to listen for a response during the
entire period between transmission of Solicit or Information-request
messages." I would add " and may turn off listening capabilities after
a certain time due to power consumption saving or other reasons."

Section 15.1 Add this text: "The exception is Reconfigure message, which
is sent by by the server and the transaction ID is set to zero."

Section 17 mentions that solicit exchange is called server discovery or
server solicitation. Maybe we should stick to one name? "server
discovery" phase has 5 occurrences, while "server solicitation" has only
4. Discovery seems to be also intuitively better understood by
non-native speakers.

Section 17.1 "When a client requests multiple IA option types" =>
"When a client requests multiple IA option types or multiple instances
of the same IA types"

"this situation should be rare or a temporary operational error." =>
"this situation should be rare or a result of temporary operational error."

Section 17.1.1 - we need to reorder the text (basically move paragraph
7 further down, maybe after 9th paragraph). Currently the text says "the
client MUST NOT include any other options..." and the following
paragraphs continue discussing which extra options to include.
Technically the current text is correct (because of the except clause),
but it's confusing.

Section 17.1.1 replace "an Advertise message" with "a valid Advertise
message" in this text: "If the client receives an Advertise message that
includes  a Preference option with a preference value of 255...". The
same is true for the following text "If the first RT elapses and the
client has  received an Advertise message...". And again in "If the
client does not receive any Advertise messages...".

Section 17.1.2 Clarification: After "The client generates a transaction
ID and inserts this value in the "transaction-id" field." add "This
value is likely to be different than the one used in Solicit". I vaguely
recall someone considering the whole solicit-adv-req-reply as a single
transaction. We should clarify that these are two separate transactions.

Not related to any specific text:
The maximum time allowed to be specified in Elapsed is 655.35 seconds.
The MAX_INF_RT and SOL_MAX_RT are 3600 seconds. What value should the
client set in Elapsed option when transmitting after 655 seconds?
The text doesn't specify that.

Tomek