[openib-general] RDMA Generic Connection Management

Caitlin Bestler caitlinb at broadcom.com
Mon Aug 29 12:44:02 PDT 2005


> > a connect flow will be something like:
> > 
> > - ib_cma_get_device (...) /* get device(1) or device+path(2) */
> > - pd = ib_alloc_pd(...) /* pd allocated in the given device */
> > - qp = ib_cma_create_qp(...) /* qp returned in init state */
> > - ib_post_recv(qp, ...);
> > - ib_cma_connect (qp, dst_addr(1)/path(2), ...);
> > 
> > Now, there are 2 suggestions for the device discovery:
> > 1. get_device returns device and port, according the local routing 
> > tables, synchronously. ib_cma_connect calls the at module 
> for address 
> > resolving (cache handled) before calling the cm_connect.
> > 2. get_device registers an upcall and return in the upcall the data 
> > path to the consumer. In this case caching is done by the consumer.
> 
> What happens if multiple devices can reach the destination address? 
> How will they be enumerated to the consumer?
>  

At the DAT layer the assumption was that multiple paths would
be chosen based upon the Class of Service.

So either the CoS must be passed down, or "get_device" must
return an array of devices with the required info to allow
the DAT Provider to make the determination.

Passing it down sounds simpler to me.
 




More information about the general mailing list