RE: [dhcwg] DHCPv6 spec text for retransmission
Ralph Droms <rdroms@cisco.com> Fri, 07 September 2001 11:55 UTC
Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA08092; Fri, 7 Sep 2001 07:55:48 -0400 (EDT)
Received: from optimus.ietf.org (localhost [127.0.0.1]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id HAA06980; Fri, 7 Sep 2001 07:54:48 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176]) by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id HAA06955 for <dhcwg@optimus.ietf.org>; Fri, 7 Sep 2001 07:54:47 -0400 (EDT)
Received: from funnel.cisco.com (funnel.cisco.com [161.44.131.24]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA07995 for <dhcwg@ietf.org>; Fri, 7 Sep 2001 07:53:19 -0400 (EDT)
Received: from rdroms-w2k.cisco.com (rtp-vpn2-88.cisco.com [10.82.240.88]) by funnel.cisco.com (8.8.5-Cisco.1/8.6.5) with ESMTP id HAA02805 for <dhcwg@ietf.org>; Fri, 7 Sep 2001 07:54:14 -0400 (EDT)
Message-Id: <4.3.2.7.2.20010907074045.00b6cf90@funnel.cisco.com>
X-Sender: rdroms@funnel.cisco.com
X-Mailer: QUALCOMM Windows Eudora Version 4.3.2
Date: Fri, 07 Sep 2001 07:54:02 -0400
To: dhcwg@ietf.org
From: Ralph Droms <rdroms@cisco.com>
Subject: RE: [dhcwg] DHCPv6 spec text for retransmission
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Sender: dhcwg-admin@ietf.org
Errors-To: dhcwg-admin@ietf.org
X-Mailman-Version: 1.0
Precedence: bulk
List-Id: <dhcwg.ietf.org>
X-BeenThere: dhcwg@ietf.org
My responses to Bernie's comments are inline (prefixed by RD>). I've deleted much of the text that Bernie didn't comment on. - Ralph ===== Ralph: See my comments inline below (prefixed by BV>). Please do look at my comments in 15.3.4 (also applies to Renew). We have a protocol problem we likely need to correct! -----Original Message----- From: Ralph Droms [mailto:rdroms@cisco.com] Sent: Tuesday, September 04, 2001 9:49 PM To: dhcwg@ietf.org Subject: [dhcwg] DHCPv6 spec text for retransmission Here is the new text in the DHCPv6 spec describing the transmission and retransmission mechanism for client messages. Thanks to Ted for writing the first draft of this text. Notes: * I chose +-0.0625 (2^-4) as the limits on the randomization factor to (potentially) make the arithmetic a little easier. Perhaps I misspent too much of my youth writing 8080 assembler code and it's just not important to worry about setting those limits around powers of two. If +-0.1 makes more sense, that's fine with me. BV> I'd go with +/- 0.1 because almost all systems can do BV> floating point math these days and you likely need to BV> anyway. If a system can't, it can always fall back to BV> a "close" approximatation (such as +/- 0.0625). RD> OK - maybe a "SHOULD" (with some add'l text) RD> rather than a "MUST" RD> for clarity * I did not choose to base the server Reconfigure-init retransmission mechanism on section 13. I don't think the DHCPv6 spec needs to dictate the behavior of the server when retransmitting Reconfigure-init messages. * There are some references to the use of IAs; the new IA text has not been finalized and does not yet appear in the doc. Please review this new text and reply with comments... - Ralph 7.5. Configuration Variables This section presents a table of client and server configuration variables and the default or initial values for these variables. The client-specific variables MAY be configured on the server and MAY be delivered to the client through the "DHCP Retransmission Parameter Option" in a Reply message. BV> Didn't we want to drop this retransmission parameter option BV> since it opens up many cans of worms as per the San Diego IETF? RD>Right; I'll delete this text. Parameter Default Description ------------------------------------- MIN_SOL_DELAY 1 MIN (secs) to delay 1st mesg MAX_SOL_DELAY 5 MAX (secs) to delay 1st mesg ADV_TIMEOUT 500 SOL Retrans timer (msecs) ADV_MAX_RT 30 MAX timer value (secs) SOL_MAX_ATTEMPTS 0 MAX attempts (0 = infinite) REP_TIMEOUT 250 Retrans timer (msecs) for Reply REP_MAX_RT 0 MAX Retrans time (0 = infinite) REQ_MAX_ATTEMPTS 10 MAX Request/Confirm/Renew/Rebind attempts REL_MSG_ATTEMPTS 5 MAX Release/Decline attempts SRVR_PREF_WAIT 2 Advertise Collect timer (secs) 13. Reliability of Client Initiated Message Exchanges [...] MRC specifies an upper bound on the number of times a client may retransmit a message. If MRC has a value of 0, the client MUST continue to retransmit the original message until a response is received. Otherwise, the message exchange fails if the client attempts to transmit the original message more than MRC times. MRD specifies an upper bound on the length of time a client may retransmit a message. If MRD has a value of 0, the client MUST continue to retransmit the original message until a response is received. Otherwise, the message exchange fails if the client attempts to transmit the original message more than MRD seconds. BV> Just to be clear, might be good to say that EITHER or BOTH of BV> MRC or MRD can stop retransmissions? In most cases it appears BV> that only one is active, but it is always possible that both BV> could be. RD> OK. 14. DHCP Server Solicitation This section describes how a client locates servers. The behavior of client and server implementations is discussed, along with the messages they use. [...] 14.3. Client Behavior A client uses the Solicit message to discover DHCP servers configured to serve addresses on the link to which the client is attached. 14.3.1. Creation of Solicit messages The client sets the "msg-type" field to SOLICIT. The client generates a transaction ID and inserts this value in the "transaction-ID" field. BV> While probably not something that is needed in this section, we BV> really don't have much text to describe the "transaction-ID". All BV> we generally say is to "generate a transaction ID". However, we BV> should make it clear to clients that they should attempt to BV> generate "unique" transaction ids. Unique here is best if it is BV> over a long period of time, but it must be longer than any cache BV> times in servers. Probably the best rule of thumb is for clients BV> to use to generate this number by incrementing it. Then the only BV> issue is what to set it to when (re)booting - especially if there BV> is no means to remember the last used number. RD>OK, I'll add text as you suggest... The client includes a DUID option to identify itself to the server. The client MUST include options for any IAs to which it wants the server to assign addresses. The client may include addresses in the IAs as a hint to the server about addresses for which the client may have a preference. The client MAY include an Option Request Option in the Solicit message. The client MUST NOT include any other options except those specifically allowed as defined by specific options. 14.3.2. Transmission of Solicit Messages The client sends the Solicit message to the All DHCP Agents multicast address through the interface for which the client is interested in obtaining configuration information, with the destination port set to 547. The source port selection can be arbitrary, although it SHOULD be possible using a client configuration facility to set a specific source port value. The client's first Solicit message on the interface MUST be delayed by a random amount of time between MIN_SOL_DELAY and MAX_SOL_DELAY. This random delay desynchronizes clients which start at the same time (e.g., after a power outage). The client transmits the message according to section 13, using the following parameters: IRT ADV_TIMEOUT MRC SOL_MAX_ATTEMPTS MRT ADV_MAX_RT MRD 0 The mechanism in section 13 is modified as follows for use in the transmission of Solicit messages. The message exchange is not terminated by the receipt of an Advertise before ADV_MSG_TIMEOUT BV> ADV_MSG_TIMEOUT doesn't exist. I think you renamed it to BV> ADV_TIMEOUT? ADV_MSG_TIMEOUT is used many times. RD>Right; good catch. I'll make those changes... has elapsed. Rather, the client collects Advertise messages until ADV_MSG_TIMEOUT has elapsed. The first RT MUST be selected to be strictly greater than ADV_MSG_TIMEOUT by choosing RAND to be strictly greater than 0. A DHCP client SHOULD choose MRC and MRT to be 0. If the DHCP client is otherwise configured, it MUST stop trying to configure the interface if the message exchange fails. After the DHCP client stops trying to configure the interface, it MAY choose to restart the reconfiguration process after some external event, such as user input, system restart, or when the client is attached to a new link. BV> Did you mean MRD, not MRT? MRT limits the time of a single BV> retransmission. Also, the "If the DHCP client is otherwise configured" BV> made me re-read the paragraph several times. Perhaps there is a better BV> way to state this? "If the DHCP client is configured with a non-zero BV> MRC or MRD, ...". BV> Oh, might you want to say "SOL_MAX_ATTEMPTS" instead of MRC? RD>Yeah; on rereading, this isn't exactly clear. I'll fix RD>it. BV> Also, this Retransmit logic is a bit weird beause of SRVR_PREF_WAIT. BV> Does it make sense to state something like "A client only retransmits BV> a Solicit if it fails to receive any Advertises before the retransmission BV> timer expires. If a client receives one or more Advertise messages, it BV> then must wait SRVR_PERF_WAIT seconds from the time of the transmit BV> for any additional Advertise messages before proceeding." RD>OK... 14.3.3. Receipt of Advertise messages [...] 15. DHCP Client-Initiated Configuration Exchange [...] 15.3. Client Behavior [...] 15.3.1. Creation and transmission of Request messages [...] 15.3.2. Creation and transmission of Confirm messages [...] 15.3.3. Creation and transmission of Renew messages IPv6 addresses assigned to a client through an IA use the same preferred and valid lifetimes as IPv6 addresses obtained through stateless autoconfiguration. The server assigns preferred and valid lifetimes to the IPv6 addresses it assigns to an IA. To extend those lifetimes, the client sends a Request to the server containing an BV> Renew! RD>OK. "IA option" for the IA and its associated addresses. The server determines new lifetimes for the addresses in the IA according to the server's administrative configuration. The server may also add new addresses to the IA. The server may remove addresses from the IA by setting the preferred and valid lifetimes of those addresses to zero. The server controls the time at which the client contacts the server to extend the lifetimes on assigned addresses through the T1 and T2 parameters assigned to an IA. If the server does not assign an explicit value to T1 or T2 for an IA, T1 defaults to 0.5 times the shortest preferred lifetime of any address assigned to the IA and T2 defaults to 0.875 times the shortest preferred lifetime of any address assigned to the IA. BV> Perhaps this is "not in this set of edits", but I think we did BV> decide to always have the server send T1/T2 times. Therefore, BV> there should be no need to have "defaults". RD>Yeah - I'm waiting until text on IA format and semantics is RD>complete before doing final text here. At time T1 for an IA, the client initiates a Request/Reply message exchange to extend the lifetimes on any addresses in the IA. The client includes an IA option with all addresses currently assigned to the IA in its Request message. The client sets the "msg-type" field to RENEW. The client generates a transaction ID and inserts this value in the "transaction-ID" field. The client places the address of the destination server in the "server-address" field. The client adds a DUID option to identify itself to the server. The client adds any appropriate options, including one or more IA options (if the client is requesting that the server extend the lease on some IAs; note that the client may check the status of other configuration parameters without asking for lease extensions). If the client does include any IA options, it MUST include the list of addresses the client currently has associated with that IA. The client sends the Renew message to the All DHCP Agents multicast address through the interface for which the client is interested in extending configuration information, with the destination port set to 547. The source port selection can be arbitrary, although it SHOULD be possible using a client configuration facility to set a specific source port value. The client transmits the message according to section 13, using the following parameters: IRT REP_TIMEOUT MRC 0 MRT REP_MAX_RT MRD 0 The mechanism in section 13 is modified as follows for use in the transmission of Renew messages. The message exchange is terminated when time T2 is reached (see section 15.3.4), at which time the client begins a Rebind message exchange. BV> One can also set MRD = T2-T1. The only issue there is that the BV> recovery step from the timeout is to start a REBIND. It should BV> be noted that the REBIND is a new message and not a retransmission BV> and therefore a new transaction ID must be chosen. RD>I thought it was simpler to just use T1 and T2 directly RD>rather than adjusting MRD. I'll make the note about RD>the transaction ID. 15.3.4. Creation and transmission of Rebind messages [comments on 15.3.4 waiting for text on IAs...] 15.3.5. Receipt of Reply message in response to a Request, Confirm, Renew or Rebind message [...] 15.3.6. Creation and transmission of Release messages [...] 15.3.7. Receipt of Reply message in response to a Release message [...] 15.3.8. Creation and transmission of Decline messages [...] 15.3.9. Receipt of Reply message in response to a Decline message [...] b _______________________________________________ dhcwg mailing list dhcwg@ietf.org http://www1.ietf.org/mailman/listinfo/dhcwg
- [dhcwg] DHCPv6 spec text for retransmission Ralph Droms
- Re: [dhcwg] DHCPv6 spec text for retransmission Ralph Droms
- RE: [dhcwg] DHCPv6 spec text for retransmission Bernie Volz (EUD)
- RE: [dhcwg] DHCPv6 spec text for retransmission Ralph Droms
- RE: [dhcwg] DHCPv6 spec text for retransmission Ralph Droms