162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2016 Mellanox Technologies Ltd. All rights reserved. 462306a36Sopenharmony_ci * Copyright (c) 2015 System Fabric Works, Inc. All rights reserved. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <rdma/ib_pack.h> 862306a36Sopenharmony_ci#include "rxe_opcode.h" 962306a36Sopenharmony_ci#include "rxe_hdr.h" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/* useful information about work request opcodes and pkt opcodes in 1262306a36Sopenharmony_ci * table form 1362306a36Sopenharmony_ci */ 1462306a36Sopenharmony_cistruct rxe_wr_opcode_info rxe_wr_opcode_info[] = { 1562306a36Sopenharmony_ci [IB_WR_RDMA_WRITE] = { 1662306a36Sopenharmony_ci .name = "IB_WR_RDMA_WRITE", 1762306a36Sopenharmony_ci .mask = { 1862306a36Sopenharmony_ci [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK, 1962306a36Sopenharmony_ci [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK, 2062306a36Sopenharmony_ci }, 2162306a36Sopenharmony_ci }, 2262306a36Sopenharmony_ci [IB_WR_RDMA_WRITE_WITH_IMM] = { 2362306a36Sopenharmony_ci .name = "IB_WR_RDMA_WRITE_WITH_IMM", 2462306a36Sopenharmony_ci .mask = { 2562306a36Sopenharmony_ci [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK, 2662306a36Sopenharmony_ci [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK, 2762306a36Sopenharmony_ci }, 2862306a36Sopenharmony_ci }, 2962306a36Sopenharmony_ci [IB_WR_SEND] = { 3062306a36Sopenharmony_ci .name = "IB_WR_SEND", 3162306a36Sopenharmony_ci .mask = { 3262306a36Sopenharmony_ci [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK, 3362306a36Sopenharmony_ci [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 3462306a36Sopenharmony_ci [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 3562306a36Sopenharmony_ci [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 3662306a36Sopenharmony_ci }, 3762306a36Sopenharmony_ci }, 3862306a36Sopenharmony_ci [IB_WR_SEND_WITH_IMM] = { 3962306a36Sopenharmony_ci .name = "IB_WR_SEND_WITH_IMM", 4062306a36Sopenharmony_ci .mask = { 4162306a36Sopenharmony_ci [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK, 4262306a36Sopenharmony_ci [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 4362306a36Sopenharmony_ci [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 4462306a36Sopenharmony_ci [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 4562306a36Sopenharmony_ci }, 4662306a36Sopenharmony_ci }, 4762306a36Sopenharmony_ci [IB_WR_RDMA_READ] = { 4862306a36Sopenharmony_ci .name = "IB_WR_RDMA_READ", 4962306a36Sopenharmony_ci .mask = { 5062306a36Sopenharmony_ci [IB_QPT_RC] = WR_READ_MASK, 5162306a36Sopenharmony_ci }, 5262306a36Sopenharmony_ci }, 5362306a36Sopenharmony_ci [IB_WR_ATOMIC_CMP_AND_SWP] = { 5462306a36Sopenharmony_ci .name = "IB_WR_ATOMIC_CMP_AND_SWP", 5562306a36Sopenharmony_ci .mask = { 5662306a36Sopenharmony_ci [IB_QPT_RC] = WR_ATOMIC_MASK, 5762306a36Sopenharmony_ci }, 5862306a36Sopenharmony_ci }, 5962306a36Sopenharmony_ci [IB_WR_ATOMIC_FETCH_AND_ADD] = { 6062306a36Sopenharmony_ci .name = "IB_WR_ATOMIC_FETCH_AND_ADD", 6162306a36Sopenharmony_ci .mask = { 6262306a36Sopenharmony_ci [IB_QPT_RC] = WR_ATOMIC_MASK, 6362306a36Sopenharmony_ci }, 6462306a36Sopenharmony_ci }, 6562306a36Sopenharmony_ci [IB_WR_LSO] = { 6662306a36Sopenharmony_ci .name = "IB_WR_LSO", 6762306a36Sopenharmony_ci .mask = { 6862306a36Sopenharmony_ci /* not supported */ 6962306a36Sopenharmony_ci }, 7062306a36Sopenharmony_ci }, 7162306a36Sopenharmony_ci [IB_WR_SEND_WITH_INV] = { 7262306a36Sopenharmony_ci .name = "IB_WR_SEND_WITH_INV", 7362306a36Sopenharmony_ci .mask = { 7462306a36Sopenharmony_ci [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 7562306a36Sopenharmony_ci [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 7662306a36Sopenharmony_ci [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 7762306a36Sopenharmony_ci }, 7862306a36Sopenharmony_ci }, 7962306a36Sopenharmony_ci [IB_WR_RDMA_READ_WITH_INV] = { 8062306a36Sopenharmony_ci .name = "IB_WR_RDMA_READ_WITH_INV", 8162306a36Sopenharmony_ci .mask = { 8262306a36Sopenharmony_ci [IB_QPT_RC] = WR_READ_MASK, 8362306a36Sopenharmony_ci }, 8462306a36Sopenharmony_ci }, 8562306a36Sopenharmony_ci [IB_WR_LOCAL_INV] = { 8662306a36Sopenharmony_ci .name = "IB_WR_LOCAL_INV", 8762306a36Sopenharmony_ci .mask = { 8862306a36Sopenharmony_ci [IB_QPT_RC] = WR_LOCAL_OP_MASK, 8962306a36Sopenharmony_ci }, 9062306a36Sopenharmony_ci }, 9162306a36Sopenharmony_ci [IB_WR_REG_MR] = { 9262306a36Sopenharmony_ci .name = "IB_WR_REG_MR", 9362306a36Sopenharmony_ci .mask = { 9462306a36Sopenharmony_ci [IB_QPT_RC] = WR_LOCAL_OP_MASK, 9562306a36Sopenharmony_ci }, 9662306a36Sopenharmony_ci }, 9762306a36Sopenharmony_ci [IB_WR_BIND_MW] = { 9862306a36Sopenharmony_ci .name = "IB_WR_BIND_MW", 9962306a36Sopenharmony_ci .mask = { 10062306a36Sopenharmony_ci [IB_QPT_RC] = WR_LOCAL_OP_MASK, 10162306a36Sopenharmony_ci [IB_QPT_UC] = WR_LOCAL_OP_MASK, 10262306a36Sopenharmony_ci }, 10362306a36Sopenharmony_ci }, 10462306a36Sopenharmony_ci [IB_WR_FLUSH] = { 10562306a36Sopenharmony_ci .name = "IB_WR_FLUSH", 10662306a36Sopenharmony_ci .mask = { 10762306a36Sopenharmony_ci [IB_QPT_RC] = WR_FLUSH_MASK, 10862306a36Sopenharmony_ci }, 10962306a36Sopenharmony_ci }, 11062306a36Sopenharmony_ci [IB_WR_ATOMIC_WRITE] = { 11162306a36Sopenharmony_ci .name = "IB_WR_ATOMIC_WRITE", 11262306a36Sopenharmony_ci .mask = { 11362306a36Sopenharmony_ci [IB_QPT_RC] = WR_ATOMIC_WRITE_MASK, 11462306a36Sopenharmony_ci }, 11562306a36Sopenharmony_ci }, 11662306a36Sopenharmony_ci}; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_cistruct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = { 11962306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_FIRST] = { 12062306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_FIRST", 12162306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 12262306a36Sopenharmony_ci RXE_SEND_MASK | RXE_START_MASK, 12362306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 12462306a36Sopenharmony_ci .offset = { 12562306a36Sopenharmony_ci [RXE_BTH] = 0, 12662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 12762306a36Sopenharmony_ci } 12862306a36Sopenharmony_ci }, 12962306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_MIDDLE] = { 13062306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_MIDDLE", 13162306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 13262306a36Sopenharmony_ci RXE_MIDDLE_MASK, 13362306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 13462306a36Sopenharmony_ci .offset = { 13562306a36Sopenharmony_ci [RXE_BTH] = 0, 13662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 13762306a36Sopenharmony_ci } 13862306a36Sopenharmony_ci }, 13962306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_LAST] = { 14062306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_LAST", 14162306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 14262306a36Sopenharmony_ci RXE_SEND_MASK | RXE_END_MASK, 14362306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 14462306a36Sopenharmony_ci .offset = { 14562306a36Sopenharmony_ci [RXE_BTH] = 0, 14662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 14762306a36Sopenharmony_ci } 14862306a36Sopenharmony_ci }, 14962306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE] = { 15062306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE", 15162306a36Sopenharmony_ci .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 15262306a36Sopenharmony_ci RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 15362306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 15462306a36Sopenharmony_ci .offset = { 15562306a36Sopenharmony_ci [RXE_BTH] = 0, 15662306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES, 15762306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 15862306a36Sopenharmony_ci RXE_IMMDT_BYTES, 15962306a36Sopenharmony_ci } 16062306a36Sopenharmony_ci }, 16162306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_ONLY] = { 16262306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_ONLY", 16362306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 16462306a36Sopenharmony_ci RXE_RWR_MASK | RXE_SEND_MASK | 16562306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 16662306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 16762306a36Sopenharmony_ci .offset = { 16862306a36Sopenharmony_ci [RXE_BTH] = 0, 16962306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 17062306a36Sopenharmony_ci } 17162306a36Sopenharmony_ci }, 17262306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE] = { 17362306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE", 17462306a36Sopenharmony_ci .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 17562306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 17662306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 17762306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 17862306a36Sopenharmony_ci .offset = { 17962306a36Sopenharmony_ci [RXE_BTH] = 0, 18062306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES, 18162306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 18262306a36Sopenharmony_ci RXE_IMMDT_BYTES, 18362306a36Sopenharmony_ci } 18462306a36Sopenharmony_ci }, 18562306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_WRITE_FIRST] = { 18662306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_WRITE_FIRST", 18762306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 18862306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_START_MASK, 18962306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 19062306a36Sopenharmony_ci .offset = { 19162306a36Sopenharmony_ci [RXE_BTH] = 0, 19262306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 19362306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 19462306a36Sopenharmony_ci RXE_RETH_BYTES, 19562306a36Sopenharmony_ci } 19662306a36Sopenharmony_ci }, 19762306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_WRITE_MIDDLE] = { 19862306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_WRITE_MIDDLE", 19962306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 20062306a36Sopenharmony_ci RXE_MIDDLE_MASK, 20162306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 20262306a36Sopenharmony_ci .offset = { 20362306a36Sopenharmony_ci [RXE_BTH] = 0, 20462306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 20562306a36Sopenharmony_ci } 20662306a36Sopenharmony_ci }, 20762306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_WRITE_LAST] = { 20862306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_WRITE_LAST", 20962306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 21062306a36Sopenharmony_ci RXE_END_MASK, 21162306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 21262306a36Sopenharmony_ci .offset = { 21362306a36Sopenharmony_ci [RXE_BTH] = 0, 21462306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 21562306a36Sopenharmony_ci } 21662306a36Sopenharmony_ci }, 21762306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 21862306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 21962306a36Sopenharmony_ci .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 22062306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 22162306a36Sopenharmony_ci RXE_END_MASK, 22262306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 22362306a36Sopenharmony_ci .offset = { 22462306a36Sopenharmony_ci [RXE_BTH] = 0, 22562306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES, 22662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 22762306a36Sopenharmony_ci RXE_IMMDT_BYTES, 22862306a36Sopenharmony_ci } 22962306a36Sopenharmony_ci }, 23062306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_WRITE_ONLY] = { 23162306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY", 23262306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 23362306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_START_MASK | 23462306a36Sopenharmony_ci RXE_END_MASK, 23562306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 23662306a36Sopenharmony_ci .offset = { 23762306a36Sopenharmony_ci [RXE_BTH] = 0, 23862306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 23962306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 24062306a36Sopenharmony_ci RXE_RETH_BYTES, 24162306a36Sopenharmony_ci } 24262306a36Sopenharmony_ci }, 24362306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 24462306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 24562306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 24662306a36Sopenharmony_ci RXE_REQ_MASK | RXE_WRITE_MASK | 24762306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | 24862306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 24962306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 25062306a36Sopenharmony_ci .offset = { 25162306a36Sopenharmony_ci [RXE_BTH] = 0, 25262306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 25362306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES + 25462306a36Sopenharmony_ci RXE_RETH_BYTES, 25562306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 25662306a36Sopenharmony_ci RXE_RETH_BYTES + 25762306a36Sopenharmony_ci RXE_IMMDT_BYTES, 25862306a36Sopenharmony_ci } 25962306a36Sopenharmony_ci }, 26062306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_READ_REQUEST] = { 26162306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_READ_REQUEST", 26262306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK | 26362306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 26462306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 26562306a36Sopenharmony_ci .offset = { 26662306a36Sopenharmony_ci [RXE_BTH] = 0, 26762306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 26862306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 26962306a36Sopenharmony_ci RXE_RETH_BYTES, 27062306a36Sopenharmony_ci } 27162306a36Sopenharmony_ci }, 27262306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST] = { 27362306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST", 27462306a36Sopenharmony_ci .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 27562306a36Sopenharmony_ci RXE_START_MASK, 27662306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 27762306a36Sopenharmony_ci .offset = { 27862306a36Sopenharmony_ci [RXE_BTH] = 0, 27962306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES, 28062306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 28162306a36Sopenharmony_ci RXE_AETH_BYTES, 28262306a36Sopenharmony_ci } 28362306a36Sopenharmony_ci }, 28462306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE] = { 28562306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE", 28662306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_ACK_MASK | RXE_MIDDLE_MASK, 28762306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 28862306a36Sopenharmony_ci .offset = { 28962306a36Sopenharmony_ci [RXE_BTH] = 0, 29062306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 29162306a36Sopenharmony_ci } 29262306a36Sopenharmony_ci }, 29362306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST] = { 29462306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST", 29562306a36Sopenharmony_ci .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 29662306a36Sopenharmony_ci RXE_END_MASK, 29762306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 29862306a36Sopenharmony_ci .offset = { 29962306a36Sopenharmony_ci [RXE_BTH] = 0, 30062306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES, 30162306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 30262306a36Sopenharmony_ci RXE_AETH_BYTES, 30362306a36Sopenharmony_ci } 30462306a36Sopenharmony_ci }, 30562306a36Sopenharmony_ci [IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY] = { 30662306a36Sopenharmony_ci .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY", 30762306a36Sopenharmony_ci .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 30862306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 30962306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 31062306a36Sopenharmony_ci .offset = { 31162306a36Sopenharmony_ci [RXE_BTH] = 0, 31262306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES, 31362306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 31462306a36Sopenharmony_ci RXE_AETH_BYTES, 31562306a36Sopenharmony_ci } 31662306a36Sopenharmony_ci }, 31762306a36Sopenharmony_ci [IB_OPCODE_RC_ACKNOWLEDGE] = { 31862306a36Sopenharmony_ci .name = "IB_OPCODE_RC_ACKNOWLEDGE", 31962306a36Sopenharmony_ci .mask = RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK | 32062306a36Sopenharmony_ci RXE_END_MASK, 32162306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 32262306a36Sopenharmony_ci .offset = { 32362306a36Sopenharmony_ci [RXE_BTH] = 0, 32462306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES, 32562306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 32662306a36Sopenharmony_ci RXE_AETH_BYTES, 32762306a36Sopenharmony_ci } 32862306a36Sopenharmony_ci }, 32962306a36Sopenharmony_ci [IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE] = { 33062306a36Sopenharmony_ci .name = "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE", 33162306a36Sopenharmony_ci .mask = RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK | 33262306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 33362306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES, 33462306a36Sopenharmony_ci .offset = { 33562306a36Sopenharmony_ci [RXE_BTH] = 0, 33662306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES, 33762306a36Sopenharmony_ci [RXE_ATMACK] = RXE_BTH_BYTES + 33862306a36Sopenharmony_ci RXE_AETH_BYTES, 33962306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 34062306a36Sopenharmony_ci RXE_ATMACK_BYTES + 34162306a36Sopenharmony_ci RXE_AETH_BYTES, 34262306a36Sopenharmony_ci } 34362306a36Sopenharmony_ci }, 34462306a36Sopenharmony_ci [IB_OPCODE_RC_COMPARE_SWAP] = { 34562306a36Sopenharmony_ci .name = "IB_OPCODE_RC_COMPARE_SWAP", 34662306a36Sopenharmony_ci .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 34762306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 34862306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 34962306a36Sopenharmony_ci .offset = { 35062306a36Sopenharmony_ci [RXE_BTH] = 0, 35162306a36Sopenharmony_ci [RXE_ATMETH] = RXE_BTH_BYTES, 35262306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 35362306a36Sopenharmony_ci RXE_ATMETH_BYTES, 35462306a36Sopenharmony_ci } 35562306a36Sopenharmony_ci }, 35662306a36Sopenharmony_ci [IB_OPCODE_RC_FETCH_ADD] = { 35762306a36Sopenharmony_ci .name = "IB_OPCODE_RC_FETCH_ADD", 35862306a36Sopenharmony_ci .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 35962306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 36062306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 36162306a36Sopenharmony_ci .offset = { 36262306a36Sopenharmony_ci [RXE_BTH] = 0, 36362306a36Sopenharmony_ci [RXE_ATMETH] = RXE_BTH_BYTES, 36462306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 36562306a36Sopenharmony_ci RXE_ATMETH_BYTES, 36662306a36Sopenharmony_ci } 36762306a36Sopenharmony_ci }, 36862306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE] = { 36962306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE", 37062306a36Sopenharmony_ci .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 37162306a36Sopenharmony_ci RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 37262306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 37362306a36Sopenharmony_ci .offset = { 37462306a36Sopenharmony_ci [RXE_BTH] = 0, 37562306a36Sopenharmony_ci [RXE_IETH] = RXE_BTH_BYTES, 37662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 37762306a36Sopenharmony_ci RXE_IETH_BYTES, 37862306a36Sopenharmony_ci } 37962306a36Sopenharmony_ci }, 38062306a36Sopenharmony_ci [IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE] = { 38162306a36Sopenharmony_ci .name = "IB_OPCODE_RC_SEND_ONLY_INV", 38262306a36Sopenharmony_ci .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 38362306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 38462306a36Sopenharmony_ci RXE_END_MASK | RXE_START_MASK, 38562306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 38662306a36Sopenharmony_ci .offset = { 38762306a36Sopenharmony_ci [RXE_BTH] = 0, 38862306a36Sopenharmony_ci [RXE_IETH] = RXE_BTH_BYTES, 38962306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 39062306a36Sopenharmony_ci RXE_IETH_BYTES, 39162306a36Sopenharmony_ci } 39262306a36Sopenharmony_ci }, 39362306a36Sopenharmony_ci [IB_OPCODE_RC_FLUSH] = { 39462306a36Sopenharmony_ci .name = "IB_OPCODE_RC_FLUSH", 39562306a36Sopenharmony_ci .mask = RXE_FETH_MASK | RXE_RETH_MASK | RXE_FLUSH_MASK | 39662306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK | RXE_REQ_MASK, 39762306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_FETH_BYTES + RXE_RETH_BYTES, 39862306a36Sopenharmony_ci .offset = { 39962306a36Sopenharmony_ci [RXE_BTH] = 0, 40062306a36Sopenharmony_ci [RXE_FETH] = RXE_BTH_BYTES, 40162306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES + RXE_FETH_BYTES, 40262306a36Sopenharmony_ci } 40362306a36Sopenharmony_ci }, 40462306a36Sopenharmony_ci [IB_OPCODE_RC_ATOMIC_WRITE] = { 40562306a36Sopenharmony_ci .name = "IB_OPCODE_RC_ATOMIC_WRITE", 40662306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 40762306a36Sopenharmony_ci RXE_ATOMIC_WRITE_MASK | RXE_START_MASK | 40862306a36Sopenharmony_ci RXE_END_MASK, 40962306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 41062306a36Sopenharmony_ci .offset = { 41162306a36Sopenharmony_ci [RXE_BTH] = 0, 41262306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 41362306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + RXE_RETH_BYTES, 41462306a36Sopenharmony_ci } 41562306a36Sopenharmony_ci }, 41662306a36Sopenharmony_ci 41762306a36Sopenharmony_ci /* UC */ 41862306a36Sopenharmony_ci [IB_OPCODE_UC_SEND_FIRST] = { 41962306a36Sopenharmony_ci .name = "IB_OPCODE_UC_SEND_FIRST", 42062306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 42162306a36Sopenharmony_ci RXE_SEND_MASK | RXE_START_MASK, 42262306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 42362306a36Sopenharmony_ci .offset = { 42462306a36Sopenharmony_ci [RXE_BTH] = 0, 42562306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 42662306a36Sopenharmony_ci } 42762306a36Sopenharmony_ci }, 42862306a36Sopenharmony_ci [IB_OPCODE_UC_SEND_MIDDLE] = { 42962306a36Sopenharmony_ci .name = "IB_OPCODE_UC_SEND_MIDDLE", 43062306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 43162306a36Sopenharmony_ci RXE_MIDDLE_MASK, 43262306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 43362306a36Sopenharmony_ci .offset = { 43462306a36Sopenharmony_ci [RXE_BTH] = 0, 43562306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 43662306a36Sopenharmony_ci } 43762306a36Sopenharmony_ci }, 43862306a36Sopenharmony_ci [IB_OPCODE_UC_SEND_LAST] = { 43962306a36Sopenharmony_ci .name = "IB_OPCODE_UC_SEND_LAST", 44062306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 44162306a36Sopenharmony_ci RXE_SEND_MASK | RXE_END_MASK, 44262306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 44362306a36Sopenharmony_ci .offset = { 44462306a36Sopenharmony_ci [RXE_BTH] = 0, 44562306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 44662306a36Sopenharmony_ci } 44762306a36Sopenharmony_ci }, 44862306a36Sopenharmony_ci [IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE] = { 44962306a36Sopenharmony_ci .name = "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE", 45062306a36Sopenharmony_ci .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 45162306a36Sopenharmony_ci RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 45262306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 45362306a36Sopenharmony_ci .offset = { 45462306a36Sopenharmony_ci [RXE_BTH] = 0, 45562306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES, 45662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 45762306a36Sopenharmony_ci RXE_IMMDT_BYTES, 45862306a36Sopenharmony_ci } 45962306a36Sopenharmony_ci }, 46062306a36Sopenharmony_ci [IB_OPCODE_UC_SEND_ONLY] = { 46162306a36Sopenharmony_ci .name = "IB_OPCODE_UC_SEND_ONLY", 46262306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 46362306a36Sopenharmony_ci RXE_RWR_MASK | RXE_SEND_MASK | 46462306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 46562306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 46662306a36Sopenharmony_ci .offset = { 46762306a36Sopenharmony_ci [RXE_BTH] = 0, 46862306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 46962306a36Sopenharmony_ci } 47062306a36Sopenharmony_ci }, 47162306a36Sopenharmony_ci [IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE] = { 47262306a36Sopenharmony_ci .name = "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE", 47362306a36Sopenharmony_ci .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 47462306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 47562306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 47662306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 47762306a36Sopenharmony_ci .offset = { 47862306a36Sopenharmony_ci [RXE_BTH] = 0, 47962306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES, 48062306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 48162306a36Sopenharmony_ci RXE_IMMDT_BYTES, 48262306a36Sopenharmony_ci } 48362306a36Sopenharmony_ci }, 48462306a36Sopenharmony_ci [IB_OPCODE_UC_RDMA_WRITE_FIRST] = { 48562306a36Sopenharmony_ci .name = "IB_OPCODE_UC_RDMA_WRITE_FIRST", 48662306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 48762306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_START_MASK, 48862306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 48962306a36Sopenharmony_ci .offset = { 49062306a36Sopenharmony_ci [RXE_BTH] = 0, 49162306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 49262306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 49362306a36Sopenharmony_ci RXE_RETH_BYTES, 49462306a36Sopenharmony_ci } 49562306a36Sopenharmony_ci }, 49662306a36Sopenharmony_ci [IB_OPCODE_UC_RDMA_WRITE_MIDDLE] = { 49762306a36Sopenharmony_ci .name = "IB_OPCODE_UC_RDMA_WRITE_MIDDLE", 49862306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 49962306a36Sopenharmony_ci RXE_MIDDLE_MASK, 50062306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 50162306a36Sopenharmony_ci .offset = { 50262306a36Sopenharmony_ci [RXE_BTH] = 0, 50362306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 50462306a36Sopenharmony_ci } 50562306a36Sopenharmony_ci }, 50662306a36Sopenharmony_ci [IB_OPCODE_UC_RDMA_WRITE_LAST] = { 50762306a36Sopenharmony_ci .name = "IB_OPCODE_UC_RDMA_WRITE_LAST", 50862306a36Sopenharmony_ci .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 50962306a36Sopenharmony_ci RXE_END_MASK, 51062306a36Sopenharmony_ci .length = RXE_BTH_BYTES, 51162306a36Sopenharmony_ci .offset = { 51262306a36Sopenharmony_ci [RXE_BTH] = 0, 51362306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES, 51462306a36Sopenharmony_ci } 51562306a36Sopenharmony_ci }, 51662306a36Sopenharmony_ci [IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 51762306a36Sopenharmony_ci .name = "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 51862306a36Sopenharmony_ci .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 51962306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 52062306a36Sopenharmony_ci RXE_END_MASK, 52162306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 52262306a36Sopenharmony_ci .offset = { 52362306a36Sopenharmony_ci [RXE_BTH] = 0, 52462306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES, 52562306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 52662306a36Sopenharmony_ci RXE_IMMDT_BYTES, 52762306a36Sopenharmony_ci } 52862306a36Sopenharmony_ci }, 52962306a36Sopenharmony_ci [IB_OPCODE_UC_RDMA_WRITE_ONLY] = { 53062306a36Sopenharmony_ci .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY", 53162306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 53262306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_START_MASK | 53362306a36Sopenharmony_ci RXE_END_MASK, 53462306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 53562306a36Sopenharmony_ci .offset = { 53662306a36Sopenharmony_ci [RXE_BTH] = 0, 53762306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 53862306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 53962306a36Sopenharmony_ci RXE_RETH_BYTES, 54062306a36Sopenharmony_ci } 54162306a36Sopenharmony_ci }, 54262306a36Sopenharmony_ci [IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 54362306a36Sopenharmony_ci .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 54462306a36Sopenharmony_ci .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 54562306a36Sopenharmony_ci RXE_REQ_MASK | RXE_WRITE_MASK | 54662306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | 54762306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 54862306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 54962306a36Sopenharmony_ci .offset = { 55062306a36Sopenharmony_ci [RXE_BTH] = 0, 55162306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES, 55262306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES + 55362306a36Sopenharmony_ci RXE_RETH_BYTES, 55462306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 55562306a36Sopenharmony_ci RXE_RETH_BYTES + 55662306a36Sopenharmony_ci RXE_IMMDT_BYTES, 55762306a36Sopenharmony_ci } 55862306a36Sopenharmony_ci }, 55962306a36Sopenharmony_ci 56062306a36Sopenharmony_ci /* RD */ 56162306a36Sopenharmony_ci [IB_OPCODE_RD_SEND_FIRST] = { 56262306a36Sopenharmony_ci .name = "IB_OPCODE_RD_SEND_FIRST", 56362306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 56462306a36Sopenharmony_ci RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 56562306a36Sopenharmony_ci RXE_START_MASK, 56662306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 56762306a36Sopenharmony_ci .offset = { 56862306a36Sopenharmony_ci [RXE_BTH] = 0, 56962306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 57062306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 57162306a36Sopenharmony_ci RXE_RDETH_BYTES, 57262306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 57362306a36Sopenharmony_ci RXE_RDETH_BYTES + 57462306a36Sopenharmony_ci RXE_DETH_BYTES, 57562306a36Sopenharmony_ci } 57662306a36Sopenharmony_ci }, 57762306a36Sopenharmony_ci [IB_OPCODE_RD_SEND_MIDDLE] = { 57862306a36Sopenharmony_ci .name = "IB_OPCODE_RD_SEND_MIDDLE", 57962306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 58062306a36Sopenharmony_ci RXE_REQ_MASK | RXE_SEND_MASK | 58162306a36Sopenharmony_ci RXE_MIDDLE_MASK, 58262306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 58362306a36Sopenharmony_ci .offset = { 58462306a36Sopenharmony_ci [RXE_BTH] = 0, 58562306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 58662306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 58762306a36Sopenharmony_ci RXE_RDETH_BYTES, 58862306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 58962306a36Sopenharmony_ci RXE_RDETH_BYTES + 59062306a36Sopenharmony_ci RXE_DETH_BYTES, 59162306a36Sopenharmony_ci } 59262306a36Sopenharmony_ci }, 59362306a36Sopenharmony_ci [IB_OPCODE_RD_SEND_LAST] = { 59462306a36Sopenharmony_ci .name = "IB_OPCODE_RD_SEND_LAST", 59562306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 59662306a36Sopenharmony_ci RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK | 59762306a36Sopenharmony_ci RXE_END_MASK, 59862306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 59962306a36Sopenharmony_ci .offset = { 60062306a36Sopenharmony_ci [RXE_BTH] = 0, 60162306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 60262306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 60362306a36Sopenharmony_ci RXE_RDETH_BYTES, 60462306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 60562306a36Sopenharmony_ci RXE_RDETH_BYTES + 60662306a36Sopenharmony_ci RXE_DETH_BYTES, 60762306a36Sopenharmony_ci } 60862306a36Sopenharmony_ci }, 60962306a36Sopenharmony_ci [IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE] = { 61062306a36Sopenharmony_ci .name = "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE", 61162306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 61262306a36Sopenharmony_ci RXE_PAYLOAD_MASK | RXE_REQ_MASK | 61362306a36Sopenharmony_ci RXE_COMP_MASK | RXE_SEND_MASK | 61462306a36Sopenharmony_ci RXE_END_MASK, 61562306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 61662306a36Sopenharmony_ci RXE_RDETH_BYTES, 61762306a36Sopenharmony_ci .offset = { 61862306a36Sopenharmony_ci [RXE_BTH] = 0, 61962306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 62062306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 62162306a36Sopenharmony_ci RXE_RDETH_BYTES, 62262306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES + 62362306a36Sopenharmony_ci RXE_RDETH_BYTES + 62462306a36Sopenharmony_ci RXE_DETH_BYTES, 62562306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 62662306a36Sopenharmony_ci RXE_RDETH_BYTES + 62762306a36Sopenharmony_ci RXE_DETH_BYTES + 62862306a36Sopenharmony_ci RXE_IMMDT_BYTES, 62962306a36Sopenharmony_ci } 63062306a36Sopenharmony_ci }, 63162306a36Sopenharmony_ci [IB_OPCODE_RD_SEND_ONLY] = { 63262306a36Sopenharmony_ci .name = "IB_OPCODE_RD_SEND_ONLY", 63362306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 63462306a36Sopenharmony_ci RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 63562306a36Sopenharmony_ci RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 63662306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 63762306a36Sopenharmony_ci .offset = { 63862306a36Sopenharmony_ci [RXE_BTH] = 0, 63962306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 64062306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 64162306a36Sopenharmony_ci RXE_RDETH_BYTES, 64262306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 64362306a36Sopenharmony_ci RXE_RDETH_BYTES + 64462306a36Sopenharmony_ci RXE_DETH_BYTES, 64562306a36Sopenharmony_ci } 64662306a36Sopenharmony_ci }, 64762306a36Sopenharmony_ci [IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE] = { 64862306a36Sopenharmony_ci .name = "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE", 64962306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 65062306a36Sopenharmony_ci RXE_PAYLOAD_MASK | RXE_REQ_MASK | 65162306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 65262306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 65362306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 65462306a36Sopenharmony_ci RXE_RDETH_BYTES, 65562306a36Sopenharmony_ci .offset = { 65662306a36Sopenharmony_ci [RXE_BTH] = 0, 65762306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 65862306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 65962306a36Sopenharmony_ci RXE_RDETH_BYTES, 66062306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES + 66162306a36Sopenharmony_ci RXE_RDETH_BYTES + 66262306a36Sopenharmony_ci RXE_DETH_BYTES, 66362306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 66462306a36Sopenharmony_ci RXE_RDETH_BYTES + 66562306a36Sopenharmony_ci RXE_DETH_BYTES + 66662306a36Sopenharmony_ci RXE_IMMDT_BYTES, 66762306a36Sopenharmony_ci } 66862306a36Sopenharmony_ci }, 66962306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_WRITE_FIRST] = { 67062306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_WRITE_FIRST", 67162306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 67262306a36Sopenharmony_ci RXE_PAYLOAD_MASK | RXE_REQ_MASK | 67362306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_START_MASK, 67462306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 67562306a36Sopenharmony_ci RXE_RDETH_BYTES, 67662306a36Sopenharmony_ci .offset = { 67762306a36Sopenharmony_ci [RXE_BTH] = 0, 67862306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 67962306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 68062306a36Sopenharmony_ci RXE_RDETH_BYTES, 68162306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES + 68262306a36Sopenharmony_ci RXE_RDETH_BYTES + 68362306a36Sopenharmony_ci RXE_DETH_BYTES, 68462306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 68562306a36Sopenharmony_ci RXE_RDETH_BYTES + 68662306a36Sopenharmony_ci RXE_DETH_BYTES + 68762306a36Sopenharmony_ci RXE_RETH_BYTES, 68862306a36Sopenharmony_ci } 68962306a36Sopenharmony_ci }, 69062306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_WRITE_MIDDLE] = { 69162306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_WRITE_MIDDLE", 69262306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 69362306a36Sopenharmony_ci RXE_REQ_MASK | RXE_WRITE_MASK | 69462306a36Sopenharmony_ci RXE_MIDDLE_MASK, 69562306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 69662306a36Sopenharmony_ci .offset = { 69762306a36Sopenharmony_ci [RXE_BTH] = 0, 69862306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 69962306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 70062306a36Sopenharmony_ci RXE_RDETH_BYTES, 70162306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 70262306a36Sopenharmony_ci RXE_RDETH_BYTES + 70362306a36Sopenharmony_ci RXE_DETH_BYTES, 70462306a36Sopenharmony_ci } 70562306a36Sopenharmony_ci }, 70662306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_WRITE_LAST] = { 70762306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_WRITE_LAST", 70862306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 70962306a36Sopenharmony_ci RXE_REQ_MASK | RXE_WRITE_MASK | 71062306a36Sopenharmony_ci RXE_END_MASK, 71162306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 71262306a36Sopenharmony_ci .offset = { 71362306a36Sopenharmony_ci [RXE_BTH] = 0, 71462306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 71562306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 71662306a36Sopenharmony_ci RXE_RDETH_BYTES, 71762306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 71862306a36Sopenharmony_ci RXE_RDETH_BYTES + 71962306a36Sopenharmony_ci RXE_DETH_BYTES, 72062306a36Sopenharmony_ci } 72162306a36Sopenharmony_ci }, 72262306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 72362306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE", 72462306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 72562306a36Sopenharmony_ci RXE_PAYLOAD_MASK | RXE_REQ_MASK | 72662306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 72762306a36Sopenharmony_ci RXE_END_MASK, 72862306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 72962306a36Sopenharmony_ci RXE_RDETH_BYTES, 73062306a36Sopenharmony_ci .offset = { 73162306a36Sopenharmony_ci [RXE_BTH] = 0, 73262306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 73362306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 73462306a36Sopenharmony_ci RXE_RDETH_BYTES, 73562306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES + 73662306a36Sopenharmony_ci RXE_RDETH_BYTES + 73762306a36Sopenharmony_ci RXE_DETH_BYTES, 73862306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 73962306a36Sopenharmony_ci RXE_RDETH_BYTES + 74062306a36Sopenharmony_ci RXE_DETH_BYTES + 74162306a36Sopenharmony_ci RXE_IMMDT_BYTES, 74262306a36Sopenharmony_ci } 74362306a36Sopenharmony_ci }, 74462306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_WRITE_ONLY] = { 74562306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY", 74662306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 74762306a36Sopenharmony_ci RXE_PAYLOAD_MASK | RXE_REQ_MASK | 74862306a36Sopenharmony_ci RXE_WRITE_MASK | RXE_START_MASK | 74962306a36Sopenharmony_ci RXE_END_MASK, 75062306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 75162306a36Sopenharmony_ci RXE_RDETH_BYTES, 75262306a36Sopenharmony_ci .offset = { 75362306a36Sopenharmony_ci [RXE_BTH] = 0, 75462306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 75562306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 75662306a36Sopenharmony_ci RXE_RDETH_BYTES, 75762306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES + 75862306a36Sopenharmony_ci RXE_RDETH_BYTES + 75962306a36Sopenharmony_ci RXE_DETH_BYTES, 76062306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 76162306a36Sopenharmony_ci RXE_RDETH_BYTES + 76262306a36Sopenharmony_ci RXE_DETH_BYTES + 76362306a36Sopenharmony_ci RXE_RETH_BYTES, 76462306a36Sopenharmony_ci } 76562306a36Sopenharmony_ci }, 76662306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 76762306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 76862306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 76962306a36Sopenharmony_ci RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 77062306a36Sopenharmony_ci RXE_REQ_MASK | RXE_WRITE_MASK | 77162306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | 77262306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 77362306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES + 77462306a36Sopenharmony_ci RXE_DETH_BYTES + RXE_RDETH_BYTES, 77562306a36Sopenharmony_ci .offset = { 77662306a36Sopenharmony_ci [RXE_BTH] = 0, 77762306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 77862306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 77962306a36Sopenharmony_ci RXE_RDETH_BYTES, 78062306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES + 78162306a36Sopenharmony_ci RXE_RDETH_BYTES + 78262306a36Sopenharmony_ci RXE_DETH_BYTES, 78362306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES + 78462306a36Sopenharmony_ci RXE_RDETH_BYTES + 78562306a36Sopenharmony_ci RXE_DETH_BYTES + 78662306a36Sopenharmony_ci RXE_RETH_BYTES, 78762306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 78862306a36Sopenharmony_ci RXE_RDETH_BYTES + 78962306a36Sopenharmony_ci RXE_DETH_BYTES + 79062306a36Sopenharmony_ci RXE_RETH_BYTES + 79162306a36Sopenharmony_ci RXE_IMMDT_BYTES, 79262306a36Sopenharmony_ci } 79362306a36Sopenharmony_ci }, 79462306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_READ_REQUEST] = { 79562306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_READ_REQUEST", 79662306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 79762306a36Sopenharmony_ci RXE_REQ_MASK | RXE_READ_MASK | 79862306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 79962306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 80062306a36Sopenharmony_ci RXE_RDETH_BYTES, 80162306a36Sopenharmony_ci .offset = { 80262306a36Sopenharmony_ci [RXE_BTH] = 0, 80362306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 80462306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 80562306a36Sopenharmony_ci RXE_RDETH_BYTES, 80662306a36Sopenharmony_ci [RXE_RETH] = RXE_BTH_BYTES + 80762306a36Sopenharmony_ci RXE_RDETH_BYTES + 80862306a36Sopenharmony_ci RXE_DETH_BYTES, 80962306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 81062306a36Sopenharmony_ci RXE_RETH_BYTES + 81162306a36Sopenharmony_ci RXE_DETH_BYTES + 81262306a36Sopenharmony_ci RXE_RDETH_BYTES, 81362306a36Sopenharmony_ci } 81462306a36Sopenharmony_ci }, 81562306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST] = { 81662306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST", 81762306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_AETH_MASK | 81862306a36Sopenharmony_ci RXE_PAYLOAD_MASK | RXE_ACK_MASK | 81962306a36Sopenharmony_ci RXE_START_MASK, 82062306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 82162306a36Sopenharmony_ci .offset = { 82262306a36Sopenharmony_ci [RXE_BTH] = 0, 82362306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 82462306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES + 82562306a36Sopenharmony_ci RXE_RDETH_BYTES, 82662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 82762306a36Sopenharmony_ci RXE_RDETH_BYTES + 82862306a36Sopenharmony_ci RXE_AETH_BYTES, 82962306a36Sopenharmony_ci } 83062306a36Sopenharmony_ci }, 83162306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE] = { 83262306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE", 83362306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 83462306a36Sopenharmony_ci RXE_MIDDLE_MASK, 83562306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_RDETH_BYTES, 83662306a36Sopenharmony_ci .offset = { 83762306a36Sopenharmony_ci [RXE_BTH] = 0, 83862306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 83962306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 84062306a36Sopenharmony_ci RXE_RDETH_BYTES, 84162306a36Sopenharmony_ci } 84262306a36Sopenharmony_ci }, 84362306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST] = { 84462306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST", 84562306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 84662306a36Sopenharmony_ci RXE_ACK_MASK | RXE_END_MASK, 84762306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 84862306a36Sopenharmony_ci .offset = { 84962306a36Sopenharmony_ci [RXE_BTH] = 0, 85062306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 85162306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES + 85262306a36Sopenharmony_ci RXE_RDETH_BYTES, 85362306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 85462306a36Sopenharmony_ci RXE_RDETH_BYTES + 85562306a36Sopenharmony_ci RXE_AETH_BYTES, 85662306a36Sopenharmony_ci } 85762306a36Sopenharmony_ci }, 85862306a36Sopenharmony_ci [IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY] = { 85962306a36Sopenharmony_ci .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY", 86062306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 86162306a36Sopenharmony_ci RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 86262306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 86362306a36Sopenharmony_ci .offset = { 86462306a36Sopenharmony_ci [RXE_BTH] = 0, 86562306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 86662306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES + 86762306a36Sopenharmony_ci RXE_RDETH_BYTES, 86862306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 86962306a36Sopenharmony_ci RXE_RDETH_BYTES + 87062306a36Sopenharmony_ci RXE_AETH_BYTES, 87162306a36Sopenharmony_ci } 87262306a36Sopenharmony_ci }, 87362306a36Sopenharmony_ci [IB_OPCODE_RD_ACKNOWLEDGE] = { 87462306a36Sopenharmony_ci .name = "IB_OPCODE_RD_ACKNOWLEDGE", 87562306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK | 87662306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 87762306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 87862306a36Sopenharmony_ci .offset = { 87962306a36Sopenharmony_ci [RXE_BTH] = 0, 88062306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 88162306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES + 88262306a36Sopenharmony_ci RXE_RDETH_BYTES, 88362306a36Sopenharmony_ci } 88462306a36Sopenharmony_ci }, 88562306a36Sopenharmony_ci [IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE] = { 88662306a36Sopenharmony_ci .name = "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE", 88762306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK | 88862306a36Sopenharmony_ci RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 88962306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES + 89062306a36Sopenharmony_ci RXE_RDETH_BYTES, 89162306a36Sopenharmony_ci .offset = { 89262306a36Sopenharmony_ci [RXE_BTH] = 0, 89362306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 89462306a36Sopenharmony_ci [RXE_AETH] = RXE_BTH_BYTES + 89562306a36Sopenharmony_ci RXE_RDETH_BYTES, 89662306a36Sopenharmony_ci [RXE_ATMACK] = RXE_BTH_BYTES + 89762306a36Sopenharmony_ci RXE_RDETH_BYTES + 89862306a36Sopenharmony_ci RXE_AETH_BYTES, 89962306a36Sopenharmony_ci } 90062306a36Sopenharmony_ci }, 90162306a36Sopenharmony_ci [IB_OPCODE_RD_COMPARE_SWAP] = { 90262306a36Sopenharmony_ci .name = "RD_COMPARE_SWAP", 90362306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 90462306a36Sopenharmony_ci RXE_REQ_MASK | RXE_ATOMIC_MASK | 90562306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 90662306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 90762306a36Sopenharmony_ci RXE_RDETH_BYTES, 90862306a36Sopenharmony_ci .offset = { 90962306a36Sopenharmony_ci [RXE_BTH] = 0, 91062306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 91162306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 91262306a36Sopenharmony_ci RXE_RDETH_BYTES, 91362306a36Sopenharmony_ci [RXE_ATMETH] = RXE_BTH_BYTES + 91462306a36Sopenharmony_ci RXE_RDETH_BYTES + 91562306a36Sopenharmony_ci RXE_DETH_BYTES, 91662306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 91762306a36Sopenharmony_ci RXE_ATMETH_BYTES + 91862306a36Sopenharmony_ci RXE_DETH_BYTES + 91962306a36Sopenharmony_ci RXE_RDETH_BYTES, 92062306a36Sopenharmony_ci } 92162306a36Sopenharmony_ci }, 92262306a36Sopenharmony_ci [IB_OPCODE_RD_FETCH_ADD] = { 92362306a36Sopenharmony_ci .name = "IB_OPCODE_RD_FETCH_ADD", 92462306a36Sopenharmony_ci .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 92562306a36Sopenharmony_ci RXE_REQ_MASK | RXE_ATOMIC_MASK | 92662306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 92762306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 92862306a36Sopenharmony_ci RXE_RDETH_BYTES, 92962306a36Sopenharmony_ci .offset = { 93062306a36Sopenharmony_ci [RXE_BTH] = 0, 93162306a36Sopenharmony_ci [RXE_RDETH] = RXE_BTH_BYTES, 93262306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES + 93362306a36Sopenharmony_ci RXE_RDETH_BYTES, 93462306a36Sopenharmony_ci [RXE_ATMETH] = RXE_BTH_BYTES + 93562306a36Sopenharmony_ci RXE_RDETH_BYTES + 93662306a36Sopenharmony_ci RXE_DETH_BYTES, 93762306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 93862306a36Sopenharmony_ci RXE_ATMETH_BYTES + 93962306a36Sopenharmony_ci RXE_DETH_BYTES + 94062306a36Sopenharmony_ci RXE_RDETH_BYTES, 94162306a36Sopenharmony_ci } 94262306a36Sopenharmony_ci }, 94362306a36Sopenharmony_ci 94462306a36Sopenharmony_ci /* UD */ 94562306a36Sopenharmony_ci [IB_OPCODE_UD_SEND_ONLY] = { 94662306a36Sopenharmony_ci .name = "IB_OPCODE_UD_SEND_ONLY", 94762306a36Sopenharmony_ci .mask = RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 94862306a36Sopenharmony_ci RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 94962306a36Sopenharmony_ci RXE_START_MASK | RXE_END_MASK, 95062306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_DETH_BYTES, 95162306a36Sopenharmony_ci .offset = { 95262306a36Sopenharmony_ci [RXE_BTH] = 0, 95362306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES, 95462306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 95562306a36Sopenharmony_ci RXE_DETH_BYTES, 95662306a36Sopenharmony_ci } 95762306a36Sopenharmony_ci }, 95862306a36Sopenharmony_ci [IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE] = { 95962306a36Sopenharmony_ci .name = "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE", 96062306a36Sopenharmony_ci .mask = RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 96162306a36Sopenharmony_ci RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 96262306a36Sopenharmony_ci RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 96362306a36Sopenharmony_ci .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES, 96462306a36Sopenharmony_ci .offset = { 96562306a36Sopenharmony_ci [RXE_BTH] = 0, 96662306a36Sopenharmony_ci [RXE_DETH] = RXE_BTH_BYTES, 96762306a36Sopenharmony_ci [RXE_IMMDT] = RXE_BTH_BYTES + 96862306a36Sopenharmony_ci RXE_DETH_BYTES, 96962306a36Sopenharmony_ci [RXE_PAYLOAD] = RXE_BTH_BYTES + 97062306a36Sopenharmony_ci RXE_DETH_BYTES + 97162306a36Sopenharmony_ci RXE_IMMDT_BYTES, 97262306a36Sopenharmony_ci } 97362306a36Sopenharmony_ci }, 97462306a36Sopenharmony_ci 97562306a36Sopenharmony_ci}; 976