[openib-general] [PATCH] IPoIB: Add API to retrieve ib device, port, and pkey

Sean Hefty mshefty at ichips.intel.com
Thu Oct 6 12:16:20 PDT 2005


Hal Rosenstock wrote:
>>The CMA maintains a list of devices.  The address translation code takes an IP 
>>address and returns the corresponding GID.  The CMA looks up the GID against its 
>>list of devices.  All synchronization for device removal is handled by the CMA.
> 
> The only way I see is that a user needs to register as a client and
> track device removals. Is there another way ?

The CMA will attempt to handle device removal internally.  The basic operation 
is this:

id = rdma_create_id();
rdma_resolve_addr(id...);	/* associates a device with the ID */
/* wait for resolution to complete */
ib_alloc_pd(id->device...);
ib_create_cq(id->device...);
ib_create_qp(id->device...);
rdma_connect(id);

If a device is removed, the user will receive a callback with DEVICE_REMOVAL. 
The user must free all resources created using id->device, and destroy the id. 
The removal is blocked until the id is destroyed.

>>Right now, the CMA issues a path record request based on the SGID/DGID only.  It 
>>would be fairly easy to add the PKey to the request once the address translation 
>>code returns it.
> 
> How would the address translation code get it ?

Right now, it doesn't.  But see Roland's message.  It could be read directly 
from the broadcast address.

- Sean




More information about the general mailing list