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 UAA13042;
 Thu, 6 Sep 2001 20:59:28 -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 UAA12609;
 Thu, 6 Sep 2001 20:57:40 -0400 (EDT)
Received: from ietf.org (odin [132.151.1.176])
 by optimus.ietf.org (8.9.1a/8.9.1) with ESMTP id SAA07421
 for <dhcwg@ns.ietf.org>; Thu, 6 Sep 2001 18:25:09 -0400 (EDT)
Received: from imr2.ericy.com (imr2.ericy.com [12.34.240.68])
 by ietf.org (8.9.1a/8.9.1a) with ESMTP id SAA10245
 for <dhcwg@ietf.org>; Thu, 6 Sep 2001 18:23:41 -0400 (EDT)
Received: from mr7.exu.ericsson.se (mr7att.ericy.com [138.85.92.15])
 by imr2.ericy.com (8.11.3/8.11.3) with ESMTP id f86MOc518839
 for <dhcwg@ietf.org>; Thu, 6 Sep 2001 17:24:38 -0500 (CDT)
Received: from eamrcnt749 (eamrcnt749.exu.ericsson.se [138.85.133.47])
 by mr7.exu.ericsson.se (8.11.3/8.11.3) with SMTP id f86MOcq29144
 for <dhcwg@ietf.org>; Thu, 6 Sep 2001 17:24:38 -0500 (CDT)
Received: FROM eamrcnt760.exu.ericsson.se BY eamrcnt749 ;
 Thu Sep 06 17:24:37 2001 -0500
Received: by eamrcnt760.exu.ericsson.se with Internet Mail Service
 (5.5.2653.19) id <P4MQLFRD>; Thu, 6 Sep 2001 17:24:37 -0500
Message-ID: <66F66129A77AD411B76200508B65AC697B354D@eambunt705.ena-east.ericsson.se>
From: "Bernie Volz (EUD)" <Bernie.Volz@am1.ericsson.se>
To: "'Ralph Droms'" <rdroms@cisco.com>, dhcwg@ietf.org
Subject: RE: [dhcwg] DHCPv6 spec text for retransmission
Date: Thu, 6 Sep 2001 17:24:36 -0500 
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: multipart/alternative;
 boundary="----_=_NextPart_001_01C13722.B5E8E780"
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

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C13722.B5E8E780
Content-Type: text/plain;
	charset="iso-8859-1"

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).
* 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?

      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

   DHCP clients are responsible for reliable delivery of messages in the
   client-initiated message exchanges described in sections 14 and 15.
   If a DHCP client fails to receive an expected response from a server,
   the client must retransmit its message.  This section describes the
   retransmission strategy to be used by clients in client-initiated
   message exchanges.

   The client begins the message exchange by transmitting a message to
   the server.  The message exchange terminates when either the client
   successfully receives the appropriate response or responses from a
   server or servers, or when the message exchange is considered to have
   failed according to the retransmission mechanism described below.

   The client retransmission behavior is controlled and describe by five
   variables:

      RT     Retransmission timeout

      IRT    Initial retransmission time

      MRC    Maximum retransmission count

      MRT    Maximum retransmission time

      MRD    Maximum retransmission duration

      RAND   Randomization factor

   With each message transmission or retransmission, the client sets RT
   according to the rules given below.  If RT expires before the message
   exchange terminates, the client recomputes RT and retransmits the
   message.

   Each of the computations of a new RT include a randomization factor
   (RAND), which is a random number chosen with a uniform distribution
   between -0.0625 and +0.0625.  The randomization factor is included
   to minimize synchronization of messages transmitted by DHCP clients.
   The algorithm for choosing a random number does not need to be
   cryptographically sound.  The algorithm SHOULD produce a different
   sequence of numbers from each invocation of the DHCP client.


   RT for the first message transmission is based on IRT:

      RT = IRT + RAND*IRT


   RT for each subsequent message transmission is based on the previous
   value of RT:

      RT = RTprev + RAND*RTprev


   MRT specifies an upper bound on the value of RT. If MRT has a value
   of 0, there is no upper limit on the value of RT. Otherwise:

    if (RT > MRT)
       RT = MRT + RAND*MRT


   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.

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.

   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.
   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?

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."

14.3.3. Receipt of Advertise messages

   A client MUST wait for SRVR_PREF_WAIT seconds after sending a DHCP
   Solicit message to collect Advertise messages, unless it receives an
   Advertise message with a preference value of 255.  The preference
   value is carried in the Preference option (section  19.5).  Any
   Solicit that does not include a Preference option is considered to
   have a preference value of 0.  If the client receives an Advertise
   message with a preference value of 255, then the client MAY act
   immediately on that Advertise message without waiting for any more
   additional Advertise messages.

   Upon receipt of one or more validated Advertise messages, the client
   selects one or more Advertise messages based upon the following
   criteria.

    -  Those Advertise messages with the highest server preference value
       are preferred over all other Advertise messages.

    -  Within a group of Advertise messages with the same server
       preference value, a client MAY select those servers whose
       Advertise messages advertise information of interest to the
       client.  For example, the client may choose a server that
       returned an advertisement with configuration options of interest
       to the client.

   Once a client has selected Advertise message(s), the client will
   typically store information about each server, such as server
   preference value, addresses advertised, when the advertisement was
   received, and so on.  Depending on the requirements of the client's
   invoking user, the client MAY initiate a configuration exchange with
   the server(s) immediately, or MAY defer this exchange until later.

   If the client needs to select an alternate server in the case that a
   chosen server does not respond, the client chooses the server with
   the next highest preference value.

   The client MAY choose a less-preferred server if that server has a
   better set of advertised parameters, such as the available addresses
   advertised in IAs.

[...]

15. DHCP Client-Initiated Configuration Exchange

[...]

15.3. Client Behavior

[...]

