> with TCP SYN sent from outside, it is not an existing communication.
> however, we have no choice on picking other addresses (since TCP
> requires us to swap the src/dst address).
A TCP SYN from the outside isn't the only interesting case.
Another interesting case is when an application (over TCP or UDP) specifies
the local IP address. Since the stack can't know the reason for the application
explicitly requesting the address it can't reject it. For instance, the
application might request it because that IP address is used for in
higher-level communication and there might be a requirement that the multiple
connections in such a grouping use the same pair of IP addresses.
Thus my take is that the "don't use a deprecated address" only comes into
play when the stack is free to select the local IP address i.e. it
was neither specified in bind(), nor due to receiving a TCP SYN.
This seems to be consistent with the definition in 2462:
communication - any packet exchange among nodes that requires that
the address of each node used in the exchange remain the same
for the duration of the packet exchange. Examples are a TCP
connection or a UDP request- response.
but the last sentence should really say
all packets in a TCP connection
require the same IP addresses - but this does not imply that each new
TCP connection is "new communication" since there might be reasons
that different TCP connections must use the same pair of IP addresses
I think that was the intent when the RFC was written, but the text
might not be crystal clear on this.
Erik
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page: http://playground.sun.com/ipng
FTP archive: ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [EMAIL PROTECTED]
--------------------------------------------------------------------