[ewg] rping is not resolving ipv6 addresses

Roland Dreier rdreier at cisco.com
Wed Oct 7 16:20:53 PDT 2009


 > I have been testing rping with ipv6 address on OFED 1.5. I am seeing a
 > problem with ipv6 address resolution. rping is not always sending
 > neighbor solicitation out the correct interface. Running tcpdumps I
 > discovered that the neighbor solicitation is being sent out the first
 > interface that was configured, in my case eth0 and not the ib0
 > interface.
 > 
 > This is the test I am running:
 > 
 > Host A:
 > $ ip address show ib0 | grep inet6
 >     inet6 fe80::202:c903:1:1925/64 scope link
 > 
 > $ rping -s -v -a ::0
 > 
 > Host B:
 > $ rping -c -v -a fe80::202:c903:1:1925
 > 
 > cma event RDMA_CM_EVENT_ADDR_ERROR, error -110
 > waiting for addr/route resolution state 1
 > 
 > 
 > Using tcpdump I verified the neighbor solicitation packets went out the
 > eth0 interface not ib0. If I "ifdown eth0" I see the neighbor
 > solicitation go out ib0 and the rping works. BTW: Ping6 works ok;
 > however, it requires that I specify the interface to use on the command
 > line: $ ping6 fe80::202:c903:1:1925%ib0

I'm not sure how many places in the stack have to be fixed for this, but
for this to work certainly at least rping needs a way to specify which
interface to use.  There is no routing for IPv6 link-local addresses
that says which device to use... a given address with prefix fe80: could
conceivably exist on multiple links (and correspond to different
destinations on each link), and the networking stack has no way to know
which link to use unless you tell it somehow.  (This is why ping6
requires the %ib0 specifier)



More information about the ewg mailing list