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*5c7af6c7SXiao Yang [IB_WR_ATOMIC_WRITE] = { 105*5c7af6c7SXiao Yang .name = "IB_WR_ATOMIC_WRITE", 106*5c7af6c7SXiao Yang .mask = { 107*5c7af6c7SXiao Yang [IB_QPT_RC] = WR_ATOMIC_WRITE_MASK, 108*5c7af6c7SXiao Yang }, 109*5c7af6c7SXiao Yang }, 1108700e3e7SMoni Shoua }; 1118700e3e7SMoni Shoua 1128700e3e7SMoni Shoua struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = { 1138700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_FIRST] = { 1148700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_FIRST", 115d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 116d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK, 1178700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1188700e3e7SMoni Shoua .offset = { 1198700e3e7SMoni Shoua [RXE_BTH] = 0, 1208700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1218700e3e7SMoni Shoua } 1228700e3e7SMoni Shoua }, 1238700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_MIDDLE] = { 1248d1cfb88SChengguang Xu .name = "IB_OPCODE_RC_SEND_MIDDLE", 125d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 126d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 1278700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1288700e3e7SMoni Shoua .offset = { 1298700e3e7SMoni Shoua [RXE_BTH] = 0, 1308700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1318700e3e7SMoni Shoua } 1328700e3e7SMoni Shoua }, 1338700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST] = { 1348700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST", 135d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 136d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_END_MASK, 1378700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1388700e3e7SMoni Shoua .offset = { 1398700e3e7SMoni Shoua [RXE_BTH] = 0, 1408700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1418700e3e7SMoni Shoua } 1428700e3e7SMoni Shoua }, 1438700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE] = { 1448700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE", 145d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 146d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 1478700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 1488700e3e7SMoni Shoua .offset = { 1498700e3e7SMoni Shoua [RXE_BTH] = 0, 1508700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 151d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 152d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 1538700e3e7SMoni Shoua } 1548700e3e7SMoni Shoua }, 1558700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY] = { 1568700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY", 157d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 158d8b0afd2SLi Zhijian RXE_RWR_MASK | RXE_SEND_MASK | 159d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 1608700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1618700e3e7SMoni Shoua .offset = { 1628700e3e7SMoni Shoua [RXE_BTH] = 0, 1638700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1648700e3e7SMoni Shoua } 1658700e3e7SMoni Shoua }, 1668700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE] = { 1678700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE", 168d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 169d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 170d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 1718700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 1728700e3e7SMoni Shoua .offset = { 1738700e3e7SMoni Shoua [RXE_BTH] = 0, 1748700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 175d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 176d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 1778700e3e7SMoni Shoua } 1788700e3e7SMoni Shoua }, 1798700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_FIRST] = { 1808700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_FIRST", 181d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 182d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 1838700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 1848700e3e7SMoni Shoua .offset = { 1858700e3e7SMoni Shoua [RXE_BTH] = 0, 1868700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 187d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 188d8b0afd2SLi Zhijian RXE_RETH_BYTES, 1898700e3e7SMoni Shoua } 1908700e3e7SMoni Shoua }, 1918700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_MIDDLE] = { 1928700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_MIDDLE", 193d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 194d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 1958700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1968700e3e7SMoni Shoua .offset = { 1978700e3e7SMoni Shoua [RXE_BTH] = 0, 1988700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1998700e3e7SMoni Shoua } 2008700e3e7SMoni Shoua }, 2018700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_LAST] = { 2028700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_LAST", 203d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 204d8b0afd2SLi Zhijian RXE_END_MASK, 2058700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 2068700e3e7SMoni Shoua .offset = { 2078700e3e7SMoni Shoua [RXE_BTH] = 0, 2088700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 2098700e3e7SMoni Shoua } 2108700e3e7SMoni Shoua }, 2118700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 2128700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 213d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 214d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 215d8b0afd2SLi Zhijian RXE_END_MASK, 2168700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 2178700e3e7SMoni Shoua .offset = { 2188700e3e7SMoni Shoua [RXE_BTH] = 0, 2198700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 220d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 221d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 2228700e3e7SMoni Shoua } 2238700e3e7SMoni Shoua }, 2248700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_ONLY] = { 2258700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY", 226d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 227d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 228d8b0afd2SLi Zhijian RXE_END_MASK, 2298700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 2308700e3e7SMoni Shoua .offset = { 2318700e3e7SMoni Shoua [RXE_BTH] = 0, 2328700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 233d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 234d8b0afd2SLi Zhijian RXE_RETH_BYTES, 2358700e3e7SMoni Shoua } 2368700e3e7SMoni Shoua }, 2378700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 2388700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 239d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 240d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 241d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 242d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 2438700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 2448700e3e7SMoni Shoua .offset = { 2458700e3e7SMoni Shoua [RXE_BTH] = 0, 2468700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 247d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 248d8b0afd2SLi Zhijian RXE_RETH_BYTES, 249d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 250d8b0afd2SLi Zhijian RXE_RETH_BYTES + 251d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 2528700e3e7SMoni Shoua } 2538700e3e7SMoni Shoua }, 2548700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_REQUEST] = { 2558700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_REQUEST", 256d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK | 257d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 2588700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 2598700e3e7SMoni Shoua .offset = { 2608700e3e7SMoni Shoua [RXE_BTH] = 0, 2618700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 262d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 263d8b0afd2SLi Zhijian RXE_RETH_BYTES, 2648700e3e7SMoni Shoua } 2658700e3e7SMoni Shoua }, 2668700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST] = { 2678700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST", 268d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 269d8b0afd2SLi Zhijian RXE_START_MASK, 2708700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 2718700e3e7SMoni Shoua .offset = { 2728700e3e7SMoni Shoua [RXE_BTH] = 0, 2738700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 274d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 275d8b0afd2SLi Zhijian RXE_AETH_BYTES, 2768700e3e7SMoni Shoua } 2778700e3e7SMoni Shoua }, 2788700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE] = { 2798700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE", 2808700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_ACK_MASK | RXE_MIDDLE_MASK, 2818700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 2828700e3e7SMoni Shoua .offset = { 2838700e3e7SMoni Shoua [RXE_BTH] = 0, 2848700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 2858700e3e7SMoni Shoua } 2868700e3e7SMoni Shoua }, 2878700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST] = { 2888700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST", 289d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 290d8b0afd2SLi Zhijian RXE_END_MASK, 2918700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 2928700e3e7SMoni Shoua .offset = { 2938700e3e7SMoni Shoua [RXE_BTH] = 0, 2948700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 295d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 296d8b0afd2SLi Zhijian RXE_AETH_BYTES, 2978700e3e7SMoni Shoua } 2988700e3e7SMoni Shoua }, 2998700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY] = { 3008700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY", 301d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 302d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3038700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 3048700e3e7SMoni Shoua .offset = { 3058700e3e7SMoni Shoua [RXE_BTH] = 0, 3068700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 307d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 308d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3098700e3e7SMoni Shoua } 3108700e3e7SMoni Shoua }, 3118700e3e7SMoni Shoua [IB_OPCODE_RC_ACKNOWLEDGE] = { 3128700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ACKNOWLEDGE", 313d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK | 314d8b0afd2SLi Zhijian RXE_END_MASK, 3158700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 3168700e3e7SMoni Shoua .offset = { 3178700e3e7SMoni Shoua [RXE_BTH] = 0, 3188700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 319d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 320d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3218700e3e7SMoni Shoua } 3228700e3e7SMoni Shoua }, 3238700e3e7SMoni Shoua [IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE] = { 3248700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE", 325d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK | 326d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3278700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES, 3288700e3e7SMoni Shoua .offset = { 3298700e3e7SMoni Shoua [RXE_BTH] = 0, 3308700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 331d8b0afd2SLi Zhijian [RXE_ATMACK] = RXE_BTH_BYTES + 332d8b0afd2SLi Zhijian RXE_AETH_BYTES, 333d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 334d8b0afd2SLi Zhijian RXE_ATMACK_BYTES + 335d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3368700e3e7SMoni Shoua } 3378700e3e7SMoni Shoua }, 3388700e3e7SMoni Shoua [IB_OPCODE_RC_COMPARE_SWAP] = { 3398700e3e7SMoni Shoua .name = "IB_OPCODE_RC_COMPARE_SWAP", 340d8b0afd2SLi Zhijian .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 341d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3428700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3438700e3e7SMoni Shoua .offset = { 3448700e3e7SMoni Shoua [RXE_BTH] = 0, 3458700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 346d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 347d8b0afd2SLi Zhijian RXE_ATMETH_BYTES, 3488700e3e7SMoni Shoua } 3498700e3e7SMoni Shoua }, 3508700e3e7SMoni Shoua [IB_OPCODE_RC_FETCH_ADD] = { 3518700e3e7SMoni Shoua .name = "IB_OPCODE_RC_FETCH_ADD", 352d8b0afd2SLi Zhijian .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 353d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3548700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3558700e3e7SMoni Shoua .offset = { 3568700e3e7SMoni Shoua [RXE_BTH] = 0, 3578700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 358d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 359d8b0afd2SLi Zhijian RXE_ATMETH_BYTES, 3608700e3e7SMoni Shoua } 3618700e3e7SMoni Shoua }, 3628700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE] = { 3638700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE", 364d8b0afd2SLi Zhijian .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 365d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 3668700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3678700e3e7SMoni Shoua .offset = { 3688700e3e7SMoni Shoua [RXE_BTH] = 0, 3698700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 370d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 371d8b0afd2SLi Zhijian RXE_IETH_BYTES, 3728700e3e7SMoni Shoua } 3738700e3e7SMoni Shoua }, 3748700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE] = { 3758700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY_INV", 376d8b0afd2SLi Zhijian .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 377d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 378d8b0afd2SLi Zhijian RXE_END_MASK | RXE_START_MASK, 3798700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3808700e3e7SMoni Shoua .offset = { 3818700e3e7SMoni Shoua [RXE_BTH] = 0, 3828700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 383d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 384d8b0afd2SLi Zhijian RXE_IETH_BYTES, 3858700e3e7SMoni Shoua } 3868700e3e7SMoni Shoua }, 387*5c7af6c7SXiao Yang [IB_OPCODE_RC_ATOMIC_WRITE] = { 388*5c7af6c7SXiao Yang .name = "IB_OPCODE_RC_ATOMIC_WRITE", 389*5c7af6c7SXiao Yang .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 390*5c7af6c7SXiao Yang RXE_ATOMIC_WRITE_MASK | RXE_START_MASK | 391*5c7af6c7SXiao Yang RXE_END_MASK, 392*5c7af6c7SXiao Yang .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 393*5c7af6c7SXiao Yang .offset = { 394*5c7af6c7SXiao Yang [RXE_BTH] = 0, 395*5c7af6c7SXiao Yang [RXE_RETH] = RXE_BTH_BYTES, 396*5c7af6c7SXiao Yang [RXE_PAYLOAD] = RXE_BTH_BYTES + RXE_RETH_BYTES, 397*5c7af6c7SXiao Yang } 398*5c7af6c7SXiao Yang }, 3998700e3e7SMoni Shoua 4008700e3e7SMoni Shoua /* UC */ 4018700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_FIRST] = { 4028700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_FIRST", 403d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 404d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK, 4058700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4068700e3e7SMoni Shoua .offset = { 4078700e3e7SMoni Shoua [RXE_BTH] = 0, 4088700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4098700e3e7SMoni Shoua } 4108700e3e7SMoni Shoua }, 4118700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_MIDDLE] = { 4128700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_MIDDLE", 413d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 414d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 4158700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4168700e3e7SMoni Shoua .offset = { 4178700e3e7SMoni Shoua [RXE_BTH] = 0, 4188700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4198700e3e7SMoni Shoua } 4208700e3e7SMoni Shoua }, 4218700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST] = { 4228700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST", 423d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 424d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_END_MASK, 4258700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4268700e3e7SMoni Shoua .offset = { 4278700e3e7SMoni Shoua [RXE_BTH] = 0, 4288700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4298700e3e7SMoni Shoua } 4308700e3e7SMoni Shoua }, 4318700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE] = { 4328700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE", 433d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 434d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 4358700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4368700e3e7SMoni Shoua .offset = { 4378700e3e7SMoni Shoua [RXE_BTH] = 0, 4388700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 439d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 440d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 4418700e3e7SMoni Shoua } 4428700e3e7SMoni Shoua }, 4438700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY] = { 4448700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY", 445d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 446d8b0afd2SLi Zhijian RXE_RWR_MASK | RXE_SEND_MASK | 447d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 4488700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4498700e3e7SMoni Shoua .offset = { 4508700e3e7SMoni Shoua [RXE_BTH] = 0, 4518700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4528700e3e7SMoni Shoua } 4538700e3e7SMoni Shoua }, 4548700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE] = { 4558700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE", 456d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 457d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 458d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 4598700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4608700e3e7SMoni Shoua .offset = { 4618700e3e7SMoni Shoua [RXE_BTH] = 0, 4628700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 463d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 464d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 4658700e3e7SMoni Shoua } 4668700e3e7SMoni Shoua }, 4678700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_FIRST] = { 4688700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_FIRST", 469d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 470d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 4718700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 4728700e3e7SMoni Shoua .offset = { 4738700e3e7SMoni Shoua [RXE_BTH] = 0, 4748700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 475d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 476d8b0afd2SLi Zhijian RXE_RETH_BYTES, 4778700e3e7SMoni Shoua } 4788700e3e7SMoni Shoua }, 4798700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_MIDDLE] = { 4808700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_MIDDLE", 481d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 482d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 4838700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4848700e3e7SMoni Shoua .offset = { 4858700e3e7SMoni Shoua [RXE_BTH] = 0, 4868700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4878700e3e7SMoni Shoua } 4888700e3e7SMoni Shoua }, 4898700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST] = { 4908700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST", 491d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 492d8b0afd2SLi Zhijian RXE_END_MASK, 4938700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4948700e3e7SMoni Shoua .offset = { 4958700e3e7SMoni Shoua [RXE_BTH] = 0, 4968700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4978700e3e7SMoni Shoua } 4988700e3e7SMoni Shoua }, 4998700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 5008700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 501d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 502d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 503d8b0afd2SLi Zhijian RXE_END_MASK, 5048700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 5058700e3e7SMoni Shoua .offset = { 5068700e3e7SMoni Shoua [RXE_BTH] = 0, 5078700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 508d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 509d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 5108700e3e7SMoni Shoua } 5118700e3e7SMoni Shoua }, 5128700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY] = { 5138700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY", 514d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 515d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 516d8b0afd2SLi Zhijian RXE_END_MASK, 5178700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 5188700e3e7SMoni Shoua .offset = { 5198700e3e7SMoni Shoua [RXE_BTH] = 0, 5208700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 521d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 522d8b0afd2SLi Zhijian RXE_RETH_BYTES, 5238700e3e7SMoni Shoua } 5248700e3e7SMoni Shoua }, 5258700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 5268700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 527d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 528d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 529d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 530d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 5318700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 5328700e3e7SMoni Shoua .offset = { 5338700e3e7SMoni Shoua [RXE_BTH] = 0, 5348700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 535d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 536d8b0afd2SLi Zhijian RXE_RETH_BYTES, 537d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 538d8b0afd2SLi Zhijian RXE_RETH_BYTES + 539d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 5408700e3e7SMoni Shoua } 5418700e3e7SMoni Shoua }, 5428700e3e7SMoni Shoua 5438700e3e7SMoni Shoua /* RD */ 5448700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_FIRST] = { 5458700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_FIRST", 546d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 547d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 548d8b0afd2SLi Zhijian RXE_START_MASK, 5498700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5508700e3e7SMoni Shoua .offset = { 5518700e3e7SMoni Shoua [RXE_BTH] = 0, 5528700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 553d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 554d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 555d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 556d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 557d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5588700e3e7SMoni Shoua } 5598700e3e7SMoni Shoua }, 5608700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_MIDDLE] = { 5618700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_MIDDLE", 562d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 563d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_SEND_MASK | 564d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 5658700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5668700e3e7SMoni Shoua .offset = { 5678700e3e7SMoni Shoua [RXE_BTH] = 0, 5688700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 569d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 570d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 571d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 572d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 573d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5748700e3e7SMoni Shoua } 5758700e3e7SMoni Shoua }, 5768700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST] = { 5778700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST", 578d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 579d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK | 580d8b0afd2SLi Zhijian RXE_END_MASK, 5818700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5828700e3e7SMoni Shoua .offset = { 5838700e3e7SMoni Shoua [RXE_BTH] = 0, 5848700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 585d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 586d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 587d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 588d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 589d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5908700e3e7SMoni Shoua } 5918700e3e7SMoni Shoua }, 5928700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE] = { 5938700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE", 594d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 595d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 596d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | 597d8b0afd2SLi Zhijian RXE_END_MASK, 598d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 599d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6008700e3e7SMoni Shoua .offset = { 6018700e3e7SMoni Shoua [RXE_BTH] = 0, 6028700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 603d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 604d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 605d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 606d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 607d8b0afd2SLi Zhijian RXE_DETH_BYTES, 608d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 609d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 610d8b0afd2SLi Zhijian RXE_DETH_BYTES + 611d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 6128700e3e7SMoni Shoua } 6138700e3e7SMoni Shoua }, 6148700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY] = { 6158700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY", 616d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 617d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 618d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 6198700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6208700e3e7SMoni Shoua .offset = { 6218700e3e7SMoni Shoua [RXE_BTH] = 0, 6228700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 623d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 624d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 625d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 626d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 627d8b0afd2SLi Zhijian RXE_DETH_BYTES, 6288700e3e7SMoni Shoua } 6298700e3e7SMoni Shoua }, 6308700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE] = { 6318700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE", 632d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 633d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 634d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 635d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 636d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 637d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6388700e3e7SMoni Shoua .offset = { 6398700e3e7SMoni Shoua [RXE_BTH] = 0, 6408700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 641d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 642d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 643d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 644d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 645d8b0afd2SLi Zhijian RXE_DETH_BYTES, 646d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 647d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 648d8b0afd2SLi Zhijian RXE_DETH_BYTES + 649d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 6508700e3e7SMoni Shoua } 6518700e3e7SMoni Shoua }, 6528700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_FIRST] = { 6538700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_FIRST", 654d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 655d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 656d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 657d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 658d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6598700e3e7SMoni Shoua .offset = { 6608700e3e7SMoni Shoua [RXE_BTH] = 0, 6618700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 662d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 663d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 664d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 665d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 666d8b0afd2SLi Zhijian RXE_DETH_BYTES, 667d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 668d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 669d8b0afd2SLi Zhijian RXE_DETH_BYTES + 670d8b0afd2SLi Zhijian RXE_RETH_BYTES, 6718700e3e7SMoni Shoua } 6728700e3e7SMoni Shoua }, 6738700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_MIDDLE] = { 6748700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_MIDDLE", 675d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 676d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 677d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 6788700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6798700e3e7SMoni Shoua .offset = { 6808700e3e7SMoni Shoua [RXE_BTH] = 0, 6818700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 682d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 683d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 684d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 685d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 686d8b0afd2SLi Zhijian RXE_DETH_BYTES, 6878700e3e7SMoni Shoua } 6888700e3e7SMoni Shoua }, 6898700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST] = { 6908700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST", 691d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 692d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 693d8b0afd2SLi Zhijian RXE_END_MASK, 6948700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6958700e3e7SMoni Shoua .offset = { 6968700e3e7SMoni Shoua [RXE_BTH] = 0, 6978700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 698d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 699d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 700d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 701d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 702d8b0afd2SLi Zhijian RXE_DETH_BYTES, 7038700e3e7SMoni Shoua } 7048700e3e7SMoni Shoua }, 7058700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 7068700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE", 707d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 708d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 709d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 710d8b0afd2SLi Zhijian RXE_END_MASK, 711d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 712d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7138700e3e7SMoni Shoua .offset = { 7148700e3e7SMoni Shoua [RXE_BTH] = 0, 7158700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 716d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 717d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 718d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 719d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 720d8b0afd2SLi Zhijian RXE_DETH_BYTES, 721d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 722d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 723d8b0afd2SLi Zhijian RXE_DETH_BYTES + 724d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 7258700e3e7SMoni Shoua } 7268700e3e7SMoni Shoua }, 7278700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY] = { 7288700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY", 729d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 730d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 731d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 732d8b0afd2SLi Zhijian RXE_END_MASK, 733d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 734d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7358700e3e7SMoni Shoua .offset = { 7368700e3e7SMoni Shoua [RXE_BTH] = 0, 7378700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 738d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 739d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 740d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 741d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 742d8b0afd2SLi Zhijian RXE_DETH_BYTES, 743d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 744d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 745d8b0afd2SLi Zhijian RXE_DETH_BYTES + 746d8b0afd2SLi Zhijian RXE_RETH_BYTES, 7478700e3e7SMoni Shoua } 7488700e3e7SMoni Shoua }, 7498700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 7508700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 751d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 752d8b0afd2SLi Zhijian RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 753d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 754d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 755d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 756d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES + 757d8b0afd2SLi Zhijian RXE_DETH_BYTES + RXE_RDETH_BYTES, 7588700e3e7SMoni Shoua .offset = { 7598700e3e7SMoni Shoua [RXE_BTH] = 0, 7608700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 761d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 762d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 763d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 764d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 765d8b0afd2SLi Zhijian RXE_DETH_BYTES, 766d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 767d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 768d8b0afd2SLi Zhijian RXE_DETH_BYTES + 769d8b0afd2SLi Zhijian RXE_RETH_BYTES, 770d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 771d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 772d8b0afd2SLi Zhijian RXE_DETH_BYTES + 773d8b0afd2SLi Zhijian RXE_RETH_BYTES + 774d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 7758700e3e7SMoni Shoua } 7768700e3e7SMoni Shoua }, 7778700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_REQUEST] = { 7788700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_REQUEST", 779d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 780d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_READ_MASK | 781d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 782d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 783d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7848700e3e7SMoni Shoua .offset = { 7858700e3e7SMoni Shoua [RXE_BTH] = 0, 7868700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 787d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 788d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 789d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 790d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 791d8b0afd2SLi Zhijian RXE_DETH_BYTES, 792d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 793d8b0afd2SLi Zhijian RXE_RETH_BYTES + 794d8b0afd2SLi Zhijian RXE_DETH_BYTES + 795d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7968700e3e7SMoni Shoua } 7978700e3e7SMoni Shoua }, 7988700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST] = { 7998700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST", 800d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | 801d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_ACK_MASK | 802d8b0afd2SLi Zhijian RXE_START_MASK, 8038700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8048700e3e7SMoni Shoua .offset = { 8058700e3e7SMoni Shoua [RXE_BTH] = 0, 8068700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 807d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 808d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 809d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 810d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 811d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8128700e3e7SMoni Shoua } 8138700e3e7SMoni Shoua }, 8148700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE] = { 8158700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE", 816d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 817d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 8188700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RDETH_BYTES, 8198700e3e7SMoni Shoua .offset = { 8208700e3e7SMoni Shoua [RXE_BTH] = 0, 8218700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 822d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 823d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8248700e3e7SMoni Shoua } 8258700e3e7SMoni Shoua }, 8268700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST] = { 8278700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST", 828d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 829d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_END_MASK, 8308700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8318700e3e7SMoni Shoua .offset = { 8328700e3e7SMoni Shoua [RXE_BTH] = 0, 8338700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 834d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 835d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 836d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 837d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 838d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8398700e3e7SMoni Shoua } 8408700e3e7SMoni Shoua }, 8418700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY] = { 8428700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY", 843d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 844d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 8458700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8468700e3e7SMoni Shoua .offset = { 8478700e3e7SMoni Shoua [RXE_BTH] = 0, 8488700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 849d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 850d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 851d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 852d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 853d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8548700e3e7SMoni Shoua } 8558700e3e7SMoni Shoua }, 8568700e3e7SMoni Shoua [IB_OPCODE_RD_ACKNOWLEDGE] = { 8578700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ACKNOWLEDGE", 858d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK | 859d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 8608700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8618700e3e7SMoni Shoua .offset = { 8628700e3e7SMoni Shoua [RXE_BTH] = 0, 8638700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 864d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 865d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8668700e3e7SMoni Shoua } 8678700e3e7SMoni Shoua }, 8688700e3e7SMoni Shoua [IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE] = { 8698700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE", 870d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK | 871d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 872d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES + 873d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8748700e3e7SMoni Shoua .offset = { 8758700e3e7SMoni Shoua [RXE_BTH] = 0, 8768700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 877d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 878d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 879d8b0afd2SLi Zhijian [RXE_ATMACK] = RXE_BTH_BYTES + 880d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 881d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8828700e3e7SMoni Shoua } 8838700e3e7SMoni Shoua }, 8848700e3e7SMoni Shoua [IB_OPCODE_RD_COMPARE_SWAP] = { 8858700e3e7SMoni Shoua .name = "RD_COMPARE_SWAP", 886d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 887d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_ATOMIC_MASK | 888d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 889d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 890d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8918700e3e7SMoni Shoua .offset = { 8928700e3e7SMoni Shoua [RXE_BTH] = 0, 8938700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 894d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 895d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 896d8b0afd2SLi Zhijian [RXE_ATMETH] = RXE_BTH_BYTES + 897d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 898d8b0afd2SLi Zhijian RXE_DETH_BYTES, 8998700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 900d8b0afd2SLi Zhijian RXE_ATMETH_BYTES + 901d8b0afd2SLi Zhijian RXE_DETH_BYTES + 902d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9038700e3e7SMoni Shoua } 9048700e3e7SMoni Shoua }, 9058700e3e7SMoni Shoua [IB_OPCODE_RD_FETCH_ADD] = { 9068700e3e7SMoni Shoua .name = "IB_OPCODE_RD_FETCH_ADD", 907d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 908d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_ATOMIC_MASK | 909d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 910d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 911d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9128700e3e7SMoni Shoua .offset = { 9138700e3e7SMoni Shoua [RXE_BTH] = 0, 9148700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 915d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 916d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 917d8b0afd2SLi Zhijian [RXE_ATMETH] = RXE_BTH_BYTES + 918d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 919d8b0afd2SLi Zhijian RXE_DETH_BYTES, 9208700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 921d8b0afd2SLi Zhijian RXE_ATMETH_BYTES + 922d8b0afd2SLi Zhijian RXE_DETH_BYTES + 923d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9248700e3e7SMoni Shoua } 9258700e3e7SMoni Shoua }, 9268700e3e7SMoni Shoua 9278700e3e7SMoni Shoua /* UD */ 9288700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY] = { 9298700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY", 930d8b0afd2SLi Zhijian .mask = RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 931d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 932d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 9338700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES, 9348700e3e7SMoni Shoua .offset = { 9358700e3e7SMoni Shoua [RXE_BTH] = 0, 9368700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 937d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 938d8b0afd2SLi Zhijian RXE_DETH_BYTES, 9398700e3e7SMoni Shoua } 9408700e3e7SMoni Shoua }, 9418700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE] = { 9428700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE", 943d8b0afd2SLi Zhijian .mask = RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 944d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 945d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 9468700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES, 9478700e3e7SMoni Shoua .offset = { 9488700e3e7SMoni Shoua [RXE_BTH] = 0, 9498700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 950d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 951d8b0afd2SLi Zhijian RXE_DETH_BYTES, 952d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 953d8b0afd2SLi Zhijian RXE_DETH_BYTES + 954d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 9558700e3e7SMoni Shoua } 9568700e3e7SMoni Shoua }, 9578700e3e7SMoni Shoua 9588700e3e7SMoni Shoua }; 959