Blame view

include/rdma/ib_user_cm.h 6.37 KB
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
1
2
  /*
   * Copyright (c) 2005 Topspin Communications.  All rights reserved.
0b2b35f68   Sean Hefty   [PATCH] IB: Add u...
3
   * Copyright (c) 2005 Intel Corporation.  All rights reserved.
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
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   Hal Rosenstock   [PATCH] IB: Add t...
32
33
34
35
   */
  
  #ifndef IB_USER_CM_H
  #define IB_USER_CM_H
9a7147b50   Roland Dreier   RDMA: Update expo...
36
  #include <linux/types.h>
6a9af2e18   Sean Hefty   IB: common handli...
37
  #include <rdma/ib_user_sa.h>
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
38

e1444b5a1   Sean Hefty   IB/cm: Fix automa...
39
  #define IB_USER_CM_ABI_VERSION 5
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
40
41
42
43
44
45
46
  
  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   Sean Hefty   IB/cm: Fix automa...
47
  	IB_USER_CM_CMD_NOTIFY,
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  
  	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   Sean Hefty   [PATCH] IB: Add u...
62
  	IB_USER_CM_CMD_INIT_QP_ATTR,
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
63
64
65
66
67
68
69
70
71
72
73
  };
  /*
   * command ABI structures.
   */
  struct ib_ucm_cmd_hdr {
  	__u32 cmd;
  	__u16 in;
  	__u16 out;
  };
  
  struct ib_ucm_create_id {
0b2b35f68   Sean Hefty   [PATCH] IB: Add u...
74
  	__u64 uid;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
75
76
77
78
79
80
81
82
  	__u64 response;
  };
  
  struct ib_ucm_create_id_resp {
  	__u32 id;
  };
  
  struct ib_ucm_destroy_id {
0b2b35f68   Sean Hefty   [PATCH] IB: Add u...
83
  	__u64 response;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
84
  	__u32 id;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
85
  	__u32 reserved;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
86
  };
0b2b35f68   Sean Hefty   [PATCH] IB: Add u...
87
88
89
  struct ib_ucm_destroy_id_resp {
  	__u32 events_reported;
  };
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
90
91
92
  struct ib_ucm_attr_id {
  	__u64 response;
  	__u32 id;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
93
  	__u32 reserved;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
94
95
96
  };
  
  struct ib_ucm_attr_id_resp {
97f52eb43   Sean Hefty   [PATCH] IB: spars...
97
98
99
100
  	__be64 service_id;
  	__be64 service_mask;
  	__be32 local_id;
  	__be32 remote_id;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
101
  };
0b2b35f68   Sean Hefty   [PATCH] IB: Add u...
102
103
104
105
106
  struct ib_ucm_init_qp_attr {
  	__u64 response;
  	__u32 id;
  	__u32 qp_state;
  };
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
107
  struct ib_ucm_listen {
97f52eb43   Sean Hefty   [PATCH] IB: spars...
108
109
  	__be64 service_id;
  	__be64 service_mask;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
110
  	__u32 id;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
111
  	__u32 reserved;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
112
  };
e1444b5a1   Sean Hefty   IB/cm: Fix automa...
113
  struct ib_ucm_notify {
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
114
  	__u32 id;
e1444b5a1   Sean Hefty   IB/cm: Fix automa...
115
  	__u32 event;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
116
117
118
119
120
121
122
123
  };
  
  struct ib_ucm_private_data {
  	__u64 data;
  	__u32 id;
  	__u8  len;
  	__u8  reserved[3];
  };
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
124
125
126
127
128
  struct ib_ucm_req {
  	__u32 id;
  	__u32 qpn;
  	__u32 qp_type;
  	__u32 psn;
97f52eb43   Sean Hefty   [PATCH] IB: spars...
129
  	__be64 sid;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
130
131
132
133
134
135
136
137
138
139
140
141
142
143
  	__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   Sean Hefty   [IB] ucm: 32/64 c...
144
  	__u8  reserved[5];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
145
146
147
  };
  
  struct ib_ucm_rep {
0b2b35f68   Sean Hefty   [PATCH] IB: Add u...
148
  	__u64 uid;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
149
150
151
152
153
154
155
156
157
158
159
160
  	__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   Sean Hefty   [IB] ucm: 32/64 c...
161
  	__u8  reserved[4];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
162
163
164
165
166
167
168
169
170
  };
  
  struct ib_ucm_info {
  	__u32 id;
  	__u32 status;
  	__u64 info;
  	__u64 data;
  	__u8  info_len;
  	__u8  data_len;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
171
  	__u8  reserved[6];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
  };
  
  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   Sean Hefty   [PATCH] IB: spars...
193
  	__be64 sid;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
194
195
  	__u64 data;
  	__u64 path;
75af90885   Sean Hefty   IB/ucm: Get rid o...
196
  	__u16 reserved_pkey;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
197
198
  	__u8  len;
  	__u8  max_cm_retries;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
199
  	__u8  reserved[4];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
200
201
202
203
204
205
206
207
208
209
210
  };
  
  struct ib_ucm_sidr_rep {
  	__u32 id;
  	__u32 qpn;
  	__u32 qkey;
  	__u32 status;
  	__u64 info;
  	__u64 data;
  	__u8  info_len;
  	__u8  data_len;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
211
  	__u8  reserved[6];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
212
213
214
215
216
217
218
219
220
221
  };
  /*
   * event notification ABI structures.
   */
  struct ib_ucm_event_get {
  	__u64 response;
  	__u64 data;
  	__u64 info;
  	__u8  data_len;
  	__u8  info_len;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
222
  	__u8  reserved[6];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
223
224
225
  };
  
  struct ib_ucm_req_event_resp {
6a9af2e18   Sean Hefty   IB: common handli...
226
227
  	struct ib_user_path_rec primary_path;
  	struct ib_user_path_rec alternate_path;
97f52eb43   Sean Hefty   [PATCH] IB: spars...
228
  	__be64                 remote_ca_guid;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
229
230
231
232
233
234
235
236
237
238
239
240
  	__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   Sean Hefty   [IB] CM: bind IDs...
241
  	__u8  port;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
242
  	__u8  reserved[7];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
243
244
245
  };
  
  struct ib_ucm_rep_event_resp {
97f52eb43   Sean Hefty   [PATCH] IB: spars...
246
  	__be64 remote_ca_guid;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
247
248
249
250
251
252
253
254
255
256
  	__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   Sean Hefty   [IB] ucm: 32/64 c...
257
  	__u8  reserved[5];
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
258
259
260
261
262
263
264
265
266
267
268
269
270
  };
  
  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   Sean Hefty   IB: common handli...
271
  	struct ib_user_path_rec path;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
272
273
274
275
276
277
278
279
  };
  
  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   Hal Rosenstock   [PATCH] IB: Add t...
280
  	__u16 pkey;
07d357d0c   Sean Hefty   [IB] CM: bind IDs...
281
282
  	__u8  port;
  	__u8  reserved;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
  };
  
  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   Sean Hefty   [PATCH] IB: Add u...
298
  	__u64 uid;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
299
300
301
  	__u32 id;
  	__u32 event;
  	__u32 present;
7b28b0d00   Sean Hefty   [IB] ucm: 32/64 c...
302
  	__u32 reserved;
8aa009191   Hal Rosenstock   [PATCH] IB: Add t...
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
  	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 */