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