Re: [dhcwg] WGLC for draft-ietf-dhc-dhcpv4-over-dhcpv6-03 - Respond by Dec 9, 2013

Simon Perreault <> Wed, 27 November 2013 19:06 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id CC9A11AD8DA for <>; Wed, 27 Nov 2013 11:06:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id GO93zGNiEG4A for <>; Wed, 27 Nov 2013 11:06:11 -0800 (PST)
Received: from ( [IPv6:2620:0:230:8000::2]) by (Postfix) with ESMTP id 971B41AD72A for <>; Wed, 27 Nov 2013 11:06:11 -0800 (PST)
Received: from (unknown [IPv6:2620:0:230:c000:dd97:4873:5d32:1565]) by (Postfix) with ESMTPSA id B6B48403BB; Wed, 27 Nov 2013 14:06:10 -0500 (EST)
Message-ID: <>
Date: Wed, 27 Nov 2013 14:06:10 -0500
From: Simon Perreault <>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0
MIME-Version: 1.0
To: Marcin Siodelski <>
References: <> <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Cc: "<>" <>
Subject: Re: [dhcwg] WGLC for draft-ietf-dhc-dhcpv4-over-dhcpv6-03 - Respond by Dec 9, 2013
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 27 Nov 2013 19:06:15 -0000

Le 2013-11-27 13:42, Marcin Siodelski a écrit :
>>> In the case proposed in the draft: if I want to use the multicast, I
>>> send minimal amount of information to the client (boolean option).
>> What if you want to use a different multicast address than the well-known
>> one?
> The section "4. Architecture Overview" of the draft says:
> " Typically, a 4o6 DHCP client communicates with the 4o6 DHCP servers
>     using well known All_DHCP_Relay_Agents_and_Servers multicast address."
> Also section "8.  4o6 DHCP Client Behavior" says:
>     o  If the client receives the DHCPv4-over-DHCPv6 Enable Option but no
>        4o6 Servers Address Option, it SHOULD enable the DHCPv4-over-
>        DHCPv6 function, and use IPv6 All_DHCP_Relay_Agents_and_Servers
>        multicast address to communicate with servers and relays.
> The document assumes that there is only one multicast address that the
> client uses. Why would client use any other multicast address? The
> All_DHCP_Servers address is rather used by relays, not clients.

You're right. Thanks for the answer.

>>> If
>>> I want to use unicast I send two options, if client receives both
>>> options it uses unicast. I am not certain if this is any more
>>> complicated that parsing the option, eliminate the duplicates and the
>>> problem of presence of both multicast and unicast etc.
>> I think that implementation-wise they're pretty much the same complexity.
>> The gain would be in one less option to define, which would make the
>> document shorter and easier to understand.
> It would make a document shorter and easier in one section but would
> make it longer and more complex in the other: how should client behave
> receiving both unicast and multicast address, for instance? Also, it
> should then give more thought to the security section.
> The implementation complexity can be pretty much the same in that, you
> can reuse the code which validates the unicast address list for
> multicast case, yes. But it still doesn't solve the other problem
> given above. Client doesn't have to check consistency of the addresses
> if it receives the simple boolean-type option:
> - duplicated unicast addrs
> - more than one multicast
> - invalid multicast
> - both multicast and unicast present

Right, but you're comparing run-time complexity with implementation 

Run-time complexity does not matter: it's of no importance to anyone how 
many ifs are traversed at run-time. Running the checks every time would 
not impact in any measurable way the CPE's performance.

It's implementation complexity that matters. We want implementers to 
spend less time coding this protocol, and we want to eliminate 
opportunities that they get it wrong.

We agree that the checks that need to be written with the one-option 
proposal also need to be written with the two-option proposal. So code 
size-wise, the proposals are pretty much equivalent. But having just one 
code path means it's easier to understand and easier to test. And it 
makes the doc simpler and shorter.

> If the document is unclear or ambiguous in the part that describes the
> client's behavior when it receives two options, we should work to make
> it clearer.

I think that part is clear.

DTN made easy, lean, and smart -->
NAT64/DNS64 open-source        -->
STUN/TURN server               -->