1
2
3
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
32
33
34 #include <rdma/ib_pack.h>
35 #include "rxe_opcode.h"
36 #include "rxe_hdr.h"
37
38
39
40
41 struct rxe_wr_opcode_info rxe_wr_opcode_info[] = {
42 [IB_WR_RDMA_WRITE] = {
43 .name = "IB_WR_RDMA_WRITE",
44 .mask = {
45 [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK,
46 [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK,
47 },
48 },
49 [IB_WR_RDMA_WRITE_WITH_IMM] = {
50 .name = "IB_WR_RDMA_WRITE_WITH_IMM",
51 .mask = {
52 [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK,
53 [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK,
54 },
55 },
56 [IB_WR_SEND] = {
57 .name = "IB_WR_SEND",
58 .mask = {
59 [IB_QPT_SMI] = WR_INLINE_MASK | WR_SEND_MASK,
60 [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK,
61 [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK,
62 [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK,
63 [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK,
64 },
65 },
66 [IB_WR_SEND_WITH_IMM] = {
67 .name = "IB_WR_SEND_WITH_IMM",
68 .mask = {
69 [IB_QPT_SMI] = WR_INLINE_MASK | WR_SEND_MASK,
70 [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK,
71 [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK,
72 [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK,
73 [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK,
74 },
75 },
76 [IB_WR_RDMA_READ] = {
77 .name = "IB_WR_RDMA_READ",
78 .mask = {
79 [IB_QPT_RC] = WR_READ_MASK,
80 },
81 },
82 [IB_WR_ATOMIC_CMP_AND_SWP] = {
83 .name = "IB_WR_ATOMIC_CMP_AND_SWP",
84 .mask = {
85 [IB_QPT_RC] = WR_ATOMIC_MASK,
86 },
87 },
88 [IB_WR_ATOMIC_FETCH_AND_ADD] = {
89 .name = "IB_WR_ATOMIC_FETCH_AND_ADD",
90 .mask = {
91 [IB_QPT_RC] = WR_ATOMIC_MASK,
92 },
93 },
94 [IB_WR_LSO] = {
95 .name = "IB_WR_LSO",
96 .mask = {
97
98 },
99 },
100 [IB_WR_SEND_WITH_INV] = {
101 .name = "IB_WR_SEND_WITH_INV",
102 .mask = {
103 [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK,
104 [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK,
105 [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK,
106 },
107 },
108 [IB_WR_RDMA_READ_WITH_INV] = {
109 .name = "IB_WR_RDMA_READ_WITH_INV",
110 .mask = {
111 [IB_QPT_RC] = WR_READ_MASK,
112 },
113 },
114 [IB_WR_LOCAL_INV] = {
115 .name = "IB_WR_LOCAL_INV",
116 .mask = {
117 [IB_QPT_RC] = WR_REG_MASK,
118 },
119 },
120 [IB_WR_REG_MR] = {
121 .name = "IB_WR_REG_MR",
122 .mask = {
123 [IB_QPT_RC] = WR_REG_MASK,
124 },
125 },
126 };
127
128 struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = {
129 [IB_OPCODE_RC_SEND_FIRST] = {
130 .name = "IB_OPCODE_RC_SEND_FIRST",
131 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK
132 | RXE_SEND_MASK | RXE_START_MASK,
133 .length = RXE_BTH_BYTES,
134 .offset = {
135 [RXE_BTH] = 0,
136 [RXE_PAYLOAD] = RXE_BTH_BYTES,
137 }
138 },
139 [IB_OPCODE_RC_SEND_MIDDLE] = {
140 .name = "IB_OPCODE_RC_SEND_MIDDLE]",
141 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK
142 | RXE_MIDDLE_MASK,
143 .length = RXE_BTH_BYTES,
144 .offset = {
145 [RXE_BTH] = 0,
146 [RXE_PAYLOAD] = RXE_BTH_BYTES,
147 }
148 },
149 [IB_OPCODE_RC_SEND_LAST] = {
150 .name = "IB_OPCODE_RC_SEND_LAST",
151 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK
152 | RXE_SEND_MASK | RXE_END_MASK,
153 .length = RXE_BTH_BYTES,
154 .offset = {
155 [RXE_BTH] = 0,
156 [RXE_PAYLOAD] = RXE_BTH_BYTES,
157 }
158 },
159 [IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE] = {
160 .name = "IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE",
161 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
162 | RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,
163 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
164 .offset = {
165 [RXE_BTH] = 0,
166 [RXE_IMMDT] = RXE_BTH_BYTES,
167 [RXE_PAYLOAD] = RXE_BTH_BYTES
168 + RXE_IMMDT_BYTES,
169 }
170 },
171 [IB_OPCODE_RC_SEND_ONLY] = {
172 .name = "IB_OPCODE_RC_SEND_ONLY",
173 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK
174 | RXE_RWR_MASK | RXE_SEND_MASK
175 | RXE_START_MASK | RXE_END_MASK,
176 .length = RXE_BTH_BYTES,
177 .offset = {
178 [RXE_BTH] = 0,
179 [RXE_PAYLOAD] = RXE_BTH_BYTES,
180 }
181 },
182 [IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE] = {
183 .name = "IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE",
184 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
185 | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK
186 | RXE_START_MASK | RXE_END_MASK,
187 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
188 .offset = {
189 [RXE_BTH] = 0,
190 [RXE_IMMDT] = RXE_BTH_BYTES,
191 [RXE_PAYLOAD] = RXE_BTH_BYTES
192 + RXE_IMMDT_BYTES,
193 }
194 },
195 [IB_OPCODE_RC_RDMA_WRITE_FIRST] = {
196 .name = "IB_OPCODE_RC_RDMA_WRITE_FIRST",
197 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
198 | RXE_WRITE_MASK | RXE_START_MASK,
199 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
200 .offset = {
201 [RXE_BTH] = 0,
202 [RXE_RETH] = RXE_BTH_BYTES,
203 [RXE_PAYLOAD] = RXE_BTH_BYTES
204 + RXE_RETH_BYTES,
205 }
206 },
207 [IB_OPCODE_RC_RDMA_WRITE_MIDDLE] = {
208 .name = "IB_OPCODE_RC_RDMA_WRITE_MIDDLE",
209 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK
210 | RXE_MIDDLE_MASK,
211 .length = RXE_BTH_BYTES,
212 .offset = {
213 [RXE_BTH] = 0,
214 [RXE_PAYLOAD] = RXE_BTH_BYTES,
215 }
216 },
217 [IB_OPCODE_RC_RDMA_WRITE_LAST] = {
218 .name = "IB_OPCODE_RC_RDMA_WRITE_LAST",
219 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK
220 | RXE_END_MASK,
221 .length = RXE_BTH_BYTES,
222 .offset = {
223 [RXE_BTH] = 0,
224 [RXE_PAYLOAD] = RXE_BTH_BYTES,
225 }
226 },
227 [IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = {
228 .name = "IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE",
229 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
230 | RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK
231 | RXE_END_MASK,
232 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
233 .offset = {
234 [RXE_BTH] = 0,
235 [RXE_IMMDT] = RXE_BTH_BYTES,
236 [RXE_PAYLOAD] = RXE_BTH_BYTES
237 + RXE_IMMDT_BYTES,
238 }
239 },
240 [IB_OPCODE_RC_RDMA_WRITE_ONLY] = {
241 .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY",
242 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
243 | RXE_WRITE_MASK | RXE_START_MASK
244 | RXE_END_MASK,
245 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
246 .offset = {
247 [RXE_BTH] = 0,
248 [RXE_RETH] = RXE_BTH_BYTES,
249 [RXE_PAYLOAD] = RXE_BTH_BYTES
250 + RXE_RETH_BYTES,
251 }
252 },
253 [IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = {
254 .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE",
255 .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK
256 | RXE_REQ_MASK | RXE_WRITE_MASK
257 | RXE_COMP_MASK | RXE_RWR_MASK
258 | RXE_START_MASK | RXE_END_MASK,
259 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES,
260 .offset = {
261 [RXE_BTH] = 0,
262 [RXE_RETH] = RXE_BTH_BYTES,
263 [RXE_IMMDT] = RXE_BTH_BYTES
264 + RXE_RETH_BYTES,
265 [RXE_PAYLOAD] = RXE_BTH_BYTES
266 + RXE_RETH_BYTES
267 + RXE_IMMDT_BYTES,
268 }
269 },
270 [IB_OPCODE_RC_RDMA_READ_REQUEST] = {
271 .name = "IB_OPCODE_RC_RDMA_READ_REQUEST",
272 .mask = RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK
273 | RXE_START_MASK | RXE_END_MASK,
274 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
275 .offset = {
276 [RXE_BTH] = 0,
277 [RXE_RETH] = RXE_BTH_BYTES,
278 [RXE_PAYLOAD] = RXE_BTH_BYTES
279 + RXE_RETH_BYTES,
280 }
281 },
282 [IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST] = {
283 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST",
284 .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK
285 | RXE_START_MASK,
286 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
287 .offset = {
288 [RXE_BTH] = 0,
289 [RXE_AETH] = RXE_BTH_BYTES,
290 [RXE_PAYLOAD] = RXE_BTH_BYTES
291 + RXE_AETH_BYTES,
292 }
293 },
294 [IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE] = {
295 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE",
296 .mask = RXE_PAYLOAD_MASK | RXE_ACK_MASK | RXE_MIDDLE_MASK,
297 .length = RXE_BTH_BYTES,
298 .offset = {
299 [RXE_BTH] = 0,
300 [RXE_PAYLOAD] = RXE_BTH_BYTES,
301 }
302 },
303 [IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST] = {
304 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST",
305 .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK
306 | RXE_END_MASK,
307 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
308 .offset = {
309 [RXE_BTH] = 0,
310 [RXE_AETH] = RXE_BTH_BYTES,
311 [RXE_PAYLOAD] = RXE_BTH_BYTES
312 + RXE_AETH_BYTES,
313 }
314 },
315 [IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY] = {
316 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY",
317 .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK
318 | RXE_START_MASK | RXE_END_MASK,
319 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
320 .offset = {
321 [RXE_BTH] = 0,
322 [RXE_AETH] = RXE_BTH_BYTES,
323 [RXE_PAYLOAD] = RXE_BTH_BYTES
324 + RXE_AETH_BYTES,
325 }
326 },
327 [IB_OPCODE_RC_ACKNOWLEDGE] = {
328 .name = "IB_OPCODE_RC_ACKNOWLEDGE",
329 .mask = RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK
330 | RXE_END_MASK,
331 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
332 .offset = {
333 [RXE_BTH] = 0,
334 [RXE_AETH] = RXE_BTH_BYTES,
335 [RXE_PAYLOAD] = RXE_BTH_BYTES
336 + RXE_AETH_BYTES,
337 }
338 },
339 [IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE] = {
340 .name = "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE",
341 .mask = RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK
342 | RXE_START_MASK | RXE_END_MASK,
343 .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES,
344 .offset = {
345 [RXE_BTH] = 0,
346 [RXE_AETH] = RXE_BTH_BYTES,
347 [RXE_ATMACK] = RXE_BTH_BYTES
348 + RXE_AETH_BYTES,
349 [RXE_PAYLOAD] = RXE_BTH_BYTES
350 + RXE_ATMACK_BYTES + RXE_AETH_BYTES,
351 }
352 },
353 [IB_OPCODE_RC_COMPARE_SWAP] = {
354 .name = "IB_OPCODE_RC_COMPARE_SWAP",
355 .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK
356 | RXE_START_MASK | RXE_END_MASK,
357 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES,
358 .offset = {
359 [RXE_BTH] = 0,
360 [RXE_ATMETH] = RXE_BTH_BYTES,
361 [RXE_PAYLOAD] = RXE_BTH_BYTES
362 + RXE_ATMETH_BYTES,
363 }
364 },
365 [IB_OPCODE_RC_FETCH_ADD] = {
366 .name = "IB_OPCODE_RC_FETCH_ADD",
367 .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK
368 | RXE_START_MASK | RXE_END_MASK,
369 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES,
370 .offset = {
371 [RXE_BTH] = 0,
372 [RXE_ATMETH] = RXE_BTH_BYTES,
373 [RXE_PAYLOAD] = RXE_BTH_BYTES
374 + RXE_ATMETH_BYTES,
375 }
376 },
377 [IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE] = {
378 .name = "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE",
379 .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
380 | RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,
381 .length = RXE_BTH_BYTES + RXE_IETH_BYTES,
382 .offset = {
383 [RXE_BTH] = 0,
384 [RXE_IETH] = RXE_BTH_BYTES,
385 [RXE_PAYLOAD] = RXE_BTH_BYTES
386 + RXE_IETH_BYTES,
387 }
388 },
389 [IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE] = {
390 .name = "IB_OPCODE_RC_SEND_ONLY_INV",
391 .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
392 | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK
393 | RXE_END_MASK | RXE_START_MASK,
394 .length = RXE_BTH_BYTES + RXE_IETH_BYTES,
395 .offset = {
396 [RXE_BTH] = 0,
397 [RXE_IETH] = RXE_BTH_BYTES,
398 [RXE_PAYLOAD] = RXE_BTH_BYTES
399 + RXE_IETH_BYTES,
400 }
401 },
402
403
404 [IB_OPCODE_UC_SEND_FIRST] = {
405 .name = "IB_OPCODE_UC_SEND_FIRST",
406 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK
407 | RXE_SEND_MASK | RXE_START_MASK,
408 .length = RXE_BTH_BYTES,
409 .offset = {
410 [RXE_BTH] = 0,
411 [RXE_PAYLOAD] = RXE_BTH_BYTES,
412 }
413 },
414 [IB_OPCODE_UC_SEND_MIDDLE] = {
415 .name = "IB_OPCODE_UC_SEND_MIDDLE",
416 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK
417 | RXE_MIDDLE_MASK,
418 .length = RXE_BTH_BYTES,
419 .offset = {
420 [RXE_BTH] = 0,
421 [RXE_PAYLOAD] = RXE_BTH_BYTES,
422 }
423 },
424 [IB_OPCODE_UC_SEND_LAST] = {
425 .name = "IB_OPCODE_UC_SEND_LAST",
426 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK
427 | RXE_SEND_MASK | RXE_END_MASK,
428 .length = RXE_BTH_BYTES,
429 .offset = {
430 [RXE_BTH] = 0,
431 [RXE_PAYLOAD] = RXE_BTH_BYTES,
432 }
433 },
434 [IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE] = {
435 .name = "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE",
436 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
437 | RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,
438 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
439 .offset = {
440 [RXE_BTH] = 0,
441 [RXE_IMMDT] = RXE_BTH_BYTES,
442 [RXE_PAYLOAD] = RXE_BTH_BYTES
443 + RXE_IMMDT_BYTES,
444 }
445 },
446 [IB_OPCODE_UC_SEND_ONLY] = {
447 .name = "IB_OPCODE_UC_SEND_ONLY",
448 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK
449 | RXE_RWR_MASK | RXE_SEND_MASK
450 | RXE_START_MASK | RXE_END_MASK,
451 .length = RXE_BTH_BYTES,
452 .offset = {
453 [RXE_BTH] = 0,
454 [RXE_PAYLOAD] = RXE_BTH_BYTES,
455 }
456 },
457 [IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE] = {
458 .name = "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE",
459 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
460 | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK
461 | RXE_START_MASK | RXE_END_MASK,
462 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
463 .offset = {
464 [RXE_BTH] = 0,
465 [RXE_IMMDT] = RXE_BTH_BYTES,
466 [RXE_PAYLOAD] = RXE_BTH_BYTES
467 + RXE_IMMDT_BYTES,
468 }
469 },
470 [IB_OPCODE_UC_RDMA_WRITE_FIRST] = {
471 .name = "IB_OPCODE_UC_RDMA_WRITE_FIRST",
472 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
473 | RXE_WRITE_MASK | RXE_START_MASK,
474 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
475 .offset = {
476 [RXE_BTH] = 0,
477 [RXE_RETH] = RXE_BTH_BYTES,
478 [RXE_PAYLOAD] = RXE_BTH_BYTES
479 + RXE_RETH_BYTES,
480 }
481 },
482 [IB_OPCODE_UC_RDMA_WRITE_MIDDLE] = {
483 .name = "IB_OPCODE_UC_RDMA_WRITE_MIDDLE",
484 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK
485 | RXE_MIDDLE_MASK,
486 .length = RXE_BTH_BYTES,
487 .offset = {
488 [RXE_BTH] = 0,
489 [RXE_PAYLOAD] = RXE_BTH_BYTES,
490 }
491 },
492 [IB_OPCODE_UC_RDMA_WRITE_LAST] = {
493 .name = "IB_OPCODE_UC_RDMA_WRITE_LAST",
494 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK
495 | RXE_END_MASK,
496 .length = RXE_BTH_BYTES,
497 .offset = {
498 [RXE_BTH] = 0,
499 [RXE_PAYLOAD] = RXE_BTH_BYTES,
500 }
501 },
502 [IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = {
503 .name = "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE",
504 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
505 | RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK
506 | RXE_END_MASK,
507 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
508 .offset = {
509 [RXE_BTH] = 0,
510 [RXE_IMMDT] = RXE_BTH_BYTES,
511 [RXE_PAYLOAD] = RXE_BTH_BYTES
512 + RXE_IMMDT_BYTES,
513 }
514 },
515 [IB_OPCODE_UC_RDMA_WRITE_ONLY] = {
516 .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY",
517 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
518 | RXE_WRITE_MASK | RXE_START_MASK
519 | RXE_END_MASK,
520 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
521 .offset = {
522 [RXE_BTH] = 0,
523 [RXE_RETH] = RXE_BTH_BYTES,
524 [RXE_PAYLOAD] = RXE_BTH_BYTES
525 + RXE_RETH_BYTES,
526 }
527 },
528 [IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = {
529 .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE",
530 .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK
531 | RXE_REQ_MASK | RXE_WRITE_MASK
532 | RXE_COMP_MASK | RXE_RWR_MASK
533 | RXE_START_MASK | RXE_END_MASK,
534 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES,
535 .offset = {
536 [RXE_BTH] = 0,
537 [RXE_RETH] = RXE_BTH_BYTES,
538 [RXE_IMMDT] = RXE_BTH_BYTES
539 + RXE_RETH_BYTES,
540 [RXE_PAYLOAD] = RXE_BTH_BYTES
541 + RXE_RETH_BYTES
542 + RXE_IMMDT_BYTES,
543 }
544 },
545
546
547 [IB_OPCODE_RD_SEND_FIRST] = {
548 .name = "IB_OPCODE_RD_SEND_FIRST",
549 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK
550 | RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK
551 | RXE_START_MASK,
552 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
553 .offset = {
554 [RXE_BTH] = 0,
555 [RXE_RDETH] = RXE_BTH_BYTES,
556 [RXE_DETH] = RXE_BTH_BYTES
557 + RXE_RDETH_BYTES,
558 [RXE_PAYLOAD] = RXE_BTH_BYTES
559 + RXE_RDETH_BYTES
560 + RXE_DETH_BYTES,
561 }
562 },
563 [IB_OPCODE_RD_SEND_MIDDLE] = {
564 .name = "IB_OPCODE_RD_SEND_MIDDLE",
565 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK
566 | RXE_REQ_MASK | RXE_SEND_MASK
567 | RXE_MIDDLE_MASK,
568 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
569 .offset = {
570 [RXE_BTH] = 0,
571 [RXE_RDETH] = RXE_BTH_BYTES,
572 [RXE_DETH] = RXE_BTH_BYTES
573 + RXE_RDETH_BYTES,
574 [RXE_PAYLOAD] = RXE_BTH_BYTES
575 + RXE_RDETH_BYTES
576 + RXE_DETH_BYTES,
577 }
578 },
579 [IB_OPCODE_RD_SEND_LAST] = {
580 .name = "IB_OPCODE_RD_SEND_LAST",
581 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK
582 | RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK
583 | RXE_END_MASK,
584 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
585 .offset = {
586 [RXE_BTH] = 0,
587 [RXE_RDETH] = RXE_BTH_BYTES,
588 [RXE_DETH] = RXE_BTH_BYTES
589 + RXE_RDETH_BYTES,
590 [RXE_PAYLOAD] = RXE_BTH_BYTES
591 + RXE_RDETH_BYTES
592 + RXE_DETH_BYTES,
593 }
594 },
595 [IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE] = {
596 .name = "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE",
597 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK
598 | RXE_PAYLOAD_MASK | RXE_REQ_MASK
599 | RXE_COMP_MASK | RXE_SEND_MASK
600 | RXE_END_MASK,
601 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES
602 + RXE_RDETH_BYTES,
603 .offset = {
604 [RXE_BTH] = 0,
605 [RXE_RDETH] = RXE_BTH_BYTES,
606 [RXE_DETH] = RXE_BTH_BYTES
607 + RXE_RDETH_BYTES,
608 [RXE_IMMDT] = RXE_BTH_BYTES
609 + RXE_RDETH_BYTES
610 + RXE_DETH_BYTES,
611 [RXE_PAYLOAD] = RXE_BTH_BYTES
612 + RXE_RDETH_BYTES
613 + RXE_DETH_BYTES
614 + RXE_IMMDT_BYTES,
615 }
616 },
617 [IB_OPCODE_RD_SEND_ONLY] = {
618 .name = "IB_OPCODE_RD_SEND_ONLY",
619 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK
620 | RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK
621 | RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK,
622 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
623 .offset = {
624 [RXE_BTH] = 0,
625 [RXE_RDETH] = RXE_BTH_BYTES,
626 [RXE_DETH] = RXE_BTH_BYTES
627 + RXE_RDETH_BYTES,
628 [RXE_PAYLOAD] = RXE_BTH_BYTES
629 + RXE_RDETH_BYTES
630 + RXE_DETH_BYTES,
631 }
632 },
633 [IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE] = {
634 .name = "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE",
635 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK
636 | RXE_PAYLOAD_MASK | RXE_REQ_MASK
637 | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK
638 | RXE_START_MASK | RXE_END_MASK,
639 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES
640 + RXE_RDETH_BYTES,
641 .offset = {
642 [RXE_BTH] = 0,
643 [RXE_RDETH] = RXE_BTH_BYTES,
644 [RXE_DETH] = RXE_BTH_BYTES
645 + RXE_RDETH_BYTES,
646 [RXE_IMMDT] = RXE_BTH_BYTES
647 + RXE_RDETH_BYTES
648 + RXE_DETH_BYTES,
649 [RXE_PAYLOAD] = RXE_BTH_BYTES
650 + RXE_RDETH_BYTES
651 + RXE_DETH_BYTES
652 + RXE_IMMDT_BYTES,
653 }
654 },
655 [IB_OPCODE_RD_RDMA_WRITE_FIRST] = {
656 .name = "IB_OPCODE_RD_RDMA_WRITE_FIRST",
657 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK
658 | RXE_PAYLOAD_MASK | RXE_REQ_MASK
659 | RXE_WRITE_MASK | RXE_START_MASK,
660 .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES
661 + RXE_RDETH_BYTES,
662 .offset = {
663 [RXE_BTH] = 0,
664 [RXE_RDETH] = RXE_BTH_BYTES,
665 [RXE_DETH] = RXE_BTH_BYTES
666 + RXE_RDETH_BYTES,
667 [RXE_RETH] = RXE_BTH_BYTES
668 + RXE_RDETH_BYTES
669 + RXE_DETH_BYTES,
670 [RXE_PAYLOAD] = RXE_BTH_BYTES
671 + RXE_RDETH_BYTES
672 + RXE_DETH_BYTES
673 + RXE_RETH_BYTES,
674 }
675 },
676 [IB_OPCODE_RD_RDMA_WRITE_MIDDLE] = {
677 .name = "IB_OPCODE_RD_RDMA_WRITE_MIDDLE",
678 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK
679 | RXE_REQ_MASK | RXE_WRITE_MASK
680 | RXE_MIDDLE_MASK,
681 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
682 .offset = {
683 [RXE_BTH] = 0,
684 [RXE_RDETH] = RXE_BTH_BYTES,
685 [RXE_DETH] = RXE_BTH_BYTES
686 + RXE_RDETH_BYTES,
687 [RXE_PAYLOAD] = RXE_BTH_BYTES
688 + RXE_RDETH_BYTES
689 + RXE_DETH_BYTES,
690 }
691 },
692 [IB_OPCODE_RD_RDMA_WRITE_LAST] = {
693 .name = "IB_OPCODE_RD_RDMA_WRITE_LAST",
694 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK
695 | RXE_REQ_MASK | RXE_WRITE_MASK
696 | RXE_END_MASK,
697 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
698 .offset = {
699 [RXE_BTH] = 0,
700 [RXE_RDETH] = RXE_BTH_BYTES,
701 [RXE_DETH] = RXE_BTH_BYTES
702 + RXE_RDETH_BYTES,
703 [RXE_PAYLOAD] = RXE_BTH_BYTES
704 + RXE_RDETH_BYTES
705 + RXE_DETH_BYTES,
706 }
707 },
708 [IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE] = {
709 .name = "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE",
710 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK
711 | RXE_PAYLOAD_MASK | RXE_REQ_MASK
712 | RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK
713 | RXE_END_MASK,
714 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES
715 + RXE_RDETH_BYTES,
716 .offset = {
717 [RXE_BTH] = 0,
718 [RXE_RDETH] = RXE_BTH_BYTES,
719 [RXE_DETH] = RXE_BTH_BYTES
720 + RXE_RDETH_BYTES,
721 [RXE_IMMDT] = RXE_BTH_BYTES
722 + RXE_RDETH_BYTES
723 + RXE_DETH_BYTES,
724 [RXE_PAYLOAD] = RXE_BTH_BYTES
725 + RXE_RDETH_BYTES
726 + RXE_DETH_BYTES
727 + RXE_IMMDT_BYTES,
728 }
729 },
730 [IB_OPCODE_RD_RDMA_WRITE_ONLY] = {
731 .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY",
732 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK
733 | RXE_PAYLOAD_MASK | RXE_REQ_MASK
734 | RXE_WRITE_MASK | RXE_START_MASK
735 | RXE_END_MASK,
736 .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES
737 + RXE_RDETH_BYTES,
738 .offset = {
739 [RXE_BTH] = 0,
740 [RXE_RDETH] = RXE_BTH_BYTES,
741 [RXE_DETH] = RXE_BTH_BYTES
742 + RXE_RDETH_BYTES,
743 [RXE_RETH] = RXE_BTH_BYTES
744 + RXE_RDETH_BYTES
745 + RXE_DETH_BYTES,
746 [RXE_PAYLOAD] = RXE_BTH_BYTES
747 + RXE_RDETH_BYTES
748 + RXE_DETH_BYTES
749 + RXE_RETH_BYTES,
750 }
751 },
752 [IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = {
753 .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE",
754 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK
755 | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK
756 | RXE_REQ_MASK | RXE_WRITE_MASK
757 | RXE_COMP_MASK | RXE_RWR_MASK
758 | RXE_START_MASK | RXE_END_MASK,
759 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES
760 + RXE_DETH_BYTES + RXE_RDETH_BYTES,
761 .offset = {
762 [RXE_BTH] = 0,
763 [RXE_RDETH] = RXE_BTH_BYTES,
764 [RXE_DETH] = RXE_BTH_BYTES
765 + RXE_RDETH_BYTES,
766 [RXE_RETH] = RXE_BTH_BYTES
767 + RXE_RDETH_BYTES
768 + RXE_DETH_BYTES,
769 [RXE_IMMDT] = RXE_BTH_BYTES
770 + RXE_RDETH_BYTES
771 + RXE_DETH_BYTES
772 + RXE_RETH_BYTES,
773 [RXE_PAYLOAD] = RXE_BTH_BYTES
774 + RXE_RDETH_BYTES
775 + RXE_DETH_BYTES
776 + RXE_RETH_BYTES
777 + RXE_IMMDT_BYTES,
778 }
779 },
780 [IB_OPCODE_RD_RDMA_READ_REQUEST] = {
781 .name = "IB_OPCODE_RD_RDMA_READ_REQUEST",
782 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK
783 | RXE_REQ_MASK | RXE_READ_MASK
784 | RXE_START_MASK | RXE_END_MASK,
785 .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES
786 + RXE_RDETH_BYTES,
787 .offset = {
788 [RXE_BTH] = 0,
789 [RXE_RDETH] = RXE_BTH_BYTES,
790 [RXE_DETH] = RXE_BTH_BYTES
791 + RXE_RDETH_BYTES,
792 [RXE_RETH] = RXE_BTH_BYTES
793 + RXE_RDETH_BYTES
794 + RXE_DETH_BYTES,
795 [RXE_PAYLOAD] = RXE_BTH_BYTES
796 + RXE_RETH_BYTES
797 + RXE_DETH_BYTES
798 + RXE_RDETH_BYTES,
799 }
800 },
801 [IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST] = {
802 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST",
803 .mask = RXE_RDETH_MASK | RXE_AETH_MASK
804 | RXE_PAYLOAD_MASK | RXE_ACK_MASK
805 | RXE_START_MASK,
806 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
807 .offset = {
808 [RXE_BTH] = 0,
809 [RXE_RDETH] = RXE_BTH_BYTES,
810 [RXE_AETH] = RXE_BTH_BYTES
811 + RXE_RDETH_BYTES,
812 [RXE_PAYLOAD] = RXE_BTH_BYTES
813 + RXE_RDETH_BYTES
814 + RXE_AETH_BYTES,
815 }
816 },
817 [IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE] = {
818 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE",
819 .mask = RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK
820 | RXE_MIDDLE_MASK,
821 .length = RXE_BTH_BYTES + RXE_RDETH_BYTES,
822 .offset = {
823 [RXE_BTH] = 0,
824 [RXE_RDETH] = RXE_BTH_BYTES,
825 [RXE_PAYLOAD] = RXE_BTH_BYTES
826 + RXE_RDETH_BYTES,
827 }
828 },
829 [IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST] = {
830 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST",
831 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK
832 | RXE_ACK_MASK | RXE_END_MASK,
833 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
834 .offset = {
835 [RXE_BTH] = 0,
836 [RXE_RDETH] = RXE_BTH_BYTES,
837 [RXE_AETH] = RXE_BTH_BYTES
838 + RXE_RDETH_BYTES,
839 [RXE_PAYLOAD] = RXE_BTH_BYTES
840 + RXE_RDETH_BYTES
841 + RXE_AETH_BYTES,
842 }
843 },
844 [IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY] = {
845 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY",
846 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK
847 | RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK,
848 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
849 .offset = {
850 [RXE_BTH] = 0,
851 [RXE_RDETH] = RXE_BTH_BYTES,
852 [RXE_AETH] = RXE_BTH_BYTES
853 + RXE_RDETH_BYTES,
854 [RXE_PAYLOAD] = RXE_BTH_BYTES
855 + RXE_RDETH_BYTES
856 + RXE_AETH_BYTES,
857 }
858 },
859 [IB_OPCODE_RD_ACKNOWLEDGE] = {
860 .name = "IB_OPCODE_RD_ACKNOWLEDGE",
861 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK
862 | RXE_START_MASK | RXE_END_MASK,
863 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
864 .offset = {
865 [RXE_BTH] = 0,
866 [RXE_RDETH] = RXE_BTH_BYTES,
867 [RXE_AETH] = RXE_BTH_BYTES
868 + RXE_RDETH_BYTES,
869 }
870 },
871 [IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE] = {
872 .name = "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE",
873 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK
874 | RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK,
875 .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES
876 + RXE_RDETH_BYTES,
877 .offset = {
878 [RXE_BTH] = 0,
879 [RXE_RDETH] = RXE_BTH_BYTES,
880 [RXE_AETH] = RXE_BTH_BYTES
881 + RXE_RDETH_BYTES,
882 [RXE_ATMACK] = RXE_BTH_BYTES
883 + RXE_RDETH_BYTES
884 + RXE_AETH_BYTES,
885 }
886 },
887 [IB_OPCODE_RD_COMPARE_SWAP] = {
888 .name = "RD_COMPARE_SWAP",
889 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK
890 | RXE_REQ_MASK | RXE_ATOMIC_MASK
891 | RXE_START_MASK | RXE_END_MASK,
892 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES
893 + RXE_RDETH_BYTES,
894 .offset = {
895 [RXE_BTH] = 0,
896 [RXE_RDETH] = RXE_BTH_BYTES,
897 [RXE_DETH] = RXE_BTH_BYTES
898 + RXE_RDETH_BYTES,
899 [RXE_ATMETH] = RXE_BTH_BYTES
900 + RXE_RDETH_BYTES
901 + RXE_DETH_BYTES,
902 [RXE_PAYLOAD] = RXE_BTH_BYTES +
903 + RXE_ATMETH_BYTES
904 + RXE_DETH_BYTES +
905 + RXE_RDETH_BYTES,
906 }
907 },
908 [IB_OPCODE_RD_FETCH_ADD] = {
909 .name = "IB_OPCODE_RD_FETCH_ADD",
910 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK
911 | RXE_REQ_MASK | RXE_ATOMIC_MASK
912 | RXE_START_MASK | RXE_END_MASK,
913 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES
914 + RXE_RDETH_BYTES,
915 .offset = {
916 [RXE_BTH] = 0,
917 [RXE_RDETH] = RXE_BTH_BYTES,
918 [RXE_DETH] = RXE_BTH_BYTES
919 + RXE_RDETH_BYTES,
920 [RXE_ATMETH] = RXE_BTH_BYTES
921 + RXE_RDETH_BYTES
922 + RXE_DETH_BYTES,
923 [RXE_PAYLOAD] = RXE_BTH_BYTES +
924 + RXE_ATMETH_BYTES
925 + RXE_DETH_BYTES +
926 + RXE_RDETH_BYTES,
927 }
928 },
929
930
931 [IB_OPCODE_UD_SEND_ONLY] = {
932 .name = "IB_OPCODE_UD_SEND_ONLY",
933 .mask = RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK
934 | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK
935 | RXE_START_MASK | RXE_END_MASK,
936 .length = RXE_BTH_BYTES + RXE_DETH_BYTES,
937 .offset = {
938 [RXE_BTH] = 0,
939 [RXE_DETH] = RXE_BTH_BYTES,
940 [RXE_PAYLOAD] = RXE_BTH_BYTES
941 + RXE_DETH_BYTES,
942 }
943 },
944 [IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE] = {
945 .name = "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE",
946 .mask = RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK
947 | RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK
948 | RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK,
949 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES,
950 .offset = {
951 [RXE_BTH] = 0,
952 [RXE_DETH] = RXE_BTH_BYTES,
953 [RXE_IMMDT] = RXE_BTH_BYTES
954 + RXE_DETH_BYTES,
955 [RXE_PAYLOAD] = RXE_BTH_BYTES
956 + RXE_DETH_BYTES
957 + RXE_IMMDT_BYTES,
958 }
959 },
960
961 };