Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

From: Ralph Castain (rhc_at_[hidden])
Date: 2006-03-31 13:46:26


Hi folks

Sorry to be coming late to the discussion - I'm on travel, so my comments will likely have long time delays in them.

Only one contribution I would like to make. You are welcome to do whatever you like (subject to the usual approval procedure) in the MPI layer (the btl's for example) - my comments only apply to the OpenRTE layer (specifically, the oob tcp component).

>From the run-time perspective, whatever you do *must* support heterogeneous networks of computers that may and may not support IPv6, and may and may not support IPv6-mapped IPv4 addresses. In other words, the solution must support systems including computers that only know IPv4.

I know this may make things more difficult, but OpenRTE has additional requirements on it for other applications as well. We cannot lock ourselves into IPv6-supported systems.

Thanks
Ralph


Christian Kauhaus wrote:
Adrian Knoth <adi@drcomp.erfurt.thur.de>:
  
(I really prefer the v6-mapped-v4 solution with a single
socket, thus eliminating this problem)
    

One little problem here is that it is possible to disable the
IPv6-mapped IPv4 addresses at least under Linux and some BSD variants.
For Linux, have a look at sys.net.ipv6.bindv6only.  Some authors even
recommend to do so for security considerations (for example, Murphy &
Malone in IPv6 Network Administration, O'Reilly 2005). 

So the approach that maximizes the environments where it works out of
the box is this: Call getaddrinfo with PF_UNSPEC and open a socket for
each IP version it returns (usually this means two sockets on
IPv6-enabled hosts, but this may change in the future... who knows?)

If the connection handling code already makes use of one big select
loop, this should not be *too* hard...

  Christian