diff options
Diffstat (limited to 'include/rdma')
-rw-r--r-- | include/rdma/ib_cm.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index 0a9fcd59eb43..8f394f035684 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h | |||
@@ -32,7 +32,7 @@ | |||
32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
33 | * SOFTWARE. | 33 | * SOFTWARE. |
34 | * | 34 | * |
35 | * $Id: ib_cm.h 2730 2005-06-28 16:43:03Z sean.hefty $ | 35 | * $Id: ib_cm.h 4311 2005-12-05 18:42:01Z sean.hefty $ |
36 | */ | 36 | */ |
37 | #if !defined(IB_CM_H) | 37 | #if !defined(IB_CM_H) |
38 | #define IB_CM_H | 38 | #define IB_CM_H |
@@ -102,7 +102,8 @@ enum ib_cm_data_size { | |||
102 | IB_CM_APR_INFO_LENGTH = 72, | 102 | IB_CM_APR_INFO_LENGTH = 72, |
103 | IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE = 216, | 103 | IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE = 216, |
104 | IB_CM_SIDR_REP_PRIVATE_DATA_SIZE = 136, | 104 | IB_CM_SIDR_REP_PRIVATE_DATA_SIZE = 136, |
105 | IB_CM_SIDR_REP_INFO_LENGTH = 72 | 105 | IB_CM_SIDR_REP_INFO_LENGTH = 72, |
106 | IB_CM_COMPARE_SIZE = 64 | ||
106 | }; | 107 | }; |
107 | 108 | ||
108 | struct ib_cm_id; | 109 | struct ib_cm_id; |
@@ -238,7 +239,6 @@ struct ib_cm_sidr_rep_event_param { | |||
238 | u32 qpn; | 239 | u32 qpn; |
239 | void *info; | 240 | void *info; |
240 | u8 info_len; | 241 | u8 info_len; |
241 | |||
242 | }; | 242 | }; |
243 | 243 | ||
244 | struct ib_cm_event { | 244 | struct ib_cm_event { |
@@ -317,6 +317,15 @@ void ib_destroy_cm_id(struct ib_cm_id *cm_id); | |||
317 | 317 | ||
318 | #define IB_SERVICE_ID_AGN_MASK __constant_cpu_to_be64(0xFF00000000000000ULL) | 318 | #define IB_SERVICE_ID_AGN_MASK __constant_cpu_to_be64(0xFF00000000000000ULL) |
319 | #define IB_CM_ASSIGN_SERVICE_ID __constant_cpu_to_be64(0x0200000000000000ULL) | 319 | #define IB_CM_ASSIGN_SERVICE_ID __constant_cpu_to_be64(0x0200000000000000ULL) |
320 | #define IB_CMA_SERVICE_ID __constant_cpu_to_be64(0x0000000001000000ULL) | ||
321 | #define IB_CMA_SERVICE_ID_MASK __constant_cpu_to_be64(0xFFFFFFFFFF000000ULL) | ||
322 | #define IB_SDP_SERVICE_ID __constant_cpu_to_be64(0x0000000000010000ULL) | ||
323 | #define IB_SDP_SERVICE_ID_MASK __constant_cpu_to_be64(0xFFFFFFFFFFFF0000ULL) | ||
324 | |||
325 | struct ib_cm_compare_data { | ||
326 | u8 data[IB_CM_COMPARE_SIZE]; | ||
327 | u8 mask[IB_CM_COMPARE_SIZE]; | ||
328 | }; | ||
320 | 329 | ||
321 | /** | 330 | /** |
322 | * ib_cm_listen - Initiates listening on the specified service ID for | 331 | * ib_cm_listen - Initiates listening on the specified service ID for |
@@ -330,10 +339,12 @@ void ib_destroy_cm_id(struct ib_cm_id *cm_id); | |||
330 | * range of service IDs. If set to 0, the service ID is matched | 339 | * range of service IDs. If set to 0, the service ID is matched |
331 | * exactly. This parameter is ignored if %service_id is set to | 340 | * exactly. This parameter is ignored if %service_id is set to |
332 | * IB_CM_ASSIGN_SERVICE_ID. | 341 | * IB_CM_ASSIGN_SERVICE_ID. |
342 | * @compare_data: This parameter is optional. It specifies data that must | ||
343 | * appear in the private data of a connection request for the specified | ||
344 | * listen request. | ||
333 | */ | 345 | */ |
334 | int ib_cm_listen(struct ib_cm_id *cm_id, | 346 | int ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, __be64 service_mask, |
335 | __be64 service_id, | 347 | struct ib_cm_compare_data *compare_data); |
336 | __be64 service_mask); | ||
337 | 348 | ||
338 | struct ib_cm_req_param { | 349 | struct ib_cm_req_param { |
339 | struct ib_sa_path_rec *primary_path; | 350 | struct ib_sa_path_rec *primary_path; |