15.3.1. Creation and transmission of Request messages

   If the client is using stateful address configuration and needs either
   an initial set of addresses or additional addresses, it MUST send
   a Request message to obtain new addresses and other configuration
   information.  The client includes one or more IAs in the Request
   message, to which the server assigns new addresses.  The server then
   returns IA(s) to the client in a Reply message.

   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 other appropriate options, including one or more IA
   options (if the client is requesting that the server assign it some
   network addresses).  The list of addresses in each included IA MUST
   be empty.  If the client is not requesting that the server assign it
   any addresses, the client omits the IA option.

   The client sends the Request 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 transmits the message according to section 13, using the
   following parameters:

      IRT   REP_TIMEOUT

      MRC   REQ_MAX_ATTEMPTS

      MRT   REP_MAX_RT

      MRD   0

   If the message exchange fails, the client MAY choose one of the
   following actions:

    -  Select another server from a list of servers known to the client;
       e.  g., servers that responded with an Advertise message

    -  Initiate the server discovery described in section 14

    -  Terminate the configuration process and report failure


15.3.2. Creation and transmission of Confirm messages

   Whenever a client may have moved to a new link, its IPv6 addresses
   and other configuration information may no longer be valid.  Examples
   of times when a client may have moved to a new link include:

     o The client reboots

     o The client is physically disconnected from a wired connection

     o The client returns from sleep mode

     o The client using a wireless technology changes cells

   In any situation when a client may have moved to a new link, the
   client MUST initiate a Confirm/Reply message exchange.  The client
   includes any IAs, along with the addresses associated with those IAs,
   in its Confirm message.  Any responding servers will indicate the
   acceptability of the addresses with the status in the IA it returns
   to the client.

   The client sets the "msg-type" field to CONFIRM. The client generates
   a transaction ID and inserts this value in the "transaction-ID"
   field.

   The client sets the "server-address" field to 0.

   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 confirm the validity of
   some network addresses).  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 Confirm message to the All DHCP Agents multicast
   address through the interface for which the client is interested in
   confirming 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   REQ_MSG_ATTEMPTS

      MRT   REP_MAX_RT

      MRD   0

   If the message exchange fails, the client MUST restart the
   configuration process by locating a DHCP server as described
   in section 14.  The client SHOULD report the failure of the
   configuration process to the application layer.


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!
   "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".

   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.

15.3.4. Creation and transmission of Rebind messages

   At time T2 for an IA (which will only be reached if the server to
   which the Renew message was sent at time T1 has not responded),
   the client initiates a Rebind/Reply message exchange.  The client
   includes an IA option with all addresses currently assigned to the IA
   in its Rebind message.  The client sends this message to the All DHCP
   Agents multicast address.

   The client sets the "msg-type" field to REBIND. The client generates
   a transaction ID inserts this value in the "transaction-ID" field.

   The client sets the "server-address" field to 0.

   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 does include any 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), it MUST include the list of
   addresses the client currently has associated with that IA.

   The client sends the Rebind 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 the lease for the IA expires (see section 11), at which time the
   client has several alternative actions to choose from:
BV> Hum. This has some interesting problems (I don't know what Section
BV> 11 refers to at this time, but don't recall the -19 draft having
BV> much text in this area). The reason for the interesting problems
BV> is because of the lifetime issue vs the T2 and renewal time.
BV> What happens if an IA has two addresses. One has a valid lifetime
BV> of 2 weeks. The other has a valid lifetime of 3 days. The T2 time
BV> is 2 days. So, suppose the servers are non-responsive for 4 days.
BV> When does the client stop retransmitting the message? When does it
BV> alter it to remove the address with the expired lifetime (after 3
BV> days). Does this change to the message mean it MUST change the
BV> XID?
BV> I would suggest we say that MRD is shortest-valid-lifetime - T2.
BV> Once that retransmission expires, the client must generate a
BV> new Rebind message if there are *ANY* addresses still valid. It
BV> stops only after all addresses are no longer valid.
BV> We should also fix all the terminology such as "when the lease
BV> on the IA expires"? It is really the valid lifetimes on the
BV> individual addresses.
BV> NOTE: The above issue for Rebind is *ALSO* a problem for Renew!
BV> What if you had a third address with a 1 day valid lifetime
BV> and T1 was 12 hours. 12 hours into the renew this third address
BV> is gone and should be removed from the Renew. Hence, new message!
BV> Hence, new transaction ID. Messy, messy, messy!

    -  When the lease on the IA expires, the client may choose to use a
       Solicit message to locate a new DHCP server and send a Request
       for the expired IA to the new server

    -  Some addresses in the IA may have lifetimes that extend beyond
       the lease of the IA, so the client may choose to continue to use
       those addresses; once all of the addresses have expired, the
       client may choose to locate a new DHCP server
BV> Huh? How is this possible? There is no "lease" to an IA. An IA
BV> dies when all of the addresses in that IA are no longer valid. There
BV> is no other time that an IA dies. There is no "expire" time.

    -  The client may have other addresses in other IAs, so the client
       may choose to discard the expired IA and use the addresses in the
       other 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

   The client sets the "msg-type" field to RELEASE. The client generates
   a transaction ID and places this value in the "transaction-ID" field.

   The client places the IP address of the server that allocated the
   address(es) in the "server-address" field.

   The client adds a DUID option to identify itself to the server.  The
   client includes options containing the IAs it is releasing in the
   "options" field.  The addresses to be released MUST be included in
   the IAs.  The appropriate "status" field in the options MUST be set
   to indicate the reason for the release.

   The client sends the Release message to the All DHCP Agents multicast
   address through the interface for which the client is interested in
   releasing 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.

   A client MAY choose to wait for a Reply message from the server in
   response to the Release message.  If the client does wait for a
   Reply, the client MAY choose to retransmit the Release message.

   The client transmits the message according to section 13, using the
   following parameters:

      IRT   REP_TIMEOUT

      MRC   REL_MSG_ATTEMPTS

      MRT   REP_MAX_RT

      MRD   0

   The client MUST abandon the attempt to release addresses if the
   Release message exchange fails.

   The client MUST stop using all of the addresses in the IA(s) being
   released as soon as the client begins the Release message exchange
   process.  If an IA is released but the Reply from a DHCP server
   is lost, the client will retransmit the Release message, and the
   server may respond with a Reply indicating a status of "Nobinding".
   Therefore, the client must not treat a Reply message with a status
   of "Nobinding" in a Release message exchange as if it indicates an
   error.

   Note that if the client fails to release the IA, the addresses
   assigned to the IA will be reclaimed by the server when the lease
   associated with it expires.


