163fa15dbSBob Pearson // SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 28700e3e7SMoni Shoua /* 38700e3e7SMoni Shoua * Copyright (c) 2016 Mellanox Technologies Ltd. All rights reserved. 48700e3e7SMoni Shoua * Copyright (c) 2015 System Fabric Works, Inc. All rights reserved. 58700e3e7SMoni Shoua */ 68700e3e7SMoni Shoua 78700e3e7SMoni Shoua #include <rdma/ib_pack.h> 88700e3e7SMoni Shoua #include "rxe_opcode.h" 98700e3e7SMoni Shoua #include "rxe_hdr.h" 108700e3e7SMoni Shoua 118700e3e7SMoni Shoua /* useful information about work request opcodes and pkt opcodes in 128700e3e7SMoni Shoua * table form 138700e3e7SMoni Shoua */ 148700e3e7SMoni Shoua struct rxe_wr_opcode_info rxe_wr_opcode_info[] = { 158700e3e7SMoni Shoua [IB_WR_RDMA_WRITE] = { 168700e3e7SMoni Shoua .name = "IB_WR_RDMA_WRITE", 178700e3e7SMoni Shoua .mask = { 188700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK, 198700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK, 208700e3e7SMoni Shoua }, 218700e3e7SMoni Shoua }, 228700e3e7SMoni Shoua [IB_WR_RDMA_WRITE_WITH_IMM] = { 238700e3e7SMoni Shoua .name = "IB_WR_RDMA_WRITE_WITH_IMM", 248700e3e7SMoni Shoua .mask = { 258700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_WRITE_MASK, 268700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_WRITE_MASK, 278700e3e7SMoni Shoua }, 288700e3e7SMoni Shoua }, 298700e3e7SMoni Shoua [IB_WR_SEND] = { 308700e3e7SMoni Shoua .name = "IB_WR_SEND", 318700e3e7SMoni Shoua .mask = { 328700e3e7SMoni Shoua [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK, 338700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 348700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 358700e3e7SMoni Shoua [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 368700e3e7SMoni Shoua }, 378700e3e7SMoni Shoua }, 388700e3e7SMoni Shoua [IB_WR_SEND_WITH_IMM] = { 398700e3e7SMoni Shoua .name = "IB_WR_SEND_WITH_IMM", 408700e3e7SMoni Shoua .mask = { 418700e3e7SMoni Shoua [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK, 428700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 438700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 448700e3e7SMoni Shoua [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 458700e3e7SMoni Shoua }, 468700e3e7SMoni Shoua }, 478700e3e7SMoni Shoua [IB_WR_RDMA_READ] = { 488700e3e7SMoni Shoua .name = "IB_WR_RDMA_READ", 498700e3e7SMoni Shoua .mask = { 508700e3e7SMoni Shoua [IB_QPT_RC] = WR_READ_MASK, 518700e3e7SMoni Shoua }, 528700e3e7SMoni Shoua }, 538700e3e7SMoni Shoua [IB_WR_ATOMIC_CMP_AND_SWP] = { 548700e3e7SMoni Shoua .name = "IB_WR_ATOMIC_CMP_AND_SWP", 558700e3e7SMoni Shoua .mask = { 568700e3e7SMoni Shoua [IB_QPT_RC] = WR_ATOMIC_MASK, 578700e3e7SMoni Shoua }, 588700e3e7SMoni Shoua }, 598700e3e7SMoni Shoua [IB_WR_ATOMIC_FETCH_AND_ADD] = { 608700e3e7SMoni Shoua .name = "IB_WR_ATOMIC_FETCH_AND_ADD", 618700e3e7SMoni Shoua .mask = { 628700e3e7SMoni Shoua [IB_QPT_RC] = WR_ATOMIC_MASK, 638700e3e7SMoni Shoua }, 648700e3e7SMoni Shoua }, 658700e3e7SMoni Shoua [IB_WR_LSO] = { 668700e3e7SMoni Shoua .name = "IB_WR_LSO", 678700e3e7SMoni Shoua .mask = { 688700e3e7SMoni Shoua /* not supported */ 698700e3e7SMoni Shoua }, 708700e3e7SMoni Shoua }, 718700e3e7SMoni Shoua [IB_WR_SEND_WITH_INV] = { 728700e3e7SMoni Shoua .name = "IB_WR_SEND_WITH_INV", 738700e3e7SMoni Shoua .mask = { 748700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 758700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 768700e3e7SMoni Shoua [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 778700e3e7SMoni Shoua }, 788700e3e7SMoni Shoua }, 798700e3e7SMoni Shoua [IB_WR_RDMA_READ_WITH_INV] = { 808700e3e7SMoni Shoua .name = "IB_WR_RDMA_READ_WITH_INV", 818700e3e7SMoni Shoua .mask = { 828700e3e7SMoni Shoua [IB_QPT_RC] = WR_READ_MASK, 838700e3e7SMoni Shoua }, 848700e3e7SMoni Shoua }, 858700e3e7SMoni Shoua [IB_WR_LOCAL_INV] = { 868700e3e7SMoni Shoua .name = "IB_WR_LOCAL_INV", 878700e3e7SMoni Shoua .mask = { 88886441fbSBob Pearson [IB_QPT_RC] = WR_LOCAL_OP_MASK, 898700e3e7SMoni Shoua }, 908700e3e7SMoni Shoua }, 918700e3e7SMoni Shoua [IB_WR_REG_MR] = { 928700e3e7SMoni Shoua .name = "IB_WR_REG_MR", 938700e3e7SMoni Shoua .mask = { 94886441fbSBob Pearson [IB_QPT_RC] = WR_LOCAL_OP_MASK, 958700e3e7SMoni Shoua }, 968700e3e7SMoni Shoua }, 9732a577b4SBob Pearson [IB_WR_BIND_MW] = { 9832a577b4SBob Pearson .name = "IB_WR_BIND_MW", 9932a577b4SBob Pearson .mask = { 10032a577b4SBob Pearson [IB_QPT_RC] = WR_LOCAL_OP_MASK, 10132a577b4SBob Pearson [IB_QPT_UC] = WR_LOCAL_OP_MASK, 10232a577b4SBob Pearson }, 10332a577b4SBob Pearson }, 104*02e9a31cSLi Zhijian [IB_WR_FLUSH] = { 105*02e9a31cSLi Zhijian .name = "IB_WR_FLUSH", 106*02e9a31cSLi Zhijian .mask = { 107*02e9a31cSLi Zhijian [IB_QPT_RC] = WR_FLUSH_MASK, 108*02e9a31cSLi Zhijian }, 109*02e9a31cSLi Zhijian }, 1105c7af6c7SXiao Yang [IB_WR_ATOMIC_WRITE] = { 1115c7af6c7SXiao Yang .name = "IB_WR_ATOMIC_WRITE", 1125c7af6c7SXiao Yang .mask = { 1135c7af6c7SXiao Yang [IB_QPT_RC] = WR_ATOMIC_WRITE_MASK, 1145c7af6c7SXiao Yang }, 1155c7af6c7SXiao Yang }, 1168700e3e7SMoni Shoua }; 1178700e3e7SMoni Shoua 1188700e3e7SMoni Shoua struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = { 1198700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_FIRST] = { 1208700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_FIRST", 121d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 122d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK, 1238700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1248700e3e7SMoni Shoua .offset = { 1258700e3e7SMoni Shoua [RXE_BTH] = 0, 1268700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1278700e3e7SMoni Shoua } 1288700e3e7SMoni Shoua }, 1298700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_MIDDLE] = { 1308d1cfb88SChengguang Xu .name = "IB_OPCODE_RC_SEND_MIDDLE", 131d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 132d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 1338700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1348700e3e7SMoni Shoua .offset = { 1358700e3e7SMoni Shoua [RXE_BTH] = 0, 1368700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1378700e3e7SMoni Shoua } 1388700e3e7SMoni Shoua }, 1398700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST] = { 1408700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST", 141d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 142d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_END_MASK, 1438700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1448700e3e7SMoni Shoua .offset = { 1458700e3e7SMoni Shoua [RXE_BTH] = 0, 1468700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1478700e3e7SMoni Shoua } 1488700e3e7SMoni Shoua }, 1498700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE] = { 1508700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE", 151d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 152d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 1538700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 1548700e3e7SMoni Shoua .offset = { 1558700e3e7SMoni Shoua [RXE_BTH] = 0, 1568700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 157d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 158d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 1598700e3e7SMoni Shoua } 1608700e3e7SMoni Shoua }, 1618700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY] = { 1628700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY", 163d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 164d8b0afd2SLi Zhijian RXE_RWR_MASK | RXE_SEND_MASK | 165d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 1668700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1678700e3e7SMoni Shoua .offset = { 1688700e3e7SMoni Shoua [RXE_BTH] = 0, 1698700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1708700e3e7SMoni Shoua } 1718700e3e7SMoni Shoua }, 1728700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE] = { 1738700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE", 174d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 175d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 176d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 1778700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 1788700e3e7SMoni Shoua .offset = { 1798700e3e7SMoni Shoua [RXE_BTH] = 0, 1808700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 181d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 182d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 1838700e3e7SMoni Shoua } 1848700e3e7SMoni Shoua }, 1858700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_FIRST] = { 1868700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_FIRST", 187d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 188d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 1898700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 1908700e3e7SMoni Shoua .offset = { 1918700e3e7SMoni Shoua [RXE_BTH] = 0, 1928700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 193d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 194d8b0afd2SLi Zhijian RXE_RETH_BYTES, 1958700e3e7SMoni Shoua } 1968700e3e7SMoni Shoua }, 1978700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_MIDDLE] = { 1988700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_MIDDLE", 199d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 200d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 2018700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 2028700e3e7SMoni Shoua .offset = { 2038700e3e7SMoni Shoua [RXE_BTH] = 0, 2048700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 2058700e3e7SMoni Shoua } 2068700e3e7SMoni Shoua }, 2078700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_LAST] = { 2088700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_LAST", 209d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 210d8b0afd2SLi Zhijian RXE_END_MASK, 2118700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 2128700e3e7SMoni Shoua .offset = { 2138700e3e7SMoni Shoua [RXE_BTH] = 0, 2148700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 2158700e3e7SMoni Shoua } 2168700e3e7SMoni Shoua }, 2178700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 2188700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 219d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 220d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 221d8b0afd2SLi Zhijian RXE_END_MASK, 2228700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 2238700e3e7SMoni Shoua .offset = { 2248700e3e7SMoni Shoua [RXE_BTH] = 0, 2258700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 226d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 227d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 2288700e3e7SMoni Shoua } 2298700e3e7SMoni Shoua }, 2308700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_ONLY] = { 2318700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY", 232d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 233d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 234d8b0afd2SLi Zhijian RXE_END_MASK, 2358700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 2368700e3e7SMoni Shoua .offset = { 2378700e3e7SMoni Shoua [RXE_BTH] = 0, 2388700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 239d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 240d8b0afd2SLi Zhijian RXE_RETH_BYTES, 2418700e3e7SMoni Shoua } 2428700e3e7SMoni Shoua }, 2438700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 2448700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 245d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 246d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 247d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 248d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 2498700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 2508700e3e7SMoni Shoua .offset = { 2518700e3e7SMoni Shoua [RXE_BTH] = 0, 2528700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 253d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 254d8b0afd2SLi Zhijian RXE_RETH_BYTES, 255d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 256d8b0afd2SLi Zhijian RXE_RETH_BYTES + 257d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 2588700e3e7SMoni Shoua } 2598700e3e7SMoni Shoua }, 2608700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_REQUEST] = { 2618700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_REQUEST", 262d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK | 263d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 2648700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 2658700e3e7SMoni Shoua .offset = { 2668700e3e7SMoni Shoua [RXE_BTH] = 0, 2678700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 268d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 269d8b0afd2SLi Zhijian RXE_RETH_BYTES, 2708700e3e7SMoni Shoua } 2718700e3e7SMoni Shoua }, 2728700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST] = { 2738700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST", 274d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 275d8b0afd2SLi Zhijian RXE_START_MASK, 2768700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 2778700e3e7SMoni Shoua .offset = { 2788700e3e7SMoni Shoua [RXE_BTH] = 0, 2798700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 280d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 281d8b0afd2SLi Zhijian RXE_AETH_BYTES, 2828700e3e7SMoni Shoua } 2838700e3e7SMoni Shoua }, 2848700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE] = { 2858700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE", 2868700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_ACK_MASK | RXE_MIDDLE_MASK, 2878700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 2888700e3e7SMoni Shoua .offset = { 2898700e3e7SMoni Shoua [RXE_BTH] = 0, 2908700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 2918700e3e7SMoni Shoua } 2928700e3e7SMoni Shoua }, 2938700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST] = { 2948700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST", 295d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 296d8b0afd2SLi Zhijian RXE_END_MASK, 2978700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 2988700e3e7SMoni Shoua .offset = { 2998700e3e7SMoni Shoua [RXE_BTH] = 0, 3008700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 301d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 302d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3038700e3e7SMoni Shoua } 3048700e3e7SMoni Shoua }, 3058700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY] = { 3068700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY", 307d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 308d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3098700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 3108700e3e7SMoni Shoua .offset = { 3118700e3e7SMoni Shoua [RXE_BTH] = 0, 3128700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 313d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 314d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3158700e3e7SMoni Shoua } 3168700e3e7SMoni Shoua }, 3178700e3e7SMoni Shoua [IB_OPCODE_RC_ACKNOWLEDGE] = { 3188700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ACKNOWLEDGE", 319d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK | 320d8b0afd2SLi Zhijian RXE_END_MASK, 3218700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 3228700e3e7SMoni Shoua .offset = { 3238700e3e7SMoni Shoua [RXE_BTH] = 0, 3248700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 325d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 326d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3278700e3e7SMoni Shoua } 3288700e3e7SMoni Shoua }, 3298700e3e7SMoni Shoua [IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE] = { 3308700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE", 331d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK | 332d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3338700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES, 3348700e3e7SMoni Shoua .offset = { 3358700e3e7SMoni Shoua [RXE_BTH] = 0, 3368700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 337d8b0afd2SLi Zhijian [RXE_ATMACK] = RXE_BTH_BYTES + 338d8b0afd2SLi Zhijian RXE_AETH_BYTES, 339d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 340d8b0afd2SLi Zhijian RXE_ATMACK_BYTES + 341d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3428700e3e7SMoni Shoua } 3438700e3e7SMoni Shoua }, 3448700e3e7SMoni Shoua [IB_OPCODE_RC_COMPARE_SWAP] = { 3458700e3e7SMoni Shoua .name = "IB_OPCODE_RC_COMPARE_SWAP", 346d8b0afd2SLi Zhijian .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 347d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3488700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3498700e3e7SMoni Shoua .offset = { 3508700e3e7SMoni Shoua [RXE_BTH] = 0, 3518700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 352d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 353d8b0afd2SLi Zhijian RXE_ATMETH_BYTES, 3548700e3e7SMoni Shoua } 3558700e3e7SMoni Shoua }, 3568700e3e7SMoni Shoua [IB_OPCODE_RC_FETCH_ADD] = { 3578700e3e7SMoni Shoua .name = "IB_OPCODE_RC_FETCH_ADD", 358d8b0afd2SLi Zhijian .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 359d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3608700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3618700e3e7SMoni Shoua .offset = { 3628700e3e7SMoni Shoua [RXE_BTH] = 0, 3638700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 364d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 365d8b0afd2SLi Zhijian RXE_ATMETH_BYTES, 3668700e3e7SMoni Shoua } 3678700e3e7SMoni Shoua }, 3688700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE] = { 3698700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE", 370d8b0afd2SLi Zhijian .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 371d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 3728700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3738700e3e7SMoni Shoua .offset = { 3748700e3e7SMoni Shoua [RXE_BTH] = 0, 3758700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 376d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 377d8b0afd2SLi Zhijian RXE_IETH_BYTES, 3788700e3e7SMoni Shoua } 3798700e3e7SMoni Shoua }, 3808700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE] = { 3818700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY_INV", 382d8b0afd2SLi Zhijian .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 383d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 384d8b0afd2SLi Zhijian RXE_END_MASK | RXE_START_MASK, 3858700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3868700e3e7SMoni Shoua .offset = { 3878700e3e7SMoni Shoua [RXE_BTH] = 0, 3888700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 389d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 390d8b0afd2SLi Zhijian RXE_IETH_BYTES, 3918700e3e7SMoni Shoua } 3928700e3e7SMoni Shoua }, 393*02e9a31cSLi Zhijian [IB_OPCODE_RC_FLUSH] = { 394*02e9a31cSLi Zhijian .name = "IB_OPCODE_RC_FLUSH", 395*02e9a31cSLi Zhijian .mask = RXE_FETH_MASK | RXE_RETH_MASK | RXE_FLUSH_MASK | 396*02e9a31cSLi Zhijian RXE_START_MASK | RXE_END_MASK | RXE_REQ_MASK, 397*02e9a31cSLi Zhijian .length = RXE_BTH_BYTES + RXE_FETH_BYTES + RXE_RETH_BYTES, 398*02e9a31cSLi Zhijian .offset = { 399*02e9a31cSLi Zhijian [RXE_BTH] = 0, 400*02e9a31cSLi Zhijian [RXE_FETH] = RXE_BTH_BYTES, 401*02e9a31cSLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + RXE_FETH_BYTES, 402*02e9a31cSLi Zhijian } 403*02e9a31cSLi Zhijian }, 4045c7af6c7SXiao Yang [IB_OPCODE_RC_ATOMIC_WRITE] = { 4055c7af6c7SXiao Yang .name = "IB_OPCODE_RC_ATOMIC_WRITE", 4065c7af6c7SXiao Yang .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 4075c7af6c7SXiao Yang RXE_ATOMIC_WRITE_MASK | RXE_START_MASK | 4085c7af6c7SXiao Yang RXE_END_MASK, 4095c7af6c7SXiao Yang .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 4105c7af6c7SXiao Yang .offset = { 4115c7af6c7SXiao Yang [RXE_BTH] = 0, 4125c7af6c7SXiao Yang [RXE_RETH] = RXE_BTH_BYTES, 4135c7af6c7SXiao Yang [RXE_PAYLOAD] = RXE_BTH_BYTES + RXE_RETH_BYTES, 4145c7af6c7SXiao Yang } 4155c7af6c7SXiao Yang }, 4168700e3e7SMoni Shoua 4178700e3e7SMoni Shoua /* UC */ 4188700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_FIRST] = { 4198700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_FIRST", 420d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 421d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK, 4228700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4238700e3e7SMoni Shoua .offset = { 4248700e3e7SMoni Shoua [RXE_BTH] = 0, 4258700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4268700e3e7SMoni Shoua } 4278700e3e7SMoni Shoua }, 4288700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_MIDDLE] = { 4298700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_MIDDLE", 430d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 431d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 4328700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4338700e3e7SMoni Shoua .offset = { 4348700e3e7SMoni Shoua [RXE_BTH] = 0, 4358700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4368700e3e7SMoni Shoua } 4378700e3e7SMoni Shoua }, 4388700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST] = { 4398700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST", 440d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 441d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_END_MASK, 4428700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4438700e3e7SMoni Shoua .offset = { 4448700e3e7SMoni Shoua [RXE_BTH] = 0, 4458700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4468700e3e7SMoni Shoua } 4478700e3e7SMoni Shoua }, 4488700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE] = { 4498700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE", 450d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 451d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 4528700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4538700e3e7SMoni Shoua .offset = { 4548700e3e7SMoni Shoua [RXE_BTH] = 0, 4558700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 456d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 457d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 4588700e3e7SMoni Shoua } 4598700e3e7SMoni Shoua }, 4608700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY] = { 4618700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY", 462d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 463d8b0afd2SLi Zhijian RXE_RWR_MASK | RXE_SEND_MASK | 464d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 4658700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4668700e3e7SMoni Shoua .offset = { 4678700e3e7SMoni Shoua [RXE_BTH] = 0, 4688700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4698700e3e7SMoni Shoua } 4708700e3e7SMoni Shoua }, 4718700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE] = { 4728700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE", 473d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 474d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 475d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 4768700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4778700e3e7SMoni Shoua .offset = { 4788700e3e7SMoni Shoua [RXE_BTH] = 0, 4798700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 480d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 481d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 4828700e3e7SMoni Shoua } 4838700e3e7SMoni Shoua }, 4848700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_FIRST] = { 4858700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_FIRST", 486d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 487d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 4888700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 4898700e3e7SMoni Shoua .offset = { 4908700e3e7SMoni Shoua [RXE_BTH] = 0, 4918700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 492d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 493d8b0afd2SLi Zhijian RXE_RETH_BYTES, 4948700e3e7SMoni Shoua } 4958700e3e7SMoni Shoua }, 4968700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_MIDDLE] = { 4978700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_MIDDLE", 498d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 499d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 5008700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 5018700e3e7SMoni Shoua .offset = { 5028700e3e7SMoni Shoua [RXE_BTH] = 0, 5038700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 5048700e3e7SMoni Shoua } 5058700e3e7SMoni Shoua }, 5068700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST] = { 5078700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST", 508d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 509d8b0afd2SLi Zhijian RXE_END_MASK, 5108700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 5118700e3e7SMoni Shoua .offset = { 5128700e3e7SMoni Shoua [RXE_BTH] = 0, 5138700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 5148700e3e7SMoni Shoua } 5158700e3e7SMoni Shoua }, 5168700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 5178700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 518d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 519d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 520d8b0afd2SLi Zhijian RXE_END_MASK, 5218700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 5228700e3e7SMoni Shoua .offset = { 5238700e3e7SMoni Shoua [RXE_BTH] = 0, 5248700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 525d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 526d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 5278700e3e7SMoni Shoua } 5288700e3e7SMoni Shoua }, 5298700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY] = { 5308700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY", 531d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 532d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 533d8b0afd2SLi Zhijian RXE_END_MASK, 5348700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 5358700e3e7SMoni Shoua .offset = { 5368700e3e7SMoni Shoua [RXE_BTH] = 0, 5378700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 538d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 539d8b0afd2SLi Zhijian RXE_RETH_BYTES, 5408700e3e7SMoni Shoua } 5418700e3e7SMoni Shoua }, 5428700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 5438700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 544d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 545d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 546d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 547d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 5488700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 5498700e3e7SMoni Shoua .offset = { 5508700e3e7SMoni Shoua [RXE_BTH] = 0, 5518700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 552d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 553d8b0afd2SLi Zhijian RXE_RETH_BYTES, 554d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 555d8b0afd2SLi Zhijian RXE_RETH_BYTES + 556d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 5578700e3e7SMoni Shoua } 5588700e3e7SMoni Shoua }, 5598700e3e7SMoni Shoua 5608700e3e7SMoni Shoua /* RD */ 5618700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_FIRST] = { 5628700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_FIRST", 563d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 564d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 565d8b0afd2SLi Zhijian RXE_START_MASK, 5668700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5678700e3e7SMoni Shoua .offset = { 5688700e3e7SMoni Shoua [RXE_BTH] = 0, 5698700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 570d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 571d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 572d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 573d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 574d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5758700e3e7SMoni Shoua } 5768700e3e7SMoni Shoua }, 5778700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_MIDDLE] = { 5788700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_MIDDLE", 579d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 580d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_SEND_MASK | 581d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 5828700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5838700e3e7SMoni Shoua .offset = { 5848700e3e7SMoni Shoua [RXE_BTH] = 0, 5858700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 586d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 587d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 588d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 589d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 590d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5918700e3e7SMoni Shoua } 5928700e3e7SMoni Shoua }, 5938700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST] = { 5948700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST", 595d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 596d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK | 597d8b0afd2SLi Zhijian RXE_END_MASK, 5988700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5998700e3e7SMoni Shoua .offset = { 6008700e3e7SMoni Shoua [RXE_BTH] = 0, 6018700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 602d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 603d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 604d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 605d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 606d8b0afd2SLi Zhijian RXE_DETH_BYTES, 6078700e3e7SMoni Shoua } 6088700e3e7SMoni Shoua }, 6098700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE] = { 6108700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE", 611d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 612d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 613d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | 614d8b0afd2SLi Zhijian RXE_END_MASK, 615d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 616d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6178700e3e7SMoni Shoua .offset = { 6188700e3e7SMoni Shoua [RXE_BTH] = 0, 6198700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 620d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 621d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 622d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 623d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 624d8b0afd2SLi Zhijian RXE_DETH_BYTES, 625d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 626d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 627d8b0afd2SLi Zhijian RXE_DETH_BYTES + 628d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 6298700e3e7SMoni Shoua } 6308700e3e7SMoni Shoua }, 6318700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY] = { 6328700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY", 633d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 634d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 635d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 6368700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6378700e3e7SMoni Shoua .offset = { 6388700e3e7SMoni Shoua [RXE_BTH] = 0, 6398700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 640d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 641d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 642d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 643d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 644d8b0afd2SLi Zhijian RXE_DETH_BYTES, 6458700e3e7SMoni Shoua } 6468700e3e7SMoni Shoua }, 6478700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE] = { 6488700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE", 649d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 650d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 651d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 652d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 653d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 654d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6558700e3e7SMoni Shoua .offset = { 6568700e3e7SMoni Shoua [RXE_BTH] = 0, 6578700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 658d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 659d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 660d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 661d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 662d8b0afd2SLi Zhijian RXE_DETH_BYTES, 663d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 664d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 665d8b0afd2SLi Zhijian RXE_DETH_BYTES + 666d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 6678700e3e7SMoni Shoua } 6688700e3e7SMoni Shoua }, 6698700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_FIRST] = { 6708700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_FIRST", 671d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 672d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 673d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 674d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 675d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6768700e3e7SMoni Shoua .offset = { 6778700e3e7SMoni Shoua [RXE_BTH] = 0, 6788700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 679d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 680d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 681d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 682d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 683d8b0afd2SLi Zhijian RXE_DETH_BYTES, 684d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 685d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 686d8b0afd2SLi Zhijian RXE_DETH_BYTES + 687d8b0afd2SLi Zhijian RXE_RETH_BYTES, 6888700e3e7SMoni Shoua } 6898700e3e7SMoni Shoua }, 6908700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_MIDDLE] = { 6918700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_MIDDLE", 692d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 693d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 694d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 6958700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6968700e3e7SMoni Shoua .offset = { 6978700e3e7SMoni Shoua [RXE_BTH] = 0, 6988700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 699d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 700d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 701d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 702d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 703d8b0afd2SLi Zhijian RXE_DETH_BYTES, 7048700e3e7SMoni Shoua } 7058700e3e7SMoni Shoua }, 7068700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST] = { 7078700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST", 708d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 709d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 710d8b0afd2SLi Zhijian RXE_END_MASK, 7118700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 7128700e3e7SMoni Shoua .offset = { 7138700e3e7SMoni Shoua [RXE_BTH] = 0, 7148700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 715d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 716d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 717d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 718d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 719d8b0afd2SLi Zhijian RXE_DETH_BYTES, 7208700e3e7SMoni Shoua } 7218700e3e7SMoni Shoua }, 7228700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 7238700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE", 724d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 725d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 726d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 727d8b0afd2SLi Zhijian RXE_END_MASK, 728d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 729d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7308700e3e7SMoni Shoua .offset = { 7318700e3e7SMoni Shoua [RXE_BTH] = 0, 7328700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 733d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 734d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 735d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 736d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 737d8b0afd2SLi Zhijian RXE_DETH_BYTES, 738d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 739d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 740d8b0afd2SLi Zhijian RXE_DETH_BYTES + 741d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 7428700e3e7SMoni Shoua } 7438700e3e7SMoni Shoua }, 7448700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY] = { 7458700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY", 746d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 747d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 748d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 749d8b0afd2SLi Zhijian RXE_END_MASK, 750d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 751d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7528700e3e7SMoni Shoua .offset = { 7538700e3e7SMoni Shoua [RXE_BTH] = 0, 7548700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 755d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 756d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 757d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 758d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 759d8b0afd2SLi Zhijian RXE_DETH_BYTES, 760d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 761d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 762d8b0afd2SLi Zhijian RXE_DETH_BYTES + 763d8b0afd2SLi Zhijian RXE_RETH_BYTES, 7648700e3e7SMoni Shoua } 7658700e3e7SMoni Shoua }, 7668700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 7678700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 768d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 769d8b0afd2SLi Zhijian RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 770d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 771d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 772d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 773d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES + 774d8b0afd2SLi Zhijian RXE_DETH_BYTES + RXE_RDETH_BYTES, 7758700e3e7SMoni Shoua .offset = { 7768700e3e7SMoni Shoua [RXE_BTH] = 0, 7778700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 778d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 779d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 780d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 781d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 782d8b0afd2SLi Zhijian RXE_DETH_BYTES, 783d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 784d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 785d8b0afd2SLi Zhijian RXE_DETH_BYTES + 786d8b0afd2SLi Zhijian RXE_RETH_BYTES, 787d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 788d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 789d8b0afd2SLi Zhijian RXE_DETH_BYTES + 790d8b0afd2SLi Zhijian RXE_RETH_BYTES + 791d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 7928700e3e7SMoni Shoua } 7938700e3e7SMoni Shoua }, 7948700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_REQUEST] = { 7958700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_REQUEST", 796d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 797d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_READ_MASK | 798d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 799d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 800d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8018700e3e7SMoni Shoua .offset = { 8028700e3e7SMoni Shoua [RXE_BTH] = 0, 8038700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 804d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 805d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 806d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 807d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 808d8b0afd2SLi Zhijian RXE_DETH_BYTES, 809d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 810d8b0afd2SLi Zhijian RXE_RETH_BYTES + 811d8b0afd2SLi Zhijian RXE_DETH_BYTES + 812d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8138700e3e7SMoni Shoua } 8148700e3e7SMoni Shoua }, 8158700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST] = { 8168700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST", 817d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | 818d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_ACK_MASK | 819d8b0afd2SLi Zhijian RXE_START_MASK, 8208700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8218700e3e7SMoni Shoua .offset = { 8228700e3e7SMoni Shoua [RXE_BTH] = 0, 8238700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 824d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 825d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 826d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 827d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 828d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8298700e3e7SMoni Shoua } 8308700e3e7SMoni Shoua }, 8318700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE] = { 8328700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE", 833d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 834d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 8358700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RDETH_BYTES, 8368700e3e7SMoni Shoua .offset = { 8378700e3e7SMoni Shoua [RXE_BTH] = 0, 8388700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 839d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 840d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8418700e3e7SMoni Shoua } 8428700e3e7SMoni Shoua }, 8438700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST] = { 8448700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST", 845d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 846d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_END_MASK, 8478700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8488700e3e7SMoni Shoua .offset = { 8498700e3e7SMoni Shoua [RXE_BTH] = 0, 8508700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 851d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 852d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 853d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 854d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 855d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8568700e3e7SMoni Shoua } 8578700e3e7SMoni Shoua }, 8588700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY] = { 8598700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY", 860d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 861d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 8628700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8638700e3e7SMoni Shoua .offset = { 8648700e3e7SMoni Shoua [RXE_BTH] = 0, 8658700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 866d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 867d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 868d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 869d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 870d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8718700e3e7SMoni Shoua } 8728700e3e7SMoni Shoua }, 8738700e3e7SMoni Shoua [IB_OPCODE_RD_ACKNOWLEDGE] = { 8748700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ACKNOWLEDGE", 875d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK | 876d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 8778700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8788700e3e7SMoni Shoua .offset = { 8798700e3e7SMoni Shoua [RXE_BTH] = 0, 8808700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 881d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 882d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8838700e3e7SMoni Shoua } 8848700e3e7SMoni Shoua }, 8858700e3e7SMoni Shoua [IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE] = { 8868700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE", 887d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK | 888d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 889d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES + 890d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8918700e3e7SMoni Shoua .offset = { 8928700e3e7SMoni Shoua [RXE_BTH] = 0, 8938700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 894d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 895d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 896d8b0afd2SLi Zhijian [RXE_ATMACK] = RXE_BTH_BYTES + 897d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 898d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8998700e3e7SMoni Shoua } 9008700e3e7SMoni Shoua }, 9018700e3e7SMoni Shoua [IB_OPCODE_RD_COMPARE_SWAP] = { 9028700e3e7SMoni Shoua .name = "RD_COMPARE_SWAP", 903d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 904d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_ATOMIC_MASK | 905d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 906d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 907d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9088700e3e7SMoni Shoua .offset = { 9098700e3e7SMoni Shoua [RXE_BTH] = 0, 9108700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 911d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 912d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 913d8b0afd2SLi Zhijian [RXE_ATMETH] = RXE_BTH_BYTES + 914d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 915d8b0afd2SLi Zhijian RXE_DETH_BYTES, 9168700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 917d8b0afd2SLi Zhijian RXE_ATMETH_BYTES + 918d8b0afd2SLi Zhijian RXE_DETH_BYTES + 919d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9208700e3e7SMoni Shoua } 9218700e3e7SMoni Shoua }, 9228700e3e7SMoni Shoua [IB_OPCODE_RD_FETCH_ADD] = { 9238700e3e7SMoni Shoua .name = "IB_OPCODE_RD_FETCH_ADD", 924d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 925d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_ATOMIC_MASK | 926d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 927d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 928d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9298700e3e7SMoni Shoua .offset = { 9308700e3e7SMoni Shoua [RXE_BTH] = 0, 9318700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 932d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 933d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 934d8b0afd2SLi Zhijian [RXE_ATMETH] = RXE_BTH_BYTES + 935d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 936d8b0afd2SLi Zhijian RXE_DETH_BYTES, 9378700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 938d8b0afd2SLi Zhijian RXE_ATMETH_BYTES + 939d8b0afd2SLi Zhijian RXE_DETH_BYTES + 940d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9418700e3e7SMoni Shoua } 9428700e3e7SMoni Shoua }, 9438700e3e7SMoni Shoua 9448700e3e7SMoni Shoua /* UD */ 9458700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY] = { 9468700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY", 947d8b0afd2SLi Zhijian .mask = RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 948d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 949d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 9508700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES, 9518700e3e7SMoni Shoua .offset = { 9528700e3e7SMoni Shoua [RXE_BTH] = 0, 9538700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 954d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 955d8b0afd2SLi Zhijian RXE_DETH_BYTES, 9568700e3e7SMoni Shoua } 9578700e3e7SMoni Shoua }, 9588700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE] = { 9598700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE", 960d8b0afd2SLi Zhijian .mask = RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 961d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 962d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 9638700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES, 9648700e3e7SMoni Shoua .offset = { 9658700e3e7SMoni Shoua [RXE_BTH] = 0, 9668700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 967d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 968d8b0afd2SLi Zhijian RXE_DETH_BYTES, 969d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 970d8b0afd2SLi Zhijian RXE_DETH_BYTES + 971d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 9728700e3e7SMoni Shoua } 9738700e3e7SMoni Shoua }, 9748700e3e7SMoni Shoua 9758700e3e7SMoni Shoua }; 976