Re: QoS in local SA entity

Jason Gunthorpe
2009-11-09T00:56:08Z

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