> > 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.
 

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to