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 }, 9932a577b4SBob Pearson [IB_WR_BIND_MW] = { 10032a577b4SBob Pearson .name = "IB_WR_BIND_MW", 10132a577b4SBob Pearson .mask = { 10232a577b4SBob Pearson [IB_QPT_RC] = WR_LOCAL_OP_MASK, 10332a577b4SBob Pearson [IB_QPT_UC] = WR_LOCAL_OP_MASK, 10432a577b4SBob Pearson }, 10532a577b4SBob 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", 111*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 112*d8b0afd2SLi Zhijian 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] = { 1208d1cfb88SChengguang Xu .name = "IB_OPCODE_RC_SEND_MIDDLE", 121*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 122*d8b0afd2SLi Zhijian 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", 131*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 132*d8b0afd2SLi Zhijian 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", 141*d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 142*d8b0afd2SLi Zhijian 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, 147*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 148*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 1498700e3e7SMoni Shoua } 1508700e3e7SMoni Shoua }, 1518700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY] = { 1528700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY", 153*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 154*d8b0afd2SLi Zhijian RXE_RWR_MASK | RXE_SEND_MASK | 155*d8b0afd2SLi Zhijian 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", 164*d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 165*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 166*d8b0afd2SLi Zhijian 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, 171*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 172*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 1738700e3e7SMoni Shoua } 1748700e3e7SMoni Shoua }, 1758700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_FIRST] = { 1768700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_FIRST", 177*d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 178*d8b0afd2SLi Zhijian 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, 183*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 184*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 1858700e3e7SMoni Shoua } 1868700e3e7SMoni Shoua }, 1878700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_MIDDLE] = { 1888700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_MIDDLE", 189*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 190*d8b0afd2SLi Zhijian 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", 199*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 200*d8b0afd2SLi Zhijian 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", 209*d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 210*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 211*d8b0afd2SLi Zhijian 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, 216*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 217*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 2188700e3e7SMoni Shoua } 2198700e3e7SMoni Shoua }, 2208700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_WRITE_ONLY] = { 2218700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_WRITE_ONLY", 222*d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 223*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 224*d8b0afd2SLi Zhijian 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, 229*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 230*d8b0afd2SLi Zhijian 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", 235*d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 236*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 237*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 238*d8b0afd2SLi Zhijian 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, 243*d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 244*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 245*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 246*d8b0afd2SLi Zhijian RXE_RETH_BYTES + 247*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 2488700e3e7SMoni Shoua } 2498700e3e7SMoni Shoua }, 2508700e3e7SMoni Shoua [IB_OPCODE_RC_RDMA_READ_REQUEST] = { 2518700e3e7SMoni Shoua .name = "IB_OPCODE_RC_RDMA_READ_REQUEST", 252*d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK | 253*d8b0afd2SLi Zhijian 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, 258*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 259*d8b0afd2SLi Zhijian 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", 264*d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 265*d8b0afd2SLi Zhijian 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, 270*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 271*d8b0afd2SLi Zhijian 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", 285*d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 286*d8b0afd2SLi Zhijian 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, 291*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 292*d8b0afd2SLi Zhijian 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", 297*d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 298*d8b0afd2SLi Zhijian 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, 303*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 304*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3058700e3e7SMoni Shoua } 3068700e3e7SMoni Shoua }, 3078700e3e7SMoni Shoua [IB_OPCODE_RC_ACKNOWLEDGE] = { 3088700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ACKNOWLEDGE", 309*d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK | 310*d8b0afd2SLi Zhijian 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, 315*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 316*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3178700e3e7SMoni Shoua } 3188700e3e7SMoni Shoua }, 3198700e3e7SMoni Shoua [IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE] = { 3208700e3e7SMoni Shoua .name = "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE", 321*d8b0afd2SLi Zhijian .mask = RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK | 322*d8b0afd2SLi Zhijian 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, 327*d8b0afd2SLi Zhijian [RXE_ATMACK] = RXE_BTH_BYTES + 328*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 329*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 330*d8b0afd2SLi Zhijian RXE_ATMACK_BYTES + 331*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 3328700e3e7SMoni Shoua } 3338700e3e7SMoni Shoua }, 3348700e3e7SMoni Shoua [IB_OPCODE_RC_COMPARE_SWAP] = { 3358700e3e7SMoni Shoua .name = "IB_OPCODE_RC_COMPARE_SWAP", 336*d8b0afd2SLi Zhijian .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 337*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3388700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3398700e3e7SMoni Shoua .offset = { 3408700e3e7SMoni Shoua [RXE_BTH] = 0, 3418700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 342*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 343*d8b0afd2SLi Zhijian RXE_ATMETH_BYTES, 3448700e3e7SMoni Shoua } 3458700e3e7SMoni Shoua }, 3468700e3e7SMoni Shoua [IB_OPCODE_RC_FETCH_ADD] = { 3478700e3e7SMoni Shoua .name = "IB_OPCODE_RC_FETCH_ADD", 348*d8b0afd2SLi Zhijian .mask = RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK | 349*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 3508700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES, 3518700e3e7SMoni Shoua .offset = { 3528700e3e7SMoni Shoua [RXE_BTH] = 0, 3538700e3e7SMoni Shoua [RXE_ATMETH] = RXE_BTH_BYTES, 354*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 355*d8b0afd2SLi Zhijian RXE_ATMETH_BYTES, 3568700e3e7SMoni Shoua } 3578700e3e7SMoni Shoua }, 3588700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE] = { 3598700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE", 360*d8b0afd2SLi Zhijian .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 361*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 3628700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3638700e3e7SMoni Shoua .offset = { 3648700e3e7SMoni Shoua [RXE_BTH] = 0, 3658700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 366*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 367*d8b0afd2SLi Zhijian RXE_IETH_BYTES, 3688700e3e7SMoni Shoua } 3698700e3e7SMoni Shoua }, 3708700e3e7SMoni Shoua [IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE] = { 3718700e3e7SMoni Shoua .name = "IB_OPCODE_RC_SEND_ONLY_INV", 372*d8b0afd2SLi Zhijian .mask = RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 373*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 374*d8b0afd2SLi Zhijian RXE_END_MASK | RXE_START_MASK, 3758700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IETH_BYTES, 3768700e3e7SMoni Shoua .offset = { 3778700e3e7SMoni Shoua [RXE_BTH] = 0, 3788700e3e7SMoni Shoua [RXE_IETH] = RXE_BTH_BYTES, 379*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 380*d8b0afd2SLi Zhijian RXE_IETH_BYTES, 3818700e3e7SMoni Shoua } 3828700e3e7SMoni Shoua }, 3838700e3e7SMoni Shoua 3848700e3e7SMoni Shoua /* UC */ 3858700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_FIRST] = { 3868700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_FIRST", 387*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK | 388*d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK, 3898700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 3908700e3e7SMoni Shoua .offset = { 3918700e3e7SMoni Shoua [RXE_BTH] = 0, 3928700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 3938700e3e7SMoni Shoua } 3948700e3e7SMoni Shoua }, 3958700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_MIDDLE] = { 3968700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_MIDDLE", 397*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK | 398*d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 3998700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4008700e3e7SMoni Shoua .offset = { 4018700e3e7SMoni Shoua [RXE_BTH] = 0, 4028700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4038700e3e7SMoni Shoua } 4048700e3e7SMoni Shoua }, 4058700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST] = { 4068700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST", 407*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 408*d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_END_MASK, 4098700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4108700e3e7SMoni Shoua .offset = { 4118700e3e7SMoni Shoua [RXE_BTH] = 0, 4128700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4138700e3e7SMoni Shoua } 4148700e3e7SMoni Shoua }, 4158700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE] = { 4168700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE", 417*d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 418*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK, 4198700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4208700e3e7SMoni Shoua .offset = { 4218700e3e7SMoni Shoua [RXE_BTH] = 0, 4228700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 423*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 424*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 4258700e3e7SMoni Shoua } 4268700e3e7SMoni Shoua }, 4278700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY] = { 4288700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY", 429*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK | 430*d8b0afd2SLi Zhijian RXE_RWR_MASK | RXE_SEND_MASK | 431*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 4328700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4338700e3e7SMoni Shoua .offset = { 4348700e3e7SMoni Shoua [RXE_BTH] = 0, 4358700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4368700e3e7SMoni Shoua } 4378700e3e7SMoni Shoua }, 4388700e3e7SMoni Shoua [IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE] = { 4398700e3e7SMoni Shoua .name = "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE", 440*d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 441*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 442*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 4438700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4448700e3e7SMoni Shoua .offset = { 4458700e3e7SMoni Shoua [RXE_BTH] = 0, 4468700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 447*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 448*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 4498700e3e7SMoni Shoua } 4508700e3e7SMoni Shoua }, 4518700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_FIRST] = { 4528700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_FIRST", 453*d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 454*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 4558700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 4568700e3e7SMoni Shoua .offset = { 4578700e3e7SMoni Shoua [RXE_BTH] = 0, 4588700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 459*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 460*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 4618700e3e7SMoni Shoua } 4628700e3e7SMoni Shoua }, 4638700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_MIDDLE] = { 4648700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_MIDDLE", 465*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 466*d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 4678700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4688700e3e7SMoni Shoua .offset = { 4698700e3e7SMoni Shoua [RXE_BTH] = 0, 4708700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4718700e3e7SMoni Shoua } 4728700e3e7SMoni Shoua }, 4738700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST] = { 4748700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST", 475*d8b0afd2SLi Zhijian .mask = RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK | 476*d8b0afd2SLi Zhijian RXE_END_MASK, 4778700e3e7SMoni Shoua .length = RXE_BTH_BYTES, 4788700e3e7SMoni Shoua .offset = { 4798700e3e7SMoni Shoua [RXE_BTH] = 0, 4808700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES, 4818700e3e7SMoni Shoua } 4828700e3e7SMoni Shoua }, 4838700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 4848700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE", 485*d8b0afd2SLi Zhijian .mask = RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 486*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 487*d8b0afd2SLi Zhijian RXE_END_MASK, 4888700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES, 4898700e3e7SMoni Shoua .offset = { 4908700e3e7SMoni Shoua [RXE_BTH] = 0, 4918700e3e7SMoni Shoua [RXE_IMMDT] = RXE_BTH_BYTES, 492*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 493*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 4948700e3e7SMoni Shoua } 4958700e3e7SMoni Shoua }, 4968700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY] = { 4978700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY", 498*d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 499*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 500*d8b0afd2SLi Zhijian RXE_END_MASK, 5018700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RETH_BYTES, 5028700e3e7SMoni Shoua .offset = { 5038700e3e7SMoni Shoua [RXE_BTH] = 0, 5048700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 505*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 506*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 5078700e3e7SMoni Shoua } 5088700e3e7SMoni Shoua }, 5098700e3e7SMoni Shoua [IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 5108700e3e7SMoni Shoua .name = "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 511*d8b0afd2SLi Zhijian .mask = RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 512*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 513*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 514*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 5158700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES, 5168700e3e7SMoni Shoua .offset = { 5178700e3e7SMoni Shoua [RXE_BTH] = 0, 5188700e3e7SMoni Shoua [RXE_RETH] = RXE_BTH_BYTES, 519*d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 520*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 521*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 522*d8b0afd2SLi Zhijian RXE_RETH_BYTES + 523*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 5248700e3e7SMoni Shoua } 5258700e3e7SMoni Shoua }, 5268700e3e7SMoni Shoua 5278700e3e7SMoni Shoua /* RD */ 5288700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_FIRST] = { 5298700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_FIRST", 530*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 531*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 532*d8b0afd2SLi Zhijian RXE_START_MASK, 5338700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 5348700e3e7SMoni Shoua .offset = { 5358700e3e7SMoni Shoua [RXE_BTH] = 0, 5368700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 537*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 538*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 539*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 540*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 541*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5428700e3e7SMoni Shoua } 5438700e3e7SMoni Shoua }, 5448700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_MIDDLE] = { 5458700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_MIDDLE", 546*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 547*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_SEND_MASK | 548*d8b0afd2SLi Zhijian RXE_MIDDLE_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, 553*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 554*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 555*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 556*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 557*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5588700e3e7SMoni Shoua } 5598700e3e7SMoni Shoua }, 5608700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST] = { 5618700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST", 562*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 563*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK | 564*d8b0afd2SLi Zhijian RXE_END_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, 569*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 570*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 571*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 572*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 573*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 5748700e3e7SMoni Shoua } 5758700e3e7SMoni Shoua }, 5768700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE] = { 5778700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE", 578*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 579*d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 580*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_SEND_MASK | 581*d8b0afd2SLi Zhijian RXE_END_MASK, 582*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 583*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 5848700e3e7SMoni Shoua .offset = { 5858700e3e7SMoni Shoua [RXE_BTH] = 0, 5868700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 587*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 588*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 589*d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 590*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 591*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 592*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 593*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 594*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 595*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 5968700e3e7SMoni Shoua } 5978700e3e7SMoni Shoua }, 5988700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY] = { 5998700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY", 600*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 601*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 602*d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 6038700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6048700e3e7SMoni Shoua .offset = { 6058700e3e7SMoni Shoua [RXE_BTH] = 0, 6068700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 607*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 608*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 609*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 610*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 611*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 6128700e3e7SMoni Shoua } 6138700e3e7SMoni Shoua }, 6148700e3e7SMoni Shoua [IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE] = { 6158700e3e7SMoni Shoua .name = "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE", 616*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 617*d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 618*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 619*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 620*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 621*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6228700e3e7SMoni Shoua .offset = { 6238700e3e7SMoni Shoua [RXE_BTH] = 0, 6248700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 625*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 626*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 627*d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 628*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 629*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 630*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 631*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 632*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 633*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 6348700e3e7SMoni Shoua } 6358700e3e7SMoni Shoua }, 6368700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_FIRST] = { 6378700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_FIRST", 638*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 639*d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 640*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK, 641*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 642*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6438700e3e7SMoni Shoua .offset = { 6448700e3e7SMoni Shoua [RXE_BTH] = 0, 6458700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 646*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 647*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 648*d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 649*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 650*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 651*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 652*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 653*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 654*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 6558700e3e7SMoni Shoua } 6568700e3e7SMoni Shoua }, 6578700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_MIDDLE] = { 6588700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_MIDDLE", 659*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 660*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 661*d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 6628700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES, 6638700e3e7SMoni Shoua .offset = { 6648700e3e7SMoni Shoua [RXE_BTH] = 0, 6658700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 666*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 667*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 668*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 669*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 670*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 6718700e3e7SMoni Shoua } 6728700e3e7SMoni Shoua }, 6738700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST] = { 6748700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST", 675*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK | 676*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 677*d8b0afd2SLi Zhijian RXE_END_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, 682*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 683*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 684*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 685*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 686*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 6878700e3e7SMoni Shoua } 6888700e3e7SMoni Shoua }, 6898700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE] = { 6908700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE", 691*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK | 692*d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 693*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 694*d8b0afd2SLi Zhijian RXE_END_MASK, 695*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES + 696*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 6978700e3e7SMoni Shoua .offset = { 6988700e3e7SMoni Shoua [RXE_BTH] = 0, 6998700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 700*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 701*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 702*d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 703*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 704*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 705*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 706*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 707*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 708*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 7098700e3e7SMoni Shoua } 7108700e3e7SMoni Shoua }, 7118700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY] = { 7128700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY", 713*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 714*d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_REQ_MASK | 715*d8b0afd2SLi Zhijian RXE_WRITE_MASK | RXE_START_MASK | 716*d8b0afd2SLi Zhijian RXE_END_MASK, 717*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 718*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7198700e3e7SMoni Shoua .offset = { 7208700e3e7SMoni Shoua [RXE_BTH] = 0, 7218700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 722*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 723*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 724*d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 725*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 726*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 727*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 728*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 729*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 730*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 7318700e3e7SMoni Shoua } 7328700e3e7SMoni Shoua }, 7338700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE] = { 7348700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE", 735*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 736*d8b0afd2SLi Zhijian RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 737*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_WRITE_MASK | 738*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | 739*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 740*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES + 741*d8b0afd2SLi Zhijian RXE_DETH_BYTES + RXE_RDETH_BYTES, 7428700e3e7SMoni Shoua .offset = { 7438700e3e7SMoni Shoua [RXE_BTH] = 0, 7448700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 745*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 746*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 747*d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 748*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 749*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 750*d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 751*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 752*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 753*d8b0afd2SLi Zhijian RXE_RETH_BYTES, 754*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 755*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 756*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 757*d8b0afd2SLi Zhijian RXE_RETH_BYTES + 758*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 7598700e3e7SMoni Shoua } 7608700e3e7SMoni Shoua }, 7618700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_REQUEST] = { 7628700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_REQUEST", 763*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK | 764*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_READ_MASK | 765*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 766*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES + 767*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7688700e3e7SMoni Shoua .offset = { 7698700e3e7SMoni Shoua [RXE_BTH] = 0, 7708700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 771*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 772*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 773*d8b0afd2SLi Zhijian [RXE_RETH] = RXE_BTH_BYTES + 774*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 775*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 776*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 777*d8b0afd2SLi Zhijian RXE_RETH_BYTES + 778*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 779*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 7808700e3e7SMoni Shoua } 7818700e3e7SMoni Shoua }, 7828700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST] = { 7838700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST", 784*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | 785*d8b0afd2SLi Zhijian RXE_PAYLOAD_MASK | RXE_ACK_MASK | 786*d8b0afd2SLi Zhijian RXE_START_MASK, 7878700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 7888700e3e7SMoni Shoua .offset = { 7898700e3e7SMoni Shoua [RXE_BTH] = 0, 7908700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 791*d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 792*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 793*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 794*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 795*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 7968700e3e7SMoni Shoua } 7978700e3e7SMoni Shoua }, 7988700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE] = { 7998700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE", 800*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK | 801*d8b0afd2SLi Zhijian RXE_MIDDLE_MASK, 8028700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_RDETH_BYTES, 8038700e3e7SMoni Shoua .offset = { 8048700e3e7SMoni Shoua [RXE_BTH] = 0, 8058700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 806*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 807*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8088700e3e7SMoni Shoua } 8098700e3e7SMoni Shoua }, 8108700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST] = { 8118700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST", 812*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 813*d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_END_MASK, 8148700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8158700e3e7SMoni Shoua .offset = { 8168700e3e7SMoni Shoua [RXE_BTH] = 0, 8178700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 818*d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 819*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 820*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 821*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 822*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8238700e3e7SMoni Shoua } 8248700e3e7SMoni Shoua }, 8258700e3e7SMoni Shoua [IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY] = { 8268700e3e7SMoni Shoua .name = "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY", 827*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK | 828*d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 8298700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8308700e3e7SMoni Shoua .offset = { 8318700e3e7SMoni Shoua [RXE_BTH] = 0, 8328700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 833*d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 834*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 835*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 836*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 837*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8388700e3e7SMoni Shoua } 8398700e3e7SMoni Shoua }, 8408700e3e7SMoni Shoua [IB_OPCODE_RD_ACKNOWLEDGE] = { 8418700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ACKNOWLEDGE", 842*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK | 843*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 8448700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES, 8458700e3e7SMoni Shoua .offset = { 8468700e3e7SMoni Shoua [RXE_BTH] = 0, 8478700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 848*d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 849*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8508700e3e7SMoni Shoua } 8518700e3e7SMoni Shoua }, 8528700e3e7SMoni Shoua [IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE] = { 8538700e3e7SMoni Shoua .name = "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE", 854*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK | 855*d8b0afd2SLi Zhijian RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK, 856*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES + 857*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8588700e3e7SMoni Shoua .offset = { 8598700e3e7SMoni Shoua [RXE_BTH] = 0, 8608700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 861*d8b0afd2SLi Zhijian [RXE_AETH] = RXE_BTH_BYTES + 862*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 863*d8b0afd2SLi Zhijian [RXE_ATMACK] = RXE_BTH_BYTES + 864*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 865*d8b0afd2SLi Zhijian RXE_AETH_BYTES, 8668700e3e7SMoni Shoua } 8678700e3e7SMoni Shoua }, 8688700e3e7SMoni Shoua [IB_OPCODE_RD_COMPARE_SWAP] = { 8698700e3e7SMoni Shoua .name = "RD_COMPARE_SWAP", 870*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 871*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_ATOMIC_MASK | 872*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 873*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 874*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8758700e3e7SMoni Shoua .offset = { 8768700e3e7SMoni Shoua [RXE_BTH] = 0, 8778700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 878*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 879*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 880*d8b0afd2SLi Zhijian [RXE_ATMETH] = RXE_BTH_BYTES + 881*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 882*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 8838700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 884*d8b0afd2SLi Zhijian RXE_ATMETH_BYTES + 885*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 886*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8878700e3e7SMoni Shoua } 8888700e3e7SMoni Shoua }, 8898700e3e7SMoni Shoua [IB_OPCODE_RD_FETCH_ADD] = { 8908700e3e7SMoni Shoua .name = "IB_OPCODE_RD_FETCH_ADD", 891*d8b0afd2SLi Zhijian .mask = RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK | 892*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_ATOMIC_MASK | 893*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 894*d8b0afd2SLi Zhijian .length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES + 895*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 8968700e3e7SMoni Shoua .offset = { 8978700e3e7SMoni Shoua [RXE_BTH] = 0, 8988700e3e7SMoni Shoua [RXE_RDETH] = RXE_BTH_BYTES, 899*d8b0afd2SLi Zhijian [RXE_DETH] = RXE_BTH_BYTES + 900*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 901*d8b0afd2SLi Zhijian [RXE_ATMETH] = RXE_BTH_BYTES + 902*d8b0afd2SLi Zhijian RXE_RDETH_BYTES + 903*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 9048700e3e7SMoni Shoua [RXE_PAYLOAD] = RXE_BTH_BYTES + 905*d8b0afd2SLi Zhijian RXE_ATMETH_BYTES + 906*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 907*d8b0afd2SLi Zhijian RXE_RDETH_BYTES, 9088700e3e7SMoni Shoua } 9098700e3e7SMoni Shoua }, 9108700e3e7SMoni Shoua 9118700e3e7SMoni Shoua /* UD */ 9128700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY] = { 9138700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY", 914*d8b0afd2SLi Zhijian .mask = RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK | 915*d8b0afd2SLi Zhijian RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK | 916*d8b0afd2SLi Zhijian RXE_START_MASK | RXE_END_MASK, 9178700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_DETH_BYTES, 9188700e3e7SMoni Shoua .offset = { 9198700e3e7SMoni Shoua [RXE_BTH] = 0, 9208700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 921*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 922*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 9238700e3e7SMoni Shoua } 9248700e3e7SMoni Shoua }, 9258700e3e7SMoni Shoua [IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE] = { 9268700e3e7SMoni Shoua .name = "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE", 927*d8b0afd2SLi Zhijian .mask = RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | 928*d8b0afd2SLi Zhijian RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK | 929*d8b0afd2SLi Zhijian RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK, 9308700e3e7SMoni Shoua .length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES, 9318700e3e7SMoni Shoua .offset = { 9328700e3e7SMoni Shoua [RXE_BTH] = 0, 9338700e3e7SMoni Shoua [RXE_DETH] = RXE_BTH_BYTES, 934*d8b0afd2SLi Zhijian [RXE_IMMDT] = RXE_BTH_BYTES + 935*d8b0afd2SLi Zhijian RXE_DETH_BYTES, 936*d8b0afd2SLi Zhijian [RXE_PAYLOAD] = RXE_BTH_BYTES + 937*d8b0afd2SLi Zhijian RXE_DETH_BYTES + 938*d8b0afd2SLi Zhijian RXE_IMMDT_BYTES, 9398700e3e7SMoni Shoua } 9408700e3e7SMoni Shoua }, 9418700e3e7SMoni Shoua 9428700e3e7SMoni Shoua }; 943