public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [ewg] rping is not resolving ipv6 addresses
       [not found]     ` <1255114672.3533.8.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
@ 2009-10-09 20:53       ` Or Gerlitz
       [not found]         ` <15ddcffd0910091353w51bddc60w8452ca107de296fb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Or Gerlitz @ 2009-10-09 20:53 UTC (permalink / raw)
  To: David J. Wilder
  Cc: Roland Dreier, sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	wilder-r/Jw6+rmf7HQT0dZR+AlfA, linux-rdma

David J. Wilder <dwilder-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> wrote:
> I added an option to rping to specify a source address and supply it to

patch?

> rdma_resolve_addr(), but now it is failing rdma_resolve_route().
> $ ./rping -d  -c -v -a fe80::202:c903:1:1925 -i fe80::202:c903:1:28ed
> 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

what does the neighbour info (ip neigh show | grep 1925)  shows after
running rping?
can you do ipoib ping and ping6 to the fe80::202:c903:1:1925 host?

Or.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ewg] rping is not resolving ipv6 addresses
       [not found]         ` <15ddcffd0910091353w51bddc60w8452ca107de296fb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2009-10-09 21:15           ` David J. Wilder
       [not found]             ` <1255122901.3533.20.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: David J. Wilder @ 2009-10-09 21:15 UTC (permalink / raw)
  To: Or Gerlitz
  Cc: Roland Dreier, sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	wilder-r/Jw6+rmf7HQT0dZR+AlfA, linux-rdma


On Fri, 2009-10-09 at 22:53 +0200, Or Gerlitz wrote:
> David J. Wilder <dwilder-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> wrote:
> > I added an option to rping to specify a source address and supply it to
> 
> patch?
> 
> > rdma_resolve_addr(), but now it is failing rdma_resolve_route().
> > $ ./rping -d  -c -v -a fe80::202:c903:1:1925 -i fe80::202:c903:1:28ed
> > 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
> 
> what does the neighbour info (ip neigh show | grep 1925)  shows after
> running rping?

If I run rping without my rping change to add the source address to
rdma_resolve_address(),  ip neigh show gives:
 fe80::202:c903:1:1925 dev eth1  FAILED

Notice that interface is incorrect, it should be ib0. tcpdump showed the
neighbor-discovery sent out the eth0 interface.

Running with my rping change to specify the local-link address of my ib0
interface "ip neigh show" never shows any entry for
fe80::202:c903:1:1925


> can you do ipoib ping and ping6 to the fe80::202:c903:1:1925 host?
> 
> Or.

Yes ping6 will work but I must specify the interface to use:
ping6 fe80::202:c903:1:1925%ib0

Here is the patch to rping to allow the source address to be specified.
I am not sure this is the correct approach to fix this.

