On Sun, Nov 08, 2009 at 08:25:55AM +0200, Or Gerlitz wrote:
> >ACM is intended to be a service that's used by the librdmacm to resolve
> >address mappings and routes. Trying to have ACM use the librdmacm ends up
> >with a circular dependency. That's the part I'm trying to avoid.
>
> fail-enough, I believe that my suggestion is doable also without
> circular dependency, e.g as you indicated below or with a fairly small
> enhancement of librdmacm, see next
The entire point of the rdma_getaddrinfo + AF_IB is to avoid hacking
up librdmacm for every address lookup/cache scheme someone invents.
The desired flow would be:
rdma_getaddrinfo("User-Specified-Host-String","User-Specified-Port-String",
&hints,&res);
// Server flow (hints.af_flags |= AI_PASSIVE)
rdma_bind(res[0].bind_addr);
rmda_listen(res[0].listen_addr);
// Client Flow
rdma_bind(res[0].bind_addr); // Optional
rdma_resolve_addr2(res[0].bind_addr,res[0].dest_addr,res[0].extra_info);
And under rdma_getaddrinfo we could have any number of modules, like
glibc does.
Well written apps should already be using normal getaddrinfo, so we
can design an upgrade to rdma_getaddrinfo to be very minor, source
wise. Un upgraded apps don't get the new functionality.
Jason
--
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