15.3.7. Receipt of Reply message in response to a Release message

   Upon receipt of a valid Reply message, the client can consider the
   Release event successful, and SHOULD return the successful status to
   the application layer, if an application initiated the release.


15.3.8. Creation and transmission of Decline messages

   The client sets the "msg-type" field to DECLINE. The client generates
   a transaction ID and places this value in the "transaction-ID" field.

   The client places the IP address of the server that allocated the
   address(es) in the "server-address" field.

   The client adds a DUID option to identify itself to the server.  The
   client includes options containing the IAs it is declining in the
   "options" field.  The addresses to be released MUST be included in
   the IAs.  The appropriate "status" field in the options MUST be set
   to indicate the reason for declining the address.

   The client sends the Decline message to the All DHCP Agents multicast
   address through the interface for which the client is interested
   in declining addresses, 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   REL_ATTEMPTS

      MRT   REP_MAX_RT

      MRD   0

   The client MUST abandon the attempt to decline addresses if the
   Decline message exchange fails.


15.3.9. Receipt of Reply message in response to a Decline message

   Upon receipt of a valid Reply message, the client can consider the
   Decline event successful.

[...]


_______________________________________________
dhcwg mailing list
dhcwg@ietf.org
http://www1.ietf.org/mailman/listinfo/dhcwg

------_=_NextPart_001_01C13722.B5E8E780
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2654.19">
<TITLE>RE: [dhcwg] DHCPv6 spec text for retransmission</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2>Ralph:</FONT>
</P>

<P><FONT SIZE=3D2>See my comments inline below (prefixed by =
BV&gt;).</FONT>
</P>

<P><FONT SIZE=3D2>Please do look at my comments in 15.3.4 (also applies =
to Renew). We have a protocol problem we likely need to correct!</FONT>
</P>

<P><FONT SIZE=3D2>-----Original Message-----</FONT>
<BR><FONT SIZE=3D2>From: Ralph Droms [<A =
HREF=3D"mailto:rdroms@cisco.com">mailto:rdroms@cisco.com</A>]</FONT>
<BR><FONT SIZE=3D2>Sent: Tuesday, September 04, 2001 9:49 PM</FONT>
<BR><FONT SIZE=3D2>To: dhcwg@ietf.org</FONT>
<BR><FONT SIZE=3D2>Subject: [dhcwg] DHCPv6 spec text for =
retransmission</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>Here is the new text in the DHCPv6 spec describing =
the</FONT>
<BR><FONT SIZE=3D2>transmission and retransmission mechanism for =
client</FONT>
<BR><FONT SIZE=3D2>messages.&nbsp; Thanks to Ted for writing the first =
draft</FONT>
<BR><FONT SIZE=3D2>of this text.</FONT>
</P>

<P><FONT SIZE=3D2>Notes:</FONT>
<BR><FONT SIZE=3D2>* I chose +-0.0625 (2^-4) as the limits on =
the</FONT>
<BR><FONT SIZE=3D2>&nbsp; randomization factor to (potentially) make =
the</FONT>
<BR><FONT SIZE=3D2>&nbsp; arithmetic a little easier.&nbsp; Perhaps I =
misspent</FONT>
<BR><FONT SIZE=3D2>&nbsp; too much of my youth writing 8080 =
assembler</FONT>
<BR><FONT SIZE=3D2>&nbsp; code and it's just not important to worry =
about</FONT>
<BR><FONT SIZE=3D2>&nbsp; setting those limits around powers of =
two.&nbsp; If</FONT>
<BR><FONT SIZE=3D2>&nbsp; +-0.1 makes more sense, that's fine with =
me.</FONT>
<BR><FONT SIZE=3D2>BV&gt; I'd go with +/- 0.1 because almost all =
systems can do</FONT>
<BR><FONT SIZE=3D2>BV&gt; floating point math these days and you likely =
need to</FONT>
<BR><FONT SIZE=3D2>BV&gt; anyway. If a system can't, it can always fall =
back to</FONT>
<BR><FONT SIZE=3D2>BV&gt; a &quot;close&quot; approximatation (such as =
+/- 0.0625).</FONT>
<BR><FONT SIZE=3D2>* I did not choose to base the server</FONT>
<BR><FONT SIZE=3D2>&nbsp; Reconfigure-init retransmission =
mechanism</FONT>
<BR><FONT SIZE=3D2>&nbsp; on section 13.&nbsp; I don't think the DHCPv6 =
spec</FONT>
<BR><FONT SIZE=3D2>&nbsp; needs to dictate the behavior of the server =
when</FONT>
<BR><FONT SIZE=3D2>&nbsp; retransmitting Reconfigure-init =
messages.</FONT>
<BR><FONT SIZE=3D2>* There are some references to the use of IAs; =
the</FONT>
<BR><FONT SIZE=3D2>&nbsp; new IA text has not been finalized and does =
not</FONT>
<BR><FONT SIZE=3D2>&nbsp; yet appear in the doc.</FONT>
</P>

<P><FONT SIZE=3D2>Please review this new text and reply with =
comments...</FONT>
</P>

<P><FONT SIZE=3D2>- Ralph</FONT>
</P>

