[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