Subject: Change to 'seconds' field in DHCP message header

From: Ralph Droms <[email-masked]>
Date: Thu, 23 Aug 2001 09:55:04 -0400

This change eliminates the 'seconds' field from the message header and
replaces it with the "Elapsed Time" option.  The transaction-ID is now
24 bits.

The "Elapsed Time" option carries a 16 bit integer, giving the number
of seconds elapsed since the client began its current transaction.
The number of seconds is expressed in hundredths of a second (10^-2
seconds). The "Elapsed Time" option can indicate times in the range of
0 to 655 seconds, in increments of 10^-2 seconds.

This change address the following issue from the London WG meeting:

* Add 'secs' field to fixed header

  WG consensus: if client retransmits, MUST send option called
  "milliseconds"

Affected text:
--------------

8. Message Formats

   Each DHCP message has an identical fixed format header; some messages
   also allow a variable format area for options.  Not all fields in
   the header are used in every message.  In this section, every field
   is described for every message and fields that are not used in a
   message are marked as "unused".  All unused fields in a message MUST
   be transmitted as zeroes and ignored by the receiver of the message.

   The DHCP message header:
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    msg-type   |               transaction-ID                  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     |                   client-link-local-address                   |
     |                          (16 octets)                          |
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                                                               |
     |                         server-address                        |
     |                          (16 octets)                          |
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     .                                                               .
     .                            options                            .
     |                          (variable)                           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

18.6. Elapsed Time

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      OPTION_ELAPSED_TIME      |           option_len          |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |          elapsed time         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      option-code   OPTION_ELAPSED_TIME (4)

      option-len    MUST be 2

      option-data   The amount of time since the client began its
                    current DHCP transaction.  This time is expressed in
                    hundredths of a second (10-2seconds):

   If a client retransmits a DHCP message, it MUST include an Elapsed
   Time option in the message to indicate how long the client has been
   trying to complete a DHCP transaction.  Servers MAY use the data value
   in this option as input to policy controlling how a server responds
   to a client message.

---

From: Ted Lemon <[email-masked]>
Date: Thu, 23 Aug 2001 12:07:35 -0400

I would change "Servers MAY use the data value" to "Servers and Relay
agents MAY use the data value", since it is presently the case that
some relay agents use the secs field in DHCPv4, and this seems like a
legitimate thing to do.

			       _MelloN_