<P><FONT SIZE=3D2>7.5. Configuration Variables</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; This section presents a table of client =
and server configuration</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; variables and the default or initial =
values for these variables.&nbsp; The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client-specific variables MAY be =
configured on the server and MAY be</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; delivered to the client through the =
&quot;DHCP Retransmission Parameter</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Option&quot; in a Reply message.</FONT>
<BR><FONT SIZE=3D2>BV&gt; Didn't we want to drop this retransmission =
parameter option</FONT>
<BR><FONT SIZE=3D2>BV&gt; since it opens up many cans of worms as per =
the San Diego IETF?</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
Parameter&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Default Description</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
-------------------------------------</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
MIN_SOL_DELAY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; 1 MIN (secs) to delay 1st mesg</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
MAX_SOL_DELAY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; 5 MAX (secs) to delay 1st mesg</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
ADV_TIMEOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
500 SOL Retrans timer (msecs)</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
ADV_MAX_RT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; 30 MAX timer value (secs)</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
SOL_MAX_ATTEMPTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 MAX =
attempts (0 =3D infinite)</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
REP_TIMEOUT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
250 Retrans timer (msecs) for Reply</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
REP_MAX_RT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; 0 MAX Retrans time (0 =3D infinite)</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
REQ_MAX_ATTEMPTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10 MAX =
Request/Confirm/Renew/Rebind attempts</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
REL_MSG_ATTEMPTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 MAX =
Release/Decline attempts</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; =
SRVR_PREF_WAIT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 =
Advertise Collect timer (secs)</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2>13. Reliability of Client Initiated Message =
Exchanges</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; DHCP clients are responsible for =
reliable delivery of messages in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client-initiated message exchanges =
described in sections 14 and 15.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; If a DHCP client fails to receive an =
expected response from a server,</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the client must retransmit its =
message.&nbsp; This section describes the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; retransmission strategy to be used by =
clients in client-initiated</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; message exchanges.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client begins the message exchange =
by transmitting a message to</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the server.&nbsp; The message exchange =
terminates when either the client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; successfully receives the appropriate =
response or responses from a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; server or servers, or when the message =
exchange is considered to have</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; failed according to the retransmission =
mechanism described below.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client retransmission behavior is =
controlled and describe by five</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; variables:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
RT&nbsp;&nbsp;&nbsp;&nbsp; Retransmission timeout</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp;&nbsp; =
Initial retransmission time</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp;&nbsp; =
Maximum retransmission count</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp;&nbsp; =
Maximum retransmission time</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp;&nbsp; =
Maximum retransmission duration</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RAND&nbsp;&nbsp; =
Randomization factor</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; With each message transmission or =
retransmission, the client sets RT</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; according to the rules given =
below.&nbsp; If RT expires before the message</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; exchange terminates, the client =
recomputes RT and retransmits the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; message.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; Each of the computations of a new RT =
include a randomization factor</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; (RAND), which is a random number chosen =
with a uniform distribution</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; between -0.0625 and +0.0625.&nbsp; The =
randomization factor is included</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to minimize synchronization of messages =
transmitted by DHCP clients.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; The algorithm for choosing a random =
number does not need to be</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; cryptographically sound.&nbsp; The =
algorithm SHOULD produce a different</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; sequence of numbers from each =
invocation of the DHCP client.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>&nbsp;&nbsp; RT for the first message transmission is =
based on IRT:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RT =3D IRT + =
RAND*IRT</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>&nbsp;&nbsp; RT for each subsequent message =
transmission is based on the previous</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; value of RT:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RT =3D RTprev + =
RAND*RTprev</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>&nbsp;&nbsp; MRT specifies an upper bound on the =
value of RT. If MRT has a value</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; of 0, there is no upper limit on the =
value of RT. Otherwise:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; if (RT &gt; MRT)</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RT =3D MRT + =
RAND*MRT</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>&nbsp;&nbsp; MRC specifies an upper bound on the =
number of times a client may</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; retransmit a message.&nbsp; If MRC has =
a value of 0, the client MUST</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; continue to retransmit the original =
message until a response is</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; received.&nbsp; Otherwise, the message =
exchange fails if the client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; attempts to transmit the original =
message more than MRC times.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; MRD specifies an upper bound on the =
length of time a client may</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; retransmit a message.&nbsp; If MRD has =
a value of 0, the client MUST</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; continue to retransmit the original =
message until a response is</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; received.&nbsp; Otherwise, the message =
exchange fails if the client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; attempts to transmit the original =
message more than MRD seconds.</FONT>
</P>

<P><FONT SIZE=3D2>BV&gt; Just to be clear, might be good to say that =
EITHER or BOTH of</FONT>
<BR><FONT SIZE=3D2>BV&gt; MRC or MRD can stop retransmissions? In most =
cases it appears</FONT>
<BR><FONT SIZE=3D2>BV&gt; that only one is active, but it is always =
possible that both</FONT>
<BR><FONT SIZE=3D2>BV&gt; could be.</FONT>
</P>

<P><FONT SIZE=3D2>14. DHCP Server Solicitation</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; This section describes how a client =
locates servers.&nbsp; The behavior</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; of client and server implementations is =
discussed, along with the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; messages they use.</FONT>
</P>

<P><FONT SIZE=3D2>[...]</FONT>
</P>

