From Luis Roalter on ros-users
We are happy to announce our current status on enabling IPv6 on ROS Nodes. It is still beta and in progress as part of a Diploma Thesis in our research group.
For questions please use email@example.com to directly contact us; or just use this mailing list.
See also http://ros.org/wiki/ros_comm6
With ros_comm6 we are introducing an IPv6 enabled variant of the ros_comm stack.
It features an IPv6 enabled master as well as IPv6 enabled client libraries for C++ and Python. The roswtf utility has also been modified to support IPv6.
You can find the code for the stack at:
The IPv6 features of the stack are enabled by setting the environment variable ROS_IPv6 to 'on'. The master then starts to listen on IPv4 and IPv6 addresses and nodes try to connect using IPv6. Nodes using IPv4 will still be able to connect to servers and publishers using IPv6.
IPv6 capable subscribers are currently not able to connect to publishers using IPv4, but is on our TODO list. (Trying to connect to all available addresses, until a successful connection can be made)
To use the stack a few steps have to be performed (it is assumed that you build ROS from source):
1) Replace your 'ros_comm/' directory in 'ros-underlay/' with the 'ros_comm6/' directory from the repository.
2) Remove your ROS installation from '/opt/ros/fuerte'. The reason for this is that the includes from the original ros_comm stack confuse the build system. 3) Build and install ROS again. 4) Check '/etc/hosts'. Make sure that 'localhost' and your hostname also point to '::1'. 5) Add 'export ROS_IPv6=on' to your .bashrc or other startup scripts.
The code is currently tested using Linux. Your millage on Windows or other Unix distributions might vary. This especially affects the dual stack behavior. (The IPV6_V6ONLY socket option is currently not modified)
We have tested the stack in a small test environment at our lab. Yet most of the code is probably untested, as it handles a lot of corner cases and configuration parameters. If you run into any problems using the stack please contact us or send us a patch.