On Thu, 2009-10-15 at 15:32 -0600, Jason Gunthorpe wrote: > > The actual fixing to the code is not hard, remove rdma_translate_ip, > addr_resolve_local, split addr_resolve_remote into a part to resolve > the route and a part that does the arp/nd. Make the route resolve part > work almost exactly like addr4_resolve_remote (noting that the v6 > version is wrong, since is doesn't respect unset source addres, > another bug). Call rdma_copy_addr based on the rt->idev->dev (or > should it be odev??). Do the ARP. > > The pain is in retesting everything :| > > Jason
There is the wrinkle in this plan. If you pass ip6_route_output() your own link-local address (scoped or not) it returns a neighbor entry bound to the loop back device. $ ip route get fe80::202:c903:1:28ed oif ib0 local fe80::202:c903:1:28ed from :: via :: dev lo table local proto none src fe80::202:c903:1:28ed metric 0 mtu 16436 advmss 16376 hoplimit 4294967295 Thats not going to work as lo has no RDMA support. I suspect this is why addr_resolve_local() was added in the first place :) I will post a patch with our first solution and include the fix to addr_resolve_local(). Dave. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