<P><FONT SIZE=3D2>14.3. Client Behavior</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; A client uses the Solicit message to =
discover DHCP servers configured</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to serve addresses on the link to which =
the client is attached.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>14.3.1. Creation of Solicit messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the &quot;msg-type&quot; =
field to SOLICIT. The client generates</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; a transaction ID and inserts this value =
in the &quot;transaction-ID&quot;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; field.</FONT>
<BR><FONT SIZE=3D2>BV&gt; While probably not something that is needed =
in this section, we</FONT>
<BR><FONT SIZE=3D2>BV&gt; really don't have much text to describe the =
&quot;transaction-ID&quot;. All</FONT>
<BR><FONT SIZE=3D2>BV&gt; we generally say is to &quot;generate a =
transaction ID&quot;. However, we</FONT>
<BR><FONT SIZE=3D2>BV&gt; should make it clear to clients that they =
should attempt to</FONT>
<BR><FONT SIZE=3D2>BV&gt; generate &quot;unique&quot; transaction ids. =
Unique here is best if it is</FONT>
<BR><FONT SIZE=3D2>BV&gt; over a long period of time, but it must be =
longer than any cache</FONT>
<BR><FONT SIZE=3D2>BV&gt; times in servers. Probably the best rule of =
thumb is for clients</FONT>
<BR><FONT SIZE=3D2>BV&gt; to use to generate this number by =
incrementing it. Then the only</FONT>
<BR><FONT SIZE=3D2>BV&gt; issue is what to set it to when (re)booting - =
especially if there</FONT>
<BR><FONT SIZE=3D2>BV&gt; is no means to remember the last used =
number.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client includes a DUID option to =
identify itself to the server.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; The client MUST include options for any =
IAs to which it wants the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; server to assign addresses.&nbsp; The =
client may include addresses in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; IAs as a hint to the server about =
addresses for which the client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; may have a preference.&nbsp; The client =
MAY include an Option Request</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Option in the Solicit message.&nbsp; =
The client MUST NOT include any other</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; options except those specifically =
allowed as defined by specific</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; options.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>14.3.2. Transmission of Solicit Messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sends the Solicit message to =
the All DHCP Agents multicast</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address through the interface for which =
the client is interested in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; obtaining configuration information, =
with the destination port set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to 547.&nbsp; The source port selection =
can be arbitrary, although it</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; SHOULD be possible using a client =
configuration facility to set a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; specific source port value.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client's first Solicit message on =
the interface MUST be delayed</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; by a random amount of time between =
MIN_SOL_DELAY and MAX_SOL_DELAY.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; This random delay desynchronizes =
clients which start at the same time</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; (e.g., after a power outage).</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client transmits the message =
according to section 13, using the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; following parameters:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp; =
ADV_TIMEOUT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp; =
SOL_MAX_ATTEMPTS</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp; =
ADV_MAX_RT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The mechanism in section 13 is modified =
as follows for use in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; transmission of Solicit messages.&nbsp; =
The message exchange is not</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; terminated by the receipt of an =
Advertise before ADV_MSG_TIMEOUT</FONT>
<BR><FONT SIZE=3D2>BV&gt; ADV_MSG_TIMEOUT doesn't exist. I think you =
renamed it to</FONT>
<BR><FONT SIZE=3D2>BV&gt; ADV_TIMEOUT? ADV_MSG_TIMEOUT is used many =
times.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; has elapsed.&nbsp; Rather, the client =
collects Advertise messages until</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; ADV_MSG_TIMEOUT has elapsed.&nbsp; The =
first RT MUST be selected to be</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; strictly greater than ADV_MSG_TIMEOUT =
by choosing RAND to be strictly</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; greater than 0.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; A DHCP client SHOULD choose MRC and MRT =
to be 0.&nbsp; If the DHCP</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client is otherwise configured, it MUST =
stop trying to configure</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the interface if the message exchange =
fails.&nbsp; After the DHCP client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; stops trying to configure the =
interface, it MAY choose to restart</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the reconfiguration process after some =
external event, such as user</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; input, system restart, or when the =
client is attached to a new link.</FONT>
</P>

<P><FONT SIZE=3D2>BV&gt; Did you mean MRD, not MRT? MRT limits the time =
of a single</FONT>
<BR><FONT SIZE=3D2>BV&gt; retransmission. Also, the &quot;If the DHCP =
client is otherwise configured&quot;</FONT>
<BR><FONT SIZE=3D2>BV&gt; made me re-read the paragraph several times. =
Perhaps there is a better</FONT>
<BR><FONT SIZE=3D2>BV&gt; way to state this? &quot;If the DHCP client =
is configured with a non-zero</FONT>
<BR><FONT SIZE=3D2>BV&gt; MRC or MRD, ...&quot;.</FONT>
<BR><FONT SIZE=3D2>BV&gt; Oh, might you want to say =
&quot;SOL_MAX_ATTEMPTS&quot; instead of MRC?</FONT>
</P>

<P><FONT SIZE=3D2>BV&gt; Also, this Retransmit logic is a bit weird =
beause of SRVR_PREF_WAIT.</FONT>
<BR><FONT SIZE=3D2>BV&gt; Does it make sense to state something like =
&quot;A client only retransmits</FONT>
<BR><FONT SIZE=3D2>BV&gt; a Solicit if it fails to receive any =
Advertises before the retransmission</FONT>
<BR><FONT SIZE=3D2>BV&gt; timer expires. If a client receives one or =
more Advertise messages, it</FONT>
<BR><FONT SIZE=3D2>BV&gt; then must wait SRVR_PERF_WAIT seconds from =
the time of the transmit</FONT>
<BR><FONT SIZE=3D2>BV&gt; for any additional Advertise messages before =
proceeding.&quot;</FONT>
</P>

<P><FONT SIZE=3D2>14.3.3. Receipt of Advertise messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; A client MUST wait for SRVR_PREF_WAIT =
seconds after sending a DHCP</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Solicit message to collect Advertise =
messages, unless it receives an</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Advertise message with a preference =
value of 255.&nbsp; The preference</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; value is carried in the Preference =
option (section&nbsp; 19.5).&nbsp; Any</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Solicit that does not include a =
Preference option is considered to</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; have a preference value of 0.&nbsp; If =
the client receives an Advertise</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; message with a preference value of 255, =
then the client MAY act</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; immediately on that Advertise message =
without waiting for any more</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; additional Advertise messages.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; Upon receipt of one or more validated =
Advertise messages, the client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; selects one or more Advertise messages =
based upon the following</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; criteria.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; Those Advertise messages =
with the highest server preference value</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; are preferred =
over all other Advertise messages.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; Within a group of =
Advertise messages with the same server</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; preference =
value, a client MAY select those servers whose</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Advertise =
messages advertise information of interest to the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client.&nbsp; =
For example, the client may choose a server that</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; returned an =
advertisement with configuration options of interest</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to the =
client.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; Once a client has selected Advertise =
message(s), the client will</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; typically store information about each =
server, such as server</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; preference value, addresses advertised, =
when the advertisement was</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; received, and so on.&nbsp; Depending on =
the requirements of the client's</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; invoking user, the client MAY initiate =
a configuration exchange with</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the server(s) immediately, or MAY defer =
this exchange until later.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; If the client needs to select an =
alternate server in the case that a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; chosen server does not respond, the =
client chooses the server with</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the next highest preference =
value.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client MAY choose a less-preferred =
server if that server has a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; better set of advertised parameters, =
such as the available addresses</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; advertised in IAs.</FONT>
</P>

