brintos

brintos / linux-shallow public Read only

0
0
Text · 27.5 KiB · 5c0d5c6 Raw
976 lines · c
1// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB2/*3 * Copyright (c) 2016 Mellanox Technologies Ltd. All rights reserved.4 * Copyright (c) 2015 System Fabric Works, Inc. All rights reserved.5 */6 7#include <rdma/ib_pack.h>8#include "rxe_opcode.h"9#include "rxe_hdr.h"10 11/* useful information about work request opcodes and pkt opcodes in12 * table form13 */14struct rxe_wr_opcode_info rxe_wr_opcode_info[] = {15	[IB_WR_RDMA_WRITE]				= {16		.name	= "IB_WR_RDMA_WRITE",17		.mask	= {18			[IB_QPT_RC]	= WR_INLINE_MASK | WR_WRITE_MASK,19			[IB_QPT_UC]	= WR_INLINE_MASK | WR_WRITE_MASK,20		},21	},22	[IB_WR_RDMA_WRITE_WITH_IMM]			= {23		.name	= "IB_WR_RDMA_WRITE_WITH_IMM",24		.mask	= {25			[IB_QPT_RC]	= WR_INLINE_MASK | WR_WRITE_MASK,26			[IB_QPT_UC]	= WR_INLINE_MASK | WR_WRITE_MASK,27		},28	},29	[IB_WR_SEND]					= {30		.name	= "IB_WR_SEND",31		.mask	= {32			[IB_QPT_GSI]	= WR_INLINE_MASK | WR_SEND_MASK,33			[IB_QPT_RC]	= WR_INLINE_MASK | WR_SEND_MASK,34			[IB_QPT_UC]	= WR_INLINE_MASK | WR_SEND_MASK,35			[IB_QPT_UD]	= WR_INLINE_MASK | WR_SEND_MASK,36		},37	},38	[IB_WR_SEND_WITH_IMM]				= {39		.name	= "IB_WR_SEND_WITH_IMM",40		.mask	= {41			[IB_QPT_GSI]	= WR_INLINE_MASK | WR_SEND_MASK,42			[IB_QPT_RC]	= WR_INLINE_MASK | WR_SEND_MASK,43			[IB_QPT_UC]	= WR_INLINE_MASK | WR_SEND_MASK,44			[IB_QPT_UD]	= WR_INLINE_MASK | WR_SEND_MASK,45		},46	},47	[IB_WR_RDMA_READ]				= {48		.name	= "IB_WR_RDMA_READ",49		.mask	= {50			[IB_QPT_RC]	= WR_READ_MASK,51		},52	},53	[IB_WR_ATOMIC_CMP_AND_SWP]			= {54		.name	= "IB_WR_ATOMIC_CMP_AND_SWP",55		.mask	= {56			[IB_QPT_RC]	= WR_ATOMIC_MASK,57		},58	},59	[IB_WR_ATOMIC_FETCH_AND_ADD]			= {60		.name	= "IB_WR_ATOMIC_FETCH_AND_ADD",61		.mask	= {62			[IB_QPT_RC]	= WR_ATOMIC_MASK,63		},64	},65	[IB_WR_LSO]					= {66		.name	= "IB_WR_LSO",67		.mask	= {68			/* not supported */69		},70	},71	[IB_WR_SEND_WITH_INV]				= {72		.name	= "IB_WR_SEND_WITH_INV",73		.mask	= {74			[IB_QPT_RC]	= WR_INLINE_MASK | WR_SEND_MASK,75			[IB_QPT_UC]	= WR_INLINE_MASK | WR_SEND_MASK,76			[IB_QPT_UD]	= WR_INLINE_MASK | WR_SEND_MASK,77		},78	},79	[IB_WR_RDMA_READ_WITH_INV]			= {80		.name	= "IB_WR_RDMA_READ_WITH_INV",81		.mask	= {82			[IB_QPT_RC]	= WR_READ_MASK,83		},84	},85	[IB_WR_LOCAL_INV]				= {86		.name	= "IB_WR_LOCAL_INV",87		.mask	= {88			[IB_QPT_RC]	= WR_LOCAL_OP_MASK,89		},90	},91	[IB_WR_REG_MR]					= {92		.name	= "IB_WR_REG_MR",93		.mask	= {94			[IB_QPT_RC]	= WR_LOCAL_OP_MASK,95		},96	},97	[IB_WR_BIND_MW]					= {98		.name	= "IB_WR_BIND_MW",99		.mask	= {100			[IB_QPT_RC]	= WR_LOCAL_OP_MASK,101			[IB_QPT_UC]	= WR_LOCAL_OP_MASK,102		},103	},104	[IB_WR_FLUSH]					= {105		.name   = "IB_WR_FLUSH",106		.mask   = {107			[IB_QPT_RC]	= WR_FLUSH_MASK,108		},109	},110	[IB_WR_ATOMIC_WRITE]                       = {111		.name   = "IB_WR_ATOMIC_WRITE",112		.mask   = {113			[IB_QPT_RC]     = WR_ATOMIC_WRITE_MASK,114		},115	},116};117 118struct rxe_opcode_info rxe_opcode[RXE_NUM_OPCODE] = {119	[IB_OPCODE_RC_SEND_FIRST]			= {120		.name	= "IB_OPCODE_RC_SEND_FIRST",121		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK |122			  RXE_SEND_MASK | RXE_START_MASK,123		.length = RXE_BTH_BYTES,124		.offset = {125			[RXE_BTH]	= 0,126			[RXE_PAYLOAD]	= RXE_BTH_BYTES,127		}128	},129	[IB_OPCODE_RC_SEND_MIDDLE]		= {130		.name	= "IB_OPCODE_RC_SEND_MIDDLE",131		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK |132			  RXE_MIDDLE_MASK,133		.length = RXE_BTH_BYTES,134		.offset = {135			[RXE_BTH]	= 0,136			[RXE_PAYLOAD]	= RXE_BTH_BYTES,137		}138	},139	[IB_OPCODE_RC_SEND_LAST]			= {140		.name	= "IB_OPCODE_RC_SEND_LAST",141		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |142			  RXE_SEND_MASK | RXE_END_MASK,143		.length = RXE_BTH_BYTES,144		.offset = {145			[RXE_BTH]	= 0,146			[RXE_PAYLOAD]	= RXE_BTH_BYTES,147		}148	},149	[IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE]		= {150		.name	= "IB_OPCODE_RC_SEND_LAST_WITH_IMMEDIATE",151		.mask	= RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |152			  RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,153		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,154		.offset = {155			[RXE_BTH]	= 0,156			[RXE_IMMDT]	= RXE_BTH_BYTES,157			[RXE_PAYLOAD]	= RXE_BTH_BYTES +158					  RXE_IMMDT_BYTES,159		}160	},161	[IB_OPCODE_RC_SEND_ONLY]			= {162		.name	= "IB_OPCODE_RC_SEND_ONLY",163		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |164			  RXE_RWR_MASK | RXE_SEND_MASK |165			  RXE_START_MASK | RXE_END_MASK,166		.length = RXE_BTH_BYTES,167		.offset = {168			[RXE_BTH]	= 0,169			[RXE_PAYLOAD]	= RXE_BTH_BYTES,170		}171	},172	[IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE]		= {173		.name	= "IB_OPCODE_RC_SEND_ONLY_WITH_IMMEDIATE",174		.mask	= RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |175			  RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |176			  RXE_START_MASK | RXE_END_MASK,177		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,178		.offset = {179			[RXE_BTH]	= 0,180			[RXE_IMMDT]	= RXE_BTH_BYTES,181			[RXE_PAYLOAD]	= RXE_BTH_BYTES +182					  RXE_IMMDT_BYTES,183		}184	},185	[IB_OPCODE_RC_RDMA_WRITE_FIRST]		= {186		.name	= "IB_OPCODE_RC_RDMA_WRITE_FIRST",187		.mask	= RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |188			  RXE_WRITE_MASK | RXE_START_MASK,189		.length = RXE_BTH_BYTES + RXE_RETH_BYTES,190		.offset = {191			[RXE_BTH]	= 0,192			[RXE_RETH]	= RXE_BTH_BYTES,193			[RXE_PAYLOAD]	= RXE_BTH_BYTES +194					  RXE_RETH_BYTES,195		}196	},197	[IB_OPCODE_RC_RDMA_WRITE_MIDDLE]		= {198		.name	= "IB_OPCODE_RC_RDMA_WRITE_MIDDLE",199		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |200			  RXE_MIDDLE_MASK,201		.length = RXE_BTH_BYTES,202		.offset = {203			[RXE_BTH]	= 0,204			[RXE_PAYLOAD]	= RXE_BTH_BYTES,205		}206	},207	[IB_OPCODE_RC_RDMA_WRITE_LAST]			= {208		.name	= "IB_OPCODE_RC_RDMA_WRITE_LAST",209		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |210			  RXE_END_MASK,211		.length = RXE_BTH_BYTES,212		.offset = {213			[RXE_BTH]	= 0,214			[RXE_PAYLOAD]	= RXE_BTH_BYTES,215		}216	},217	[IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE]		= {218		.name	= "IB_OPCODE_RC_RDMA_WRITE_LAST_WITH_IMMEDIATE",219		.mask	= RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |220			  RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK |221			  RXE_END_MASK,222		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,223		.offset = {224			[RXE_BTH]	= 0,225			[RXE_IMMDT]	= RXE_BTH_BYTES,226			[RXE_PAYLOAD]	= RXE_BTH_BYTES +227					  RXE_IMMDT_BYTES,228		}229	},230	[IB_OPCODE_RC_RDMA_WRITE_ONLY]			= {231		.name	= "IB_OPCODE_RC_RDMA_WRITE_ONLY",232		.mask	= RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |233			  RXE_WRITE_MASK | RXE_START_MASK |234			  RXE_END_MASK,235		.length = RXE_BTH_BYTES + RXE_RETH_BYTES,236		.offset = {237			[RXE_BTH]	= 0,238			[RXE_RETH]	= RXE_BTH_BYTES,239			[RXE_PAYLOAD]	= RXE_BTH_BYTES +240					  RXE_RETH_BYTES,241		}242	},243	[IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE]		= {244		.name	= "IB_OPCODE_RC_RDMA_WRITE_ONLY_WITH_IMMEDIATE",245		.mask	= RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |246			  RXE_REQ_MASK | RXE_WRITE_MASK |247			  RXE_COMP_MASK | RXE_RWR_MASK |248			  RXE_START_MASK | RXE_END_MASK,249		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES,250		.offset = {251			[RXE_BTH]	= 0,252			[RXE_RETH]	= RXE_BTH_BYTES,253			[RXE_IMMDT]	= RXE_BTH_BYTES +254					  RXE_RETH_BYTES,255			[RXE_PAYLOAD]	= RXE_BTH_BYTES +256					  RXE_RETH_BYTES +257					  RXE_IMMDT_BYTES,258		}259	},260	[IB_OPCODE_RC_RDMA_READ_REQUEST]			= {261		.name	= "IB_OPCODE_RC_RDMA_READ_REQUEST",262		.mask	= RXE_RETH_MASK | RXE_REQ_MASK | RXE_READ_MASK |263			  RXE_START_MASK | RXE_END_MASK,264		.length = RXE_BTH_BYTES + RXE_RETH_BYTES,265		.offset = {266			[RXE_BTH]	= 0,267			[RXE_RETH]	= RXE_BTH_BYTES,268			[RXE_PAYLOAD]	= RXE_BTH_BYTES +269					  RXE_RETH_BYTES,270		}271	},272	[IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST]		= {273		.name	= "IB_OPCODE_RC_RDMA_READ_RESPONSE_FIRST",274		.mask	= RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |275			  RXE_START_MASK,276		.length = RXE_BTH_BYTES + RXE_AETH_BYTES,277		.offset = {278			[RXE_BTH]	= 0,279			[RXE_AETH]	= RXE_BTH_BYTES,280			[RXE_PAYLOAD]	= RXE_BTH_BYTES +281					  RXE_AETH_BYTES,282		}283	},284	[IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE]		= {285		.name	= "IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE",286		.mask	= RXE_PAYLOAD_MASK | RXE_ACK_MASK | RXE_MIDDLE_MASK,287		.length = RXE_BTH_BYTES,288		.offset = {289			[RXE_BTH]	= 0,290			[RXE_PAYLOAD]	= RXE_BTH_BYTES,291		}292	},293	[IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST]		= {294		.name	= "IB_OPCODE_RC_RDMA_READ_RESPONSE_LAST",295		.mask	= RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |296			  RXE_END_MASK,297		.length = RXE_BTH_BYTES + RXE_AETH_BYTES,298		.offset = {299			[RXE_BTH]	= 0,300			[RXE_AETH]	= RXE_BTH_BYTES,301			[RXE_PAYLOAD]	= RXE_BTH_BYTES +302					  RXE_AETH_BYTES,303		}304	},305	[IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY]		= {306		.name	= "IB_OPCODE_RC_RDMA_READ_RESPONSE_ONLY",307		.mask	= RXE_AETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |308			  RXE_START_MASK | RXE_END_MASK,309		.length = RXE_BTH_BYTES + RXE_AETH_BYTES,310		.offset = {311			[RXE_BTH]	= 0,312			[RXE_AETH]	= RXE_BTH_BYTES,313			[RXE_PAYLOAD]	= RXE_BTH_BYTES +314					  RXE_AETH_BYTES,315		}316	},317	[IB_OPCODE_RC_ACKNOWLEDGE]			= {318		.name	= "IB_OPCODE_RC_ACKNOWLEDGE",319		.mask	= RXE_AETH_MASK | RXE_ACK_MASK | RXE_START_MASK |320			  RXE_END_MASK,321		.length = RXE_BTH_BYTES + RXE_AETH_BYTES,322		.offset = {323			[RXE_BTH]	= 0,324			[RXE_AETH]	= RXE_BTH_BYTES,325			[RXE_PAYLOAD]	= RXE_BTH_BYTES +326					  RXE_AETH_BYTES,327		}328	},329	[IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE]			= {330		.name	= "IB_OPCODE_RC_ATOMIC_ACKNOWLEDGE",331		.mask	= RXE_AETH_MASK | RXE_ATMACK_MASK | RXE_ACK_MASK |332			  RXE_START_MASK | RXE_END_MASK,333		.length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES,334		.offset = {335			[RXE_BTH]	= 0,336			[RXE_AETH]	= RXE_BTH_BYTES,337			[RXE_ATMACK]	= RXE_BTH_BYTES +338					  RXE_AETH_BYTES,339			[RXE_PAYLOAD]	= RXE_BTH_BYTES +340					  RXE_ATMACK_BYTES +341					  RXE_AETH_BYTES,342		}343	},344	[IB_OPCODE_RC_COMPARE_SWAP]			= {345		.name	= "IB_OPCODE_RC_COMPARE_SWAP",346		.mask	= RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK |347			  RXE_START_MASK | RXE_END_MASK,348		.length = RXE_BTH_BYTES + RXE_ATMETH_BYTES,349		.offset = {350			[RXE_BTH]	= 0,351			[RXE_ATMETH]	= RXE_BTH_BYTES,352			[RXE_PAYLOAD]	= RXE_BTH_BYTES +353					  RXE_ATMETH_BYTES,354		}355	},356	[IB_OPCODE_RC_FETCH_ADD]			= {357		.name	= "IB_OPCODE_RC_FETCH_ADD",358		.mask	= RXE_ATMETH_MASK | RXE_REQ_MASK | RXE_ATOMIC_MASK |359			  RXE_START_MASK | RXE_END_MASK,360		.length = RXE_BTH_BYTES + RXE_ATMETH_BYTES,361		.offset = {362			[RXE_BTH]	= 0,363			[RXE_ATMETH]	= RXE_BTH_BYTES,364			[RXE_PAYLOAD]	= RXE_BTH_BYTES +365					  RXE_ATMETH_BYTES,366		}367	},368	[IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE]		= {369		.name	= "IB_OPCODE_RC_SEND_LAST_WITH_INVALIDATE",370		.mask	= RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |371			  RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,372		.length = RXE_BTH_BYTES + RXE_IETH_BYTES,373		.offset = {374			[RXE_BTH]	= 0,375			[RXE_IETH]	= RXE_BTH_BYTES,376			[RXE_PAYLOAD]	= RXE_BTH_BYTES +377					  RXE_IETH_BYTES,378		}379	},380	[IB_OPCODE_RC_SEND_ONLY_WITH_INVALIDATE]		= {381		.name	= "IB_OPCODE_RC_SEND_ONLY_INV",382		.mask	= RXE_IETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |383			  RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |384			  RXE_END_MASK  | RXE_START_MASK,385		.length = RXE_BTH_BYTES + RXE_IETH_BYTES,386		.offset = {387			[RXE_BTH]	= 0,388			[RXE_IETH]	= RXE_BTH_BYTES,389			[RXE_PAYLOAD]	= RXE_BTH_BYTES +390					  RXE_IETH_BYTES,391		}392	},393	[IB_OPCODE_RC_FLUSH]					= {394		.name	= "IB_OPCODE_RC_FLUSH",395		.mask	= RXE_FETH_MASK | RXE_RETH_MASK | RXE_FLUSH_MASK |396			  RXE_START_MASK | RXE_END_MASK | RXE_REQ_MASK,397		.length = RXE_BTH_BYTES + RXE_FETH_BYTES + RXE_RETH_BYTES,398		.offset = {399			[RXE_BTH]	= 0,400			[RXE_FETH]	= RXE_BTH_BYTES,401			[RXE_RETH]	= RXE_BTH_BYTES + RXE_FETH_BYTES,402		}403	},404	[IB_OPCODE_RC_ATOMIC_WRITE]                        = {405		.name   = "IB_OPCODE_RC_ATOMIC_WRITE",406		.mask   = RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |407			  RXE_ATOMIC_WRITE_MASK | RXE_START_MASK |408			  RXE_END_MASK,409		.length = RXE_BTH_BYTES + RXE_RETH_BYTES,410		.offset = {411			[RXE_BTH]       = 0,412			[RXE_RETH]      = RXE_BTH_BYTES,413			[RXE_PAYLOAD]   = RXE_BTH_BYTES + RXE_RETH_BYTES,414		}415	},416 417	/* UC */418	[IB_OPCODE_UC_SEND_FIRST]			= {419		.name	= "IB_OPCODE_UC_SEND_FIRST",420		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_RWR_MASK |421			  RXE_SEND_MASK | RXE_START_MASK,422		.length = RXE_BTH_BYTES,423		.offset = {424			[RXE_BTH]	= 0,425			[RXE_PAYLOAD]	= RXE_BTH_BYTES,426		}427	},428	[IB_OPCODE_UC_SEND_MIDDLE]		= {429		.name	= "IB_OPCODE_UC_SEND_MIDDLE",430		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_SEND_MASK |431			  RXE_MIDDLE_MASK,432		.length = RXE_BTH_BYTES,433		.offset = {434			[RXE_BTH]	= 0,435			[RXE_PAYLOAD]	= RXE_BTH_BYTES,436		}437	},438	[IB_OPCODE_UC_SEND_LAST]			= {439		.name	= "IB_OPCODE_UC_SEND_LAST",440		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |441			  RXE_SEND_MASK | RXE_END_MASK,442		.length = RXE_BTH_BYTES,443		.offset = {444			[RXE_BTH]	= 0,445			[RXE_PAYLOAD]	= RXE_BTH_BYTES,446		}447	},448	[IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE]		= {449		.name	= "IB_OPCODE_UC_SEND_LAST_WITH_IMMEDIATE",450		.mask	= RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |451			  RXE_COMP_MASK | RXE_SEND_MASK | RXE_END_MASK,452		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,453		.offset = {454			[RXE_BTH]	= 0,455			[RXE_IMMDT]	= RXE_BTH_BYTES,456			[RXE_PAYLOAD]	= RXE_BTH_BYTES +457					  RXE_IMMDT_BYTES,458		}459	},460	[IB_OPCODE_UC_SEND_ONLY]			= {461		.name	= "IB_OPCODE_UC_SEND_ONLY",462		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_COMP_MASK |463			  RXE_RWR_MASK | RXE_SEND_MASK |464			  RXE_START_MASK | RXE_END_MASK,465		.length = RXE_BTH_BYTES,466		.offset = {467			[RXE_BTH]	= 0,468			[RXE_PAYLOAD]	= RXE_BTH_BYTES,469		}470	},471	[IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE]		= {472		.name	= "IB_OPCODE_UC_SEND_ONLY_WITH_IMMEDIATE",473		.mask	= RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |474			  RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |475			  RXE_START_MASK | RXE_END_MASK,476		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,477		.offset = {478			[RXE_BTH]	= 0,479			[RXE_IMMDT]	= RXE_BTH_BYTES,480			[RXE_PAYLOAD]	= RXE_BTH_BYTES +481					  RXE_IMMDT_BYTES,482		}483	},484	[IB_OPCODE_UC_RDMA_WRITE_FIRST]		= {485		.name	= "IB_OPCODE_UC_RDMA_WRITE_FIRST",486		.mask	= RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |487			  RXE_WRITE_MASK | RXE_START_MASK,488		.length = RXE_BTH_BYTES + RXE_RETH_BYTES,489		.offset = {490			[RXE_BTH]	= 0,491			[RXE_RETH]	= RXE_BTH_BYTES,492			[RXE_PAYLOAD]	= RXE_BTH_BYTES +493					  RXE_RETH_BYTES,494		}495	},496	[IB_OPCODE_UC_RDMA_WRITE_MIDDLE]		= {497		.name	= "IB_OPCODE_UC_RDMA_WRITE_MIDDLE",498		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |499			  RXE_MIDDLE_MASK,500		.length = RXE_BTH_BYTES,501		.offset = {502			[RXE_BTH]	= 0,503			[RXE_PAYLOAD]	= RXE_BTH_BYTES,504		}505	},506	[IB_OPCODE_UC_RDMA_WRITE_LAST]			= {507		.name	= "IB_OPCODE_UC_RDMA_WRITE_LAST",508		.mask	= RXE_PAYLOAD_MASK | RXE_REQ_MASK | RXE_WRITE_MASK |509			  RXE_END_MASK,510		.length = RXE_BTH_BYTES,511		.offset = {512			[RXE_BTH]	= 0,513			[RXE_PAYLOAD]	= RXE_BTH_BYTES,514		}515	},516	[IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE]		= {517		.name	= "IB_OPCODE_UC_RDMA_WRITE_LAST_WITH_IMMEDIATE",518		.mask	= RXE_IMMDT_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |519			  RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK |520			  RXE_END_MASK,521		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES,522		.offset = {523			[RXE_BTH]	= 0,524			[RXE_IMMDT]	= RXE_BTH_BYTES,525			[RXE_PAYLOAD]	= RXE_BTH_BYTES +526					  RXE_IMMDT_BYTES,527		}528	},529	[IB_OPCODE_UC_RDMA_WRITE_ONLY]			= {530		.name	= "IB_OPCODE_UC_RDMA_WRITE_ONLY",531		.mask	= RXE_RETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |532			  RXE_WRITE_MASK | RXE_START_MASK |533			  RXE_END_MASK,534		.length = RXE_BTH_BYTES + RXE_RETH_BYTES,535		.offset = {536			[RXE_BTH]	= 0,537			[RXE_RETH]	= RXE_BTH_BYTES,538			[RXE_PAYLOAD]	= RXE_BTH_BYTES +539					  RXE_RETH_BYTES,540		}541	},542	[IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE]		= {543		.name	= "IB_OPCODE_UC_RDMA_WRITE_ONLY_WITH_IMMEDIATE",544		.mask	= RXE_RETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |545			  RXE_REQ_MASK | RXE_WRITE_MASK |546			  RXE_COMP_MASK | RXE_RWR_MASK |547			  RXE_START_MASK | RXE_END_MASK,548		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES,549		.offset = {550			[RXE_BTH]	= 0,551			[RXE_RETH]	= RXE_BTH_BYTES,552			[RXE_IMMDT]	= RXE_BTH_BYTES +553					  RXE_RETH_BYTES,554			[RXE_PAYLOAD]	= RXE_BTH_BYTES +555					  RXE_RETH_BYTES +556					  RXE_IMMDT_BYTES,557		}558	},559 560	/* RD */561	[IB_OPCODE_RD_SEND_FIRST]			= {562		.name	= "IB_OPCODE_RD_SEND_FIRST",563		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |564			  RXE_REQ_MASK | RXE_RWR_MASK | RXE_SEND_MASK |565			  RXE_START_MASK,566		.length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,567		.offset = {568			[RXE_BTH]	= 0,569			[RXE_RDETH]	= RXE_BTH_BYTES,570			[RXE_DETH]	= RXE_BTH_BYTES +571					  RXE_RDETH_BYTES,572			[RXE_PAYLOAD]	= RXE_BTH_BYTES +573					  RXE_RDETH_BYTES +574					  RXE_DETH_BYTES,575		}576	},577	[IB_OPCODE_RD_SEND_MIDDLE]		= {578		.name	= "IB_OPCODE_RD_SEND_MIDDLE",579		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |580			  RXE_REQ_MASK | RXE_SEND_MASK |581			  RXE_MIDDLE_MASK,582		.length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,583		.offset = {584			[RXE_BTH]	= 0,585			[RXE_RDETH]	= RXE_BTH_BYTES,586			[RXE_DETH]	= RXE_BTH_BYTES +587					  RXE_RDETH_BYTES,588			[RXE_PAYLOAD]	= RXE_BTH_BYTES +589					  RXE_RDETH_BYTES +590					  RXE_DETH_BYTES,591		}592	},593	[IB_OPCODE_RD_SEND_LAST]			= {594		.name	= "IB_OPCODE_RD_SEND_LAST",595		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |596			  RXE_REQ_MASK | RXE_COMP_MASK | RXE_SEND_MASK |597			  RXE_END_MASK,598		.length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,599		.offset = {600			[RXE_BTH]	= 0,601			[RXE_RDETH]	= RXE_BTH_BYTES,602			[RXE_DETH]	= RXE_BTH_BYTES +603					  RXE_RDETH_BYTES,604			[RXE_PAYLOAD]	= RXE_BTH_BYTES +605					  RXE_RDETH_BYTES +606					  RXE_DETH_BYTES,607		}608	},609	[IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE]		= {610		.name	= "IB_OPCODE_RD_SEND_LAST_WITH_IMMEDIATE",611		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK |612			  RXE_PAYLOAD_MASK | RXE_REQ_MASK |613			  RXE_COMP_MASK | RXE_SEND_MASK |614			  RXE_END_MASK,615		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES +616			  RXE_RDETH_BYTES,617		.offset = {618			[RXE_BTH]	= 0,619			[RXE_RDETH]	= RXE_BTH_BYTES,620			[RXE_DETH]	= RXE_BTH_BYTES +621					  RXE_RDETH_BYTES,622			[RXE_IMMDT]	= RXE_BTH_BYTES +623					  RXE_RDETH_BYTES +624					  RXE_DETH_BYTES,625			[RXE_PAYLOAD]	= RXE_BTH_BYTES +626					  RXE_RDETH_BYTES +627					  RXE_DETH_BYTES +628					  RXE_IMMDT_BYTES,629		}630	},631	[IB_OPCODE_RD_SEND_ONLY]			= {632		.name	= "IB_OPCODE_RD_SEND_ONLY",633		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |634			  RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK |635			  RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK,636		.length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,637		.offset = {638			[RXE_BTH]	= 0,639			[RXE_RDETH]	= RXE_BTH_BYTES,640			[RXE_DETH]	= RXE_BTH_BYTES +641					  RXE_RDETH_BYTES,642			[RXE_PAYLOAD]	= RXE_BTH_BYTES +643					  RXE_RDETH_BYTES +644					  RXE_DETH_BYTES,645		}646	},647	[IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE]		= {648		.name	= "IB_OPCODE_RD_SEND_ONLY_WITH_IMMEDIATE",649		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK |650			  RXE_PAYLOAD_MASK | RXE_REQ_MASK |651			  RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |652			  RXE_START_MASK | RXE_END_MASK,653		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES +654			  RXE_RDETH_BYTES,655		.offset = {656			[RXE_BTH]	= 0,657			[RXE_RDETH]	= RXE_BTH_BYTES,658			[RXE_DETH]	= RXE_BTH_BYTES +659					  RXE_RDETH_BYTES,660			[RXE_IMMDT]	= RXE_BTH_BYTES +661					  RXE_RDETH_BYTES +662					  RXE_DETH_BYTES,663			[RXE_PAYLOAD]	= RXE_BTH_BYTES +664					  RXE_RDETH_BYTES +665					  RXE_DETH_BYTES +666					  RXE_IMMDT_BYTES,667		}668	},669	[IB_OPCODE_RD_RDMA_WRITE_FIRST]		= {670		.name	= "IB_OPCODE_RD_RDMA_WRITE_FIRST",671		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |672			  RXE_PAYLOAD_MASK | RXE_REQ_MASK |673			  RXE_WRITE_MASK | RXE_START_MASK,674		.length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES +675			  RXE_RDETH_BYTES,676		.offset = {677			[RXE_BTH]	= 0,678			[RXE_RDETH]	= RXE_BTH_BYTES,679			[RXE_DETH]	= RXE_BTH_BYTES +680					  RXE_RDETH_BYTES,681			[RXE_RETH]	= RXE_BTH_BYTES +682					  RXE_RDETH_BYTES +683					  RXE_DETH_BYTES,684			[RXE_PAYLOAD]	= RXE_BTH_BYTES +685					  RXE_RDETH_BYTES +686					  RXE_DETH_BYTES +687					  RXE_RETH_BYTES,688		}689	},690	[IB_OPCODE_RD_RDMA_WRITE_MIDDLE]		= {691		.name	= "IB_OPCODE_RD_RDMA_WRITE_MIDDLE",692		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |693			  RXE_REQ_MASK | RXE_WRITE_MASK |694			  RXE_MIDDLE_MASK,695		.length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,696		.offset = {697			[RXE_BTH]	= 0,698			[RXE_RDETH]	= RXE_BTH_BYTES,699			[RXE_DETH]	= RXE_BTH_BYTES +700					  RXE_RDETH_BYTES,701			[RXE_PAYLOAD]	= RXE_BTH_BYTES +702					  RXE_RDETH_BYTES +703					  RXE_DETH_BYTES,704		}705	},706	[IB_OPCODE_RD_RDMA_WRITE_LAST]			= {707		.name	= "IB_OPCODE_RD_RDMA_WRITE_LAST",708		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_PAYLOAD_MASK |709			  RXE_REQ_MASK | RXE_WRITE_MASK |710			  RXE_END_MASK,711		.length = RXE_BTH_BYTES + RXE_DETH_BYTES + RXE_RDETH_BYTES,712		.offset = {713			[RXE_BTH]	= 0,714			[RXE_RDETH]	= RXE_BTH_BYTES,715			[RXE_DETH]	= RXE_BTH_BYTES +716					  RXE_RDETH_BYTES,717			[RXE_PAYLOAD]	= RXE_BTH_BYTES +718					  RXE_RDETH_BYTES +719					  RXE_DETH_BYTES,720		}721	},722	[IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE]		= {723		.name	= "IB_OPCODE_RD_RDMA_WRITE_LAST_WITH_IMMEDIATE",724		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_IMMDT_MASK |725			  RXE_PAYLOAD_MASK | RXE_REQ_MASK |726			  RXE_WRITE_MASK | RXE_COMP_MASK | RXE_RWR_MASK |727			  RXE_END_MASK,728		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES +729			  RXE_RDETH_BYTES,730		.offset = {731			[RXE_BTH]	= 0,732			[RXE_RDETH]	= RXE_BTH_BYTES,733			[RXE_DETH]	= RXE_BTH_BYTES +734					  RXE_RDETH_BYTES,735			[RXE_IMMDT]	= RXE_BTH_BYTES +736					  RXE_RDETH_BYTES +737					  RXE_DETH_BYTES,738			[RXE_PAYLOAD]	= RXE_BTH_BYTES +739					  RXE_RDETH_BYTES +740					  RXE_DETH_BYTES +741					  RXE_IMMDT_BYTES,742		}743	},744	[IB_OPCODE_RD_RDMA_WRITE_ONLY]			= {745		.name	= "IB_OPCODE_RD_RDMA_WRITE_ONLY",746		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |747				RXE_PAYLOAD_MASK | RXE_REQ_MASK |748				RXE_WRITE_MASK | RXE_START_MASK |749				RXE_END_MASK,750		.length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES +751			  RXE_RDETH_BYTES,752		.offset = {753			[RXE_BTH]	= 0,754			[RXE_RDETH]	= RXE_BTH_BYTES,755			[RXE_DETH]	= RXE_BTH_BYTES +756					  RXE_RDETH_BYTES,757			[RXE_RETH]	= RXE_BTH_BYTES +758					  RXE_RDETH_BYTES +759					  RXE_DETH_BYTES,760			[RXE_PAYLOAD]	= RXE_BTH_BYTES +761					  RXE_RDETH_BYTES +762					  RXE_DETH_BYTES +763					  RXE_RETH_BYTES,764		}765	},766	[IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE]		= {767		.name	= "IB_OPCODE_RD_RDMA_WRITE_ONLY_WITH_IMMEDIATE",768		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |769			  RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |770			  RXE_REQ_MASK | RXE_WRITE_MASK |771			  RXE_COMP_MASK | RXE_RWR_MASK |772			  RXE_START_MASK | RXE_END_MASK,773		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_RETH_BYTES +774			  RXE_DETH_BYTES + RXE_RDETH_BYTES,775		.offset = {776			[RXE_BTH]	= 0,777			[RXE_RDETH]	= RXE_BTH_BYTES,778			[RXE_DETH]	= RXE_BTH_BYTES +779					  RXE_RDETH_BYTES,780			[RXE_RETH]	= RXE_BTH_BYTES +781					  RXE_RDETH_BYTES +782					  RXE_DETH_BYTES,783			[RXE_IMMDT]	= RXE_BTH_BYTES +784					  RXE_RDETH_BYTES +785					  RXE_DETH_BYTES +786					  RXE_RETH_BYTES,787			[RXE_PAYLOAD]	= RXE_BTH_BYTES +788					  RXE_RDETH_BYTES +789					  RXE_DETH_BYTES +790					  RXE_RETH_BYTES +791					  RXE_IMMDT_BYTES,792		}793	},794	[IB_OPCODE_RD_RDMA_READ_REQUEST]			= {795		.name	= "IB_OPCODE_RD_RDMA_READ_REQUEST",796		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_RETH_MASK |797			  RXE_REQ_MASK | RXE_READ_MASK |798			  RXE_START_MASK | RXE_END_MASK,799		.length = RXE_BTH_BYTES + RXE_RETH_BYTES + RXE_DETH_BYTES +800			  RXE_RDETH_BYTES,801		.offset = {802			[RXE_BTH]	= 0,803			[RXE_RDETH]	= RXE_BTH_BYTES,804			[RXE_DETH]	= RXE_BTH_BYTES +805					  RXE_RDETH_BYTES,806			[RXE_RETH]	= RXE_BTH_BYTES +807					  RXE_RDETH_BYTES +808					  RXE_DETH_BYTES,809			[RXE_PAYLOAD]	= RXE_BTH_BYTES +810					  RXE_RETH_BYTES +811					  RXE_DETH_BYTES +812					  RXE_RDETH_BYTES,813		}814	},815	[IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST]		= {816		.name	= "IB_OPCODE_RD_RDMA_READ_RESPONSE_FIRST",817		.mask	= RXE_RDETH_MASK | RXE_AETH_MASK |818			  RXE_PAYLOAD_MASK | RXE_ACK_MASK |819			  RXE_START_MASK,820		.length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,821		.offset = {822			[RXE_BTH]	= 0,823			[RXE_RDETH]	= RXE_BTH_BYTES,824			[RXE_AETH]	= RXE_BTH_BYTES +825					  RXE_RDETH_BYTES,826			[RXE_PAYLOAD]	= RXE_BTH_BYTES +827					  RXE_RDETH_BYTES +828					  RXE_AETH_BYTES,829		}830	},831	[IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE]		= {832		.name	= "IB_OPCODE_RD_RDMA_READ_RESPONSE_MIDDLE",833		.mask	= RXE_RDETH_MASK | RXE_PAYLOAD_MASK | RXE_ACK_MASK |834			  RXE_MIDDLE_MASK,835		.length = RXE_BTH_BYTES + RXE_RDETH_BYTES,836		.offset = {837			[RXE_BTH]	= 0,838			[RXE_RDETH]	= RXE_BTH_BYTES,839			[RXE_PAYLOAD]	= RXE_BTH_BYTES +840					  RXE_RDETH_BYTES,841		}842	},843	[IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST]		= {844		.name	= "IB_OPCODE_RD_RDMA_READ_RESPONSE_LAST",845		.mask	= RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK |846			  RXE_ACK_MASK | RXE_END_MASK,847		.length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,848		.offset = {849			[RXE_BTH]	= 0,850			[RXE_RDETH]	= RXE_BTH_BYTES,851			[RXE_AETH]	= RXE_BTH_BYTES +852					  RXE_RDETH_BYTES,853			[RXE_PAYLOAD]	= RXE_BTH_BYTES +854					  RXE_RDETH_BYTES +855					  RXE_AETH_BYTES,856		}857	},858	[IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY]		= {859		.name	= "IB_OPCODE_RD_RDMA_READ_RESPONSE_ONLY",860		.mask	= RXE_RDETH_MASK | RXE_AETH_MASK | RXE_PAYLOAD_MASK |861			  RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK,862		.length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,863		.offset = {864			[RXE_BTH]	= 0,865			[RXE_RDETH]	= RXE_BTH_BYTES,866			[RXE_AETH]	= RXE_BTH_BYTES +867					  RXE_RDETH_BYTES,868			[RXE_PAYLOAD]	= RXE_BTH_BYTES +869					  RXE_RDETH_BYTES +870					  RXE_AETH_BYTES,871		}872	},873	[IB_OPCODE_RD_ACKNOWLEDGE]			= {874		.name	= "IB_OPCODE_RD_ACKNOWLEDGE",875		.mask	= RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ACK_MASK |876			  RXE_START_MASK | RXE_END_MASK,877		.length = RXE_BTH_BYTES + RXE_AETH_BYTES + RXE_RDETH_BYTES,878		.offset = {879			[RXE_BTH]	= 0,880			[RXE_RDETH]	= RXE_BTH_BYTES,881			[RXE_AETH]	= RXE_BTH_BYTES +882					  RXE_RDETH_BYTES,883		}884	},885	[IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE]			= {886		.name	= "IB_OPCODE_RD_ATOMIC_ACKNOWLEDGE",887		.mask	= RXE_RDETH_MASK | RXE_AETH_MASK | RXE_ATMACK_MASK |888			  RXE_ACK_MASK | RXE_START_MASK | RXE_END_MASK,889		.length = RXE_BTH_BYTES + RXE_ATMACK_BYTES + RXE_AETH_BYTES +890			  RXE_RDETH_BYTES,891		.offset = {892			[RXE_BTH]	= 0,893			[RXE_RDETH]	= RXE_BTH_BYTES,894			[RXE_AETH]	= RXE_BTH_BYTES +895					  RXE_RDETH_BYTES,896			[RXE_ATMACK]	= RXE_BTH_BYTES +897					  RXE_RDETH_BYTES +898					  RXE_AETH_BYTES,899		}900	},901	[IB_OPCODE_RD_COMPARE_SWAP]			= {902		.name	= "RD_COMPARE_SWAP",903		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK |904			  RXE_REQ_MASK | RXE_ATOMIC_MASK |905			  RXE_START_MASK | RXE_END_MASK,906		.length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES +907			  RXE_RDETH_BYTES,908		.offset = {909			[RXE_BTH]	= 0,910			[RXE_RDETH]	= RXE_BTH_BYTES,911			[RXE_DETH]	= RXE_BTH_BYTES +912					  RXE_RDETH_BYTES,913			[RXE_ATMETH]	= RXE_BTH_BYTES +914					  RXE_RDETH_BYTES +915					  RXE_DETH_BYTES,916			[RXE_PAYLOAD]	= RXE_BTH_BYTES +917					  RXE_ATMETH_BYTES +918					  RXE_DETH_BYTES +919					  RXE_RDETH_BYTES,920		}921	},922	[IB_OPCODE_RD_FETCH_ADD]			= {923		.name	= "IB_OPCODE_RD_FETCH_ADD",924		.mask	= RXE_RDETH_MASK | RXE_DETH_MASK | RXE_ATMETH_MASK |925			  RXE_REQ_MASK | RXE_ATOMIC_MASK |926			  RXE_START_MASK | RXE_END_MASK,927		.length = RXE_BTH_BYTES + RXE_ATMETH_BYTES + RXE_DETH_BYTES +928			  RXE_RDETH_BYTES,929		.offset = {930			[RXE_BTH]	= 0,931			[RXE_RDETH]	= RXE_BTH_BYTES,932			[RXE_DETH]	= RXE_BTH_BYTES +933					  RXE_RDETH_BYTES,934			[RXE_ATMETH]	= RXE_BTH_BYTES +935					  RXE_RDETH_BYTES +936					  RXE_DETH_BYTES,937			[RXE_PAYLOAD]	= RXE_BTH_BYTES +938					  RXE_ATMETH_BYTES +939					  RXE_DETH_BYTES +940					  RXE_RDETH_BYTES,941		}942	},943 944	/* UD */945	[IB_OPCODE_UD_SEND_ONLY]			= {946		.name	= "IB_OPCODE_UD_SEND_ONLY",947		.mask	= RXE_DETH_MASK | RXE_PAYLOAD_MASK | RXE_REQ_MASK |948			  RXE_COMP_MASK | RXE_RWR_MASK | RXE_SEND_MASK |949			  RXE_START_MASK | RXE_END_MASK,950		.length = RXE_BTH_BYTES + RXE_DETH_BYTES,951		.offset = {952			[RXE_BTH]	= 0,953			[RXE_DETH]	= RXE_BTH_BYTES,954			[RXE_PAYLOAD]	= RXE_BTH_BYTES +955					  RXE_DETH_BYTES,956		}957	},958	[IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE]		= {959		.name	= "IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE",960		.mask	= RXE_DETH_MASK | RXE_IMMDT_MASK | RXE_PAYLOAD_MASK |961			  RXE_REQ_MASK | RXE_COMP_MASK | RXE_RWR_MASK |962			  RXE_SEND_MASK | RXE_START_MASK | RXE_END_MASK,963		.length = RXE_BTH_BYTES + RXE_IMMDT_BYTES + RXE_DETH_BYTES,964		.offset = {965			[RXE_BTH]	= 0,966			[RXE_DETH]	= RXE_BTH_BYTES,967			[RXE_IMMDT]	= RXE_BTH_BYTES +968					  RXE_DETH_BYTES,969			[RXE_PAYLOAD]	= RXE_BTH_BYTES +970					  RXE_DETH_BYTES +971					  RXE_IMMDT_BYTES,972		}973	},974 975};976