[openib-general] Re: [PATCH] CMA: allow/require bind beforeconnect

Caitlin Bestler caitlinb at broadcom.com
Mon Mar 27 11:50:38 PST 2006


Roland Dreier wrote:
>     Caitlin> From the perspective of any given host, IP addresses are
>     Caitlin> unique across all interface devices. A given connection
>     Caitlin> can therefore be identified by just the 4-tuple, with no
>     Caitlin> need to explicitly state "via this device".
> 
> ??  On my system here:
> 
> # ifconfig
> 
> eth0      Link encap:Ethernet  HWaddr 00:14:C2:3A:AE:36
>           inet addr:172.29.224.10  Bcast:172.29.224.255
>           Mask:255.255.255.0 inet6 addr: fe80::214:c2ff:fe3a:ae36/64
>           Scope:Link UP BROADCAST RUNNING MULTICAST  MTU:1500 
>           Metric:1 RX packets:2709 errors:0 dropped:0 overruns:0
>           frame:0 TX packets:1032 errors:0 dropped:0 overruns:0
>           carrier:0 collisions:0 txqueuelen:1000
>           RX bytes:1147909 (1.0 MiB)  TX bytes:90343 (88.2 KiB)      
> Interrupt:209 
> 
> eth1      Link encap:Ethernet  HWaddr 00:14:C2:3A:AE:37
>           inet addr:172.29.224.10  Bcast:172.29.224.255
>           Mask:255.255.255.0 UP BROADCAST MULTICAST  MTU:1500 
>           Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
>           Interrupt:217

A specific TCP connection is identified by the 4-tuple.
You cannot have the same 4-tuple refer to two different TCP
connections merely because one of them is on a different
device.

The closest thing to an exception are link-local IPv6 addreses,
which are therefore used almost exclusively for discovery.
There are numerous RFC MUSTs related to scope and meaning
of an IP address, it is not just an opaque value that can
be emulated by assigning a value.

The simplest thing to do is to ensure that local_addr:local_port
is unique for the active side without any form of caveat. But
there is no option that the same local_addr:local_port MUST
NOT request more than one active connection to a specific
remote_addr:remote port, no matter how many devices are
involved. The TCP stack on the remote side MUST NOT and
will not interpret the two as distinct connections.





More information about the general mailing list