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