Subject: Re: Addresses and other parameters in Advertise and Solicit

From: Ted Lemon <[email-masked]>
Date: Tue, 31 Jul 2001 21:53:06 -0700

> I don't understand your argument. A broken server is just that,
> broken. What it will and will not allow a client to do is not an
> issue - fix the server.

In general, it is good to account for accidental or malicious breakage
when designing protocols.  You can't always easily eliminate a broken
server, so it's good if the client has a chance to function even when
there is a broken server present.

> In fact, I believe having the actual assignment of addresses
> deferred until the Reply is received is far more likely to result in
> non-broken servers. A server, in the Advertise, just needs to tell
> the client that it is willing to assign address.

I'm not worried about preventing broken servers.  I'm worried about
the client being unable to deal with broken servers.

> - Is Advertise a contract to give the client those addresses?

No more so than a DHCPOFFER is.

> - And, if it is a contract then MAY, SHOULD, or MUST the client
> perform DAD before doing the Request. And, when can a client start
> using an address? After Advertise?  After Reply?

After Reply, to both.   Just like DHCPACK.

> - In DHCPv4, other servers listen to the broadcast of the
> DHCPREQUEST to learn that their offer has been DECLINED (see Section
> 3.1). If we do what you and Jim propose, do we need this?

No.

> - In DHCPv4, the address is not checked until *AFTER* the
> DHCPREQUEST/DHCPACK sequence > and a DHCPDECLINE is not valid
> until after the REQUEST/ACK sequence.

Right.

> - In DHCPv4, the offered address is included in the DHCPREQUEST to
> the server. If we're going to follow that convention, we need the
> client to send the IA option it received from the server in the
> REQUEST?

Right.

> - In DHCPv4, the server always has the ability to DHCPNACK the
> address received in the DHCPREQUEST. We've had a dicussion about
> NACKs before. But we would need to have a mechanism for the server
> to tell the client, gee sorry, that address isn't available
> now. Perhaps the mechanism is simply for the server not to include
> that address in the IA in the Reply. 

Right, there's an error message for this.

> But again, this behavoir would
> not be needed if the addresses in the Advertise are just
> informational (I will assign you addresses similar to these).

No.  "I will assign you this address unless something happens to
prevent me from doing so."

			       _MelloN_