[openib-general] Question about QP access flags (struct ib_qp_attr.qp_access_flags)
mshefty at ichips.intel.com
Tue Nov 8 17:11:30 PST 2005
Ralph Campbell wrote:
> Ralph> When ib_modify_qp() is called with the IB_QP_ACCESS_FLAGS
> Ralph> set in the mask, what values should be used in struct
> Ralph> ib_qp_attr.qp_access_flags? The IB spec. seems to indicate
> Ralph> that RDMA and atomic operations are all enabled or disabled
> Ralph> as a group but all I see in ib_verbs.h is the enum
> Ralph> ib_access_flags which is used for memory region access.
> Ralph> These are more fine grained than the IB spec. implies for
> Ralph> QPs. So I can see qp_access_flags being either a boolean
> Ralph> or perhaps a new enum defined for the values for
> Ralph> qp_access_flags.
> Roland> I think the IB spec is at best ambiguous as to whether RDMA
> Roland> and atomics are enabled as a group or not.
> Roland> The values are IB_ACCESS_REMOTE_ATOMIC, IB_ACCESS_REMOTE_WRITE,
> Roland> and IB_ACCESS_REMOTE_READ or-ed together I think.
Roland's response is correct. Atomics and RDMA reads are enabled separately.
(See page 573 of release 1.2 of the spec. I interpreted the separate bullets to
mean that they are set separately.) I think it makes sense to keep this
distinction, since atomics are also an optional feature of an HCA.
If you look in cm.c for init_qp_attr, you can see how the IB CM sets the mask
and QP attributes.
More information about the general