(usagi-users 04093) IPv6 CARE: monitor execution of programs and assess their IPv6 compliance

Etienne DublĂ© <[email protected]> Mon, 30 Mar 2009 17:40:37 +0200
Newsgroups gmane.linux.ipv6.usagi.users
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------080000050504050609050109
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

Hello all,
For those interested in IPv6 migration of networking applications, I 
would like to point you to this open source linux tool at 
http://sourceforge.net/projects/ipv6-care 
<https://sourceforge.net/projects/ipv6-care>
It is called "IPv6 CARE": "IPv6 Compliance Automatic Runtime Experiment".
I developed it as part of the EGEE project (http://www.eu-egee.org/), in 
order to ease the transition to IPv6 of the grid middleware called "gLite".

Here is an example of usage.
We want to know if a version of telnet is IPv6 compliant or not. We 
prefix the command and run it this way:

$ *ipv6_care check -v* telnet localhost 9876
IPV6 CARE detected: inet_addr() with [ cp=localhost ]
IPV6 CARE detected: gethostbyname() with [ name=localhost ]
IPV6 CARE detected: inet_ntoa() with [ in=127.0.0.1 ]
Trying 127.0.0.1...
IPV6 CARE detected: socket() with [ domain=AF_INET type=SOCK_STREAM 
protocol=ip ]
IPV6 CARE detected: connect() with [ socket=3 address.ip=127.0.0.1 
address.port=9876 ]
telnet: Unable to connect to remote host: Connection refused
------------------------------------------------------------------------------
IPv6 diagnosis for 'telnet localhost 9876' was generated in: 
/tmp/ipv6_diagnosis/telnet/by_pid/pid_6541
------------------------------------------------------------------------------
$

We can easily see that this version of telnet is not IPv6 compliant 
because some of the function calls detected are not IPv6 compliant (for 
ex. gethostbyname()).
If needed, more information (location of those function calls in the 
source code, tip about how to avoid them etc.) has been generated in the 
reported directory (in this case 
/tmp/ipv6_diagnosis/telnet/by_pid/pid_6541).

The documentation is also available on the sourceforge download page of 
the tool.
Feel free to send me any question, comment, or improvement suggestion 
you may have.

Thank you,
Etienne Duble
CNRS / UREC
EGEE III SA2


--------------080000050504050609050109
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; CHARSET=UTF-8">
  <meta name="GENERATOR" content="GtkHTML/3.24.1.1">
</head>
<body bgcolor="#ffffff" text="#000000">
Hello all,<br>
For those interested in IPv6 migration of networking applications, I
would like to point you to this open source linux tool at <a
 href="https://sourceforge.net/projects/ipv6-care">http://sourceforge.net/projects/ipv6-care</a><br>
It is called "IPv6 CARE": "IPv6 Compliance Automatic Runtime
Experiment". <br>
I developed it as part of the EGEE project (<a
 href="http://www.eu-egee.org/">http://www.eu-egee.org/</a>), in order
to ease the transition to IPv6 of the grid middleware called "gLite".<br>
<br>
Here is an example of usage. <br>
We want to know if a version of telnet is IPv6 compliant or not. We
prefix the command and run it this way:<br>
<br>
<font color="#003366">$</font> <b>ipv6_care check -v</b> telnet
localhost 9876<br>
<font color="#008000">IPV6 CARE detected:</font> <font color="#003366">inet_addr()
with [ cp=localhost ]</font><br>
<font color="#008000">IPV6 CARE detected:</font> <font color="#003366">gethostbyname()
with [ name=localhost ]</font><br>
<font color="#008000">IPV6 CARE detected:</font> <font color="#003366">inet_ntoa()
with [ in=127.0.0.1 ]</font><br>
Trying 127.0.0.1...<br>
<font color="#008000">IPV6 CARE detected:</font> <font color="#003366">socket()
with [ domain=AF_INET type=SOCK_STREAM protocol=ip ]</font><br>
<font color="#008000">IPV6 CARE detected:</font> <font color="#003366">connect()
with [ socket=3 address.ip=127.0.0.1 address.port=9876 ]</font><br>
telnet: Unable to connect to remote host: Connection refused<br>
<font color="#008000">------------------------------------------------------------------------------</font><br>
<font color="#008000">IPv6 diagnosis for 'telnet localhost 9876' was
generated in: /tmp/ipv6_diagnosis/telnet/by_pid/pid_6541</font><br>
<font color="#008000">------------------------------------------------------------------------------</font><br>
<font color="#003366">$</font><br>
<br>
We can easily see that this version of telnet is not IPv6 compliant
because some of the function calls detected are not IPv6 compliant (for
ex. gethostbyname()).<br>
If needed, more information (location of those function calls in the
source code, tip about how to avoid them etc.) has been generated in
the reported directory (in this case <font color="#008000">/tmp/ipv6_diagnosis/telnet/by_pid/pid_6541</font>).<br>
<br>
The documentation is also available on the sourceforge download page of
the tool.<br>
Feel free to send me any question, comment, or improvement suggestion
you may have.<br>
<br>
Thank you,<br>
Etienne Duble<br>
CNRS / UREC<br>
EGEE III SA2<br>
<br>
</body>
</html>

--------------080000050504050609050109--