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

_______________________________________________
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