[openib-general] OpenIB and OpenRDMA: Convergence on commonRDMA APIs and ULPs for Linux
Sean Hefty
sean.hefty at intel.com
Fri May 27 09:22:01 PDT 2005
>To put a really concrete proposal on the table, I would suggest to
>start by extending the current ib_client registration structure, which
>looks like
>
> struct ib_client {
> char *name;
> void (*add) (struct ib_device *);
> void (*remove)(struct ib_device *);
>
> struct list_head list;
> };
>
>by extending the current enum ib_node_type to something like
>
> enum rdma_device_type {
> RDMA_DEVICE_IB_CA,
> RDMA_DEVICE_IB_SWITCH,
> RDMA_DEVICE_IB_ROUTER,
> RDMA_DEVICE_RNIC
> };
>
>Then the various pieces of code layered on top of the RDMA midlayer
>can decide whether they want to deal with a particular device or not
>by looking at the node_type member. For example, the IB CM, IPoIB,
>etc. could ignore devices of type RDMA_DEVICE_RNIC, while SDP or iSER
>would use all devices and the RNIC CM would take only devices of type
>RDMA_DEVICE_RNIC.
>
>Then someone would have to start implementing a low-level driver for a
>specific RNIC, and find which modifications to the existing verbs are
>required. For example, I believe the QP attribute structure passed
>into the QP modify verb probably has to become a union containing the
>IB attributes and the RNIC attributes. However, most verbs should
>work fine with at most trivial modifications.
Is there some technical reason why this proposal cannot be used? I didn't
notice any other proposal.
- Sean
More information about the general
mailing list