--- rping.c.orig	2009-10-08 15:22:29.000000000 -0500
+++ rping.c	2009-10-08 15:29:59.000000000 -0500
@@ -144,6 +144,7 @@ struct rping_cb {
 	sem_t sem;
 
 	struct sockaddr_storage sin;
+	struct sockaddr_storage src;
 	uint16_t port;			/* dst port in NBO */
 	int verbose;			/* verbose logging */
 	int count;			/* ping count */
@@ -1003,7 +1004,7 @@ static int rping_bind_client(struct rpin
 
 	DEBUG_LOG("rping_bind_client: about to call rdma_resolve_addr\n");
 
-	ret = rdma_resolve_addr(cb->cm_id, NULL, (struct sockaddr *) &cb->sin, 2000);
+	ret = rdma_resolve_addr(cb->cm_id, &cb->src, (struct sockaddr *) &cb->sin, 2000);
 	if (ret) {
 		fprintf(stderr, "rdma_resolve_addr error %d\n", ret);
 		return ret;
@@ -1131,11 +1132,14 @@ int main(int argc, char *argv[])
 	sem_init(&cb->sem, 0, 0);
 
 	opterr = 0;
-	while ((op=getopt(argc, argv, "a:Pp:C:S:t:scvVd")) != -1) {
+	while ((op=getopt(argc, argv, "a:i:Pp:C:S:t:scvVd")) != -1) {
 		switch (op) {
 		case 'a':
 			ret = get_addr(optarg, (struct sockaddr *) &cb->sin);
 			break;
+		case 'i':
+			ret = get_addr(optarg, (struct sockaddr *) &cb->src);
+			break;
 		case 'P':
 			persistent_server = 1;
 			break;


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ewg] rping is not resolving ipv6 addresses
       [not found]             ` <1255122901.3533.20.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
@ 2009-10-09 21:22               ` Or Gerlitz
  2009-10-09 22:46               ` Jason Gunthorpe
  1 sibling, 0 replies; 9+ messages in thread
From: Or Gerlitz @ 2009-10-09 21:22 UTC (permalink / raw)
  To: David J. Wilder
  Cc: Roland Dreier, sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	wilder-r/Jw6+rmf7HQT0dZR+AlfA, linux-rdma

David J. Wilder <dwilder-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> wrote:

> If I run rping without my rping change to add the source address to
> rdma_resolve_address(),  ip neigh show gives:  fe80::202:c903:1:1925 dev eth1  FAILED
> Notice that interface is incorrect, it should be ib0. tcpdump showed the
> neighbor-discovery sent out the eth0 interface.

yes, this is as of what Roland explained.


> Running with my rping change to specify the local-link address of my ib0
> interface "ip neigh show" never shows any entry for  fe80::202:c903:1:1925

mmm... weird, run your rping with tcp dump in another screen and see
if ND takes place

> ping6 will work but I must specify the interface to use: ping6 fe80::202:c903:1:1925%ib0

after the tcpdump experiment, run ping6 and immediatly following that
or in parallel on another window run rping
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ewg] rping is not resolving ipv6 addresses
       [not found]             ` <1255122901.3533.20.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
  2009-10-09 21:22               ` Or Gerlitz
@ 2009-10-09 22:46               ` Jason Gunthorpe
       [not found]                 ` <20091009224604.GG5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  1 sibling, 1 reply; 9+ messages in thread
From: Jason Gunthorpe @ 2009-10-09 22:46 UTC (permalink / raw)
  To: David J. Wilder
  Cc: Or Gerlitz, Roland Dreier, sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	wilder-r/Jw6+rmf7HQT0dZR+AlfA, linux-rdma

On Fri, Oct 09, 2009 at 02:15:01PM -0700, David J. Wilder wrote:

> Yes ping6 will work but I must specify the interface to use:
> ping6 fe80::202:c903:1:1925%ib0
> 
> Here is the patch to rping to allow the source address to be specified.
> I am not sure this is the correct approach to fix this.

It is not, IPv6 link local addresses must be scoped. rping is
parsing the address with getaddrinfo, that does correctly set the
sin6_scope_id value in the sockaddr.

rdma_resolve_addr (and likely the underlying kernel component) must
respect this when dealing with link local scope addresses.

rmda_resolve_addr should fail if a link local IPv6 address is provided
without scope, like the normal IP stack:

connect(3, {sa_family=AF_INET6, sin6_port=htons(1025), inet_pton(AF_INET6, "fe80::202:c903:1:1925", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINVAL (Invalid argument)

So this is two bugs in the rdma cm, rping is correct as is..

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [ewg] rping is not resolving ipv6 addresses
       [not found]                 ` <20091009224604.GG5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
@ 2009-10-09 23:02                   ` Sean Hefty
       [not found]                     ` <0AA9B9870A0545E6BCCF3A5EF4BAB34E-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
  2009-10-12 17:52                   ` [ewg] " David J. Wilder
  1 sibling, 1 reply; 9+ messages in thread
From: Sean Hefty @ 2009-10-09 23:02 UTC (permalink / raw)
  To: 'Jason Gunthorpe', David J. Wilder
  Cc: Or Gerlitz, Roland Dreier, wilder-r/Jw6+rmf7HQT0dZR+AlfA,
	linux-rdma

>rdma_resolve_addr (and likely the underlying kernel component) must
>respect this when dealing with link local scope addresses.
>
>rmda_resolve_addr should fail if a link local IPv6 address is provided
>without scope, like the normal IP stack:

The rdma cm was never fully coded or tested for ipv6 support.

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: rping is not resolving ipv6 addresses
       [not found]                     ` <0AA9B9870A0545E6BCCF3A5EF4BAB34E-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
@ 2009-10-11  7:29                       ` Or Gerlitz
       [not found]                         ` <4AD18944.1040404-hKgKHo2Ms0FWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 9+ messages in thread
From: Or Gerlitz @ 2009-10-11  7:29 UTC (permalink / raw)
  To: Sean Hefty, 'Jason Gunthorpe'
  Cc: David J. Wilder, Or Gerlitz, Roland Dreier, linux-rdma,
	Aleksey Senin

Sean Hefty wrote:
> The rdma cm was never fully coded or tested for ipv6 support.

Sean, even if not fully coded/tested, some work has been done, e.g commits 38617c64 "RDMA/addr: Add support for translating IPv6 addresses" and 1f5175ad "RDMA/cma: Add IPv6 support". I suggest we'll try to see what does it take to make this better or even fully support ipv6.

Jason, can you restate what are the two problems you saw from David's reports? the 1st was related to scope in link-local addresses, and what's the 2nd?

Or.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: rping is not resolving ipv6 addresses
       [not found]                         ` <4AD18944.1040404-hKgKHo2Ms0FWk0Htik3J/w@public.gmane.org>
@ 2009-10-11 19:52                           ` Jason Gunthorpe
  0 siblings, 0 replies; 9+ messages in thread
From: Jason Gunthorpe @ 2009-10-11 19:52 UTC (permalink / raw)
  To: Or Gerlitz
  Cc: Sean Hefty, David J. Wilder, Or Gerlitz, Roland Dreier,
	linux-rdma, Aleksey Senin

On Sun, Oct 11, 2009 at 09:29:08AM +0200, Or Gerlitz wrote:
> Sean Hefty wrote:
> > The rdma cm was never fully coded or tested for ipv6 support.
 
> Sean, even if not fully coded/tested, some work has been done, e.g
> commits 38617c64 "RDMA/addr: Add support for translating IPv6
> addresses" and 1f5175ad "RDMA/cma: Add IPv6 support". I suggest
> we'll try to see what does it take to make this better or even fully
> support ipv6.

Or is right, these are kernel bugs, if nobody is able to work on them
then I think we all have to accept that these parts of the OFA stack
are unfinished and unmaintained - and see if that can be delt with.

> Jason, can you restate what are the two problems you saw from
> David's reports? the 1st was related to scope in link-local
> addresses, and what's the 2nd?

The kernel must not accept a link local address with 0 scope id

When using link local addresses the kernel must bind to the interface
index in the scope id.

The scope is ignored for other addresses scopes.

The rules will be more complex if a source and dest are specified, in
that case the scopes must match.

This is the same basic problem as the other issues regarding ND and
route resolution, the RDMA CM does not follow the same procedures as
TCP does, and the variations produce bugs.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ewg] rping is not resolving ipv6 addresses
       [not found]                 ` <20091009224604.GG5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
  2009-10-09 23:02                   ` Sean Hefty
@ 2009-10-12 17:52                   ` David J. Wilder
       [not found]                     ` <1255369979.29677.7.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
  1 sibling, 1 reply; 9+ messages in thread
From: David J. Wilder @ 2009-10-12 17:52 UTC (permalink / raw)
  To: Jason Gunthorpe, Or Gerlitz, Roland Dreier,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w, wilder-r/Jw6+rmf7HQT0dZR+AlfA,
	linux-rdma <linux-rdm>


On Fri, 2009-10-09 at 16:46 -0600, Jason Gunthorpe wrote:
> On Fri, Oct 09, 2009 at 02:15:01PM -0700, David J. Wilder wrote:
> 
> > Yes ping6 will work but I must specify the interface to use:
> > ping6 fe80::202:c903:1:1925%ib0
> > 
> > Here is the patch to rping to allow the source address to be specified.
> > I am not sure this is the correct approach to fix this.
> 
> It is not, IPv6 link local addresses must be scoped. rping is
> parsing the address with getaddrinfo, that does correctly set the
> sin6_scope_id value in the sockaddr.

ping6 is scoping the address (setting sin6_scope_id) by hand. So rping
should do the same thing.

> 
> rdma_resolve_addr (and likely the underlying kernel component) must
> respect this when dealing with link local scope addresses.
> 
> rmda_resolve_addr should fail if a link local IPv6 address is provided
> without scope, like the normal IP stack:
> 
> connect(3, {sa_family=AF_INET6, sin6_port=htons(1025), inet_pton(AF_INET6, "fe80::202:c903:1:1925", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 EINVAL (Invalid argument)
> 
> So this is two bugs in the rdma cm, rping is correct as is..

It may be correct, but not functional with link-local address.

> 
> Jason

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [ewg] rping is not resolving ipv6 addresses
       [not found]                     ` <1255369979.29677.7.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
@ 2009-10-12 19:47                       ` Jason Gunthorpe
  0 siblings, 0 replies; 9+ messages in thread
From: Jason Gunthorpe @ 2009-10-12 19:47 UTC (permalink / raw)
  To: David J. Wilder; +Cc: linux-rdma

On Mon, Oct 12, 2009 at 10:52:59AM -0700, David J. Wilder wrote:

> > It is not, IPv6 link local addresses must be scoped. rping is
> > parsing the address with getaddrinfo, that does correctly set the
> > sin6_scope_id value in the sockaddr.
> 
> ping6 is scoping the address (setting sin6_scope_id) by hand. So rping
> should do the same thing.

getaddrinfo already sets sin6_scope_id. Newish iputils ping6 also uses
getaddrinfo and doesn't touch the sin6_scope_id except in some
specialized cases.

> > So this is two bugs in the rdma cm, rping is correct as is..
> 
> It may be correct, but not functional with link-local address.

Like I said, the RDMA CM kernel component has the bugs, not rping..

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-10-12 19:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1254957121.23471.17.camel@wilder.ibm.com>
     [not found] ` <adavdiqn63u.fsf@cisco.com>
     [not found]   ` <1255114672.3533.8.camel@wilder.ibm.com>
     [not found]     ` <1255114672.3533.8.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-09 20:53       ` [ewg] rping is not resolving ipv6 addresses Or Gerlitz
     [not found]         ` <15ddcffd0910091353w51bddc60w8452ca107de296fb-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-10-09 21:15           ` David J. Wilder
     [not found]             ` <1255122901.3533.20.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-09 21:22               ` Or Gerlitz
2009-10-09 22:46               ` Jason Gunthorpe
     [not found]                 ` <20091009224604.GG5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-09 23:02                   ` Sean Hefty
     [not found]                     ` <0AA9B9870A0545E6BCCF3A5EF4BAB34E-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-11  7:29                       ` Or Gerlitz
     [not found]                         ` <4AD18944.1040404-hKgKHo2Ms0FWk0Htik3J/w@public.gmane.org>
2009-10-11 19:52                           ` Jason Gunthorpe
2009-10-12 17:52                   ` [ewg] " David J. Wilder
     [not found]                     ` <1255369979.29677.7.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-12 19:47                       ` Jason Gunthorpe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox