0001
0002
0003
0004
0005
0006
0007 #include <rdma/ib_pack.h>
0008 #include "rxe_opcode.h"
0009 #include "rxe_hdr.h"
0010
0011
0012
0013
0014 struct rxe_wr_opcode_info rxe_wr_opcode_info[] = {
0015 [IB_WR_RDMA_WRITE] = {
0016 .name = "IB_WR_RDMA_WRITE",
0017 .mask = {
0018 [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK,
0019 [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK,
0020 },
0021 },
0022 [IB_WR_RDMA_WRITE_WITH_IMM] = {
0023 .name = "IB_WR_RDMA_WRITE_WITH_IMM",
0024 .mask = {
0025 [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK,
0026 [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK,
0027 },
0028 },
0029 [IB_WR_SEND] = {
0030 .name = "IB_WR_SEND",
0031 .mask = {
0032 [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK,
0033 [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK,
0034 [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK,
0035 [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK,
0036 },
0037 },
0038 [IB_WR_SEND_WITH_IMM] = {
0039 .name = "IB_WR_SEND_WITH_IMM",
0040 .mask = {
0041 [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK,
0042 [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK,
0043 [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK,
0044 [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK,
0045 },
0046 },
0047 [IB_WR_RDMA_READ] = {
0048 .name = "IB_WR_RDMA_READ",
0049 .mask = {
0050 [IB_QPT_RC] = WR_READ_MASK,
0051 },
0052 },
0053 [IB_WR_ATOMIC_CMP_AND_SWP] = {
0054 .name = "IB_WR_ATOMIC_CMP_AND_SWP",
0055 .mask = {
0056 [IB_QPT_RC] = WR_ATOMIC_MASK,
0057 },
0058 },
0059 [IB_WR_ATOMIC_FETCH_AND_ADD] = {
0060 .name = "IB_WR_ATOMIC_FETCH_AND_ADD",
0061 .mask = {
0062 [IB_QPT_RC] = WR_ATOMIC_MASK,
0063 },
0064 },
0065 [IB_WR_LSO] = {
0066 .name = "IB_WR_LSO",
0067 .mask = {
0068
0069 },
0070 },
0071 [IB_WR_SEND_WITH_INV] = {
0072 .name = "IB_WR_SEND_WITH_INV",
0073 .mask = {
0074 [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK,
0075 [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK,
0076 [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK,
0077 },
0078 },
0079 [IB_WR_RDMA_READ_WITH_INV] = {
0080 .name = "IB_WR_RDMA_READ_WITH_INV",
0081 .mask = {
0082 [IB_QPT_RC] = WR_READ_MASK,
0083 },
0084 },
0085 [IB_WR_LOCAL_INV] = {
0086 .name = "IB_WR_LOCAL_INV",
0087 .mask = {
0088 [IB_QPT_RC] = WR_LOCAL_OP_MASK,
0089 },
0090 },
0091 [IB_WR_REG_MR] = {
0092 .name = "IB_WR_REG_MR",
0093 .mask = {
0094 [IB_QPT_RC] = WR_LOCAL_OP_MASK,
0095 },
0096 },
0097 [IB_WR_BIND_MW] = {
0098 .name = "IB_WR_BIND_MW",
0099 .mask = {
0100 [IB_QPT_RC] = WR_LOCAL_OP_MASK,
0101 [IB_QPT_UC] = WR_LOCAL_OP_MASK,
0102 },
0103 },
0104 };
0105
0106 struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = {
0107 [IB_OPCODE_RC_SEND_FIRST] = {
0108 .name = "IB_OPCODE_RC_SEND_FIRST",
0109 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK |
0110 RXE_SEND_MASK | RXE_START_MASK,
0111 .length = RXE_BTH_BYTES,
0112 .offset = {
0113 [RXE_BTH] = 0,
0114 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0115 }
0116 },
0117 [IB_OPCODE_RC_SEND_MIDDLE] = {
0118 .name = "IB_OPCODE_RC_SEND_MIDDLE",
0119 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK |
0120 RXE_MIDDLE_MASK,
0121 .length = RXE_BTH_BYTES,
0122 .offset = {
0123 [RXE_BTH] = 0,
0124 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0125 }
0126 },
0127 [IB_OPCODE_RC_SEND_LAST] = {
0128 .name = "IB_OPCODE_RC_SEND_LAST",
0129 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |
0130 RXE_SEND_MASK | RXE_END_MASK,
0131 .length = RXE_BTH_BYTES,
0132 .offset = {
0133 [RXE_BTH] = 0,
0134 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0135 }
0136 },
0137 [IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE] = {
0138 .name = "IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE",
0139 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0140 RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,
0141 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
0142 .offset = {
0143 [RXE_BTH] = 0,
0144 [RXE_IMMDT] = RXE_BTH_BYTES,
0145 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0146 RXE_IMMDT_BYTES,
0147 }
0148 },
0149 [IB_OPCODE_RC_SEND_ONLY] = {
0150 .name = "IB_OPCODE_RC_SEND_ONLY",
0151 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |
0152 RXE_RWR_MASK | RXE_SEND_MASK |
0153 RXE_START_MASK | RXE_END_MASK,
0154 .length = RXE_BTH_BYTES,
0155 .offset = {
0156 [RXE_BTH] = 0,
0157 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0158 }
0159 },
0160 [IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE] = {
0161 .name = "IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE",
0162 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0163 RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |
0164 RXE_START_MASK | RXE_END_MASK,
0165 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
0166 .offset = {
0167 [RXE_BTH] = 0,
0168 [RXE_IMMDT] = RXE_BTH_BYTES,
0169 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0170 RXE_IMMDT_BYTES,
0171 }
0172 },
0173 [IB_OPCODE_RC_RDMA_WRITE_FIRST] = {
0174 .name = "IB_OPCODE_RC_RDMA_WRITE_FIRST",
0175 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0176 RXE_WRITE_MASK | RXE_START_MASK,
0177 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
0178 .offset = {
0179 [RXE_BTH] = 0,
0180 [RXE_RETH] = RXE_BTH_BYTES,
0181 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0182 RXE_RETH_BYTES,
0183 }
0184 },
0185 [IB_OPCODE_RC_RDMA_WRITE_MIDDLE] = {
0186 .name = "IB_OPCODE_RC_RDMA_WRITE_MIDDLE",
0187 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |
0188 RXE_MIDDLE_MASK,
0189 .length = RXE_BTH_BYTES,
0190 .offset = {
0191 [RXE_BTH] = 0,
0192 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0193 }
0194 },
0195 [IB_OPCODE_RC_RDMA_WRITE_LAST] = {
0196 .name = "IB_OPCODE_RC_RDMA_WRITE_LAST",
0197 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |
0198 RXE_END_MASK,
0199 .length = RXE_BTH_BYTES,
0200 .offset = {
0201 [RXE_BTH] = 0,
0202 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0203 }
0204 },
0205 [IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = {
0206 .name = "IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE",
0207 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0208 RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK |
0209 RXE_END_MASK,
0210 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
0211 .offset = {
0212 [RXE_BTH] = 0,
0213 [RXE_IMMDT] = RXE_BTH_BYTES,
0214 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0215 RXE_IMMDT_BYTES,
0216 }
0217 },
0218 [IB_OPCODE_RC_RDMA_WRITE_ONLY] = {
0219 .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY",
0220 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0221 RXE_WRITE_MASK | RXE_START_MASK |
0222 RXE_END_MASK,
0223 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
0224 .offset = {
0225 [RXE_BTH] = 0,
0226 [RXE_RETH] = RXE_BTH_BYTES,
0227 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0228 RXE_RETH_BYTES,
0229 }
0230 },
0231 [IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = {
0232 .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE",
0233 .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |
0234 RXE_REQ_MASK | RXE_WRITE_MASK |
0235 RXE_COMP_MASK | RXE_RWR_MASK |
0236 RXE_START_MASK | RXE_END_MASK,
0237 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES,
0238 .offset = {
0239 [RXE_BTH] = 0,
0240 [RXE_RETH] = RXE_BTH_BYTES,
0241 [RXE_IMMDT] = RXE_BTH_BYTES +
0242 RXE_RETH_BYTES,
0243 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0244 RXE_RETH_BYTES +
0245 RXE_IMMDT_BYTES,
0246 }
0247 },
0248 [IB_OPCODE_RC_RDMA_READ_REQUEST] = {
0249 .name = "IB_OPCODE_RC_RDMA_READ_REQUEST",
0250 .mask = RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK |
0251 RXE_START_MASK | RXE_END_MASK,
0252 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
0253 .offset = {
0254 [RXE_BTH] = 0,
0255 [RXE_RETH] = RXE_BTH_BYTES,
0256 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0257 RXE_RETH_BYTES,
0258 }
0259 },
0260 [IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST] = {
0261 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST",
0262 .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |
0263 RXE_START_MASK,
0264 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
0265 .offset = {
0266 [RXE_BTH] = 0,
0267 [RXE_AETH] = RXE_BTH_BYTES,
0268 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0269 RXE_AETH_BYTES,
0270 }
0271 },
0272 [IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE] = {
0273 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE",
0274 .mask = RXE_PAYLOAD_MASK | RXE_ACK_MASK | RXE_MIDDLE_MASK,
0275 .length = RXE_BTH_BYTES,
0276 .offset = {
0277 [RXE_BTH] = 0,
0278 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0279 }
0280 },
0281 [IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST] = {
0282 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST",
0283 .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |
0284 RXE_END_MASK,
0285 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
0286 .offset = {
0287 [RXE_BTH] = 0,
0288 [RXE_AETH] = RXE_BTH_BYTES,
0289 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0290 RXE_AETH_BYTES,
0291 }
0292 },
0293 [IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY] = {
0294 .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY",
0295 .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |
0296 RXE_START_MASK | RXE_END_MASK,
0297 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
0298 .offset = {
0299 [RXE_BTH] = 0,
0300 [RXE_AETH] = RXE_BTH_BYTES,
0301 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0302 RXE_AETH_BYTES,
0303 }
0304 },
0305 [IB_OPCODE_RC_ACKNOWLEDGE] = {
0306 .name = "IB_OPCODE_RC_ACKNOWLEDGE",
0307 .mask = RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK |
0308 RXE_END_MASK,
0309 .length = RXE_BTH_BYTES + RXE_AETH_BYTES,
0310 .offset = {
0311 [RXE_BTH] = 0,
0312 [RXE_AETH] = RXE_BTH_BYTES,
0313 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0314 RXE_AETH_BYTES,
0315 }
0316 },
0317 [IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE] = {
0318 .name = "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE",
0319 .mask = RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK |
0320 RXE_START_MASK | RXE_END_MASK,
0321 .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES,
0322 .offset = {
0323 [RXE_BTH] = 0,
0324 [RXE_AETH] = RXE_BTH_BYTES,
0325 [RXE_ATMACK] = RXE_BTH_BYTES +
0326 RXE_AETH_BYTES,
0327 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0328 RXE_ATMACK_BYTES +
0329 RXE_AETH_BYTES,
0330 }
0331 },
0332 [IB_OPCODE_RC_COMPARE_SWAP] = {
0333 .name = "IB_OPCODE_RC_COMPARE_SWAP",
0334 .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK |
0335 RXE_START_MASK | RXE_END_MASK,
0336 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES,
0337 .offset = {
0338 [RXE_BTH] = 0,
0339 [RXE_ATMETH] = RXE_BTH_BYTES,
0340 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0341 RXE_ATMETH_BYTES,
0342 }
0343 },
0344 [IB_OPCODE_RC_FETCH_ADD] = {
0345 .name = "IB_OPCODE_RC_FETCH_ADD",
0346 .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK |
0347 RXE_START_MASK | RXE_END_MASK,
0348 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES,
0349 .offset = {
0350 [RXE_BTH] = 0,
0351 [RXE_ATMETH] = RXE_BTH_BYTES,
0352 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0353 RXE_ATMETH_BYTES,
0354 }
0355 },
0356 [IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE] = {
0357 .name = "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE",
0358 .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0359 RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,
0360 .length = RXE_BTH_BYTES + RXE_IETH_BYTES,
0361 .offset = {
0362 [RXE_BTH] = 0,
0363 [RXE_IETH] = RXE_BTH_BYTES,
0364 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0365 RXE_IETH_BYTES,
0366 }
0367 },
0368 [IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE] = {
0369 .name = "IB_OPCODE_RC_SEND_ONLY_INV",
0370 .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0371 RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |
0372 RXE_END_MASK | RXE_START_MASK,
0373 .length = RXE_BTH_BYTES + RXE_IETH_BYTES,
0374 .offset = {
0375 [RXE_BTH] = 0,
0376 [RXE_IETH] = RXE_BTH_BYTES,
0377 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0378 RXE_IETH_BYTES,
0379 }
0380 },
0381
0382
0383 [IB_OPCODE_UC_SEND_FIRST] = {
0384 .name = "IB_OPCODE_UC_SEND_FIRST",
0385 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK |
0386 RXE_SEND_MASK | RXE_START_MASK,
0387 .length = RXE_BTH_BYTES,
0388 .offset = {
0389 [RXE_BTH] = 0,
0390 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0391 }
0392 },
0393 [IB_OPCODE_UC_SEND_MIDDLE] = {
0394 .name = "IB_OPCODE_UC_SEND_MIDDLE",
0395 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK |
0396 RXE_MIDDLE_MASK,
0397 .length = RXE_BTH_BYTES,
0398 .offset = {
0399 [RXE_BTH] = 0,
0400 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0401 }
0402 },
0403 [IB_OPCODE_UC_SEND_LAST] = {
0404 .name = "IB_OPCODE_UC_SEND_LAST",
0405 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |
0406 RXE_SEND_MASK | RXE_END_MASK,
0407 .length = RXE_BTH_BYTES,
0408 .offset = {
0409 [RXE_BTH] = 0,
0410 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0411 }
0412 },
0413 [IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE] = {
0414 .name = "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE",
0415 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0416 RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,
0417 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
0418 .offset = {
0419 [RXE_BTH] = 0,
0420 [RXE_IMMDT] = RXE_BTH_BYTES,
0421 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0422 RXE_IMMDT_BYTES,
0423 }
0424 },
0425 [IB_OPCODE_UC_SEND_ONLY] = {
0426 .name = "IB_OPCODE_UC_SEND_ONLY",
0427 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |
0428 RXE_RWR_MASK | RXE_SEND_MASK |
0429 RXE_START_MASK | RXE_END_MASK,
0430 .length = RXE_BTH_BYTES,
0431 .offset = {
0432 [RXE_BTH] = 0,
0433 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0434 }
0435 },
0436 [IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE] = {
0437 .name = "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE",
0438 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0439 RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |
0440 RXE_START_MASK | RXE_END_MASK,
0441 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
0442 .offset = {
0443 [RXE_BTH] = 0,
0444 [RXE_IMMDT] = RXE_BTH_BYTES,
0445 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0446 RXE_IMMDT_BYTES,
0447 }
0448 },
0449 [IB_OPCODE_UC_RDMA_WRITE_FIRST] = {
0450 .name = "IB_OPCODE_UC_RDMA_WRITE_FIRST",
0451 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0452 RXE_WRITE_MASK | RXE_START_MASK,
0453 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
0454 .offset = {
0455 [RXE_BTH] = 0,
0456 [RXE_RETH] = RXE_BTH_BYTES,
0457 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0458 RXE_RETH_BYTES,
0459 }
0460 },
0461 [IB_OPCODE_UC_RDMA_WRITE_MIDDLE] = {
0462 .name = "IB_OPCODE_UC_RDMA_WRITE_MIDDLE",
0463 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |
0464 RXE_MIDDLE_MASK,
0465 .length = RXE_BTH_BYTES,
0466 .offset = {
0467 [RXE_BTH] = 0,
0468 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0469 }
0470 },
0471 [IB_OPCODE_UC_RDMA_WRITE_LAST] = {
0472 .name = "IB_OPCODE_UC_RDMA_WRITE_LAST",
0473 .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |
0474 RXE_END_MASK,
0475 .length = RXE_BTH_BYTES,
0476 .offset = {
0477 [RXE_BTH] = 0,
0478 [RXE_PAYLOAD] = RXE_BTH_BYTES,
0479 }
0480 },
0481 [IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = {
0482 .name = "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE",
0483 .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0484 RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK |
0485 RXE_END_MASK,
0486 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,
0487 .offset = {
0488 [RXE_BTH] = 0,
0489 [RXE_IMMDT] = RXE_BTH_BYTES,
0490 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0491 RXE_IMMDT_BYTES,
0492 }
0493 },
0494 [IB_OPCODE_UC_RDMA_WRITE_ONLY] = {
0495 .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY",
0496 .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0497 RXE_WRITE_MASK | RXE_START_MASK |
0498 RXE_END_MASK,
0499 .length = RXE_BTH_BYTES + RXE_RETH_BYTES,
0500 .offset = {
0501 [RXE_BTH] = 0,
0502 [RXE_RETH] = RXE_BTH_BYTES,
0503 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0504 RXE_RETH_BYTES,
0505 }
0506 },
0507 [IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = {
0508 .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE",
0509 .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |
0510 RXE_REQ_MASK | RXE_WRITE_MASK |
0511 RXE_COMP_MASK | RXE_RWR_MASK |
0512 RXE_START_MASK | RXE_END_MASK,
0513 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES,
0514 .offset = {
0515 [RXE_BTH] = 0,
0516 [RXE_RETH] = RXE_BTH_BYTES,
0517 [RXE_IMMDT] = RXE_BTH_BYTES +
0518 RXE_RETH_BYTES,
0519 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0520 RXE_RETH_BYTES +
0521 RXE_IMMDT_BYTES,
0522 }
0523 },
0524
0525
0526 [IB_OPCODE_RD_SEND_FIRST] = {
0527 .name = "IB_OPCODE_RD_SEND_FIRST",
0528 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |
0529 RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK |
0530 RXE_START_MASK,
0531 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
0532 .offset = {
0533 [RXE_BTH] = 0,
0534 [RXE_RDETH] = RXE_BTH_BYTES,
0535 [RXE_DETH] = RXE_BTH_BYTES +
0536 RXE_RDETH_BYTES,
0537 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0538 RXE_RDETH_BYTES +
0539 RXE_DETH_BYTES,
0540 }
0541 },
0542 [IB_OPCODE_RD_SEND_MIDDLE] = {
0543 .name = "IB_OPCODE_RD_SEND_MIDDLE",
0544 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |
0545 RXE_REQ_MASK | RXE_SEND_MASK |
0546 RXE_MIDDLE_MASK,
0547 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
0548 .offset = {
0549 [RXE_BTH] = 0,
0550 [RXE_RDETH] = RXE_BTH_BYTES,
0551 [RXE_DETH] = RXE_BTH_BYTES +
0552 RXE_RDETH_BYTES,
0553 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0554 RXE_RDETH_BYTES +
0555 RXE_DETH_BYTES,
0556 }
0557 },
0558 [IB_OPCODE_RD_SEND_LAST] = {
0559 .name = "IB_OPCODE_RD_SEND_LAST",
0560 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |
0561 RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK |
0562 RXE_END_MASK,
0563 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
0564 .offset = {
0565 [RXE_BTH] = 0,
0566 [RXE_RDETH] = RXE_BTH_BYTES,
0567 [RXE_DETH] = RXE_BTH_BYTES +
0568 RXE_RDETH_BYTES,
0569 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0570 RXE_RDETH_BYTES +
0571 RXE_DETH_BYTES,
0572 }
0573 },
0574 [IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE] = {
0575 .name = "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE",
0576 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK |
0577 RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0578 RXE_COMP_MASK | RXE_SEND_MASK |
0579 RXE_END_MASK,
0580 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES +
0581 RXE_RDETH_BYTES,
0582 .offset = {
0583 [RXE_BTH] = 0,
0584 [RXE_RDETH] = RXE_BTH_BYTES,
0585 [RXE_DETH] = RXE_BTH_BYTES +
0586 RXE_RDETH_BYTES,
0587 [RXE_IMMDT] = RXE_BTH_BYTES +
0588 RXE_RDETH_BYTES +
0589 RXE_DETH_BYTES,
0590 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0591 RXE_RDETH_BYTES +
0592 RXE_DETH_BYTES +
0593 RXE_IMMDT_BYTES,
0594 }
0595 },
0596 [IB_OPCODE_RD_SEND_ONLY] = {
0597 .name = "IB_OPCODE_RD_SEND_ONLY",
0598 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |
0599 RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK |
0600 RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK,
0601 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
0602 .offset = {
0603 [RXE_BTH] = 0,
0604 [RXE_RDETH] = RXE_BTH_BYTES,
0605 [RXE_DETH] = RXE_BTH_BYTES +
0606 RXE_RDETH_BYTES,
0607 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0608 RXE_RDETH_BYTES +
0609 RXE_DETH_BYTES,
0610 }
0611 },
0612 [IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE] = {
0613 .name = "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE",
0614 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK |
0615 RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0616 RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |
0617 RXE_START_MASK | RXE_END_MASK,
0618 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES +
0619 RXE_RDETH_BYTES,
0620 .offset = {
0621 [RXE_BTH] = 0,
0622 [RXE_RDETH] = RXE_BTH_BYTES,
0623 [RXE_DETH] = RXE_BTH_BYTES +
0624 RXE_RDETH_BYTES,
0625 [RXE_IMMDT] = RXE_BTH_BYTES +
0626 RXE_RDETH_BYTES +
0627 RXE_DETH_BYTES,
0628 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0629 RXE_RDETH_BYTES +
0630 RXE_DETH_BYTES +
0631 RXE_IMMDT_BYTES,
0632 }
0633 },
0634 [IB_OPCODE_RD_RDMA_WRITE_FIRST] = {
0635 .name = "IB_OPCODE_RD_RDMA_WRITE_FIRST",
0636 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |
0637 RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0638 RXE_WRITE_MASK | RXE_START_MASK,
0639 .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES +
0640 RXE_RDETH_BYTES,
0641 .offset = {
0642 [RXE_BTH] = 0,
0643 [RXE_RDETH] = RXE_BTH_BYTES,
0644 [RXE_DETH] = RXE_BTH_BYTES +
0645 RXE_RDETH_BYTES,
0646 [RXE_RETH] = RXE_BTH_BYTES +
0647 RXE_RDETH_BYTES +
0648 RXE_DETH_BYTES,
0649 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0650 RXE_RDETH_BYTES +
0651 RXE_DETH_BYTES +
0652 RXE_RETH_BYTES,
0653 }
0654 },
0655 [IB_OPCODE_RD_RDMA_WRITE_MIDDLE] = {
0656 .name = "IB_OPCODE_RD_RDMA_WRITE_MIDDLE",
0657 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |
0658 RXE_REQ_MASK | RXE_WRITE_MASK |
0659 RXE_MIDDLE_MASK,
0660 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
0661 .offset = {
0662 [RXE_BTH] = 0,
0663 [RXE_RDETH] = RXE_BTH_BYTES,
0664 [RXE_DETH] = RXE_BTH_BYTES +
0665 RXE_RDETH_BYTES,
0666 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0667 RXE_RDETH_BYTES +
0668 RXE_DETH_BYTES,
0669 }
0670 },
0671 [IB_OPCODE_RD_RDMA_WRITE_LAST] = {
0672 .name = "IB_OPCODE_RD_RDMA_WRITE_LAST",
0673 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |
0674 RXE_REQ_MASK | RXE_WRITE_MASK |
0675 RXE_END_MASK,
0676 .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,
0677 .offset = {
0678 [RXE_BTH] = 0,
0679 [RXE_RDETH] = RXE_BTH_BYTES,
0680 [RXE_DETH] = RXE_BTH_BYTES +
0681 RXE_RDETH_BYTES,
0682 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0683 RXE_RDETH_BYTES +
0684 RXE_DETH_BYTES,
0685 }
0686 },
0687 [IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE] = {
0688 .name = "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE",
0689 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK |
0690 RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0691 RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK |
0692 RXE_END_MASK,
0693 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES +
0694 RXE_RDETH_BYTES,
0695 .offset = {
0696 [RXE_BTH] = 0,
0697 [RXE_RDETH] = RXE_BTH_BYTES,
0698 [RXE_DETH] = RXE_BTH_BYTES +
0699 RXE_RDETH_BYTES,
0700 [RXE_IMMDT] = RXE_BTH_BYTES +
0701 RXE_RDETH_BYTES +
0702 RXE_DETH_BYTES,
0703 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0704 RXE_RDETH_BYTES +
0705 RXE_DETH_BYTES +
0706 RXE_IMMDT_BYTES,
0707 }
0708 },
0709 [IB_OPCODE_RD_RDMA_WRITE_ONLY] = {
0710 .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY",
0711 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |
0712 RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0713 RXE_WRITE_MASK | RXE_START_MASK |
0714 RXE_END_MASK,
0715 .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES +
0716 RXE_RDETH_BYTES,
0717 .offset = {
0718 [RXE_BTH] = 0,
0719 [RXE_RDETH] = RXE_BTH_BYTES,
0720 [RXE_DETH] = RXE_BTH_BYTES +
0721 RXE_RDETH_BYTES,
0722 [RXE_RETH] = RXE_BTH_BYTES +
0723 RXE_RDETH_BYTES +
0724 RXE_DETH_BYTES,
0725 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0726 RXE_RDETH_BYTES +
0727 RXE_DETH_BYTES +
0728 RXE_RETH_BYTES,
0729 }
0730 },
0731 [IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = {
0732 .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE",
0733 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |
0734 RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |
0735 RXE_REQ_MASK | RXE_WRITE_MASK |
0736 RXE_COMP_MASK | RXE_RWR_MASK |
0737 RXE_START_MASK | RXE_END_MASK,
0738 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES +
0739 RXE_DETH_BYTES + RXE_RDETH_BYTES,
0740 .offset = {
0741 [RXE_BTH] = 0,
0742 [RXE_RDETH] = RXE_BTH_BYTES,
0743 [RXE_DETH] = RXE_BTH_BYTES +
0744 RXE_RDETH_BYTES,
0745 [RXE_RETH] = RXE_BTH_BYTES +
0746 RXE_RDETH_BYTES +
0747 RXE_DETH_BYTES,
0748 [RXE_IMMDT] = RXE_BTH_BYTES +
0749 RXE_RDETH_BYTES +
0750 RXE_DETH_BYTES +
0751 RXE_RETH_BYTES,
0752 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0753 RXE_RDETH_BYTES +
0754 RXE_DETH_BYTES +
0755 RXE_RETH_BYTES +
0756 RXE_IMMDT_BYTES,
0757 }
0758 },
0759 [IB_OPCODE_RD_RDMA_READ_REQUEST] = {
0760 .name = "IB_OPCODE_RD_RDMA_READ_REQUEST",
0761 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |
0762 RXE_REQ_MASK | RXE_READ_MASK |
0763 RXE_START_MASK | RXE_END_MASK,
0764 .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES +
0765 RXE_RDETH_BYTES,
0766 .offset = {
0767 [RXE_BTH] = 0,
0768 [RXE_RDETH] = RXE_BTH_BYTES,
0769 [RXE_DETH] = RXE_BTH_BYTES +
0770 RXE_RDETH_BYTES,
0771 [RXE_RETH] = RXE_BTH_BYTES +
0772 RXE_RDETH_BYTES +
0773 RXE_DETH_BYTES,
0774 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0775 RXE_RETH_BYTES +
0776 RXE_DETH_BYTES +
0777 RXE_RDETH_BYTES,
0778 }
0779 },
0780 [IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST] = {
0781 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST",
0782 .mask = RXE_RDETH_MASK | RXE_AETH_MASK |
0783 RXE_PAYLOAD_MASK | RXE_ACK_MASK |
0784 RXE_START_MASK,
0785 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
0786 .offset = {
0787 [RXE_BTH] = 0,
0788 [RXE_RDETH] = RXE_BTH_BYTES,
0789 [RXE_AETH] = RXE_BTH_BYTES +
0790 RXE_RDETH_BYTES,
0791 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0792 RXE_RDETH_BYTES +
0793 RXE_AETH_BYTES,
0794 }
0795 },
0796 [IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE] = {
0797 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE",
0798 .mask = RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |
0799 RXE_MIDDLE_MASK,
0800 .length = RXE_BTH_BYTES + RXE_RDETH_BYTES,
0801 .offset = {
0802 [RXE_BTH] = 0,
0803 [RXE_RDETH] = RXE_BTH_BYTES,
0804 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0805 RXE_RDETH_BYTES,
0806 }
0807 },
0808 [IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST] = {
0809 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST",
0810 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK |
0811 RXE_ACK_MASK | RXE_END_MASK,
0812 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
0813 .offset = {
0814 [RXE_BTH] = 0,
0815 [RXE_RDETH] = RXE_BTH_BYTES,
0816 [RXE_AETH] = RXE_BTH_BYTES +
0817 RXE_RDETH_BYTES,
0818 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0819 RXE_RDETH_BYTES +
0820 RXE_AETH_BYTES,
0821 }
0822 },
0823 [IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY] = {
0824 .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY",
0825 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK |
0826 RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK,
0827 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
0828 .offset = {
0829 [RXE_BTH] = 0,
0830 [RXE_RDETH] = RXE_BTH_BYTES,
0831 [RXE_AETH] = RXE_BTH_BYTES +
0832 RXE_RDETH_BYTES,
0833 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0834 RXE_RDETH_BYTES +
0835 RXE_AETH_BYTES,
0836 }
0837 },
0838 [IB_OPCODE_RD_ACKNOWLEDGE] = {
0839 .name = "IB_OPCODE_RD_ACKNOWLEDGE",
0840 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK |
0841 RXE_START_MASK | RXE_END_MASK,
0842 .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,
0843 .offset = {
0844 [RXE_BTH] = 0,
0845 [RXE_RDETH] = RXE_BTH_BYTES,
0846 [RXE_AETH] = RXE_BTH_BYTES +
0847 RXE_RDETH_BYTES,
0848 }
0849 },
0850 [IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE] = {
0851 .name = "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE",
0852 .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK |
0853 RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK,
0854 .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES +
0855 RXE_RDETH_BYTES,
0856 .offset = {
0857 [RXE_BTH] = 0,
0858 [RXE_RDETH] = RXE_BTH_BYTES,
0859 [RXE_AETH] = RXE_BTH_BYTES +
0860 RXE_RDETH_BYTES,
0861 [RXE_ATMACK] = RXE_BTH_BYTES +
0862 RXE_RDETH_BYTES +
0863 RXE_AETH_BYTES,
0864 }
0865 },
0866 [IB_OPCODE_RD_COMPARE_SWAP] = {
0867 .name = "RD_COMPARE_SWAP",
0868 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK |
0869 RXE_REQ_MASK | RXE_ATOMIC_MASK |
0870 RXE_START_MASK | RXE_END_MASK,
0871 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES +
0872 RXE_RDETH_BYTES,
0873 .offset = {
0874 [RXE_BTH] = 0,
0875 [RXE_RDETH] = RXE_BTH_BYTES,
0876 [RXE_DETH] = RXE_BTH_BYTES +
0877 RXE_RDETH_BYTES,
0878 [RXE_ATMETH] = RXE_BTH_BYTES +
0879 RXE_RDETH_BYTES +
0880 RXE_DETH_BYTES,
0881 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0882 RXE_ATMETH_BYTES +
0883 RXE_DETH_BYTES +
0884 RXE_RDETH_BYTES,
0885 }
0886 },
0887 [IB_OPCODE_RD_FETCH_ADD] = {
0888 .name = "IB_OPCODE_RD_FETCH_ADD",
0889 .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK |
0890 RXE_REQ_MASK | RXE_ATOMIC_MASK |
0891 RXE_START_MASK | RXE_END_MASK,
0892 .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES +
0893 RXE_RDETH_BYTES,
0894 .offset = {
0895 [RXE_BTH] = 0,
0896 [RXE_RDETH] = RXE_BTH_BYTES,
0897 [RXE_DETH] = RXE_BTH_BYTES +
0898 RXE_RDETH_BYTES,
0899 [RXE_ATMETH] = RXE_BTH_BYTES +
0900 RXE_RDETH_BYTES +
0901 RXE_DETH_BYTES,
0902 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0903 RXE_ATMETH_BYTES +
0904 RXE_DETH_BYTES +
0905 RXE_RDETH_BYTES,
0906 }
0907 },
0908
0909
0910 [IB_OPCODE_UD_SEND_ONLY] = {
0911 .name = "IB_OPCODE_UD_SEND_ONLY",
0912 .mask = RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |
0913 RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |
0914 RXE_START_MASK | RXE_END_MASK,
0915 .length = RXE_BTH_BYTES + RXE_DETH_BYTES,
0916 .offset = {
0917 [RXE_BTH] = 0,
0918 [RXE_DETH] = RXE_BTH_BYTES,
0919 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0920 RXE_DETH_BYTES,
0921 }
0922 },
0923 [IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE] = {
0924 .name = "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE",
0925 .mask = RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |
0926 RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK |
0927 RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK,
0928 .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES,
0929 .offset = {
0930 [RXE_BTH] = 0,
0931 [RXE_DETH] = RXE_BTH_BYTES,
0932 [RXE_IMMDT] = RXE_BTH_BYTES +
0933 RXE_DETH_BYTES,
0934 [RXE_PAYLOAD] = RXE_BTH_BYTES +
0935 RXE_DETH_BYTES +
0936 RXE_IMMDT_BYTES,
0937 }
0938 },
0939
0940 };