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_SMI] = WR_INLINE_MASK | WR_SEND_MASK, 338700e3e7SMoni Shoua [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK, 348700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 358700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 368700e3e7SMoni Shoua [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 378700e3e7SMoni Shoua }, 388700e3e7SMoni Shoua }, 398700e3e7SMoni Shoua [IB_WR_SEND_WITH_IMM] = { 408700e3e7SMoni Shoua .name = "IB_WR_SEND_WITH_IMM", 418700e3e7SMoni Shoua .mask = { 428700e3e7SMoni Shoua [IB_QPT_SMI] = WR_INLINE_MASK | WR_SEND_MASK, 438700e3e7SMoni Shoua [IB_QPT_GSI] = WR_INLINE_MASK | WR_SEND_MASK, 448700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 458700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 468700e3e7SMoni Shoua [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 478700e3e7SMoni Shoua }, 488700e3e7SMoni Shoua }, 498700e3e7SMoni Shoua [IB_WR_RDMA_READ] = { 508700e3e7SMoni Shoua .name = "IB_WR_RDMA_READ", 518700e3e7SMoni Shoua .mask = { 528700e3e7SMoni Shoua [IB_QPT_RC] = WR_READ_MASK, 538700e3e7SMoni Shoua }, 548700e3e7SMoni Shoua }, 558700e3e7SMoni Shoua [IB_WR_ATOMIC_CMP_AND_SWP] = { 568700e3e7SMoni Shoua .name = "IB_WR_ATOMIC_CMP_AND_SWP", 578700e3e7SMoni Shoua .mask = { 588700e3e7SMoni Shoua [IB_QPT_RC] = WR_ATOMIC_MASK, 598700e3e7SMoni Shoua }, 608700e3e7SMoni Shoua }, 618700e3e7SMoni Shoua [IB_WR_ATOMIC_FETCH_AND_ADD] = { 628700e3e7SMoni Shoua .name = "IB_WR_ATOMIC_FETCH_AND_ADD", 638700e3e7SMoni Shoua .mask = { 648700e3e7SMoni Shoua [IB_QPT_RC] = WR_ATOMIC_MASK, 658700e3e7SMoni Shoua }, 668700e3e7SMoni Shoua }, 678700e3e7SMoni Shoua [IB_WR_LSO] = { 688700e3e7SMoni Shoua .name = "IB_WR_LSO", 698700e3e7SMoni Shoua .mask = { 708700e3e7SMoni Shoua /* not supported */ 718700e3e7SMoni Shoua }, 728700e3e7SMoni Shoua }, 738700e3e7SMoni Shoua [IB_WR_SEND_WITH_INV] = { 748700e3e7SMoni Shoua .name = "IB_WR_SEND_WITH_INV", 758700e3e7SMoni Shoua .mask = { 768700e3e7SMoni Shoua [IB_QPT_RC] = WR_INLINE_MASK | WR_SEND_MASK, 778700e3e7SMoni Shoua [IB_QPT_UC] = WR_INLINE_MASK | WR_SEND_MASK, 788700e3e7SMoni Shoua [IB_QPT_UD] = WR_INLINE_MASK | WR_SEND_MASK, 798700e3e7SMoni Shoua }, 808700e3e7SMoni Shoua }, 818700e3e7SMoni Shoua [IB_WR_RDMA_READ_WITH_INV] = { 828700e3e7SMoni Shoua .name = "IB_WR_RDMA_READ_WITH_INV", 838700e3e7SMoni Shoua .mask = { 848700e3e7SMoni Shoua [IB_QPT_RC] = WR_READ_MASK, 858700e3e7SMoni Shoua }, 868700e3e7SMoni Shoua }, 878700e3e7SMoni Shoua [IB_WR_LOCAL_INV] = { 888700e3e7SMoni Shoua .name = "IB_WR_LOCAL_INV", 898700e3e7SMoni Shoua .mask = { 90886441fbSBob Pearson [IB_QPT_RC] = WR_LOCAL_OP_MASK, 918700e3e7SMoni Shoua }, 928700e3e7SMoni Shoua }, 938700e3e7SMoni Shoua [IB_WR_REG_MR] = { 948700e3e7SMoni Shoua .name = "IB_WR_REG_MR", 958700e3e7SMoni Shoua .mask = { 96886441fbSBob Pearson [IB_QPT_RC] = WR_LOCAL_OP_MASK, 978700e3e7SMoni Shoua }, 988700e3e7SMoni Shoua }, 99*32a577b4SBob Pearson [IB_WR_BIND_MW] = { 100*32a577b4SBob Pearson .name = "IB_WR_BIND_MW", 101*32a577b4SBob Pearson .mask = { 102*32a577b4SBob Pearson [IB_QPT_RC] = WR_LOCAL_OP_MASK, 103*32a577b4SBob Pearson [IB_QPT_UC] = WR_LOCAL_OP_MASK, 104*32a577b4SBob Pearson }, 105*32a577b4SBob Pearson }, 1068700e3e7SMoni Shoua }; 1078700e3e7SMoni Shoua 1088700e3e7SMoni Shoua struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = { 1098700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_FIRST] = { 1108700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_FIRST", 1118700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK 1128700e3e7SMoni Shoua | RXE_SEND_MASK | RXE_START_MASK, 1138700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1148700e3e7SMoni Shoua .offset = { 1158700e3e7SMoni Shoua [RXE_BTH] = 0, 1168700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1178700e3e7SMoni Shoua } 1188700e3e7SMoni Shoua }, 1198700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_MIDDLE] = { 1208700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_MIDDLE]", 1218700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK 1228700e3e7SMoni Shoua | RXE_MIDDLE_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_LAST] = { 1308700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST", 1318700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK 1328700e3e7SMoni Shoua | RXE_SEND_MASK | RXE_END_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_WITH_IMMEDIATE] = { 1408700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE", 1418700e3e7SMoni Shoua .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 1428700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 1438700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 1448700e3e7SMoni Shoua .offset = { 1458700e3e7SMoni Shoua [RXE_BTH] = 0, 1468700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 1478700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 1488700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 1498700e3e7SMoni Shoua } 1508700e3e7SMoni Shoua }, 1518700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY] = { 1528700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY", 1538700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK 1548700e3e7SMoni Shoua | RXE_RWR_MASK | RXE_SEND_MASK 1558700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 1568700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1578700e3e7SMoni Shoua .offset = { 1588700e3e7SMoni Shoua [RXE_BTH] = 0, 1598700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1608700e3e7SMoni Shoua } 1618700e3e7SMoni Shoua }, 1628700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE] = { 1638700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE", 1648700e3e7SMoni Shoua .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 1658700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK 1668700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 1678700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 1688700e3e7SMoni Shoua .offset = { 1698700e3e7SMoni Shoua [RXE_BTH] = 0, 1708700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 1718700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 1728700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 1738700e3e7SMoni Shoua } 1748700e3e7SMoni Shoua }, 1758700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_FIRST] = { 1768700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_FIRST", 1778700e3e7SMoni Shoua .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 1788700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_START_MASK, 1798700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 1808700e3e7SMoni Shoua .offset = { 1818700e3e7SMoni Shoua [RXE_BTH] = 0, 1828700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 1838700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 1848700e3e7SMoni Shoua + RXE_RETH_BYTES, 1858700e3e7SMoni Shoua } 1868700e3e7SMoni Shoua }, 1878700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_MIDDLE] = { 1888700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_MIDDLE", 1898700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK 1908700e3e7SMoni Shoua | RXE_MIDDLE_MASK, 1918700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 1928700e3e7SMoni Shoua .offset = { 1938700e3e7SMoni Shoua [RXE_BTH] = 0, 1948700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 1958700e3e7SMoni Shoua } 1968700e3e7SMoni Shoua }, 1978700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_LAST] = { 1988700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_LAST", 1998700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK 2008700e3e7SMoni Shoua | RXE_END_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_WITH_IMMEDIATE] = { 2088700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 2098700e3e7SMoni Shoua .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 2108700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK 2118700e3e7SMoni Shoua | RXE_END_MASK, 2128700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 2138700e3e7SMoni Shoua .offset = { 2148700e3e7SMoni Shoua [RXE_BTH] = 0, 2158700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 2168700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 2178700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 2188700e3e7SMoni Shoua } 2198700e3e7SMoni Shoua }, 2208700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_ONLY] = { 2218700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY", 2228700e3e7SMoni Shoua .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 2238700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_START_MASK 2248700e3e7SMoni Shoua | RXE_END_MASK, 2258700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 2268700e3e7SMoni Shoua .offset = { 2278700e3e7SMoni Shoua [RXE_BTH] = 0, 2288700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 2298700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 2308700e3e7SMoni Shoua + RXE_RETH_BYTES, 2318700e3e7SMoni Shoua } 2328700e3e7SMoni Shoua }, 2338700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 2348700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 2358700e3e7SMoni Shoua .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK 2368700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_WRITE_MASK 2378700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK 2388700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 2398700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 2408700e3e7SMoni Shoua .offset = { 2418700e3e7SMoni Shoua [RXE_BTH] = 0, 2428700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 2438700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES 2448700e3e7SMoni Shoua + RXE_RETH_BYTES, 2458700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 2468700e3e7SMoni Shoua + RXE_RETH_BYTES 2478700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 2488700e3e7SMoni Shoua } 2498700e3e7SMoni Shoua }, 2508700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_REQUEST] = { 2518700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_REQUEST", 2528700e3e7SMoni Shoua .mask = RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK 2538700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 2548700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 2558700e3e7SMoni Shoua .offset = { 2568700e3e7SMoni Shoua [RXE_BTH] = 0, 2578700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 2588700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 2598700e3e7SMoni Shoua + RXE_RETH_BYTES, 2608700e3e7SMoni Shoua } 2618700e3e7SMoni Shoua }, 2628700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST] = { 2638700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST", 2648700e3e7SMoni Shoua .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK 2658700e3e7SMoni Shoua | RXE_START_MASK, 2668700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 2678700e3e7SMoni Shoua .offset = { 2688700e3e7SMoni Shoua [RXE_BTH] = 0, 2698700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 2708700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 2718700e3e7SMoni Shoua + RXE_AETH_BYTES, 2728700e3e7SMoni Shoua } 2738700e3e7SMoni Shoua }, 2748700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE] = { 2758700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE", 2768700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_ACK_MASK | RXE_MIDDLE_MASK, 2778700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 2788700e3e7SMoni Shoua .offset = { 2798700e3e7SMoni Shoua [RXE_BTH] = 0, 2808700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 2818700e3e7SMoni Shoua } 2828700e3e7SMoni Shoua }, 2838700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST] = { 2848700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST", 2858700e3e7SMoni Shoua .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK 2868700e3e7SMoni Shoua | RXE_END_MASK, 2878700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 2888700e3e7SMoni Shoua .offset = { 2898700e3e7SMoni Shoua [RXE_BTH] = 0, 2908700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 2918700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 2928700e3e7SMoni Shoua + RXE_AETH_BYTES, 2938700e3e7SMoni Shoua } 2948700e3e7SMoni Shoua }, 2958700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY] = { 2968700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY", 2978700e3e7SMoni Shoua .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK 2988700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 2998700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 3008700e3e7SMoni Shoua .offset = { 3018700e3e7SMoni Shoua [RXE_BTH] = 0, 3028700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 3038700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 3048700e3e7SMoni Shoua + RXE_AETH_BYTES, 3058700e3e7SMoni Shoua } 3068700e3e7SMoni Shoua }, 3078700e3e7SMoni Shoua [IB_OPCODE_RC_ACKNOWLEDGE] = { 3088700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ACKNOWLEDGE", 3098700e3e7SMoni Shoua .mask = RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK 3108700e3e7SMoni Shoua | RXE_END_MASK, 3118700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES, 3128700e3e7SMoni Shoua .offset = { 3138700e3e7SMoni Shoua [RXE_BTH] = 0, 3148700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 3158700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 3168700e3e7SMoni Shoua + RXE_AETH_BYTES, 3178700e3e7SMoni Shoua } 3188700e3e7SMoni Shoua }, 3198700e3e7SMoni Shoua [IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE] = { 3208700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE", 3218700e3e7SMoni Shoua .mask = RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK 3228700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 3238700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES, 3248700e3e7SMoni Shoua .offset = { 3258700e3e7SMoni Shoua [RXE_BTH] = 0, 3268700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES, 3278700e3e7SMoni Shoua [RXE_ATMACK] = RXE_BTH_BYTES 3288700e3e7SMoni Shoua + RXE_AETH_BYTES, 3298700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 3308700e3e7SMoni Shoua + RXE_ATMACK_BYTES + RXE_AETH_BYTES, 3318700e3e7SMoni Shoua } 3328700e3e7SMoni Shoua }, 3338700e3e7SMoni Shoua [IB_OPCODE_RC_COMPARE_SWAP] = { 3348700e3e7SMoni Shoua .name = "IB_OPCODE_RC_COMPARE_SWAP", 3358700e3e7SMoni Shoua .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK 3368700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 3378700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3388700e3e7SMoni Shoua .offset = { 3398700e3e7SMoni Shoua [RXE_BTH] = 0, 3408700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 3418700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 3428700e3e7SMoni Shoua + RXE_ATMETH_BYTES, 3438700e3e7SMoni Shoua } 3448700e3e7SMoni Shoua }, 3458700e3e7SMoni Shoua [IB_OPCODE_RC_FETCH_ADD] = { 3468700e3e7SMoni Shoua .name = "IB_OPCODE_RC_FETCH_ADD", 3478700e3e7SMoni Shoua .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK 3488700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 3498700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3508700e3e7SMoni Shoua .offset = { 3518700e3e7SMoni Shoua [RXE_BTH] = 0, 3528700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 3538700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 3548700e3e7SMoni Shoua + RXE_ATMETH_BYTES, 3558700e3e7SMoni Shoua } 3568700e3e7SMoni Shoua }, 3578700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE] = { 3588700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE", 3598700e3e7SMoni Shoua .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 3608700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 3618700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3628700e3e7SMoni Shoua .offset = { 3638700e3e7SMoni Shoua [RXE_BTH] = 0, 3648700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 3658700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 3668700e3e7SMoni Shoua + RXE_IETH_BYTES, 3678700e3e7SMoni Shoua } 3688700e3e7SMoni Shoua }, 3698700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE] = { 3708700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY_INV", 3718700e3e7SMoni Shoua .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 3728700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK 3732da36d44SJianchao Wang | RXE_END_MASK | RXE_START_MASK, 3748700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3758700e3e7SMoni Shoua .offset = { 3768700e3e7SMoni Shoua [RXE_BTH] = 0, 3778700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 3788700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 3798700e3e7SMoni Shoua + RXE_IETH_BYTES, 3808700e3e7SMoni Shoua } 3818700e3e7SMoni Shoua }, 3828700e3e7SMoni Shoua 3838700e3e7SMoni Shoua /* UC */ 3848700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_FIRST] = { 3858700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_FIRST", 3868700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK 3878700e3e7SMoni Shoua | RXE_SEND_MASK | RXE_START_MASK, 3888700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 3898700e3e7SMoni Shoua .offset = { 3908700e3e7SMoni Shoua [RXE_BTH] = 0, 3918700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 3928700e3e7SMoni Shoua } 3938700e3e7SMoni Shoua }, 3948700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_MIDDLE] = { 3958700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_MIDDLE", 3968700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK 3978700e3e7SMoni Shoua | RXE_MIDDLE_MASK, 3988700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 3998700e3e7SMoni Shoua .offset = { 4008700e3e7SMoni Shoua [RXE_BTH] = 0, 4018700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4028700e3e7SMoni Shoua } 4038700e3e7SMoni Shoua }, 4048700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST] = { 4058700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST", 4068700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK 4078700e3e7SMoni Shoua | RXE_SEND_MASK | RXE_END_MASK, 4088700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4098700e3e7SMoni Shoua .offset = { 4108700e3e7SMoni Shoua [RXE_BTH] = 0, 4118700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4128700e3e7SMoni Shoua } 4138700e3e7SMoni Shoua }, 4148700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE] = { 4158700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE", 4168700e3e7SMoni Shoua .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 4178700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 4188700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4198700e3e7SMoni Shoua .offset = { 4208700e3e7SMoni Shoua [RXE_BTH] = 0, 4218700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 4228700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 4238700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 4248700e3e7SMoni Shoua } 4258700e3e7SMoni Shoua }, 4268700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY] = { 4278700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY", 4288700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK 4298700e3e7SMoni Shoua | RXE_RWR_MASK | RXE_SEND_MASK 4308700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 4318700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4328700e3e7SMoni Shoua .offset = { 4338700e3e7SMoni Shoua [RXE_BTH] = 0, 4348700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4358700e3e7SMoni Shoua } 4368700e3e7SMoni Shoua }, 4378700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE] = { 4388700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE", 4398700e3e7SMoni Shoua .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 4408700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK 4418700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 4428700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4438700e3e7SMoni Shoua .offset = { 4448700e3e7SMoni Shoua [RXE_BTH] = 0, 4458700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 4468700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 4478700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 4488700e3e7SMoni Shoua } 4498700e3e7SMoni Shoua }, 4508700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_FIRST] = { 4518700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_FIRST", 4528700e3e7SMoni Shoua .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 4538700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_START_MASK, 4548700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 4558700e3e7SMoni Shoua .offset = { 4568700e3e7SMoni Shoua [RXE_BTH] = 0, 4578700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 4588700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 4598700e3e7SMoni Shoua + RXE_RETH_BYTES, 4608700e3e7SMoni Shoua } 4618700e3e7SMoni Shoua }, 4628700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_MIDDLE] = { 4638700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_MIDDLE", 4648700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK 4658700e3e7SMoni Shoua | RXE_MIDDLE_MASK, 4668700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4678700e3e7SMoni Shoua .offset = { 4688700e3e7SMoni Shoua [RXE_BTH] = 0, 4698700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4708700e3e7SMoni Shoua } 4718700e3e7SMoni Shoua }, 4728700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST] = { 4738700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST", 4748700e3e7SMoni Shoua .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK 4758700e3e7SMoni Shoua | RXE_END_MASK, 4768700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4778700e3e7SMoni Shoua .offset = { 4788700e3e7SMoni Shoua [RXE_BTH] = 0, 4798700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4808700e3e7SMoni Shoua } 4818700e3e7SMoni Shoua }, 4828700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 4838700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 4848700e3e7SMoni Shoua .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 4858700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK 4868700e3e7SMoni Shoua | RXE_END_MASK, 4878700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4888700e3e7SMoni Shoua .offset = { 4898700e3e7SMoni Shoua [RXE_BTH] = 0, 4908700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 4918700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 4928700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 4938700e3e7SMoni Shoua } 4948700e3e7SMoni Shoua }, 4958700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY] = { 4968700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY", 4978700e3e7SMoni Shoua .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 4988700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_START_MASK 4998700e3e7SMoni Shoua | RXE_END_MASK, 5008700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 5018700e3e7SMoni Shoua .offset = { 5028700e3e7SMoni Shoua [RXE_BTH] = 0, 5038700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 5048700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 5058700e3e7SMoni Shoua + RXE_RETH_BYTES, 5068700e3e7SMoni Shoua } 5078700e3e7SMoni Shoua }, 5088700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 5098700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 5108700e3e7SMoni Shoua .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK 5118700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_WRITE_MASK 5128700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK 5138700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 5148700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 5158700e3e7SMoni Shoua .offset = { 5168700e3e7SMoni Shoua [RXE_BTH] = 0, 5178700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 5188700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES 5198700e3e7SMoni Shoua + RXE_RETH_BYTES, 5208700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 5218700e3e7SMoni Shoua + RXE_RETH_BYTES 5228700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 5238700e3e7SMoni Shoua } 5248700e3e7SMoni Shoua }, 5258700e3e7SMoni Shoua 5268700e3e7SMoni Shoua /* RD */ 5278700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_FIRST] = { 5288700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_FIRST", 5298700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK 5308700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK 5318700e3e7SMoni Shoua | RXE_START_MASK, 5328700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5338700e3e7SMoni Shoua .offset = { 5348700e3e7SMoni Shoua [RXE_BTH] = 0, 5358700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 5368700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 5378700e3e7SMoni Shoua + RXE_RDETH_BYTES, 5388700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 5398700e3e7SMoni Shoua + RXE_RDETH_BYTES 5408700e3e7SMoni Shoua + RXE_DETH_BYTES, 5418700e3e7SMoni Shoua } 5428700e3e7SMoni Shoua }, 5438700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_MIDDLE] = { 5448700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_MIDDLE", 5458700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK 5468700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_SEND_MASK 5478700e3e7SMoni Shoua | RXE_MIDDLE_MASK, 5488700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5498700e3e7SMoni Shoua .offset = { 5508700e3e7SMoni Shoua [RXE_BTH] = 0, 5518700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 5528700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 5538700e3e7SMoni Shoua + RXE_RDETH_BYTES, 5548700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 5558700e3e7SMoni Shoua + RXE_RDETH_BYTES 5568700e3e7SMoni Shoua + RXE_DETH_BYTES, 5578700e3e7SMoni Shoua } 5588700e3e7SMoni Shoua }, 5598700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST] = { 5608700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST", 5618700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK 5628700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK 5638700e3e7SMoni Shoua | RXE_END_MASK, 5648700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5658700e3e7SMoni Shoua .offset = { 5668700e3e7SMoni Shoua [RXE_BTH] = 0, 5678700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 5688700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 5698700e3e7SMoni Shoua + RXE_RDETH_BYTES, 5708700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 5718700e3e7SMoni Shoua + RXE_RDETH_BYTES 5728700e3e7SMoni Shoua + RXE_DETH_BYTES, 5738700e3e7SMoni Shoua } 5748700e3e7SMoni Shoua }, 5758700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE] = { 5768700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE", 5778700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK 5788700e3e7SMoni Shoua | RXE_PAYLOAD_MASK | RXE_REQ_MASK 5798700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_SEND_MASK 5808700e3e7SMoni Shoua | RXE_END_MASK, 5818700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES 5828700e3e7SMoni Shoua + RXE_RDETH_BYTES, 5838700e3e7SMoni Shoua .offset = { 5848700e3e7SMoni Shoua [RXE_BTH] = 0, 5858700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 5868700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 5878700e3e7SMoni Shoua + RXE_RDETH_BYTES, 5888700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES 5898700e3e7SMoni Shoua + RXE_RDETH_BYTES 5908700e3e7SMoni Shoua + RXE_DETH_BYTES, 5918700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 5928700e3e7SMoni Shoua + RXE_RDETH_BYTES 5938700e3e7SMoni Shoua + RXE_DETH_BYTES 5948700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 5958700e3e7SMoni Shoua } 5968700e3e7SMoni Shoua }, 5978700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY] = { 5988700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY", 5998700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK 6008700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK 6018700e3e7SMoni Shoua | RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 6028700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6038700e3e7SMoni Shoua .offset = { 6048700e3e7SMoni Shoua [RXE_BTH] = 0, 6058700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 6068700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 6078700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6088700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 6098700e3e7SMoni Shoua + RXE_RDETH_BYTES 6108700e3e7SMoni Shoua + RXE_DETH_BYTES, 6118700e3e7SMoni Shoua } 6128700e3e7SMoni Shoua }, 6138700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE] = { 6148700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE", 6158700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK 6168700e3e7SMoni Shoua | RXE_PAYLOAD_MASK | RXE_REQ_MASK 6178700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK 6188700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 6198700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES 6208700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6218700e3e7SMoni Shoua .offset = { 6228700e3e7SMoni Shoua [RXE_BTH] = 0, 6238700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 6248700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 6258700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6268700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES 6278700e3e7SMoni Shoua + RXE_RDETH_BYTES 6288700e3e7SMoni Shoua + RXE_DETH_BYTES, 6298700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 6308700e3e7SMoni Shoua + RXE_RDETH_BYTES 6318700e3e7SMoni Shoua + RXE_DETH_BYTES 6328700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 6338700e3e7SMoni Shoua } 6348700e3e7SMoni Shoua }, 6358700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_FIRST] = { 6368700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_FIRST", 6378700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK 6388700e3e7SMoni Shoua | RXE_PAYLOAD_MASK | RXE_REQ_MASK 6398700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_START_MASK, 6408700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES 6418700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6428700e3e7SMoni Shoua .offset = { 6438700e3e7SMoni Shoua [RXE_BTH] = 0, 6448700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 6458700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 6468700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6478700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES 6488700e3e7SMoni Shoua + RXE_RDETH_BYTES 6498700e3e7SMoni Shoua + RXE_DETH_BYTES, 6508700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 6518700e3e7SMoni Shoua + RXE_RDETH_BYTES 6528700e3e7SMoni Shoua + RXE_DETH_BYTES 6538700e3e7SMoni Shoua + RXE_RETH_BYTES, 6548700e3e7SMoni Shoua } 6558700e3e7SMoni Shoua }, 6568700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_MIDDLE] = { 6578700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_MIDDLE", 6588700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK 6598700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_WRITE_MASK 6608700e3e7SMoni Shoua | RXE_MIDDLE_MASK, 6618700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6628700e3e7SMoni Shoua .offset = { 6638700e3e7SMoni Shoua [RXE_BTH] = 0, 6648700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 6658700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 6668700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6678700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 6688700e3e7SMoni Shoua + RXE_RDETH_BYTES 6698700e3e7SMoni Shoua + RXE_DETH_BYTES, 6708700e3e7SMoni Shoua } 6718700e3e7SMoni Shoua }, 6728700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST] = { 6738700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST", 6748700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK 6758700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_WRITE_MASK 6768700e3e7SMoni Shoua | RXE_END_MASK, 6778700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6788700e3e7SMoni Shoua .offset = { 6798700e3e7SMoni Shoua [RXE_BTH] = 0, 6808700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 6818700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 6828700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6838700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 6848700e3e7SMoni Shoua + RXE_RDETH_BYTES 6858700e3e7SMoni Shoua + RXE_DETH_BYTES, 6868700e3e7SMoni Shoua } 6878700e3e7SMoni Shoua }, 6888700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 6898700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE", 6908700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK 6918700e3e7SMoni Shoua | RXE_PAYLOAD_MASK | RXE_REQ_MASK 6928700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK 6938700e3e7SMoni Shoua | RXE_END_MASK, 6948700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES 6958700e3e7SMoni Shoua + RXE_RDETH_BYTES, 6968700e3e7SMoni Shoua .offset = { 6978700e3e7SMoni Shoua [RXE_BTH] = 0, 6988700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 6998700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 7008700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7018700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES 7028700e3e7SMoni Shoua + RXE_RDETH_BYTES 7038700e3e7SMoni Shoua + RXE_DETH_BYTES, 7048700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 7058700e3e7SMoni Shoua + RXE_RDETH_BYTES 7068700e3e7SMoni Shoua + RXE_DETH_BYTES 7078700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 7088700e3e7SMoni Shoua } 7098700e3e7SMoni Shoua }, 7108700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY] = { 7118700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY", 7128700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK 7138700e3e7SMoni Shoua | RXE_PAYLOAD_MASK | RXE_REQ_MASK 7148700e3e7SMoni Shoua | RXE_WRITE_MASK | RXE_START_MASK 7158700e3e7SMoni Shoua | RXE_END_MASK, 7168700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES 7178700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7188700e3e7SMoni Shoua .offset = { 7198700e3e7SMoni Shoua [RXE_BTH] = 0, 7208700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 7218700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 7228700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7238700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES 7248700e3e7SMoni Shoua + RXE_RDETH_BYTES 7258700e3e7SMoni Shoua + RXE_DETH_BYTES, 7268700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 7278700e3e7SMoni Shoua + RXE_RDETH_BYTES 7288700e3e7SMoni Shoua + RXE_DETH_BYTES 7298700e3e7SMoni Shoua + RXE_RETH_BYTES, 7308700e3e7SMoni Shoua } 7318700e3e7SMoni Shoua }, 7328700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 7338700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 7348700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK 7358700e3e7SMoni Shoua | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK 7368700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_WRITE_MASK 7378700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK 7388700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 7398700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES 7408700e3e7SMoni Shoua + RXE_DETH_BYTES + RXE_RDETH_BYTES, 7418700e3e7SMoni Shoua .offset = { 7428700e3e7SMoni Shoua [RXE_BTH] = 0, 7438700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 7448700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 7458700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7468700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES 7478700e3e7SMoni Shoua + RXE_RDETH_BYTES 7488700e3e7SMoni Shoua + RXE_DETH_BYTES, 7498700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES 7508700e3e7SMoni Shoua + RXE_RDETH_BYTES 7518700e3e7SMoni Shoua + RXE_DETH_BYTES 7528700e3e7SMoni Shoua + RXE_RETH_BYTES, 7538700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 7548700e3e7SMoni Shoua + RXE_RDETH_BYTES 7558700e3e7SMoni Shoua + RXE_DETH_BYTES 7568700e3e7SMoni Shoua + RXE_RETH_BYTES 7578700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 7588700e3e7SMoni Shoua } 7598700e3e7SMoni Shoua }, 7608700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_REQUEST] = { 7618700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_REQUEST", 7628700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK 7638700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_READ_MASK 7648700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 7658700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES 7668700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7678700e3e7SMoni Shoua .offset = { 7688700e3e7SMoni Shoua [RXE_BTH] = 0, 7698700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 7708700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 7718700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7728700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES 7738700e3e7SMoni Shoua + RXE_RDETH_BYTES 7748700e3e7SMoni Shoua + RXE_DETH_BYTES, 7758700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 7768700e3e7SMoni Shoua + RXE_RETH_BYTES 7778700e3e7SMoni Shoua + RXE_DETH_BYTES 7788700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7798700e3e7SMoni Shoua } 7808700e3e7SMoni Shoua }, 7818700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST] = { 7828700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST", 7838700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_AETH_MASK 7848700e3e7SMoni Shoua | RXE_PAYLOAD_MASK | RXE_ACK_MASK 7858700e3e7SMoni Shoua | RXE_START_MASK, 7868700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 7878700e3e7SMoni Shoua .offset = { 7888700e3e7SMoni Shoua [RXE_BTH] = 0, 7898700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 7908700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES 7918700e3e7SMoni Shoua + RXE_RDETH_BYTES, 7928700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 7938700e3e7SMoni Shoua + RXE_RDETH_BYTES 7948700e3e7SMoni Shoua + RXE_AETH_BYTES, 7958700e3e7SMoni Shoua } 7968700e3e7SMoni Shoua }, 7978700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE] = { 7988700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE", 7998700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK 8008700e3e7SMoni Shoua | RXE_MIDDLE_MASK, 8018700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RDETH_BYTES, 8028700e3e7SMoni Shoua .offset = { 8038700e3e7SMoni Shoua [RXE_BTH] = 0, 8048700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 8058700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 8068700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8078700e3e7SMoni Shoua } 8088700e3e7SMoni Shoua }, 8098700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST] = { 8108700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST", 8118700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK 8128700e3e7SMoni Shoua | RXE_ACK_MASK | RXE_END_MASK, 8138700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8148700e3e7SMoni Shoua .offset = { 8158700e3e7SMoni Shoua [RXE_BTH] = 0, 8168700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 8178700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES 8188700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8198700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 8208700e3e7SMoni Shoua + RXE_RDETH_BYTES 8218700e3e7SMoni Shoua + RXE_AETH_BYTES, 8228700e3e7SMoni Shoua } 8238700e3e7SMoni Shoua }, 8248700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY] = { 8258700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY", 8268700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK 8278700e3e7SMoni Shoua | RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 8288700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8298700e3e7SMoni Shoua .offset = { 8308700e3e7SMoni Shoua [RXE_BTH] = 0, 8318700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 8328700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES 8338700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8348700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 8358700e3e7SMoni Shoua + RXE_RDETH_BYTES 8368700e3e7SMoni Shoua + RXE_AETH_BYTES, 8378700e3e7SMoni Shoua } 8388700e3e7SMoni Shoua }, 8398700e3e7SMoni Shoua [IB_OPCODE_RD_ACKNOWLEDGE] = { 8408700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ACKNOWLEDGE", 8418700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK 8428700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 8438700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8448700e3e7SMoni Shoua .offset = { 8458700e3e7SMoni Shoua [RXE_BTH] = 0, 8468700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 8478700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES 8488700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8498700e3e7SMoni Shoua } 8508700e3e7SMoni Shoua }, 8518700e3e7SMoni Shoua [IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE] = { 8528700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE", 8538700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK 8548700e3e7SMoni Shoua | RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 8558700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES 8568700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8578700e3e7SMoni Shoua .offset = { 8588700e3e7SMoni Shoua [RXE_BTH] = 0, 8598700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 8608700e3e7SMoni Shoua [RXE_AETH] = RXE_BTH_BYTES 8618700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8628700e3e7SMoni Shoua [RXE_ATMACK] = RXE_BTH_BYTES 8638700e3e7SMoni Shoua + RXE_RDETH_BYTES 8648700e3e7SMoni Shoua + RXE_AETH_BYTES, 8658700e3e7SMoni Shoua } 8668700e3e7SMoni Shoua }, 8678700e3e7SMoni Shoua [IB_OPCODE_RD_COMPARE_SWAP] = { 8688700e3e7SMoni Shoua .name = "RD_COMPARE_SWAP", 8698700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK 8708700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_ATOMIC_MASK 8718700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 8728700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES 8738700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8748700e3e7SMoni Shoua .offset = { 8758700e3e7SMoni Shoua [RXE_BTH] = 0, 8768700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 8778700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 8788700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8798700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES 8808700e3e7SMoni Shoua + RXE_RDETH_BYTES 8818700e3e7SMoni Shoua + RXE_DETH_BYTES, 8828700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 8838700e3e7SMoni Shoua + RXE_ATMETH_BYTES 8848700e3e7SMoni Shoua + RXE_DETH_BYTES + 8858700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8868700e3e7SMoni Shoua } 8878700e3e7SMoni Shoua }, 8888700e3e7SMoni Shoua [IB_OPCODE_RD_FETCH_ADD] = { 8898700e3e7SMoni Shoua .name = "IB_OPCODE_RD_FETCH_ADD", 8908700e3e7SMoni Shoua .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK 8918700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_ATOMIC_MASK 8928700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 8938700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES 8948700e3e7SMoni Shoua + RXE_RDETH_BYTES, 8958700e3e7SMoni Shoua .offset = { 8968700e3e7SMoni Shoua [RXE_BTH] = 0, 8978700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 8988700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES 8998700e3e7SMoni Shoua + RXE_RDETH_BYTES, 9008700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES 9018700e3e7SMoni Shoua + RXE_RDETH_BYTES 9028700e3e7SMoni Shoua + RXE_DETH_BYTES, 9038700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 9048700e3e7SMoni Shoua + RXE_ATMETH_BYTES 9058700e3e7SMoni Shoua + RXE_DETH_BYTES + 9068700e3e7SMoni Shoua + RXE_RDETH_BYTES, 9078700e3e7SMoni Shoua } 9088700e3e7SMoni Shoua }, 9098700e3e7SMoni Shoua 9108700e3e7SMoni Shoua /* UD */ 9118700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY] = { 9128700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY", 9138700e3e7SMoni Shoua .mask = RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK 9148700e3e7SMoni Shoua | RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK 9158700e3e7SMoni Shoua | RXE_START_MASK | RXE_END_MASK, 9168700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES, 9178700e3e7SMoni Shoua .offset = { 9188700e3e7SMoni Shoua [RXE_BTH] = 0, 9198700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 9208700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 9218700e3e7SMoni Shoua + RXE_DETH_BYTES, 9228700e3e7SMoni Shoua } 9238700e3e7SMoni Shoua }, 9248700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE] = { 9258700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE", 9268700e3e7SMoni Shoua .mask = RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK 9278700e3e7SMoni Shoua | RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK 9288700e3e7SMoni Shoua | RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 9298700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES, 9308700e3e7SMoni Shoua .offset = { 9318700e3e7SMoni Shoua [RXE_BTH] = 0, 9328700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 9338700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES 9348700e3e7SMoni Shoua + RXE_DETH_BYTES, 9358700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES 9368700e3e7SMoni Shoua + RXE_DETH_BYTES 9378700e3e7SMoni Shoua + RXE_IMMDT_BYTES, 9388700e3e7SMoni Shoua } 9398700e3e7SMoni Shoua }, 9408700e3e7SMoni Shoua 9418700e3e7SMoni Shoua }; 942