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