[openib-general] Question about QP access flags (struct ib_qp_attr.qp_access_flags)

Sean Hefty 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.

- Sean



More information about the general mailing list