Blame view
include/rdma/ib_user_cm.h
6.35 KB
8aa009191
|
1 2 |
/* * Copyright (c) 2005 Topspin Communications. All rights reserved. |
0b2b35f68
|
3 |
* Copyright (c) 2005 Intel Corporation. All rights reserved. |
8aa009191
|
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
* * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU * General Public License (GPL) Version 2, available from the file * COPYING in the main directory of this source tree, or the * OpenIB.org BSD license below: * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the following * disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. |
8aa009191
|
32 33 34 35 |
*/ #ifndef IB_USER_CM_H #define IB_USER_CM_H |
6a9af2e18
|
36 |
#include <rdma/ib_user_sa.h> |
8aa009191
|
37 |
|
e1444b5a1
|
38 |
#define IB_USER_CM_ABI_VERSION 5 |
8aa009191
|
39 40 41 42 43 44 45 |
enum { IB_USER_CM_CMD_CREATE_ID, IB_USER_CM_CMD_DESTROY_ID, IB_USER_CM_CMD_ATTR_ID, IB_USER_CM_CMD_LISTEN, |
e1444b5a1
|
46 |
IB_USER_CM_CMD_NOTIFY, |
8aa009191
|
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
IB_USER_CM_CMD_SEND_REQ, IB_USER_CM_CMD_SEND_REP, IB_USER_CM_CMD_SEND_RTU, IB_USER_CM_CMD_SEND_DREQ, IB_USER_CM_CMD_SEND_DREP, IB_USER_CM_CMD_SEND_REJ, IB_USER_CM_CMD_SEND_MRA, IB_USER_CM_CMD_SEND_LAP, IB_USER_CM_CMD_SEND_APR, IB_USER_CM_CMD_SEND_SIDR_REQ, IB_USER_CM_CMD_SEND_SIDR_REP, IB_USER_CM_CMD_EVENT, |
0b2b35f68
|
61 |
IB_USER_CM_CMD_INIT_QP_ATTR, |
8aa009191
|
62 63 64 65 66 67 68 69 70 71 72 |
}; /* * command ABI structures. */ struct ib_ucm_cmd_hdr { __u32 cmd; __u16 in; __u16 out; }; struct ib_ucm_create_id { |
0b2b35f68
|
73 |
__u64 uid; |
8aa009191
|
74 75 76 77 78 79 80 81 |
__u64 response; }; struct ib_ucm_create_id_resp { __u32 id; }; struct ib_ucm_destroy_id { |
0b2b35f68
|
82 |
__u64 response; |
8aa009191
|
83 |
__u32 id; |
7b28b0d00
|
84 |
__u32 reserved; |
8aa009191
|
85 |
}; |
0b2b35f68
|
86 87 88 |
struct ib_ucm_destroy_id_resp { __u32 events_reported; }; |
8aa009191
|
89 90 91 |
struct ib_ucm_attr_id { __u64 response; __u32 id; |
7b28b0d00
|
92 |
__u32 reserved; |
8aa009191
|
93 94 95 |
}; struct ib_ucm_attr_id_resp { |
97f52eb43
|
96 97 98 99 |
__be64 service_id; __be64 service_mask; __be32 local_id; __be32 remote_id; |
8aa009191
|
100 |
}; |
0b2b35f68
|
101 102 103 104 105 |
struct ib_ucm_init_qp_attr { __u64 response; __u32 id; __u32 qp_state; }; |
8aa009191
|
106 |
struct ib_ucm_listen { |
97f52eb43
|
107 108 |
__be64 service_id; __be64 service_mask; |
8aa009191
|
109 |
__u32 id; |
7b28b0d00
|
110 |
__u32 reserved; |
8aa009191
|
111 |
}; |
e1444b5a1
|
112 |
struct ib_ucm_notify { |
8aa009191
|
113 |
__u32 id; |
e1444b5a1
|
114 |
__u32 event; |
8aa009191
|
115 116 117 118 119 120 121 122 |
}; struct ib_ucm_private_data { __u64 data; __u32 id; __u8 len; __u8 reserved[3]; }; |
8aa009191
|
123 124 125 126 127 |
struct ib_ucm_req { __u32 id; __u32 qpn; __u32 qp_type; __u32 psn; |
97f52eb43
|
128 |
__be64 sid; |
8aa009191
|
129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
__u64 data; __u64 primary_path; __u64 alternate_path; __u8 len; __u8 peer_to_peer; __u8 responder_resources; __u8 initiator_depth; __u8 remote_cm_response_timeout; __u8 flow_control; __u8 local_cm_response_timeout; __u8 retry_count; __u8 rnr_retry_count; __u8 max_cm_retries; __u8 srq; |
7b28b0d00
|
143 |
__u8 reserved[5]; |
8aa009191
|
144 145 146 |
}; struct ib_ucm_rep { |
0b2b35f68
|
147 |
__u64 uid; |
8aa009191
|
148 149 150 151 152 153 154 155 156 157 158 159 |
__u64 data; __u32 id; __u32 qpn; __u32 psn; __u8 len; __u8 responder_resources; __u8 initiator_depth; __u8 target_ack_delay; __u8 failover_accepted; __u8 flow_control; __u8 rnr_retry_count; __u8 srq; |
7b28b0d00
|
160 |
__u8 reserved[4]; |
8aa009191
|
161 162 163 164 165 166 167 168 169 |
}; struct ib_ucm_info { __u32 id; __u32 status; __u64 info; __u64 data; __u8 info_len; __u8 data_len; |
7b28b0d00
|
170 |
__u8 reserved[6]; |
8aa009191
|
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
}; struct ib_ucm_mra { __u64 data; __u32 id; __u8 len; __u8 timeout; __u8 reserved[2]; }; struct ib_ucm_lap { __u64 path; __u64 data; __u32 id; __u8 len; __u8 reserved[3]; }; struct ib_ucm_sidr_req { __u32 id; __u32 timeout; |
97f52eb43
|
192 |
__be64 sid; |
8aa009191
|
193 194 |
__u64 data; __u64 path; |
75af90885
|
195 |
__u16 reserved_pkey; |
8aa009191
|
196 197 |
__u8 len; __u8 max_cm_retries; |
7b28b0d00
|
198 |
__u8 reserved[4]; |
8aa009191
|
199 200 201 202 203 204 205 206 207 208 209 |
}; struct ib_ucm_sidr_rep { __u32 id; __u32 qpn; __u32 qkey; __u32 status; __u64 info; __u64 data; __u8 info_len; __u8 data_len; |
7b28b0d00
|
210 |
__u8 reserved[6]; |
8aa009191
|
211 212 213 214 215 216 217 218 219 220 |
}; /* * event notification ABI structures. */ struct ib_ucm_event_get { __u64 response; __u64 data; __u64 info; __u8 data_len; __u8 info_len; |
7b28b0d00
|
221 |
__u8 reserved[6]; |
8aa009191
|
222 223 224 |
}; struct ib_ucm_req_event_resp { |
6a9af2e18
|
225 226 |
struct ib_user_path_rec primary_path; struct ib_user_path_rec alternate_path; |
97f52eb43
|
227 |
__be64 remote_ca_guid; |
8aa009191
|
228 229 230 231 232 233 234 235 236 237 238 239 |
__u32 remote_qkey; __u32 remote_qpn; __u32 qp_type; __u32 starting_psn; __u8 responder_resources; __u8 initiator_depth; __u8 local_cm_response_timeout; __u8 flow_control; __u8 remote_cm_response_timeout; __u8 retry_count; __u8 rnr_retry_count; __u8 srq; |
07d357d0c
|
240 |
__u8 port; |
7b28b0d00
|
241 |
__u8 reserved[7]; |
8aa009191
|
242 243 244 |
}; struct ib_ucm_rep_event_resp { |
97f52eb43
|
245 |
__be64 remote_ca_guid; |
8aa009191
|
246 247 248 249 250 251 252 253 254 255 |
__u32 remote_qkey; __u32 remote_qpn; __u32 starting_psn; __u8 responder_resources; __u8 initiator_depth; __u8 target_ack_delay; __u8 failover_accepted; __u8 flow_control; __u8 rnr_retry_count; __u8 srq; |
7b28b0d00
|
256 |
__u8 reserved[5]; |
8aa009191
|
257 258 259 260 261 262 263 264 265 266 267 268 269 |
}; struct ib_ucm_rej_event_resp { __u32 reason; /* ari in ib_ucm_event_get info field. */ }; struct ib_ucm_mra_event_resp { __u8 timeout; __u8 reserved[3]; }; struct ib_ucm_lap_event_resp { |
6a9af2e18
|
270 |
struct ib_user_path_rec path; |
8aa009191
|
271 272 273 274 275 276 277 278 |
}; struct ib_ucm_apr_event_resp { __u32 status; /* apr info in ib_ucm_event_get info field. */ }; struct ib_ucm_sidr_req_event_resp { |
8aa009191
|
279 |
__u16 pkey; |
07d357d0c
|
280 281 |
__u8 port; __u8 reserved; |
8aa009191
|
282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
}; struct ib_ucm_sidr_rep_event_resp { __u32 status; __u32 qkey; __u32 qpn; /* info in ib_ucm_event_get info field. */ }; #define IB_UCM_PRES_DATA 0x01 #define IB_UCM_PRES_INFO 0x02 #define IB_UCM_PRES_PRIMARY 0x04 #define IB_UCM_PRES_ALTERNATE 0x08 struct ib_ucm_event_resp { |
0b2b35f68
|
297 |
__u64 uid; |
8aa009191
|
298 299 300 |
__u32 id; __u32 event; __u32 present; |
7b28b0d00
|
301 |
__u32 reserved; |
8aa009191
|
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 |
union { struct ib_ucm_req_event_resp req_resp; struct ib_ucm_rep_event_resp rep_resp; struct ib_ucm_rej_event_resp rej_resp; struct ib_ucm_mra_event_resp mra_resp; struct ib_ucm_lap_event_resp lap_resp; struct ib_ucm_apr_event_resp apr_resp; struct ib_ucm_sidr_req_event_resp sidr_req_resp; struct ib_ucm_sidr_rep_event_resp sidr_rep_resp; __u32 send_status; } u; }; #endif /* IB_USER_CM_H */ |