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
rdma_user_cm.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2005-2006 Intel Corporation. All rights reserved.
3
*
4
* This software is available to you under a choice of one of two
5
* licenses. You may choose to be licensed under the terms of the GNU
6
* General Public License (GPL) Version 2, available from the file
7
* COPYING in the main directory of this source tree, or the
8
* OpenIB.org BSD license below:
9
*
10
* Redistribution and use in source and binary forms, with or
11
* without modification, are permitted provided that the following
12
* conditions are met:
13
*
14
* - Redistributions of source code must retain the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer.
17
*
18
* - Redistributions in binary form must reproduce the above
19
* copyright notice, this list of conditions and the following
20
* disclaimer in the documentation and/or other materials
21
* provided with the distribution.
22
*
23
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
* SOFTWARE.
31
*/
32
33
#ifndef RDMA_USER_CM_H
34
#define RDMA_USER_CM_H
35
36
#include <linux/types.h>
37
#include <linux/in6.h>
38
#include <
rdma/ib_user_verbs.h
>
39
#include <
rdma/ib_user_sa.h
>
40
41
#define RDMA_USER_CM_ABI_VERSION 4
42
43
#define RDMA_MAX_PRIVATE_DATA 256
44
45
enum
{
46
RDMA_USER_CM_CMD_CREATE_ID
,
47
RDMA_USER_CM_CMD_DESTROY_ID
,
48
RDMA_USER_CM_CMD_BIND_ADDR
,
49
RDMA_USER_CM_CMD_RESOLVE_ADDR
,
50
RDMA_USER_CM_CMD_RESOLVE_ROUTE
,
51
RDMA_USER_CM_CMD_QUERY_ROUTE
,
52
RDMA_USER_CM_CMD_CONNECT
,
53
RDMA_USER_CM_CMD_LISTEN
,
54
RDMA_USER_CM_CMD_ACCEPT
,
55
RDMA_USER_CM_CMD_REJECT
,
56
RDMA_USER_CM_CMD_DISCONNECT
,
57
RDMA_USER_CM_CMD_INIT_QP_ATTR
,
58
RDMA_USER_CM_CMD_GET_EVENT
,
59
RDMA_USER_CM_CMD_GET_OPTION
,
60
RDMA_USER_CM_CMD_SET_OPTION
,
61
RDMA_USER_CM_CMD_NOTIFY
,
62
RDMA_USER_CM_CMD_JOIN_MCAST
,
63
RDMA_USER_CM_CMD_LEAVE_MCAST
,
64
RDMA_USER_CM_CMD_MIGRATE_ID
65
};
66
67
/*
68
* command ABI structures.
69
*/
70
struct
rdma_ucm_cmd_hdr
{
71
__u32
cmd
;
72
__u16
in
;
73
__u16
out
;
74
};
75
76
struct
rdma_ucm_create_id
{
77
__u64
uid
;
78
__u64
response
;
79
__u16
ps
;
80
__u8
qp_type
;
81
__u8
reserved
[5];
82
};
83
84
struct
rdma_ucm_create_id_resp
{
85
__u32
id
;
86
};
87
88
struct
rdma_ucm_destroy_id
{
89
__u64
response
;
90
__u32
id
;
91
__u32
reserved
;
92
};
93
94
struct
rdma_ucm_destroy_id_resp
{
95
__u32
events_reported
;
96
};
97
98
struct
rdma_ucm_bind_addr
{
99
__u64
response
;
100
struct
sockaddr_in6
addr
;
101
__u32
id
;
102
};
103
104
struct
rdma_ucm_resolve_addr
{
105
struct
sockaddr_in6
src_addr
;
106
struct
sockaddr_in6
dst_addr
;
107
__u32
id
;
108
__u32
timeout_ms
;
109
};
110
111
struct
rdma_ucm_resolve_route
{
112
__u32
id
;
113
__u32
timeout_ms
;
114
};
115
116
struct
rdma_ucm_query_route
{
117
__u64
response
;
118
__u32
id
;
119
__u32
reserved
;
120
};
121
122
struct
rdma_ucm_query_route_resp
{
123
__u64
node_guid
;
124
struct
ib_user_path_rec
ib_route
[2];
125
struct
sockaddr_in6
src_addr
;
126
struct
sockaddr_in6
dst_addr
;
127
__u32
num_paths
;
128
__u8
port_num
;
129
__u8
reserved
[3];
130
};
131
132
struct
rdma_ucm_conn_param
{
133
__u32
qp_num
;
134
__u32
reserved
;
135
__u8
private_data
[
RDMA_MAX_PRIVATE_DATA
];
136
__u8
private_data_len
;
137
__u8
srq
;
138
__u8
responder_resources
;
139
__u8
initiator_depth
;
140
__u8
flow_control
;
141
__u8
retry_count
;
142
__u8
rnr_retry_count
;
143
__u8
valid
;
144
};
145
146
struct
rdma_ucm_ud_param
{
147
__u32
qp_num
;
148
__u32
qkey
;
149
struct
ib_uverbs_ah_attr
ah_attr
;
150
__u8
private_data
[
RDMA_MAX_PRIVATE_DATA
];
151
__u8
private_data_len
;
152
__u8
reserved
[7];
153
};
154
155
struct
rdma_ucm_connect
{
156
struct
rdma_ucm_conn_param
conn_param
;
157
__u32
id
;
158
__u32
reserved
;
159
};
160
161
struct
rdma_ucm_listen
{
162
__u32
id
;
163
__u32
backlog
;
164
};
165
166
struct
rdma_ucm_accept
{
167
__u64
uid
;
168
struct
rdma_ucm_conn_param
conn_param
;
169
__u32
id
;
170
__u32
reserved
;
171
};
172
173
struct
rdma_ucm_reject
{
174
__u32
id
;
175
__u8
private_data_len
;
176
__u8
reserved
[3];
177
__u8
private_data
[
RDMA_MAX_PRIVATE_DATA
];
178
};
179
180
struct
rdma_ucm_disconnect
{
181
__u32
id
;
182
};
183
184
struct
rdma_ucm_init_qp_attr
{
185
__u64
response
;
186
__u32
id
;
187
__u32
qp_state
;
188
};
189
190
struct
rdma_ucm_notify
{
191
__u32
id
;
192
__u32
event
;
193
};
194
195
struct
rdma_ucm_join_mcast
{
196
__u64
response
;
/* rdma_ucm_create_id_resp */
197
__u64
uid
;
198
struct
sockaddr_in6
addr
;
199
__u32
id
;
200
};
201
202
struct
rdma_ucm_get_event
{
203
__u64
response
;
204
};
205
206
struct
rdma_ucm_event_resp
{
207
__u64
uid
;
208
__u32
id
;
209
__u32
event
;
210
__u32
status
;
211
union
{
212
struct
rdma_ucm_conn_param
conn
;
213
struct
rdma_ucm_ud_param
ud
;
214
}
param
;
215
};
216
217
/* Option levels */
218
enum
{
219
RDMA_OPTION_ID
= 0,
220
RDMA_OPTION_IB
= 1
221
};
222
223
/* Option details */
224
enum
{
225
RDMA_OPTION_ID_TOS
= 0,
226
RDMA_OPTION_ID_REUSEADDR
= 1,
227
RDMA_OPTION_ID_AFONLY
= 2,
228
RDMA_OPTION_IB_PATH
= 1
229
};
230
231
struct
rdma_ucm_set_option
{
232
__u64
optval
;
233
__u32
id
;
234
__u32
level
;
235
__u32
optname
;
236
__u32
optlen
;
237
};
238
239
struct
rdma_ucm_migrate_id
{
240
__u64
response
;
241
__u32
id
;
242
__u32
fd
;
243
};
244
245
struct
rdma_ucm_migrate_resp
{
246
__u32
events_reported
;
247
};
248
249
#endif
/* RDMA_USER_CM_H */
Generated on Thu Jan 10 2013 14:53:23 for Linux Kernel by
1.8.2