From: "David J. Wilder" <dwilder-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: Jason Gunthorpe
<jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
Cc: linux-rdma <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
wilder-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org,
ewg-ZwoEplunGu1OwGhvXhtEPSCwEArCW2h5@public.gmane.org
Subject: Re: [PATCH] link-local address fix for rdma_resolve_addr
Date: Thu, 15 Oct 2009 12:27:21 -0700 [thread overview]
Message-ID: <1255634841.5111.40.camel@wilder.ibm.com> (raw)
In-Reply-To: <20091014174017.GM5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
On Wed, 2009-10-14 at 13:09 Jason Gunthorpe wrote:
> So, it tries to match the source addr to the addrs bound to the
> device, which is wrong - that isn't how the ip stack works.
> You can patch this up a little bit by fixing up addr_resolve_local to
> set sin6_scope_ip.
I found the bug in addr_resolve_local(). (more comments below)
--- addr.c.1759 2009-10-13 15:57:48.000000000 -0500
+++ addr.c.ip_local 2009-10-15 14:03:50.000000000 -0500
@@ -390,14 +390,17 @@ static int addr_resolve_local(struct soc
case AF_INET6:
{
struct in6_addr *a;
+ int found = 0;
for_each_netdev(&init_net, dev)
if (ipv6_chk_addr(&init_net,
&((struct sockaddr_in6 *) dst_in)->sin6_addr,
- dev, 1))
+ dev, 1)){
+ found = 1;
break;
+ }
- if (!dev)
+ if (!found)
return -EADDRNOTAVAIL;
a = &((struct sockaddr_in6 *) src_in)->sin6_addr;
@@ -406,6 +409,8 @@ static int addr_resolve_local(struct soc
src_in->sa_family = dst_in->sa_family;
((struct sockaddr_in6 *) src_in)->sin6_addr =
((struct sockaddr_in6 *) dst_in)->sin6_addr;
+ ((struct sockaddr_in6 *) src_in)->sin6_scope_id =
+ ((struct sockaddr_in6 *) dst_in)->sin6_scope_id;
ret = rdma_copy_addr(addr, dev, dev->dev_addr);
} else if (ipv6_addr_loopback(a)) {
ret = rdma_translate_ip(dst_in, addr);
> But really the correct thing to do is to remove addr_resolve_local and
> place the source address into the struct flowi and use the result of
> the route lookup to bind to the source device, and set the source
> address if it is unset.
Sorry I don't get it..
Are you saying that ip6_route_output() will resolve the address even if
it is a link-local address bound to my own interface? Therefor
addr_resolve_local() is not needed.
next prev parent reply other threads:[~2009-10-15 19:27 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-13 22:09 [PATCH] link-local address fix for rdma_resolve_addr David J. Wilder
[not found] ` <1255471781.14513.7.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-13 23:12 ` Jason Gunthorpe
[not found] ` <20091013231234.GK5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-14 16:23 ` David J. Wilder
[not found] ` <1255537437.14513.28.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-14 17:01 ` Jason Gunthorpe
[not found] ` <20091014170155.GL5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-14 17:30 ` David J. Wilder
[not found] ` <1255541405.5111.14.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-14 17:40 ` Jason Gunthorpe
[not found] ` <20091014174017.GM5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-15 19:27 ` David J. Wilder [this message]
[not found] ` <1255634841.5111.40.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-15 21:32 ` Jason Gunthorpe
[not found] ` <20091015213205.GV5191-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-16 18:54 ` David J. Wilder
[not found] ` <1255719280.14675.30.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-16 19:28 ` Jason Gunthorpe
2009-10-14 19:33 ` David J. Wilder
[not found] ` <1255548798.5111.24.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-14 20:09 ` Jason Gunthorpe
-- strict thread matches above, loose matches on Subject: below --
2009-10-19 22:47 David J. Wilder
[not found] ` <1255992430.12075.7.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-19 23:43 ` Jason Gunthorpe
[not found] ` <20091019234329.GC9643-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-19 23:47 ` Sean Hefty
[not found] ` <676AB781CD644CC28E1AD4951EA4EEF8-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-20 0:33 ` Jason Gunthorpe
[not found] ` <20091020003344.GA14520-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-21 22:30 ` David J. Wilder
[not found] ` <1256164230.12075.31.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-21 23:08 ` Jason Gunthorpe
[not found] ` <20091021230845.GR14520-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-22 21:12 ` David J. Wilder
[not found] ` <1256245942.12075.46.camel-XfwDJb4SXxnMbYB6QlFGEg@public.gmane.org>
2009-10-22 22:02 ` Sean Hefty
[not found] ` <660D538F30E647F3AE1E5E6C1ACBE882-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-27 18:22 ` David J. Wilder
2009-10-21 23:17 ` Sean Hefty
[not found] ` <9D257695083141E79685CB2B260D7D7C-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-21 23:36 ` Jason Gunthorpe
[not found] ` <20091021233639.GS14520-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-21 23:46 ` Jason Gunthorpe
2009-10-21 23:58 ` Sean Hefty
[not found] ` <BFF5CD71FFA74BF09A2EED5F3319F370-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-22 0:28 ` Jason Gunthorpe
[not found] ` <20091022002846.GU14520-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-22 0:40 ` Sean Hefty
[not found] ` <4803112A5B7A4953B62ABAFD1BBD9881-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-22 1:19 ` Jason Gunthorpe
[not found] ` <20091022011939.GW14520-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-22 5:24 ` Sean Hefty
[not found] ` <60E9443821EE4FFA90448DF5CC1368A8-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-22 6:25 ` Jason Gunthorpe
[not found] ` <20091022062531.GB26003-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-22 6:49 ` Sean Hefty
[not found] ` <B1D32A650C2F400E92AFC4909D8880A0-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-22 16:47 ` Jason Gunthorpe
[not found] ` <20091022164717.GG26003-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-22 17:59 ` Sean Hefty
[not found] ` <A03920DE5BAE4309BAFC1B6471AE928C-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-22 18:22 ` Jason Gunthorpe
[not found] ` <20091022182221.GZ14520-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-22 18:31 ` Sean Hefty
[not found] ` <60293EE44E7243B59C41498F20D558A0-Zpru7NauK7drdx17CPfAsdBPR1lH4CV8@public.gmane.org>
2009-10-22 18:40 ` Jason Gunthorpe
2009-10-25 11:52 ` Or Gerlitz
[not found] ` <4AE43BED.3090405-smomgflXvOZWk0Htik3J/w@public.gmane.org>
2009-10-25 20:03 ` Jason Gunthorpe
[not found] ` <20091025200332.GN26003-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-27 13:01 ` Or Gerlitz
[not found] ` <4AE6EF44.5040004-smomgflXvOZWk0Htik3J/w@public.gmane.org>
2009-10-27 17:14 ` Jason Gunthorpe
[not found] ` <20091027171403.GP26003-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2009-10-28 14:33 ` Or Gerlitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1255634841.5111.40.camel@wilder.ibm.com \
--to=dwilder-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
--cc=ewg-ZwoEplunGu1OwGhvXhtEPSCwEArCW2h5@public.gmane.org \
--cc=jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=wilder-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox