Subject: RE: [dhcwg] Changes to remove "client-link-local-address" from th e DHCPv6 header

From: "Bernie Volz (EUD)" <[email-masked]>
Date: Thu, 30 Aug 2001 10:36:57 -0500

Just to be clear, there are three pieces of information:

1. The address used to communicate with the relay.
2. The link on which the client's packet was received.
3. The prefix to be used for address assignment for the client.

I think 1 is easy and it should just be the IPv6 source address of the Relay-Forw.

In many cases 2 and 3 are the same but they need not be. I would suggest we solve
this by doing the following:

For 3, the relay should send a prefix and prefix-length.

For 2, the relay can either use 3 or provide some other means of identifying this
information. It may not be an address - it could just be an interface id or some
other opaque info. So, I suggest that for 2, we simply have an "Interface-ID" option
which is whatever the relay wants it to be. The server should treat it as opaque
and simply echo it back to the relay. If the relay doesn't need it (because the
info in (3) is sufficient), it need not provide this option.

Relay-Interface-ID Option:

	2-byte option id
	2-byte option length
	data - interface ID - whatever the relay wants

For example, a relay could simply send 1 byte of data which is the interface number.
Or, it could send 16 bytes to represent an address of the interface.

- Bernie

-----Original Message-----
From: Ralph Droms [mailto:[email-masked]]
Sent: Thursday, August 30, 2001 10:58 AM
To: [email-masked]
Subject: Re: [dhcwg] Changes to remove "client-link-local-address" from
the DHCPv6 header 

At 10:36 AM 8/30/2001 -0400, Ted Lemon wrote:
>> I think the explicit specification of a relay-address is needed in cases
>> where either the relay has no global address on the proper interface (and
>> thus needs to indicate a prefix-only address, which should work just fine),
>> or where specifying the source address may complicate the packet's route out
>> of the relay (this is speculation).  If a relay must detect one of these
>> conditions, then it complicates the relay, or encourages relay authors to
>> opt for the safer solution and always use the option (in which case it isn't
>> optional in a practical sense).
>
>I think the DHCP server should be using the prefix that the relay
>reports when doing address assignments, not the IP address that the
>relay reports.   Maybe I'm missing something here - are we back to
>overloading these two functions?
>
>                               _MelloN_

Suppose the field name and definition are changed as in the figure below,
and:

* The server chooses an address for the client
  based on the link-prefix (details TBD; could
  use 0s to indicate prefix length or include
  explicit prefix length or ???)
* The server sends the Relay-reply message to 
  the source address in the IP header of the
  Relay-forward message
* The relay forwards the Reply message to the
  client on the link identified by the
  link-prefix

This proposal still overloads the identification of the link
on which the relay forward the Reply to the client with the
selection of an address for the client by the server.  We
could either add a separate field for specifying a prefix
for address selection or define an option (like the DHCPv4
subnet selection option).  I would be inclined to define
an option that might be used by either a client or a
relay (or both?). 

- Ralph

=====
9.1. Relay-forward message

      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   |                                               |
     +-+-+-+-+-+-+-+-+                                               |
     |                          link-prefix                          |
     |                                                               |
     |                                                               |
     |               |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
     +-+-+-+-+-+-+-+-+                                               |
     |                                                               |
     |                     client-return-address                     |
     |                                                               |
     |               |-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
     +-+-+-+-+-+-+-+-+                                               |
     .                                                               .
     .            options (variable number and length)   ....        .
     |                                                               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      msg-type                    RELAY-FORW

      link-prefix                 A prefix assigned to the link from
                                  which the client message was received.

      client-return-address       The source address from the IP
                                  datagram in which the message from the
                                  client was received by the relay agent

      options                     MUST include a "Client message
                                  option"; see section 18.7.

_______________________________________________
dhcwg mailing list
[email-masked]
http://www1.ietf.org/mailman/listinfo/dhcwg

---

From: Ted Lemon <[email-masked]>
Date: Thu, 30 Aug 2001 12:22:08 -0400

> For 2, the relay can either use 3 or provide some other means of
> identifying this information. It may not be an address - it could
> just be an interface id or some other opaque info. So, I suggest
> that for 2, we simply have an "Interface-ID" option which is
> whatever the relay wants it to be. The server should treat it as
> opaque and simply echo it back to the relay. If the relay doesn't
> need it (because the info in (3) is sufficient), it need not provide
> this option.

We've already got two options that handle this - the circuit ID and
the remote ID.   Do we need a third, or is the circuit ID already
serving this purpose?

			       _MelloN_