<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=532533009-18022009>All WinVerbs test 
(client part) require host IP address as a parameter.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=532533009-18022009>We used to use IPv4 
address as it is more comfortable.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=532533009-18022009>But if IPv6 protocol 
is installed, which is default for Win2008, the connection code in the tests 
doesn't work right.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=532533009-18022009>This patch suggest a 
fix, that limiting the usage of host addresses to IPv4 only.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=532533009-18022009>The same limitation 
exists today also in tools\perftests.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Index: 
tests/perftest/rdma_bw/rdma_bw.c<BR>===================================================================<BR>--- 
tests/perftest/rdma_bw/rdma_bw.c (revision 1976)<BR>+++ 
tests/perftest/rdma_bw/rdma_bw.c (working copy)<BR>@@ -215,6 +215,8 
@@<BR>   rdma_ack_cm_event(event);<BR>  } else 
{<BR>   for (t = res; t; t = t->ai_next) 
{<BR>+   if (t->ai_family != 
AF_INET)<BR>+    continue;<BR>    sockfd 
= socket(t->ai_family, 
t->ai_socktype,<BR>        
t->ai_protocol);<BR>    if (sockfd != INVALID_SOCKET) 
{<BR>@@ -382,6 +384,8 
@@<BR>   rdma_ack_cm_event(event); <BR>  } else 
{<BR>   for (t = res; t; t = t->ai_next) 
{<BR>+   if (t->ai_family != 
AF_INET)<BR>+    continue;<BR>    sockfd 
= socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>    if (sockfd != INVALID_SOCKET) 
{<BR>     n = 1;<BR>Index: 
tests/perftest/rdma_lat/rdma_lat.c<BR>===================================================================<BR>--- 
tests/perftest/rdma_lat/rdma_lat.c (revision 1976)<BR>+++ 
tests/perftest/rdma_lat/rdma_lat.c (working copy)<BR>@@ -294,6 +294,8 
@@<BR>   rdma_ack_cm_event(event);<BR>  } else 
{<BR>   for (t = res; t; t = t->ai_next) 
{<BR>+   if (t->ai_family != 
AF_INET)<BR>+    continue;<BR>    sockfd 
= socket(t->ai_family, 
t->ai_socktype,<BR>        
t->ai_protocol);<BR>    if (sockfd != INVALID_SOCKET) 
{<BR>@@ -437,6 +439,8 
@@<BR>   rdma_ack_cm_event(event); <BR>  } else 
{<BR>   for (t = res; t; t = t->ai_next) 
{<BR>+   if (t->ai_family != 
AF_INET)<BR>+    continue;<BR>    sockfd 
= socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>    if (sockfd != INVALID_SOCKET) 
{<BR>     n = 1;<BR>Index: 
tests/perftest/read_bw/read_bw.c<BR>===================================================================<BR>--- 
tests/perftest/read_bw/read_bw.c (revision 1976)<BR>+++ 
tests/perftest/read_bw/read_bw.c (working copy)<BR>@@ -126,6 +126,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -206,6 +208,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
tests/perftest/read_lat/read_lat.c<BR>===================================================================<BR>--- 
tests/perftest/read_lat/read_lat.c (revision 1976)<BR>+++ 
tests/perftest/read_lat/read_lat.c (working copy)<BR>@@ -201,6 +201,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -250,6 +252,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
tests/perftest/send_bw/send_bw.c<BR>===================================================================<BR>--- 
tests/perftest/send_bw/send_bw.c (revision 1976)<BR>+++ 
tests/perftest/send_bw/send_bw.c (working copy)<BR>@@ -142,6 +142,8 
@@<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>   sockfd = socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   if (sockfd != 
INVALID_SOCKET) {<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>     break;<BR>@@ -221,6 +223,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
tests/perftest/send_lat/send_lat.c<BR>===================================================================<BR>--- 
tests/perftest/send_lat/send_lat.c (revision 1976)<BR>+++ 
tests/perftest/send_lat/send_lat.c (working copy)<BR>@@ -212,6 +212,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -261,6 +263,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
tests/perftest/write_bw/write_bw.c<BR>===================================================================<BR>--- 
tests/perftest/write_bw/write_bw.c (revision 1976)<BR>+++ 
tests/perftest/write_bw/write_bw.c (working copy)<BR>@@ -135,6 +135,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -215,6 +217,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
tests/perftest/write_bw_postlist/write_bw_postlist.c<BR>===================================================================<BR>--- 
tests/perftest/write_bw_postlist/write_bw_postlist.c (revision 1976)<BR>+++ 
tests/perftest/write_bw_postlist/write_bw_postlist.c (working copy)<BR>@@ 
-138,6 +138,8 @@<BR>  }<BR> <BR>  for (t = res; t; t = 
t->ai_next) {<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd >= 0) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -218,6 +220,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd >= 0) 
{<BR>    n = 1;<BR>Index: 
tests/perftest/write_lat/write_lat.c<BR>===================================================================<BR>--- 
tests/perftest/write_lat/write_lat.c (revision 1976)<BR>+++ 
tests/perftest/write_lat/write_lat.c (working copy)<BR>@@ -198,6 +198,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -247,6 +249,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
ulp/libibverbs/examples/rc_pingpong/rc_pingpong.c<BR>===================================================================<BR>--- 
ulp/libibverbs/examples/rc_pingpong/rc_pingpong.c (revision 1976)<BR>+++ 
ulp/libibverbs/examples/rc_pingpong/rc_pingpong.c (working copy)<BR>@@ 
-137,6 +137,8 @@<BR>  }<BR> <BR>  for (t = res; t; t = 
t->ai_next) {<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -205,6 +207,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
ulp/libibverbs/examples/srq_pingpong/srq_pingpong.c<BR>===================================================================<BR>--- 
ulp/libibverbs/examples/srq_pingpong/srq_pingpong.c (revision 1976)<BR>+++ 
ulp/libibverbs/examples/srq_pingpong/srq_pingpong.c (working copy)<BR>@@ 
-162,6 +162,8 @@<BR>  }<BR> <BR>  for (t = res; t; t = 
t->ai_next) {<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd >= 0) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -246,6 +248,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd >= 0) 
{<BR>    n = 1;<BR>Index: 
ulp/libibverbs/examples/uc_pingpong/uc_pingpong.c<BR>===================================================================<BR>--- 
ulp/libibverbs/examples/uc_pingpong/uc_pingpong.c (revision 1976)<BR>+++ 
ulp/libibverbs/examples/uc_pingpong/uc_pingpong.c (working copy)<BR>@@ 
-124,6 +124,8 @@<BR>  }<BR> <BR>  for (t = res; t; t = 
t->ai_next) {<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -192,6 +194,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR>Index: 
ulp/libibverbs/examples/ud_pingpong/ud_pingpong.c<BR>===================================================================<BR>--- 
ulp/libibverbs/examples/ud_pingpong/ud_pingpong.c (revision 1976)<BR>+++ 
ulp/libibverbs/examples/ud_pingpong/ud_pingpong.c (working copy)<BR>@@ 
-126,6 +126,8 @@<BR>  }<BR> <BR>  for (t = res; t; t = 
t->ai_next) {<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    if (!connect(sockfd, t->ai_addr, 
t->ai_addrlen))<BR>@@ -193,6 +195,8 
@@<BR>  }<BR> <BR>  for (t = res; t; t = t->ai_next) 
{<BR>+  if (t->ai_family != 
AF_INET)<BR>+   continue;<BR>   sockfd = 
socket(t->ai_family, t->ai_socktype, 
t->ai_protocol);<BR>   if (sockfd != INVALID_SOCKET) 
{<BR>    n = 1;<BR></FONT></DIV></BODY></HTML>