<P><FONT SIZE=3D2>[...]</FONT>
</P>

<P><FONT SIZE=3D2>15. DHCP Client-Initiated Configuration =
Exchange</FONT>
</P>

<P><FONT SIZE=3D2>[...]</FONT>
</P>

<P><FONT SIZE=3D2>15.3. Client Behavior</FONT>
</P>

<P><FONT SIZE=3D2>[...]</FONT>
</P>

<P><FONT SIZE=3D2>15.3.1. Creation and transmission of Request =
messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; If the client is using stateful address =
configuration and needs either</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; an initial set of addresses or =
additional addresses, it MUST send</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; a Request message to obtain new =
addresses and other configuration</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; information.&nbsp; The client includes =
one or more IAs in the Request</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; message, to which the server assigns =
new addresses.&nbsp; The server then</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; returns IA(s) to the client in a Reply =
message.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client generates a transaction ID =
and inserts this value in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; &quot;transaction-ID&quot; =
field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client places the address of the =
destination server in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; &quot;server-address&quot; =
field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client adds a DUID option to =
identify itself to the server.&nbsp; The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client adds any other appropriate =
options, including one or more IA</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; options (if the client is requesting =
that the server assign it some</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; network addresses).&nbsp; The list of =
addresses in each included IA MUST</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; be empty.&nbsp; If the client is not =
requesting that the server assign it</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; any addresses, the client omits the IA =
option.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sends the Request message to =
the All DHCP Agents multicast</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address through the interface for which =
the client is interested in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; obtaining configuration information, =
with the destination port set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to 547.&nbsp; The source port selection =
can be arbitrary, although it</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; SHOULD be possible using a client =
configuration facility to set a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; specific source port value.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client transmits the message =
according to section 13, using the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; following parameters:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp; =
REP_TIMEOUT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp; =
REQ_MAX_ATTEMPTS</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp; =
REP_MAX_RT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; If the message exchange fails, the =
client MAY choose one of the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; following actions:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; Select another server from =
a list of servers known to the client;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.&nbsp; g., =
servers that responded with an Advertise message</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; Initiate the server =
discovery described in section 14</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; Terminate the =
configuration process and report failure</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>15.3.2. Creation and transmission of Confirm =
messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; Whenever a client may have moved to a =
new link, its IPv6 addresses</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; and other configuration information may =
no longer be valid.&nbsp; Examples</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; of times when a client may have moved =
to a new link include:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp; o The client reboots</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp; o The client is physically =
disconnected from a wired connection</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp; o The client returns from =
sleep mode</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp; o The client using a =
wireless technology changes cells</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; In any situation when a client may have =
moved to a new link, the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client MUST initiate a Confirm/Reply =
message exchange.&nbsp; The client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; includes any IAs, along with the =
addresses associated with those IAs,</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; in its Confirm message.&nbsp; Any =
responding servers will indicate the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; acceptability of the addresses with the =
status in the IA it returns</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to the client.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the &quot;msg-type&quot; =
field to CONFIRM. The client generates</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; a transaction ID and inserts this value =
in the &quot;transaction-ID&quot;</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the =
&quot;server-address&quot; field to 0.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client adds a DUID option to =
identify itself to the server.&nbsp; The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client adds any appropriate options, =
including one or more IA options</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; (if the client is requesting that the =
server confirm the validity of</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; some network addresses).&nbsp; If the =
client does include any IA options,</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; it MUST include the list of addresses =
the client currently has</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; associated with that IA.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sends the Confirm message to =
the All DHCP Agents multicast</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address through the interface for which =
the client is interested in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; confirming configuration information, =
with the destination port set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to 547.&nbsp; The source port selection =
can be arbitrary, although it</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; SHOULD be possible using a client =
configuration facility to set a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; specific source port value.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client transmits the message =
according to section 13, using the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; following parameters:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp; =
REP_TIMEOUT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp; =
REQ_MSG_ATTEMPTS</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp; =
REP_MAX_RT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; If the message exchange fails, the =
client MUST restart the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; configuration process by locating a =
DHCP server as described</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; in section 14.&nbsp; The client SHOULD =
report the failure of the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; configuration process to the =
application layer.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>15.3.3. Creation and transmission of Renew =
messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; IPv6 addresses assigned to a client =
through an IA use the same</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; preferred and valid lifetimes as IPv6 =
addresses obtained through</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; stateless autoconfiguration.&nbsp; The =
server assigns preferred and valid</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; lifetimes to the IPv6 addresses it =
assigns to an IA. To extend those</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; lifetimes, the client sends a Request =
to the server containing an</FONT>
<BR><FONT =
SIZE=3D2>BV&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Renew!</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; &quot;IA option&quot; for the IA and =
its associated addresses.&nbsp; The server</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; determines new lifetimes for the =
addresses in the IA according to the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; server's administrative =
configuration.&nbsp; The server may also add new</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; addresses to the IA. The server may =
remove addresses from the IA by</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; setting the preferred and valid =
lifetimes of those addresses to zero.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; The server controls the time at which =
the client contacts the server</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to extend the lifetimes on assigned =
addresses through the T1 and</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; T2 parameters assigned to an IA. If the =
server does not assign an</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; explicit value to T1 or T2 for an IA, =
T1 defaults to 0.5 times the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; shortest preferred lifetime of any =
address assigned to the IA and</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; T2 defaults to 0.875 times the shortest =
preferred lifetime of any</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address assigned to the IA.</FONT>
<BR><FONT SIZE=3D2>BV&gt; Perhaps this is &quot;not in this set of =
edits&quot;, but I think we did</FONT>
<BR><FONT SIZE=3D2>BV&gt; decide to always have the server send T1/T2 =
times. Therefore,</FONT>
<BR><FONT SIZE=3D2>BV&gt; there should be no need to have =
&quot;defaults&quot;.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; At time T1 for an IA, the client =
initiates a Request/Reply message</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; exchange to extend the lifetimes on any =
addresses in the IA. The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client includes an IA option with all =
addresses currently assigned to</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the IA in its Request message.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the &quot;msg-type&quot; =
field to RENEW. The client generates a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; transaction ID and inserts this value =
in the &quot;transaction-ID&quot; field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client places the address of the =
destination server in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; &quot;server-address&quot; =
field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client adds a DUID option to =
identify itself to the server.&nbsp; The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client adds any appropriate options, =
including one or more IA options</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; (if the client is requesting that the =
server extend the lease on some</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; IAs; note that the client may check the =
status of other configuration</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; parameters without asking for lease =
extensions).&nbsp; If the client does</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; include any IA options, it MUST include =
the list of addresses the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client currently has associated with =
that IA.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sends the Renew message to =
the All DHCP Agents multicast</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address through the interface for which =
the client is interested</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; in extending configuration information, =
with the destination port</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; set to 547.&nbsp; The source port =
selection can be arbitrary, although</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; it SHOULD be possible using a client =
configuration facility to set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; a specific source port value.&nbsp; The =
client transmits the message</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; according to section 13, using the =
following parameters:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp; =
REP_TIMEOUT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp; =
REP_MAX_RT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The mechanism in section 13 is modified =
as follows for use in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; transmission of Renew messages.&nbsp; =
The message exchange is terminated</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; when time T2 is reached (see section =
15.3.4), at which time the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client begins a Rebind message =
exchange.</FONT>
<BR><FONT SIZE=3D2>BV&gt; One can also set MRD =3D T2-T1. The only =
issue there is that the</FONT>
<BR><FONT SIZE=3D2>BV&gt; recovery step from the timeout is to start a =
REBIND. It should</FONT>
<BR><FONT SIZE=3D2>BV&gt; be noted that the REBIND is a new message and =
not a retransmission</FONT>
<BR><FONT SIZE=3D2>BV&gt; and therefore a new transaction ID must be =
chosen.</FONT>
</P>

