Add a new EFA flags attribute for QP creation, and support unsolicited write with immediate flag. QPs created with this flag set will not consume receive work requests for incoming RDMA write with immediate. Expose device capability bit for this feature support.
Showing the changes to include/uapi (1 of 5 files). Show all
Unified · Split
| @@ -85,11 +85,17 @@ enum { · 84 unmodified lines | |||
| 85 | EFA_QP_DRIVER_TYPE_SRD = 0, | 85 | EFA_QP_DRIVER_TYPE_SRD = 0, |
| 86 | }; | 86 | }; |
| 87 | 87 | ||
| 88 | enum { | ||
| 89 | EFA_CREATE_QP_WITH_UNSOLICITED_WRITE_RECV = 1 << 0, | ||
| 90 | }; | ||
| 91 | |||
| 88 | struct efa_ibv_create_qp { | 92 | struct efa_ibv_create_qp { |
| 89 | __u32 comp_mask; | 93 | __u32 comp_mask; |
| 90 | __u32 rq_ring_size; /* bytes */ | 94 | __u32 rq_ring_size; /* bytes */ |
| 91 | __u32 sq_ring_size; /* bytes */ | 95 | __u32 sq_ring_size; /* bytes */ |
| 92 | __u32 driver_qp_type; | 96 | __u32 driver_qp_type; |
| 97 | __u16 flags; | ||
| 98 | __u8 reserved_90[6]; | ||
| 93 | }; | 99 | }; |
| 94 | 100 | ||
| 95 | struct efa_ibv_create_qp_resp { | 101 | struct efa_ibv_create_qp_resp { |
| @@ -123,6 +129,7 @@ enum { · 27 unmodified lines | |||
| 123 | EFA_QUERY_DEVICE_CAPS_CQ_WITH_SGID = 1 << 3, | 129 | EFA_QUERY_DEVICE_CAPS_CQ_WITH_SGID = 1 << 3, |
| 124 | EFA_QUERY_DEVICE_CAPS_DATA_POLLING_128 = 1 << 4, | 130 | EFA_QUERY_DEVICE_CAPS_DATA_POLLING_128 = 1 << 4, |
| 125 | EFA_QUERY_DEVICE_CAPS_RDMA_WRITE = 1 << 5, | 131 | EFA_QUERY_DEVICE_CAPS_RDMA_WRITE = 1 << 5, |
| 132 | EFA_QUERY_DEVICE_CAPS_UNSOLICITED_WRITE_RECV = 1 << 6, | ||
| 126 | }; | 133 | }; |
| 127 | 134 | ||
| 128 | struct efa_ibv_ex_query_device_resp { | 135 | struct efa_ibv_ex_query_device_resp { |