Hi, yesterday I felt impelled to create a new ORTE oob component: tcp6.
I was able to either compile the library with IPv4 or IPv6 support, but not with both (so to say: two different ompi installations or at least two different DSO versions). As far as I can see, many functions use mca_oob_tcp_component.tcp_listen_sd. Unfortunately, as I am not allowed to use v4mapped addresses (not supported by the Windows IPv6 stack, disabled by default on *BSD), this socket is either AF_INET or AF_INET6, but not both (both means AF_INET6 *and* accepting v4mapped addresses). Do you agree to go on with two oob components, tcp and tcp6? There is a lot of duplicated code, but we might refactor this when everything else will be done. On the other hand, this whole procedure might be totally useless: two nodes may exchange IPv4-URIs via IPv6 containing identical RFC1918 networks. One would prefer IPv4 due to less overhead, but with IPv6, these v4-addresses might be at different locations anywhere in the world. In other words: IPv6 must be tried first or mixing with IPv4 cannot be reliable. In this case, a lot of code may be removed and we'll end up with either two installations/DSOs (a mentioned above) or with runtime detection of af_family (i.e. look for global IPv6 addresses and iff found, disable IPv4 completely) What do you think - which way is best? Use cases? -- mail: a...@thur.de http://adi.thur.de PGP: v2-key via keyserver Was du tun willst, tue ganz! Oder halb. Oder laß es bleiben.