<P><FONT SIZE=3D2>15.3.4. Creation and transmission of Rebind =
messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; At time T2 for an IA (which will only be =
reached if the server to</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; which the Renew message was sent at =
time T1 has not responded),</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the client initiates a Rebind/Reply =
message exchange.&nbsp; The client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; includes an IA option with all =
addresses currently assigned to the IA</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; in its Rebind message.&nbsp; The client =
sends this message to the All DHCP</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Agents multicast address.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the &quot;msg-type&quot; =
field to REBIND. The client generates</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; a transaction ID inserts this value in =
the &quot;transaction-ID&quot; field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the =
&quot;server-address&quot; field to 0.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client adds a DUID option to =
identify itself to the server.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; The client adds any appropriate =
options, including one or more IA</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; options.&nbsp; If the client does =
include any IA options (if the client is</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; requesting that the server extend the =
lease on some IAs; note that</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the client may check the status of =
other configuration parameters</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; without asking for lease extensions), =
it MUST include the list of</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; addresses the client currently has =
associated with that IA.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sends the Rebind message to =
the All DHCP Agents multicast</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address through the interface for which =
the client is interested in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; extending configuration information, =
with the destination port set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to 547.&nbsp; The source port selection =
can be arbitrary, although it</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; SHOULD be possible using a client =
configuration facility to set a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; specific source port value.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client transmits the message =
according to section 13, using the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; following parameters:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp; =
REP_TIMEOUT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp; =
REP_MAX_RT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The mechanism in section 13 is modified =
as follows for use in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; transmission of Renew messages.&nbsp; =
The message exchange is terminated</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; when the lease for the IA expires (see =
section 11), at which time the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client has several alternative actions =
to choose from:</FONT>
<BR><FONT SIZE=3D2>BV&gt; Hum. This has some interesting problems (I =
don't know what Section</FONT>
<BR><FONT SIZE=3D2>BV&gt; 11 refers to at this time, but don't recall =
the -19 draft having</FONT>
<BR><FONT SIZE=3D2>BV&gt; much text in this area). The reason for the =
interesting problems</FONT>
<BR><FONT SIZE=3D2>BV&gt; is because of the lifetime issue vs the T2 =
and renewal time.</FONT>
<BR><FONT SIZE=3D2>BV&gt; What happens if an IA has two addresses. One =
has a valid lifetime</FONT>
<BR><FONT SIZE=3D2>BV&gt; of 2 weeks. The other has a valid lifetime of =
3 days. The T2 time</FONT>
<BR><FONT SIZE=3D2>BV&gt; is 2 days. So, suppose the servers are =
non-responsive for 4 days.</FONT>
<BR><FONT SIZE=3D2>BV&gt; When does the client stop retransmitting the =
message? When does it</FONT>
<BR><FONT SIZE=3D2>BV&gt; alter it to remove the address with the =
expired lifetime (after 3</FONT>
<BR><FONT SIZE=3D2>BV&gt; days). Does this change to the message mean =
it MUST change the</FONT>
<BR><FONT SIZE=3D2>BV&gt; XID?</FONT>
<BR><FONT SIZE=3D2>BV&gt; I would suggest we say that MRD is =
shortest-valid-lifetime - T2.</FONT>
<BR><FONT SIZE=3D2>BV&gt; Once that retransmission expires, the client =
must generate a</FONT>
<BR><FONT SIZE=3D2>BV&gt; new Rebind message if there are *ANY* =
addresses still valid. It</FONT>
<BR><FONT SIZE=3D2>BV&gt; stops only after all addresses are no longer =
valid.</FONT>
<BR><FONT SIZE=3D2>BV&gt; We should also fix all the terminology such =
as &quot;when the lease</FONT>
<BR><FONT SIZE=3D2>BV&gt; on the IA expires&quot;? It is really the =
valid lifetimes on the</FONT>
<BR><FONT SIZE=3D2>BV&gt; individual addresses.</FONT>
<BR><FONT SIZE=3D2>BV&gt; NOTE: The above issue for Rebind is *ALSO* a =
problem for Renew!</FONT>
<BR><FONT SIZE=3D2>BV&gt; What if you had a third address with a 1 day =
valid lifetime</FONT>
<BR><FONT SIZE=3D2>BV&gt; and T1 was 12 hours. 12 hours into the renew =
this third address</FONT>
<BR><FONT SIZE=3D2>BV&gt; is gone and should be removed from the Renew. =
Hence, new message!</FONT>
<BR><FONT SIZE=3D2>BV&gt; Hence, new transaction ID. Messy, messy, =
messy!</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; When the lease on the IA =
expires, the client may choose to use a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Solicit message =
to locate a new DHCP server and send a Request</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for the expired =
IA to the new server</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; Some addresses in the IA =
may have lifetimes that extend beyond</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the lease of =
the IA, so the client may choose to continue to use</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; those =
addresses; once all of the addresses have expired, the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client may =
choose to locate a new DHCP server</FONT>
<BR><FONT SIZE=3D2>BV&gt; Huh? How is this possible? There is no =
&quot;lease&quot; to an IA. An IA</FONT>
<BR><FONT SIZE=3D2>BV&gt; dies when all of the addresses in that IA are =
no longer valid. There</FONT>
<BR><FONT SIZE=3D2>BV&gt; is no other time that an IA dies. There is no =
&quot;expire&quot; time.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; -&nbsp; The client may have other =
addresses in other IAs, so the client</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; may choose to =
discard the expired IA and use the addresses in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; other =
IAs</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>15.3.5. Receipt of Reply message in response to a =
Request, Confirm,</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Renew or Rebind message</FONT>
</P>

