[ewg] rping is not resolving ipv6 addresses
David J. Wilder
dwilder at us.ibm.com
Fri Oct 9 11:57:51 PDT 2009
On Wed, 2009-10-07 at 16:20 -0700, Roland Dreier wrote:
> > 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)
I added an option to rping to specify a source address and supply it to
rdma_resolve_addr(), but now it is failing rdma_resolve_route().
Am I going in the right direction?
$ ./rping -d -c -v -a fe80::202:c903:1:1925 -i fe80::202:c903:1:28ed
client
verbose
created cm_id 0x100213d0
rping_run_client: about to bind
rping_bind_client: about to call rdma_resolve_addr
rping_bind_client: about to sem_wait
cma_event type RDMA_CM_EVENT_ADDR_RESOLVED cma_id 0x100213d0 (parent)
cma_event type RDMA_CM_EVENT_ROUTE_ERROR cma_id 0x100213d0 (parent)
cma event RDMA_CM_EVENT_ROUTE_ERROR, error -22
waiting for addr/route resolution state 3
destroy cm_id 0x100213d0
More information about the ewg
mailing list