<P><FONT SIZE=3D2>[...]</FONT>
</P>

<P><FONT SIZE=3D2>15.3.6. Creation and transmission of Release =
messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the &quot;msg-type&quot; =
field to RELEASE. The client generates</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; a transaction ID and places this value =
in the &quot;transaction-ID&quot; field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client places the IP address of the =
server that allocated the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address(es) in the =
&quot;server-address&quot; field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client adds a DUID option to =
identify itself to the server.&nbsp; The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client includes options containing the =
IAs it is releasing in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; &quot;options&quot; field.&nbsp; The =
addresses to be released MUST be included in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the IAs.&nbsp; The appropriate =
&quot;status&quot; field in the options MUST be set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to indicate the reason for the =
release.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sends the Release message to =
the All DHCP Agents multicast</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address through the interface for which =
the client is interested in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; releasing configuration information, =
with the destination port set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to 547.&nbsp; The source port selection =
can be arbitrary, although it</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; SHOULD be possible using a client =
configuration facility to set a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; specific source port value.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; A client MAY choose to wait for a Reply =
message from the server in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; response to the Release message.&nbsp; =
If the client does wait for a</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Reply, the client MAY choose to =
retransmit the Release message.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client transmits the message =
according to section 13, using the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; following parameters:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp; =
REP_TIMEOUT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp; =
REL_MSG_ATTEMPTS</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp; =
REP_MAX_RT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client MUST abandon the attempt to =
release addresses if the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Release message exchange fails.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client MUST stop using all of the =
addresses in the IA(s) being</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; released as soon as the client begins =
the Release message exchange</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; process.&nbsp; If an IA is released but =
the Reply from a DHCP server</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; is lost, the client will retransmit the =
Release message, and the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; server may respond with a Reply =
indicating a status of &quot;Nobinding&quot;.</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Therefore, the client must not treat a =
Reply message with a status</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; of &quot;Nobinding&quot; in a Release =
message exchange as if it indicates an</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; error.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; Note that if the client fails to release =
the IA, the addresses</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; assigned to the IA will be reclaimed by =
the server when the lease</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; associated with it expires.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>15.3.7. Receipt of Reply message in response to a =
Release message</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; Upon receipt of a valid Reply message, =
the client can consider the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Release event successful, and SHOULD =
return the successful status to</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the application layer, if an =
application initiated the release.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>15.3.8. Creation and transmission of Decline =
messages</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sets the &quot;msg-type&quot; =
field to DECLINE. The client generates</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; a transaction ID and places this value =
in the &quot;transaction-ID&quot; field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client places the IP address of the =
server that allocated the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address(es) in the =
&quot;server-address&quot; field.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client adds a DUID option to =
identify itself to the server.&nbsp; The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; client includes options containing the =
IAs it is declining in the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; &quot;options&quot; field.&nbsp; The =
addresses to be released MUST be included in</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; the IAs.&nbsp; The appropriate =
&quot;status&quot; field in the options MUST be set</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; to indicate the reason for declining =
the address.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client sends the Decline message to =
the All DHCP Agents multicast</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; address through the interface for which =
the client is interested</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; in declining addresses, with the =
destination port set to 547.&nbsp; The</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; source port selection can be arbitrary, =
although it SHOULD be</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; possible using a client configuration =
facility to set a specific</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; source port value.</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client transmits the message =
according to section 13, using the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; following parameters:</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IRT&nbsp;&nbsp; =
REP_TIMEOUT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRC&nbsp;&nbsp; =
REL_ATTEMPTS</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRT&nbsp;&nbsp; =
REP_MAX_RT</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MRD&nbsp;&nbsp; =
0</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; The client MUST abandon the attempt to =
decline addresses if the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Decline message exchange fails.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>15.3.9. Receipt of Reply message in response to a =
Decline message</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp; Upon receipt of a valid Reply message, =
the client can consider the</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp; Decline event successful.</FONT>
</P>

<P><FONT SIZE=3D2>[...]</FONT>
</P>
<BR>

<P><FONT =
SIZE=3D2>_______________________________________________</FONT>
<BR><FONT SIZE=3D2>dhcwg mailing list</FONT>
<BR><FONT SIZE=3D2>dhcwg@ietf.org</FONT>
<BR><FONT SIZE=3D2><A =
HREF=3D"http://www1.ietf.org/mailman/listinfo/dhcwg" =
TARGET=3D"_blank">http://www1.ietf.org/mailman/listinfo/dhcwg</A></FONT>=

</P>

</BODY>
</HTML>
------_=_NextPart_001_01C13722.B5E8E780--


_______________________________________________
dhcwg mailing list
dhcwg@ietf.org
http://www1.ietf.org/mailman/listinfo/dhcwg

