2 * Routines for Omni-Path MAD header and payload dissection
3 * Copyright (c) 2016, Intel Corporation.
5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * SPDX-License-Identifier: GPL-2.0-or-later
14 #include <epan/packet.h>
15 #include <epan/prefs.h>
16 #include <epan/etypes.h>
17 #include <epan/expert.h>
18 #include <epan/reassemble.h>
20 #include <wsutil/array.h>
22 void proto_reg_handoff_opa_mad(void);
23 void proto_register_opa_mad(void);
25 /* MAD Management Classes */
26 #define SUBN_LID_ROUTED 0x01
27 #define SUBN_DIRECTED_ROUTE 0x81
32 /* Depreciated Management Classes */
38 /* Default Range Strings */
39 #define OPA_MGMTCLASS_RANGE_STR "0x01,0x03-0x04,0x32,0x81"
40 #define OPA_VENDOR_RANGE_STR "0x09-0x0F"
41 #define OPA_VENDOR_RMPP_RANGE_STR "0x30-0x31,0x33-0x4F"
42 #define OPA_APPLICATION_RANGE_STR "0x10-0x2F"
43 #define OPA_RESERVED_RANGE_STR "0x00,0x02,0x50-0x80,0x82-0xFF"
45 static const value_string MAD_mgmt_names
[] = {
46 { SUBN_LID_ROUTED
, "Subnet Management (LID Routed)" },
47 { SUBNADMN
, "Subnet Administration" },
48 { PERF
, "Performance Management" },
49 { BM
, "Baseboard Management" },
50 { DEV_MGT
, "Device Management" },
51 { COM_MGT
, "Communication Management" },
53 { 0x09, "VENDOR 0x09" },
54 { 0x0A, "VENDOR 0x0A" },
55 { 0x0B, "VENDOR 0x0B" },
56 { 0x0C, "VENDOR 0x0C" },
57 { 0x0D, "VENDOR 0x0D" },
58 { 0x0E, "VENDOR 0x0E" },
59 { 0x0F, "VENDOR 0x0F" },
60 { 0x10, "APPLICATION 0x10" },
61 { 0x11, "APPLICATION 0x11" },
62 { 0x12, "APPLICATION 0x12" },
63 { 0x13, "APPLICATION 0x13" },
64 { 0x14, "APPLICATION 0x14" },
65 { 0x15, "APPLICATION 0x15" },
66 { 0x16, "APPLICATION 0x16" },
67 { 0x17, "APPLICATION 0x17" },
68 { 0x18, "APPLICATION 0x18" },
69 { 0x19, "APPLICATION 0x19" },
70 { 0x1A, "APPLICATION 0x1A" },
71 { 0x1B, "APPLICATION 0x1B" },
72 { 0x1C, "APPLICATION 0x1C" },
73 { 0x1D, "APPLICATION 0x1D" },
74 { 0x1E, "APPLICATION 0x1E" },
75 { 0x1F, "APPLICATION 0x1F" },
76 { 0X20, "APPLICATION 0X20" },
77 { 0x21, "APPLICATION 0x21" },
78 { 0x22, "APPLICATION 0x22" },
79 { 0x23, "APPLICATION 0x23" },
80 { 0x24, "APPLICATION 0x24" },
81 { 0x25, "APPLICATION 0x25" },
82 { 0x26, "APPLICATION 0x26" },
83 { 0x27, "APPLICATION 0x27" },
84 { 0x28, "APPLICATION 0x28" },
85 { 0x29, "APPLICATION 0x29" },
86 { 0x2A, "APPLICATION 0x2A" },
87 { 0x2B, "APPLICATION 0x2B" },
88 { 0x2C, "APPLICATION 0x2C" },
89 { 0x2D, "APPLICATION 0x2D" },
90 { 0x2E, "APPLICATION 0x2E" },
91 { 0x2F, "APPLICATION 0x2F" },
92 { 0x30, "VENDOR 0x30" },
93 { 0x31, "VENDOR 0x31" },
94 { PERFADMN
, "Performance Administration" },
95 { 0x33, "VENDOR 0x33" },
96 { 0x34, "VENDOR 0x34" },
97 { 0x35, "VENDOR 0x35" },
98 { 0x36, "VENDOR 0x36" },
99 { 0x37, "VENDOR 0x37" },
100 { 0x38, "VENDOR 0x38" },
101 { 0x39, "VENDOR 0x39" },
102 { 0x3A, "VENDOR 0x3A" },
103 { 0x3B, "VENDOR 0x3B" },
104 { 0x3C, "VENDOR 0x3C" },
105 { 0x3D, "VENDOR 0x3D" },
106 { 0x3E, "VENDOR 0x3E" },
107 { 0x3F, "VENDOR 0x3F" },
108 { 0x40, "VENDOR 0x40" },
109 { 0x41, "VENDOR 0x41" },
110 { 0x42, "VENDOR 0x42" },
111 { 0x43, "VENDOR 0x43" },
112 { 0x44, "VENDOR 0x44" },
113 { 0x45, "VENDOR 0x45" },
114 { 0x46, "VENDOR 0x46" },
115 { 0x47, "VENDOR 0x47" },
116 { 0x48, "VENDOR 0x48" },
117 { 0x49, "VENDOR 0x49" },
118 { 0x4A, "VENDOR 0x4A" },
119 { 0x4B, "VENDOR 0x4B" },
120 { 0x4C, "VENDOR 0x4C" },
121 { 0x4D, "VENDOR 0x4D" },
122 { 0x4E, "VENDOR 0x4E" },
123 { 0x4F, "VENDOR 0x4F" },
124 { SUBN_DIRECTED_ROUTE
, "Subnet Management (Direct Routed)" },
127 static value_string_ext MAD_mgmt_names_ext
= VALUE_STRING_EXT_INIT(MAD_mgmt_names
);
130 #define SM_ATTR_ID_CLASS_PORT_INFO 0x0001
131 #define SM_ATTR_ID_NOTICE 0x0002
132 #define SM_ATTR_ID_INFORM_INFO 0x0003
133 #define SM_ATTR_ID_NODE_DESCRIPTION 0x0010
134 #define SM_ATTR_ID_NODE_INFO 0x0011
135 #define SM_ATTR_ID_SWITCH_INFO 0x0012
136 #define SM_ATTR_ID_PORT_INFO 0x0015
137 #define SM_ATTR_ID_PART_TABLE 0x0016
138 #define SM_ATTR_ID_SL_SC_MAPPING_TABLE 0x0017
139 #define SM_ATTR_ID_VL_ARBITRATION 0x0018
140 #define SM_ATTR_ID_LINEAR_FWD_TABLE 0x0019
141 #define SM_ATTR_ID_MCAST_FWD_TABLE 0x001B
142 #define SM_ATTR_ID_SM_INFO 0x0020
143 #define SM_ATTR_ID_LED_INFO 0x0031
144 #define SM_ATTR_ID_CABLE_INFO 0x0032
145 #define SM_ATTR_ID_AGGREGATE 0x0080
146 #define SM_ATTR_ID_SC_SC_MAPPING_TABLE 0x0081
147 #define SM_ATTR_ID_SC_SL_MAPPING_TABLE 0x0082
148 #define SM_ATTR_ID_SC_VLR_MAPPING_TABLE 0x0083
149 #define SM_ATTR_ID_SC_VLT_MAPPING_TABLE 0x0084
150 #define SM_ATTR_ID_SC_VLNT_MAPPING_TABLE 0x0085
151 #define SM_ATTR_ID_PORT_STATE_INFO 0x0087
152 #define SM_ATTR_ID_PORT_GROUP_FWD_TABLE 0x0088
153 #define SM_ATTR_ID_PORT_GROUP_TABLE 0x0089
154 #define SM_ATTR_ID_BUFFER_CONTROL_TABLE 0x008A
155 #define SM_ATTR_ID_CONGESTION_INFO 0x008B
156 #define SM_ATTR_ID_SWITCH_CONGESTION_LOG 0x008C
157 #define SM_ATTR_ID_SWITCH_CONGESTION_SETTING 0x008D
158 #define SM_ATTR_ID_SWITCH_PORT_CONGESTION_SETTING 0x008E
159 #define SM_ATTR_ID_HFI_CONGESTION_LOG 0x008F
160 #define SM_ATTR_ID_HFI_CONGESTION_SETTING 0x0090
161 #define SM_ATTR_ID_HFI_CONGESTION_CONTROL_TABLE 0x0091
164 #define SA_ATTR_ID_CLASS_PORT_INFO 0x0001
165 #define SA_ATTR_ID_NOTICE 0x0002
166 #define SA_ATTR_ID_INFORM_INFO 0x0003
167 #define SA_ATTR_ID_NODE_RECORD 0x0011
168 #define SA_ATTR_ID_PORTINFO_RECORD 0x0012
169 #define SA_ATTR_ID_SC_MAPTBL_RECORD 0x0013
170 #define SA_ATTR_ID_SWITCHINFO_RECORD 0x0014
171 #define SA_ATTR_ID_LINEAR_FWDTBL_RECORD 0x0015
172 #define SA_ATTR_ID_MCAST_FWDTBL_RECORD 0x0017
173 #define SA_ATTR_ID_SMINFO_RECORD 0x0018
174 #define SA_ATTR_ID_LINK_SPD_WDTH_PAIRS_RECORD 0x0019
175 #define SA_ATTR_ID_LINK_RECORD 0x0020
176 #define SA_ATTR_ID_SERVICE_RECORD 0x0031
177 #define SA_ATTR_ID_P_KEY_TABLE_RECORD 0x0033
178 #define SA_ATTR_ID_PATH_RECORD 0x0035
179 #define SA_ATTR_ID_VLARBTABLE_RECORD 0x0036
180 #define SA_ATTR_ID_MCMEMBER_RECORD 0x0038
181 #define SA_ATTR_ID_TRACE_RECORD 0x0039
182 #define SA_ATTR_ID_MULTIPATH_GID_RECORD 0x003A
183 #define SA_ATTR_ID_SERVICEASSOCIATION_RECORD 0x003B
184 #define SA_ATTR_ID_SL2SC_MAPTBL_RECORD 0x0080
185 #define SA_ATTR_ID_SC2SL_MAPTBL_RECORD 0x0081
186 #define SA_ATTR_ID_SC_VLNT_MAPTBL_RECORD 0x0082
187 #define SA_ATTR_ID_SC_VLT_MAPTBL_RECORD 0x0083
188 #define SA_ATTR_ID_SC_VLR_MAPTBL_RECORD 0x0084
189 #define SA_ATTR_ID_PGROUP_FWDTBL_RECORD 0x0085
190 #define SA_ATTR_ID_MULTIPATH_GUID_RECORD 0x0086
191 #define SA_ATTR_ID_MULTIPATH_LID_RECORD 0x0087
192 #define SA_ATTR_ID_CABLE_INFO_RECORD 0x0088
193 #define SA_ATTR_ID_VF_INFO_RECORD 0x0089
194 #define SA_ATTR_ID_PORTGROUP_TABLE_RECORD 0x008B
195 #define SA_ATTR_ID_BUFF_CTRL_TAB_RECORD 0x008C
196 #define SA_ATTR_ID_FABRICINFO_RECORD 0x008D
197 #define SA_ATTR_ID_QUARANTINED_NODE_RECORD 0x0090
198 #define SA_ATTR_ID_CONGESTION_INFO_RECORD 0x0091
199 #define SA_ATTR_ID_SWITCH_CONG_RECORD 0x0092
200 #define SA_ATTR_ID_SWITCH_PORT_CONG_RECORD 0x0093
201 #define SA_ATTR_ID_HFI_CONG_RECORD 0x0094
202 #define SA_ATTR_ID_HFI_CONG_CTRL_RECORD 0x0095
203 #define SA_ATTR_ID_INFORM_INFO_RECORD 0x00F3
205 /* Performance Management class Attributes */
206 #define PM_ATTR_ID_CLASS_PORTINFO 0x0001
207 #define PM_ATTR_ID_PORT_STATUS 0x0040
208 #define PM_ATTR_ID_CLEAR_PORT_STATUS 0x0041
209 #define PM_ATTR_ID_DATA_PORT_COUNTERS 0x0042
210 #define PM_ATTR_ID_ERROR_PORT_COUNTERS 0x0043
211 #define PM_ATTR_ID_ERROR_INFO 0x0044
212 /* Performance Administration class Attributes */
213 #define PA_ATTR_ID_CLASS_PORTINFO 0x0001
214 #define PA_ATTR_ID_GET_GRP_LIST 0x00A0
215 #define PA_ATTR_ID_GET_GRP_INFO 0x00A1
216 #define PA_ATTR_ID_GET_GRP_CFG 0x00A2
217 #define PA_ATTR_ID_GET_PORT_CTRS 0x00A3
218 #define PA_ATTR_ID_CLR_PORT_CTRS 0x00A4
219 #define PA_ATTR_ID_CLR_ALL_PORT_CTRS 0x00A5
220 #define PA_ATTR_ID_GET_PM_CFG 0x00A6
221 #define PA_ATTR_ID_FREEZE_IMAGE 0x00A7
222 #define PA_ATTR_ID_RELEASE_IMAGE 0x00A8
223 #define PA_ATTR_ID_RENEW_IMAGE 0x00A9
224 #define PA_ATTR_ID_GET_FOCUS_PORTS 0x00AA
225 #define PA_ATTR_ID_GET_IMAGE_INFO 0x00AB
226 #define PA_ATTR_ID_MOVE_FREEZE_FRAME 0x00AC
227 #define PA_ATTR_ID_GET_VF_LIST 0x00AD
228 #define PA_ATTR_ID_GET_VF_INFO 0x00AE
229 #define PA_ATTR_ID_GET_VF_CONFIG 0x00AF
230 #define PA_ATTR_ID_GET_VF_PORT_CTRS 0x00B0
231 #define PA_ATTR_ID_CLR_VF_PORT_CTRS 0x00B1
232 #define PA_ATTR_ID_GET_VF_FOCUS_PORTS 0x00B2
235 static const value_string SUBM_Attributes
[] = {
236 { SM_ATTR_ID_CLASS_PORT_INFO
, "Attribute (ClassPortInfo)" },
237 { SM_ATTR_ID_NOTICE
, "Attribute (Notice)" },
238 { SM_ATTR_ID_INFORM_INFO
, "Attribute (InformInfo)" },
239 { SM_ATTR_ID_NODE_DESCRIPTION
, "Attribute (NodeDescription)" },
240 { SM_ATTR_ID_NODE_INFO
, "Attribute (NodeInfo)" },
241 { SM_ATTR_ID_SWITCH_INFO
, "Attribute (SwitchInfo)" },
242 { SM_ATTR_ID_PORT_INFO
, "Attribute (PortInfo)" },
243 { SM_ATTR_ID_PART_TABLE
, "Attribute (PKeyTable)" },
244 { SM_ATTR_ID_SL_SC_MAPPING_TABLE
, "Attribute (SLSCMappingTable)" },
245 { SM_ATTR_ID_VL_ARBITRATION
, "Attribute (VLArbitrationTable)" },
246 { SM_ATTR_ID_LINEAR_FWD_TABLE
, "Attribute (LinearForwardingTable)" },
247 { SM_ATTR_ID_MCAST_FWD_TABLE
, "Attribute (MulticastForwardingTable)" },
248 { SM_ATTR_ID_SM_INFO
, "Attribute (SMInfo)" },
249 { SM_ATTR_ID_LED_INFO
, "Attribute (LedInfo)" },
250 { SM_ATTR_ID_CABLE_INFO
, "Attribute (CableInfo)" },
251 { SM_ATTR_ID_AGGREGATE
, "Attribute (Aggregate)" },
252 { SM_ATTR_ID_SC_SC_MAPPING_TABLE
, "Attribute (SCSCMappingTable)" },
253 { SM_ATTR_ID_SC_SL_MAPPING_TABLE
, "Attribute (SCSLMappingTable)" },
254 { SM_ATTR_ID_SC_VLR_MAPPING_TABLE
, "Attribute (SCVLRMappingTable)" },
255 { SM_ATTR_ID_SC_VLT_MAPPING_TABLE
, "Attribute (SCVLTMappingTable)" },
256 { SM_ATTR_ID_SC_VLNT_MAPPING_TABLE
, "Attribute (SCVLNTMappingTable)" },
257 { SM_ATTR_ID_PORT_STATE_INFO
, "Attribute (PortStateInfo)" },
258 { SM_ATTR_ID_PORT_GROUP_FWD_TABLE
, "Attribute (PortGroupForwardingTable)" },
259 { SM_ATTR_ID_PORT_GROUP_TABLE
, "Attribute (PortGroupTable)" },
260 { SM_ATTR_ID_BUFFER_CONTROL_TABLE
, "Attribute (BufferControlTable)" },
261 { SM_ATTR_ID_CONGESTION_INFO
, "Attribute (CongestionInfo)" },
262 { SM_ATTR_ID_SWITCH_CONGESTION_LOG
, "Attribute (SwitchCongestionLog)" },
263 { SM_ATTR_ID_SWITCH_CONGESTION_SETTING
, "Attribute (SwitchCongestionSetting)" },
264 { SM_ATTR_ID_SWITCH_PORT_CONGESTION_SETTING
, "Attribute (SwitchPortCongestionSetting)" },
265 { SM_ATTR_ID_HFI_CONGESTION_LOG
, "Attribute (HFICongestionLog)" },
266 { SM_ATTR_ID_HFI_CONGESTION_SETTING
, "Attribute (HFICongestionSetting)" },
267 { SM_ATTR_ID_HFI_CONGESTION_CONTROL_TABLE
, "Attribute (HFICongestionControlTable)" },
270 static const value_string SUBA_Attributes
[] = {
271 { SA_ATTR_ID_CLASS_PORT_INFO
, "Attribute (ClassPortInfo)" },
272 { SA_ATTR_ID_NOTICE
, "Attribute (Notice)" },
273 { SA_ATTR_ID_INFORM_INFO
, "Attribute (InformInfo)" },
274 { SA_ATTR_ID_NODE_RECORD
, "Attribute (NodeRecord)" },
275 { SA_ATTR_ID_PORTINFO_RECORD
, "Attribute (PortInfoRecord)" },
276 { SA_ATTR_ID_SC_MAPTBL_RECORD
, "Attribute (SCMappingTableRecord)" },
277 { SA_ATTR_ID_SWITCHINFO_RECORD
, "Attribute (SwitchInfoRecord)" },
278 { SA_ATTR_ID_LINEAR_FWDTBL_RECORD
, "Attribute (LinearForwardingTableRecord)" },
279 { SA_ATTR_ID_MCAST_FWDTBL_RECORD
, "Attribute (MulticastForwardingTableRecord)" },
280 { SA_ATTR_ID_SMINFO_RECORD
, "Attribute (SMInfoRecord)" },
281 { SA_ATTR_ID_LINK_SPD_WDTH_PAIRS_RECORD
, "Attribute (LinkSpeedWidthPairsTableRecord)" },
282 { SA_ATTR_ID_LINK_RECORD
, "Attribute (LinkRecord)" },
283 { SA_ATTR_ID_SERVICE_RECORD
, "Attribute (ServiceRecord)" },
284 { SA_ATTR_ID_P_KEY_TABLE_RECORD
, "Attribute (P_KeyTableRecord)" },
285 { SA_ATTR_ID_PATH_RECORD
, "Attribute (PathRecord)" },
286 { SA_ATTR_ID_VLARBTABLE_RECORD
, "Attribute (VLArbitrationTableRecord)" },
287 { SA_ATTR_ID_MCMEMBER_RECORD
, "Attribute (MulticastMemberRecord)" },
288 { SA_ATTR_ID_TRACE_RECORD
, "Attribute (TraceRecord)" },
289 { SA_ATTR_ID_MULTIPATH_GID_RECORD
, "Attribute (MultiPathRecord)" },
290 { SA_ATTR_ID_SERVICEASSOCIATION_RECORD
, "Attribute (ServiceAssociationRecord)" },
291 { SA_ATTR_ID_SL2SC_MAPTBL_RECORD
, "Attribute (SLtoSCMappingTableRecord)" },
292 { SA_ATTR_ID_SC2SL_MAPTBL_RECORD
, "Attribute (SCtoSLMappingTableRecord)" },
293 { SA_ATTR_ID_SC_VLNT_MAPTBL_RECORD
, "Attribute (SCtoVLNTMappingTableRecord)" },
294 { SA_ATTR_ID_SC_VLT_MAPTBL_RECORD
, "Attribute (SCtoVLTMappingTableRecord)" },
295 { SA_ATTR_ID_SC_VLR_MAPTBL_RECORD
, "Attribute (SCtoVLRMappingTableRecord)" },
296 { SA_ATTR_ID_PGROUP_FWDTBL_RECORD
, "Attribute (PortGroupForwardTableRecord)" },
297 { SA_ATTR_ID_MULTIPATH_GUID_RECORD
, "Attribute (MultipathGUIDRecord)" },
298 { SA_ATTR_ID_MULTIPATH_LID_RECORD
, "Attribute (MultipathLIDRecord)" },
299 { SA_ATTR_ID_CABLE_INFO_RECORD
, "Attribute (CableInfoRecord)" },
300 { SA_ATTR_ID_VF_INFO_RECORD
, "Attribute (VFInfoRecord)" },
301 { SA_ATTR_ID_PORTGROUP_TABLE_RECORD
, "Attribute (PortGroupTableRecord)" },
302 { SA_ATTR_ID_BUFF_CTRL_TAB_RECORD
, "Attribute (BufferControlTableRecord)" },
303 { SA_ATTR_ID_FABRICINFO_RECORD
, "Attribute (FabricInfoRecord)" },
304 { SA_ATTR_ID_QUARANTINED_NODE_RECORD
, "Attribute (QuarantinedNodeRecord)" },
305 { SA_ATTR_ID_CONGESTION_INFO_RECORD
, "Attribute (CongestionInfoRecord)" },
306 { SA_ATTR_ID_SWITCH_CONG_RECORD
, "Attribute (SwitchCongestionRecord)" },
307 { SA_ATTR_ID_SWITCH_PORT_CONG_RECORD
, "Attribute (SwitchPortCongestionRecord)" },
308 { SA_ATTR_ID_HFI_CONG_RECORD
, "Attribute (HFICongestionRecord)" },
309 { SA_ATTR_ID_HFI_CONG_CTRL_RECORD
, "Attribute (HFICongestionControlRecord)" },
310 { SA_ATTR_ID_INFORM_INFO_RECORD
, "Attribute (InformInfoRecord)" },
313 static const value_string PM_Attributes
[] = {
314 { PM_ATTR_ID_CLASS_PORTINFO
, "Attribute (ClassPortInfo)" },
315 { PM_ATTR_ID_PORT_STATUS
, "Attribute (PortStatus)" },
316 { PM_ATTR_ID_CLEAR_PORT_STATUS
, "Attribute (ClearPortStatus)" },
317 { PM_ATTR_ID_DATA_PORT_COUNTERS
, "Attribute (DataPortCounters)" },
318 { PM_ATTR_ID_ERROR_PORT_COUNTERS
, "Attribute (ErrorPortCounters)" },
319 { PM_ATTR_ID_ERROR_INFO
, "Attribute (ErrorInfo)" },
322 static const value_string PA_Attributes
[] = {
323 { PA_ATTR_ID_CLASS_PORTINFO
, "Attribute (ClassPortInfo)" },
324 { PA_ATTR_ID_GET_GRP_LIST
, "Attribute (GetGroupList)" },
325 { PA_ATTR_ID_GET_GRP_INFO
, "Attribute (GetGroupInfo)" },
326 { PA_ATTR_ID_GET_GRP_CFG
, "Attribute (GetGroupConfig)" },
327 { PA_ATTR_ID_GET_PORT_CTRS
, "Attribute (GetPortCounters)" },
328 { PA_ATTR_ID_CLR_PORT_CTRS
, "Attribute (ClearPortCounters)" },
329 { PA_ATTR_ID_CLR_ALL_PORT_CTRS
, "Attribute (ClearAllPortCounters)" },
330 { PA_ATTR_ID_GET_PM_CFG
, "Attribute (GetPerfMgmtConfig)" },
331 { PA_ATTR_ID_FREEZE_IMAGE
, "Attribute (FreezeImage)" },
332 { PA_ATTR_ID_RELEASE_IMAGE
, "Attribute (ReleaseImage)" },
333 { PA_ATTR_ID_RENEW_IMAGE
, "Attribute (RenewImage)" },
334 { PA_ATTR_ID_GET_FOCUS_PORTS
, "Attribute (GetFocusPorts)" },
335 { PA_ATTR_ID_GET_IMAGE_INFO
, "Attribute (GetImageInfo)" },
336 { PA_ATTR_ID_MOVE_FREEZE_FRAME
, "Attribute (MoveFreezeFrame)" },
337 { PA_ATTR_ID_GET_VF_LIST
, "Attribute (GetVFList)" },
338 { PA_ATTR_ID_GET_VF_INFO
, "Attribute (GetVFInfo)" },
339 { PA_ATTR_ID_GET_VF_CONFIG
, "Attribute (GetVFConfig)" },
340 { PA_ATTR_ID_GET_VF_PORT_CTRS
, "Attribute (GetVFPortCounters)" },
341 { PA_ATTR_ID_CLR_VF_PORT_CTRS
, "Attribute (ClearVFPortCounters)" },
342 { PA_ATTR_ID_GET_VF_FOCUS_PORTS
, "Attribute (GetVFFocusPorts)" },
347 #define METHOD_GET 0x01
348 #define METHOD_SET 0x02
349 #define METHOD_SEND 0x03
350 #define METHOD_TRAP 0x05
351 #define METHOD_REPORT 0x06
352 #define METHOD_TRAPREPRESS 0x07
353 #define METHOD_GETTABLE 0x12
354 #define METHOD_GETTRACETABLE 0x13
355 #define METHOD_GETMULTI 0x14
356 #define METHOD_DELETE 0x15
358 #define METHOD_GET_RESP 0x81
359 #define METHOD_REPORT_RESP 0x86
360 #define METHOD_GETTABLE_RESP 0x92
361 #define METHOD_GETTRACETABLE_RESP 0x93
362 #define METHOD_GETMULTI_RESP 0x94
363 #define METHOD_DELETE_RESP 0x95
364 static const value_string Methods
[] = {
365 { METHOD_GET
, "Get()" },
366 { METHOD_GET_RESP
, "GetResp()" },
367 { METHOD_SET
, "Set()" },
368 { METHOD_SEND
, "Send()" },
369 { METHOD_TRAP
, "Trap()" },
370 { METHOD_REPORT
, "Report()" },
371 { METHOD_REPORT_RESP
, "ReportResp()" },
372 { METHOD_TRAPREPRESS
, "TrapRepress()" },
373 { METHOD_GETTABLE
, "GetTable()" },
374 { METHOD_GETTABLE_RESP
, "GetTableResp()" },
375 { METHOD_GETTRACETABLE
, "GetTraceTable()" },
376 { METHOD_GETTRACETABLE_RESP
, "GetTraceTableResp()" },
377 { METHOD_GETMULTI
, "GetMulti()" },
378 { METHOD_GETMULTI_RESP
, "GetMultiResp()" },
379 { METHOD_DELETE
, "Delete()" },
380 { METHOD_DELETE_RESP
, "DeleteResp()" },
383 static const value_string SUBM_Methods
[] = {
384 { METHOD_GET
, "SubnGet(" },
385 { METHOD_SET
, "SubnSet(" },
386 { METHOD_GET_RESP
, "SubnGetResp(" },
387 { METHOD_TRAP
, "SubnTrap(" },
388 { METHOD_TRAPREPRESS
, "SubnTrapRepress(" },
391 static const value_string SUBA_Methods
[] = {
392 { METHOD_GET
, "SubnAdmGet(" },
393 { METHOD_GET_RESP
, "SubnAdmGetResp(" },
394 { METHOD_SET
, "SubnAdmSet(" },
395 { METHOD_REPORT
, "SubnAdmReport(" },
396 { METHOD_REPORT_RESP
, "SubnAdmReportResp(" },
397 { METHOD_GETTABLE
, "SubnAdmGetTable(" },
398 { METHOD_GETTABLE_RESP
, "SubnAdmGetTableResp(" },
399 { METHOD_GETTRACETABLE
, "SubnAdmGetTraceTable(" },
400 { METHOD_GETMULTI
, "SubnAdmGetMulti(" },
401 { METHOD_GETMULTI_RESP
, "SubnAdmGetMultiResp(" },
402 { METHOD_DELETE
, "SubnAdmDelete(" },
403 { METHOD_DELETE_RESP
, "SubnAdmDeleteResp(" },
406 static const value_string PM_Methods
[] = {
407 { METHOD_GET
, "PerfGet(" },
408 { METHOD_SET
, "PerfSet(" },
409 { METHOD_GET_RESP
, "PerfGetResp(" },
412 static const value_string PA_Methods
[] = {
413 { METHOD_GET
, "PerfAdmGet(" },
414 { METHOD_SET
, "PerfAdmSet(" },
415 { METHOD_GET_RESP
, "PerfAdmGetResp(" },
416 { METHOD_GETTABLE
, "PerfAdmGetTable(" },
417 { METHOD_GETTABLE_RESP
, "PerfAdmGetTableResp(" },
422 #define RMPP_ILLEGAL 0
427 static const value_string RMPP_Packet_Types
[] = {
428 { RMPP_ILLEGAL
, "Illegal RMPP Type (0)! " },
429 { RMPP_DATA
, "RMPP (DATA)" },
430 { RMPP_ACK
, "RMPP (ACK)" },
431 { RMPP_STOP
, "RMPP (STOP)" },
432 { RMPP_ABORT
, "RMPP (ABORT)" },
435 static const value_string RMPP_Status
[] = {
437 { 1, " (Resources Exhausted)" },
438 { 118, " (Total Time Too Long)" },
439 { 119, " (Inconsistent Last and PayloadLength)" },
440 { 120, " (Inconsistent First and Segment Number)" },
441 { 121, " (Bad RMPPType)" },
442 { 122, " (NewWindowLast Too Small)" },
443 { 123, " (SegmentNumber Too Big)" },
444 { 124, " (Illegal Status)" },
445 { 125, " (Unsupported Version)" },
446 { 126, " (Too Many Retries)" },
447 { 127, " (Unspecified - Unknown Error Code on ABORT)" },
452 * Structure to hold information from the common MAD header.
453 * This is necessary because the MAD header contains information which significantly changes the dissection algorithm. */
454 #define STL_MAX_MAD_PAYLOAD 2048
455 typedef struct _MAD
{
458 uint8_t ClassVersion
;
460 uint16_t Status
; /* D = bit 15 when DR */
461 uint8_t HopPointer
; /* Reserved in DR MADs */
462 uint8_t HopCount
; /* Reserved in DR MADs */
463 uint64_t TransactionID
;
464 uint16_t AttributeID
;
466 uint32_t AttributeModifier
;
468 #define STL_MAX_RMPP_PAYLOAD 2036
469 #define RMPP_FLAG_LAST_MASK 0x04
470 #define RMPP_FLAG_LAST_SHIFT 2
471 #define RMPP_FLAG_FIRST_MASK 0x02
472 #define RMPP_FLAG_FIRST_SHIFT 1
473 #define RMPP_FLAG_ACTIVE_MASK 0x01
474 #define RMPP_FLAG_ACTIVE_SHIFT 0
475 typedef struct _RMPP
{
478 uint8_t resptime_flags
;
480 uint32_t SegmentNumber
;
481 uint32_t PayloadLength
;
484 #define STL_MAX_SA_PA_PAYLOAD 1992
485 typedef struct _SA_HEADER
{
487 uint16_t AttributeOffset
;
489 uint64_t ComponentMask
;
490 } SA_HEADER_t
, PA_HEADER_t
;
492 /* Trap Type/Descriptions for dissection */
493 static const value_string NoticeType
[] = {
501 static const value_string Trap_Description
[] = {
502 { 64, " (Informational) <GIDADDR> is now in service" },
503 { 65, " (Informational) <GIDADDR> is out of service" },
504 { 66, " (Informational) New Multicast Group with multicast address <GIDADDR> is now created" },
505 { 67, " (Informational) Multicast Group with multicast address <GIDADDR> is now deleted" },
506 { 68, " (Informational) Paths indicated by <PATH_REC> and <COMP_MASK> are no longer valid" },
507 { 69, " (Informational) Paths indicated by <PATH_REC> and <COMP_MASK> have been recomputed" },
508 { 128, " (Urgent) Link State of at least one port of switch at <LIDADDR> has changed" },
509 { 129, " (Urgent) Local Link Integrity threshold reached at <LIDADDR><PORTNO>" },
510 { 130, " (Urgent) Excessive Buffer OVerrun threshold reached at <LIDADDR><PORTNO>" },
511 { 131, " (Urgent) Flow Control Update watchdog timer expired at <LIDADDR><PORTNO>" },
512 { 144, " (Informational) CapMask, NodeDesc, LinkWidthEnabled or LinkSpeedEnabled at <LIDADDR> has been modified" },
513 { 145, " (Informational) SystemImageGUID at <LIDADDR> has been modified. New value is <SYSTEMIMAGEGUID>" },
514 { 256, " (Security) Bad M_Key, <M_KEY> from <LIDADDR> attempted <METHOD> with <ATTRIBUTEID> and <ATTRIBUTEMODIFIER>" },
515 { 257, " (Security) Bad P_Key, <KEY> from <LIDADDR1><GIDADDR1><QP1> to <LIDADDR2><GIDADDR2><QP2> on <SL>" },
516 { 258, " (Security) Bad Q_Key, <KEY> from <LIDADDR1><GIDADDR1><QP1> to <LIDADDR2><GIDADDR2><QP2> on <SL>" },
517 { 259, " (Security) Bad P_Key, <KEY> from <LIDADDR1><GIDADDR1><QP1> to <LIDADDR2><GIDADDR2><QP2> on <SL> at switch <LIDADDR><PORTNO>" },
518 { 2048, " (Informational) LinkWidth.Active, LinkWidthDowngrade.TxActive or LinkWidthDowngrade.RxActive of at least one port of switch at <REPORTINGLID> has changed" },
521 static const value_string RoutingMode
[] = {
522 { 0x00, "No change" },
523 { 0x01, "Linear routing algorithm" },
524 { 0x02, "Hierarchical routing algorithm" },
527 static const value_string AdaptiveRoutingAlgorithm
[] = {
530 { 0x2, "Random Greedy" },
533 static const value_string PortType
[] = {
535 { 1, "Disconnected" },
552 static const value_string NodeType
[] = {
557 static const value_string LinkDownReason
[] = {
558 { 0, "No specified reason" },
559 { 1, "Receive Error 0" },
560 { 2, "Bad packet length" },
561 { 3, "Packet too long" },
562 { 4, "Packet too short" },
567 { 9, "Receive Error 8" },
568 { 10, "Bad mid tail" },
569 { 11, "Receive Error 10" },
570 { 12, "Preempt error" },
571 { 13, "Preempt VL15" },
572 { 14, "Bad VL marker" },
573 { 15, "Receive Error 14" },
574 { 16, "Receive Error 15" },
575 { 17, "Bad head dist" },
576 { 18, "Bad tail dist" },
577 { 19, "Bad ctrl dist" },
578 { 20, "Bad credit ack" },
579 { 21, "Unsupported VL marker" },
580 { 22, "Bad preempt" },
581 { 23, "Bad control flit" },
582 { 24, "Exceed multicast limit" },
583 { 25, "Receive Error 24" },
584 { 26, "Receive Error 25" },
585 { 27, "Receive Error 26" },
586 { 28, "Receive Error 27" },
587 { 29, "Receive Error 28" },
588 { 30, "Receive Error 29" },
589 { 31, "Receive Error 30" },
590 { 32, "Excessive buffer overrun" },
591 { 33, "Unknown (locally initiated)" },
593 { 36, "Neighbor Unknown (not locally initiated)" },
594 { 39, "FM initiated bounce" },
595 { 40, "Link outside speed policy" },
596 { 41, "Link downgrade outside" },
597 { 49, "Disconnected" },
598 { 50, "Local media not installed" },
599 { 51, "Not installed" },
600 { 52, "Chassis config" },
601 { 54, "End to end not installed" },
602 { 56, "Power policy" },
603 { 57, "Linkspeed policy" },
604 { 58, "Linkwidth policy" },
605 { 60, "Switch management" },
606 { 61, "Sma disabled" },
610 static const value_string LinkInitReason
[] = {
612 { 1, "Link just came up" },
613 { 2, "FM ignoring flapping port" },
614 { 8, "FM ignoring, width or speed, outside FM configured policy" },
615 { 9, "FM ignoring, quarantined for security" },
616 { 10, "FM ignoring, link has insufficient capabilities for FM configuration" },
619 static const value_string DiagCode
[] = {
620 { 0x0000, "Function Ready" },
621 { 0x0001, "Performing Self Test" },
622 { 0x0002, "Initializing" },
623 { 0x0003, "Soft Error - Function has non-fatal error" },
624 { 0x0004, "Hard Error - Function has fatal error" },
627 static const value_string PortFlitDistanceMode
[] = {
628 { 0x0000, "No State Change" },
629 { 0x0001, "STL1 Mode" },
630 { 0x0002, "STL2 Mode" },
633 static const value_string PortState
[] = {
634 { 0x0000, "No State Change" },
635 { 0x0001, "Down (includes failed links)" },
636 { 0x0002, "Initialized" },
638 { 0x0004, "Active" },
641 static const value_string PortPhysicalState
[] = {
642 { 0x0000, "No State Change" },
643 { 0x0002, "Polling" },
644 { 0x0003, "Disabled" },
645 { 0x0004, "PortConfigurationTraining" },
646 { 0x0005, "LinkUp" },
647 { 0x0006, "LinkErrorRecovery" },
648 { 0x0009, "Offline" },
652 static const value_string OfflineDisabledReason
[] = {
653 { 0x0000, "No reason available" },
654 { 0x0001, "Disconnected" },
655 { 0x0002, "Local Media not Installed" },
656 { 0x0003, "Not Installed" },
657 { 0x0004, "Chassis Config" },
658 { 0x0005, "Reserved" },
659 { 0x0006, "End-to-end not Installed" },
660 { 0x0007, "Reserved" },
661 { 0x0008, "Power Policy" },
662 { 0x0009, "Link Speed Policy" },
663 { 0x000A, "Link Width Policy" },
664 { 0x000B, "Reserved" },
665 { 0x000C, "Switch Mgmt" },
666 { 0x000D, "SMA Disabled" },
667 { 0x000E, "Reserved" },
668 { 0x000F, "Transient" },
671 static const value_string MTU
[] = {
672 { 0x0001, "256" }, /* IB_MTU_256 */
673 { 0x0002, "512" }, /* IB_MTU_512 */
674 { 0x0003, "1024" }, /* IB_MTU_1024 */
675 { 0x0004, "2048" }, /* IB_MTU_2048 */
676 { 0x0005, "4096" }, /* IB_MTU_4096 */
677 { 0x0006, "8192" }, /* STL_MTU_8192 */
678 { 0x0007, "10240" }, /* STL_MTU_10240 */
681 static const value_string Rate
[] = {
682 { 11, "12.5 Gbps" }, /* IB_STATIC_RATE_14G */
683 { 15, "25 Gbps" }, /* IB_STATIC_RATE_25G */
684 { 7, "37.5 Gbps" }, /* IB_STATIC_RATE_40G */
685 { 12, "50 Gbps" }, /* IB_STATIC_RATE_56G */
686 { 9, "75 Gbps" }, /* IB_STATIC_RATE_80G */
687 { 16, "100 Gbps" }, /* IB_STATIC_RATE_100G */
688 { 17, "200 Gbps" }, /* IB_STATIC_RATE_200G */
691 static const true_false_string tfs_PKeyMembershipType
= {
695 static const value_string MADAttrModSectionVLarb
[] = {
696 { 0, "Arbitration Low Weight Elements" },
697 { 1, "Arbitration High Weight Elements" },
698 { 2, "Preemption Weight Elements" },
699 { 3, "Preemption Matrix" },
702 static const value_string MADAttrModSectionVLarb_short
[] = {
704 { 1, "High Weight" },
705 { 2, "Preemption Weight" },
706 { 3, "Preemption Matrix" },
709 static const value_string SA_SC_VLx
[] = {
710 { SA_ATTR_ID_SC_VLNT_MAPTBL_RECORD
, "nt" },
711 { SA_ATTR_ID_SC_VLT_MAPTBL_RECORD
, "t" },
712 { SA_ATTR_ID_SC_VLR_MAPTBL_RECORD
, "r" },
715 static const value_string SM_SC_VLx
[] = {
716 { SM_ATTR_ID_SC_VLNT_MAPPING_TABLE
, "nt" },
717 { SM_ATTR_ID_SC_VLT_MAPPING_TABLE
, "t" },
718 { SM_ATTR_ID_SC_VLR_MAPPING_TABLE
, "r" },
721 static const value_string GroupTablePosition
[] = {
728 static const value_string AdaptiveRoutingThreshold
[] = {
729 { 0, "Default tuning" },
730 { 1, "Consumed nearly all of the buffering(or Tags) for a VL (~100%)" },
739 static const value_string LinkQualityIndicator
[] = {
750 /*static const value_string LinkQualityIndicatorLong[] = {
752 { 1, "working far below acceptable link quality, recommend immediate corrective action" },
753 { 2, "working below acceptable link quality, recommend consider timely corrective action" },
754 { 3, "working on low end of acceptable link quality, recommended to consider corrective action on next maintenance window" },
755 { 4, "working slightly below preferred link quality, but no action required" },
756 { 5, "working at or above preferred link quality, no action needed" },
761 static const true_false_string tfs_NeighborFWAuthenBypass
= {
765 static const true_false_string tfs_SwPortCongSetting_CtrlType
= {
769 static const true_false_string tfs_clear_dont_clear
= {
773 static const value_string MAD_Status_InvalidField
[] = {
774 { 0, "No Invalid Fields" },
775 { 1, "Bad Version" },
776 { 2, "Method not supported" },
777 { 3, "The method/attribute combination is not supported" },
781 { 7, "One or more fields in the attribute or attribute modifier contain an invalid value" },
784 static const true_false_string tfs_busy_not_busy
= {
788 static const true_false_string tfs_redirect_no_redirect
= {
792 static const value_string FocusPortFlags
[] = {
795 { 2, "PMA Failure" },
796 { 3, "Topo Failure" },
800 #define PM_UTIL_BUCKETS 10
801 #define PM_ERR_BUCKETS 5
804 static int proto_opa_mad
;
806 /* Variables to hold expansion values between packets */
807 static int ett_payload
;
808 static int ett_sm_lid
;
809 static int ett_sm_dr
;
814 static int ett_mad_status
;
815 static int ett_mad_attributemod
;
817 static int ett_rmpp_fragment
;
818 static int ett_rmpp_fragments
;
819 static int ett_rmpp_sa_record
;
821 static int ett_noticestraps
;
822 static int ett_datadetails
;
823 static int ett_datadetails_trap259datavalid
;
824 static int ett_informinfo
;
825 static int ett_classportinfo
;
826 static int ett_classportinfo_redirect
;
827 static int ett_classportinfo_trap
;
829 static int ett_nodedescription
;
830 static int ett_nodeinfo
;
831 static int ett_switchinfo
;
832 static int ett_switchinfo_switchcapabilitymask
;
833 static int ett_portinfo
;
834 static int ett_portinfo_vl
;
835 static int ett_portinfo_link
;
836 static int ett_portinfo_portmode
;
837 static int ett_portinfo_flitcontrol
;
838 static int ett_portinfo_porterroraction
;
839 static int ett_portinfo_neighbormtu
;
840 static int ett_portinfo_xmitq
;
841 static int ett_portinfo_capmask
;
842 static int ett_portinfo_capmask3
;
843 static int ett_portstates
;
844 static int ett_pkeytable
;
845 static int ett_pkeytable_block
;
846 static int ett_sltoscmapping
;
847 static int ett_sltoscmapping_block
;
848 static int ett_sctoscmapping
;
849 static int ett_sctoscmapping_block
;
850 static int ett_sctoslmapping
;
851 static int ett_sctoslmapping_block
;
852 static int ett_sctovlxmappingtable
;
853 static int ett_sctovlxmappingtable_block
;
854 static int ett_vlarbitrationtable
;
855 static int ett_vlarbitrationtable_port
;
856 static int ett_linearforwardingtable
;
857 static int ett_linearforwardingtable_block
;
858 static int ett_multicastforwardingtable
;
859 static int ett_multicastforwardingtable_block
;
860 static int ett_portgroupforwardingtable
;
861 static int ett_portgroupforwardingtable_block
;
862 static int ett_portgrouptable
;
863 static int ett_portgrouptable_block
;
864 static int ett_sminfo
;
865 static int ett_ledinfo
;
866 static int ett_cableinfo
;
867 static int ett_aggregate
;
868 static int ett_buffercontroltable
;
869 static int ett_congestioninfo
;
870 static int ett_switchcongestionlog
;
871 static int ett_switchcongestionlog_entry
;
872 static int ett_switchcongestionsetting
;
873 static int ett_switchportcongestionsetting
;
874 static int ett_switchportcongestionsetting_port
;
875 static int ett_hficongestionlog
;
876 static int ett_hficongestionlog_entry
;
877 static int ett_hficongestionsetting
;
878 static int ett_hficongestioncontroltable
;
879 static int ett_hficongestioncontroltable_block
;
881 static int ett_portinforecord_linkdownreason
;
882 static int ett_portinforecord_linkdownreason_entry
;
883 static int ett_scmappingrecord
;
884 static int ett_lftrecord
;
885 static int ett_linkrecord
;
886 static int ett_servicerecord
;
887 static int ett_pathrecord
;
888 static int ett_pathrecord_dgid
;
889 static int ett_pathrecord_sgid
;
890 static int ett_mcmemberrecord
;
891 static int ett_tracerecord
;
892 static int ett_multipathrecord_gid
;
893 static int ett_multipathrecord_guid
;
894 static int ett_multipathrecord_lid
;
895 static int ett_cableinforecord
;
896 static int ett_serviceassocrecord
;
897 static int ett_sctoslmappingtablerecord
;
898 static int ett_portgroupforwardingtablerecord
;
899 static int ett_vfinforecord
;
900 static int ett_quarantinednoderecord
;
901 static int ett_fabricinforecord
;
903 static int ett_portstatus
;
904 static int ett_portstatus_vl
;
905 static int ett_clearportstatus
;
906 static int ett_clearportstatus_counterselectmask
;
907 static int ett_dataportcounters
;
908 static int ett_dataportcounters_port
;
909 static int ett_dataportcounters_vl
;
910 static int ett_errorportcounters
;
911 static int ett_errorportcounters_port
;
912 static int ett_errorportinfo
;
913 static int ett_errorportinfoport
;
914 static int ett_errorportinfo_portrcverrorinfo
;
915 static int ett_errorportinfo_excessivebufferoverruninfo
;
916 static int ett_errorportinfo_portxmitconstrainterrorinfo
;
917 static int ett_errorportinfo_portrcvconstrainterrorinfo
;
918 static int ett_errorportinfo_portrcvswitchrelayerrorinfo
;
919 static int ett_errorportinfo_uncorrectableerrorinfo
;
920 static int ett_errorportinfo_fmconfigerrorinfo
;
922 static int ett_getgrouplist
;
923 static int ett_getgroupinfo
;
924 static int ett_getgroupinfoutilstats
;
925 static int ett_getgroupinfoutilbuckets
;
926 static int ett_getgroupinfoerrorsummary
;
927 static int ett_getgroupinfoerrintegritybucket
;
928 static int ett_getgroupinfoerrcongestionbucket
;
929 static int ett_getgroupinfoerrsmacongestionbucket
;
930 static int ett_getgroupinfoerrbubblebucket
;
931 static int ett_getgroupinfoerrsecuritybucket
;
932 static int ett_getgroupinfoerrroutingbucket
;
933 static int ett_getportcounters
;
934 static int ett_clearportcounters
;
935 static int ett_clearportcounters_counterselectmask
;
936 static int ett_clearallportcounters
;
937 static int ett_clearallportcounters_counterselectmask
;
938 static int ett_pmconfig
;
939 static int ett_getgroupconfig
;
940 static int ett_getgroupconfigport
;
941 static int ett_movefreezeframeold
;
942 static int ett_movefreezeframenew
;
943 static int ett_getfocusports
;
944 static int ett_getfocusportsport
;
945 static int ett_getimageinfo
;
946 static int ett_getimageinfosm
;
947 static int ett_getvflist
;
948 static int ett_getvfinfo
;
949 static int ett_getvfinfoutilstats
;
950 static int ett_getvfinfoutilbuckets
;
951 static int ett_getvfinfoerrorsummary
;
952 static int ett_getvfinfoerrintegritybucket
;
953 static int ett_getvfinfoerrcongestionbucket
;
954 static int ett_getvfinfoerrsmacongestionbucket
;
955 static int ett_getvfinfoerrbubblebucket
;
956 static int ett_getvfinfoerrsecuritybucket
;
957 static int ett_getvfinfoerrroutingbucket
;
958 static int ett_getvfconfig
;
959 static int ett_getvfconfigport
;
960 static int ett_getvffocusports
;
961 static int ett_getvffocusportsport
;
962 static int ett_getvfportcounters
;
963 static int ett_clearvfportcounters
;
964 static int ett_clearvfportcounters_counterselectmask
;
966 /* Reserved Fields */
967 static int hf_opa_reserved8
;
968 static int hf_opa_reserved16
;
969 static int hf_opa_reserved24
;
970 static int hf_opa_reserved32
;
971 static int hf_opa_reserved64
;
972 /* opa_MAD Dissector */
973 static int hf_opa_etype
;
974 static int hf_opa_etype_reserved16
;
975 /* SM Header - Lid Routed*/
976 static int hf_opa_sm_lid
;
977 static int hf_opa_sm_m_key
;
978 /* SM Header - Directed Route */
979 static int hf_opa_sm_dr
;
980 static int hf_opa_sm_dr_slid
;
981 static int hf_opa_sm_dr_dlid
;
982 static int hf_opa_sm_dr_initial_path
;
983 static int hf_opa_sm_dr_return_path
;
984 static int hf_opa_sm_dr_reserved64
;
986 static int hf_opa_sa
;
987 static int hf_opa_sa_sm_key
;
988 static int hf_opa_sa_attribute_offset
;
989 static int hf_opa_sa_component_mask
;
990 /* PM Header / PA Header */
991 static int hf_opa_pm
;
992 static int hf_opa_pa
;
993 static int hf_opa_pa_sm_key
;
994 static int hf_opa_pa_attribute_offset
;
995 static int hf_opa_pa_component_mask
;
996 /* Other Vendor Header */
997 static int hf_opa_vendor
;
998 static int hf_opa_application
;
999 static int hf_opa_reservedmclass
;
1000 static int hf_opa_unknown
;
1003 static int hf_opa_mad
;
1004 static int hf_opa_mad_base_version
;
1005 static int hf_opa_mad_mgmt_class
;
1006 static int hf_opa_mad_class_version
;
1007 static int hf_opa_mad_method
;
1008 static int hf_opa_mad_status
;
1009 static int hf_opa_mad_status_DR_D
;
1010 static int hf_opa_mad_status_DR_status
;
1011 static int hf_opa_mad_status_DR_Hop_Pointer
;
1012 static int hf_opa_mad_status_DR_Hop_Count
;
1013 static int hf_opa_mad_status_NM_ClassSpecific
;
1014 static int hf_opa_mad_status_NM_reserved1
;
1015 static int hf_opa_mad_status_NM_InvalidField
;
1016 static int hf_opa_mad_status_NM_RedirectRqrd
;
1017 static int hf_opa_mad_status_NM_Busy
;
1018 static int * const _mad_status
[] = {
1019 &hf_opa_mad_status_NM_ClassSpecific
,
1020 &hf_opa_mad_status_NM_reserved1
,
1021 &hf_opa_mad_status_NM_InvalidField
,
1022 &hf_opa_mad_status_NM_RedirectRqrd
,
1023 &hf_opa_mad_status_NM_Busy
,
1026 static int hf_opa_mad_transaction_id
;
1027 static int hf_opa_mad_attribute_id
;
1028 static int hf_opa_attribute_modifier
;
1029 static int hf_opa_attribute_modifier_A
;
1030 static int hf_opa_attribute_modifier_A2
;
1031 static int hf_opa_attribute_modifier_A3
;
1032 static int hf_opa_attribute_modifier_A4
;
1033 static int hf_opa_attribute_modifier_A5
;
1034 static int hf_opa_attribute_modifier_A6
;
1035 static int hf_opa_attribute_modifier_B
;
1036 static int hf_opa_attribute_modifier_B2
;
1037 static int hf_opa_attribute_modifier_B3
;
1038 static int hf_opa_attribute_modifier_B4
;
1039 static int hf_opa_attribute_modifier_B5
;
1040 static int hf_opa_attribute_modifier_E
;
1041 static int hf_opa_attribute_modifier_I
;
1042 static int hf_opa_attribute_modifier_L
;
1043 static int hf_opa_attribute_modifier_NP
;
1044 static int hf_opa_attribute_modifier_NB
;
1045 static int hf_opa_attribute_modifier_N2
;
1046 static int hf_opa_attribute_modifier_P
;
1047 static int hf_opa_attribute_modifier_P2
;
1048 static int hf_opa_attribute_modifier_P3
;
1049 static int hf_opa_attribute_modifier_S
;
1050 static int hf_opa_attribute_modifier_S2
;
1051 static int hf_opa_attribute_modifier_Y
;
1052 static int * const _attribute_modifier_Nps2AP
[] = {
1053 &hf_opa_attribute_modifier_NP
,
1054 &hf_opa_attribute_modifier_S2
,
1055 &hf_opa_attribute_modifier_A
,
1056 &hf_opa_attribute_modifier_P
,
1059 static int * const _attribute_modifier_NpS2P
[] = {
1060 &hf_opa_attribute_modifier_NP
,
1061 &hf_opa_attribute_modifier_S2
,
1062 &hf_opa_attribute_modifier_P
,
1065 static int * const _attribute_modifier_NpAP
[] = {
1066 &hf_opa_attribute_modifier_NP
,
1067 &hf_opa_attribute_modifier_A
,
1068 &hf_opa_attribute_modifier_P
,
1071 static int * const _attribute_modifier_NbP2B
[] = {
1072 &hf_opa_attribute_modifier_NB
,
1073 &hf_opa_attribute_modifier_P2
,
1074 &hf_opa_attribute_modifier_B
,
1077 static int * const _attribute_modifier_NbA2B2IE
[] = {
1078 &hf_opa_attribute_modifier_NB
,
1079 &hf_opa_attribute_modifier_A2
,
1080 &hf_opa_attribute_modifier_B2
,
1081 &hf_opa_attribute_modifier_I
,
1082 &hf_opa_attribute_modifier_E
,
1085 static int * const _attribute_modifier_NpSAP
[] = {
1086 &hf_opa_attribute_modifier_NP
,
1087 &hf_opa_attribute_modifier_S
,
1088 &hf_opa_attribute_modifier_A
,
1089 &hf_opa_attribute_modifier_P
,
1092 static int * const _attribute_modifier_NbA3B3
[] = {
1093 &hf_opa_attribute_modifier_NB
,
1094 &hf_opa_attribute_modifier_A3
,
1095 &hf_opa_attribute_modifier_B3
,
1098 static int * const _attribute_modifier_NbP3A4B4
[] = {
1099 &hf_opa_attribute_modifier_NB
,
1100 &hf_opa_attribute_modifier_P3
,
1101 &hf_opa_attribute_modifier_A4
,
1102 &hf_opa_attribute_modifier_B4
,
1105 static int * const _attribute_modifier_A5LP
[] = {
1106 &hf_opa_attribute_modifier_A5
,
1107 &hf_opa_attribute_modifier_L
,
1108 &hf_opa_attribute_modifier_P
,
1111 static int * const _attribute_modifier_NbYAP
[] = {
1112 &hf_opa_attribute_modifier_NB
,
1113 &hf_opa_attribute_modifier_Y
,
1114 &hf_opa_attribute_modifier_A
,
1115 &hf_opa_attribute_modifier_P
,
1118 static int * const _attribute_modifier_NpP
[] = {
1119 &hf_opa_attribute_modifier_NP
,
1120 &hf_opa_attribute_modifier_P
,
1123 static int * const _attribute_modifier_NbP
[] = {
1124 &hf_opa_attribute_modifier_NB
,
1125 &hf_opa_attribute_modifier_P
,
1128 static int * const _attribute_modifier_NbP3A6B5
[] = {
1129 &hf_opa_attribute_modifier_NB
,
1130 &hf_opa_attribute_modifier_P3
,
1131 &hf_opa_attribute_modifier_A6
,
1132 &hf_opa_attribute_modifier_B5
,
1136 static int hf_opa_rmpp
;
1137 static int hf_opa_rmpp_version
;
1138 static int hf_opa_rmpp_type
;
1139 static int hf_opa_rmpp_r_resp_time
;
1140 static int hf_opa_rmpp_flags_last
;
1141 static int hf_opa_rmpp_flags_first
;
1142 static int hf_opa_rmpp_flags_active
;
1143 static int hf_opa_rmpp_status
;
1144 static int hf_opa_rmpp_data1
;
1145 static int hf_opa_rmpp_data2
;
1146 static int hf_opa_rmpp_segment_number
;
1147 static int hf_opa_rmpp_payload_length32
;
1148 static int hf_opa_rmpp_new_window_last
;
1151 static int hf_opa_sa_Lid
;
1152 static int hf_opa_sa_EndportLID
;
1153 static int hf_opa_sa_PortNum
;
1154 static int hf_opa_sa_InputPortNum
;
1155 static int hf_opa_sa_OutputPortNum
;
1156 static int hf_opa_sa_Port
;
1157 static int hf_opa_sa_reserved14
;
1158 static int hf_opa_sa_BlockNum_18b
;
1159 static int hf_opa_sa_Position
;
1160 static int hf_opa_sa_Position_16b
;
1161 static int hf_opa_sa_reserved9
;
1162 static int hf_opa_sa_reserved9_16b
;
1163 static int hf_opa_sa_BlockNum_21b
;
1164 static int hf_opa_sa_BlockNum_8b
;
1165 static int hf_opa_sa_BlockNum_16b
;
1166 static int hf_opa_sa_BlockNum_5b
;
1167 static int hf_opa_sa_SubscriberLID
;
1168 static int hf_opa_sa_Enum
;
1169 static int hf_opa_sa_FromLID
;
1170 static int hf_opa_sa_FromPort
;
1171 static int hf_opa_sa_ServiceID
;
1172 static int hf_opa_sa_ServiceLID
;
1173 static int hf_opa_sa_ServiceP_Key
;
1174 static int hf_opa_sa_ServiceGID
;
1175 static int hf_opa_sa_MGID
;
1176 static int hf_opa_sa_PortGID
;
1178 /* Attribute Specific Fields */
1179 static int hf_opa_Notice
;
1180 static int hf_opa_Notice_IsGeneric
;
1181 static int hf_opa_Notice_Type
;
1182 static int hf_opa_Notice_ProducerType
;
1183 static int hf_opa_Notice_TrapNumber
;
1184 static int hf_opa_Notice_VendorID
;
1185 static int hf_opa_Notice_DeviceID
;
1186 static int hf_opa_Notice_IssuerLID
;
1187 static int hf_opa_Notice_IssuerGID
;
1188 static int hf_opa_Notice_Toggle
;
1189 static int hf_opa_Notice_Count
;
1190 static int hf_opa_Notice_ClassDataDetails
;
1191 static int hf_opa_Trap
;
1192 static int hf_opa_Trap_GID
;
1193 static int hf_opa_Trap_LID
;
1194 static int hf_opa_Trap_PORTNO
;
1195 static int hf_opa_Trap_CAPABILITYMASK
;
1196 static int hf_opa_Trap_CAPABILITYMASK3
;
1197 static int hf_opa_Trap_144_reserved
;
1198 static int hf_opa_Trap_LinkWidthDowngradeEnabledChange
;
1199 static int hf_opa_Trap_LinkSpeecEnabledChange
;
1200 static int hf_opa_Trap_LinkWidthEnabledChange
;
1201 static int hf_opa_Trap_NodeDescriptionChange
;
1202 static int hf_opa_Trap_SystemImageGUID
;
1203 static int hf_opa_Trap_DRSLID
;
1204 static int hf_opa_Trap_Method
;
1205 static int hf_opa_Trap_AttributeID
;
1206 static int hf_opa_Trap_AttributeModifier
;
1207 static int hf_opa_Trap_MKey
;
1208 static int hf_opa_Trap_DRNotice
;
1209 static int hf_opa_Trap_DRPathTruncated
;
1210 static int hf_opa_Trap_DRHopCount
;
1211 static int hf_opa_Trap_DRNoticeReturnPath
;
1212 static int hf_opa_Trap_Key
;
1213 static int hf_opa_Trap_SL
;
1214 static int hf_opa_Trap_SL_reserved
;
1215 static int hf_opa_Trap_QP
;
1216 static int hf_opa_Trap_DataValid
;
1217 static int hf_opa_Trap_DataValid_Lid1
;
1218 static int hf_opa_Trap_DataValid_Lid2
;
1219 static int hf_opa_Trap_DataValid_PKey
;
1220 static int hf_opa_Trap_DataValid_SL
;
1221 static int hf_opa_Trap_DataValid_QP1
;
1222 static int hf_opa_Trap_DataValid_QP2
;
1223 static int hf_opa_Trap_DataValid_Gid1
;
1224 static int hf_opa_Trap_DataValid_Gid2
;
1225 static int hf_opa_Trap_DataValid_Reserved
;
1226 static int * const _Trap_DataValid
[] = {
1227 &hf_opa_Trap_DataValid_Lid1
,
1228 &hf_opa_Trap_DataValid_Lid2
,
1229 &hf_opa_Trap_DataValid_PKey
,
1230 &hf_opa_Trap_DataValid_SL
,
1231 &hf_opa_Trap_DataValid_QP1
,
1232 &hf_opa_Trap_DataValid_QP2
,
1233 &hf_opa_Trap_DataValid_Gid1
,
1234 &hf_opa_Trap_DataValid_Gid2
,
1235 &hf_opa_Trap_DataValid_Reserved
,
1238 static int hf_opa_Trap_PKey
;
1239 static int hf_opa_ClassPortInfo
;
1240 static int hf_opa_ClassPortInfo_BaseVersion
;
1241 static int hf_opa_ClassPortInfo_ClassVersion
;
1242 static int hf_opa_ClassPortInfo_CapMask
;
1243 static int hf_opa_ClassPortInfo_CapMask2
;
1244 static int hf_opa_ClassPortInfo_RespTimeValue
;
1245 static int hf_opa_ClassPortInfo_Redirect_GID
;
1246 static int hf_opa_ClassPortInfo_Redirect_TClass
;
1247 static int hf_opa_ClassPortInfo_Redirect_SL
;
1248 static int hf_opa_ClassPortInfo_Redirect_reserved
;
1249 static int hf_opa_ClassPortInfo_Redirect_FlowLabel
;
1250 static int hf_opa_ClassPortInfo_Redirect_LID
;
1251 static int hf_opa_ClassPortInfo_Redirect_reserved2
;
1252 static int hf_opa_ClassPortInfo_Redirect_QP
;
1253 static int hf_opa_ClassPortInfo_Redirect_Q_Key
;
1254 static int hf_opa_ClassPortInfo_Trap_GID
;
1255 static int hf_opa_ClassPortInfo_Trap_TClass
;
1256 static int hf_opa_ClassPortInfo_Trap_reserved
;
1257 static int hf_opa_ClassPortInfo_Trap_FlowLabel
;
1258 static int hf_opa_ClassPortInfo_Trap_LID
;
1259 static int hf_opa_ClassPortInfo_Trap_HopLimit
;
1260 static int hf_opa_ClassPortInfo_Trap_QP
;
1261 static int hf_opa_ClassPortInfo_Trap_Q_Key
;
1262 static int hf_opa_ClassPortInfo_Trap_P_Key
;
1263 static int hf_opa_ClassPortInfo_Redirect_P_Key
;
1264 static int hf_opa_ClassPortInfo_Trap_SL
;
1265 static int hf_opa_ClassPortInfo_Trap_reserved2
;
1266 static int hf_opa_InformInfo
;
1267 static int hf_opa_InformInfo_GID
;
1268 static int hf_opa_InformInfo_LIDRangeBegin
;
1269 static int hf_opa_InformInfo_LIDRangeEnd
;
1270 static int hf_opa_InformInfo_IsGeneric
;
1271 static int hf_opa_InformInfo_Subscribe
;
1272 static int hf_opa_InformInfo_Type
;
1273 static int hf_opa_InformInfo_TrapNumber
;
1274 static int hf_opa_InformInfo_DeviceID
;
1275 static int hf_opa_InformInfo_QPN
;
1276 static int hf_opa_InformInfo_reserved
;
1277 static int hf_opa_InformInfo_RespTimeValue
;
1278 static int hf_opa_InformInfo_ProducerType
;
1279 static int hf_opa_InformInfo_VendorID
;
1281 static int hf_opa_NodeDescription
;
1282 static int hf_opa_NodeDescription_NodeString
;
1283 static int hf_opa_NodeInfo
;
1284 static int hf_opa_NodeInfo_BaseVersion
;
1285 static int hf_opa_NodeInfo_ClassVersion
;
1286 static int hf_opa_NodeInfo_NodeType
;
1287 static int hf_opa_NodeInfo_NumPorts
;
1288 static int hf_opa_NodeInfo_SystemImageGUID
;
1289 static int hf_opa_NodeInfo_NodeGUID
;
1290 static int hf_opa_NodeInfo_PortGUID
;
1291 static int hf_opa_NodeInfo_PartitionCap
;
1292 static int hf_opa_NodeInfo_DeviceID
;
1293 static int hf_opa_NodeInfo_Revision
;
1294 static int hf_opa_NodeInfo_LocalPortNum
;
1295 static int hf_opa_NodeInfo_VendorID
;
1296 static int hf_opa_SwitchInfo
;
1297 static int hf_opa_SwitchInfo_LinearFDBCap
;
1298 static int hf_opa_SwitchInfo_MulticastFDBCap
;
1299 static int hf_opa_SwitchInfo_LinearFDBTop
;
1300 static int hf_opa_SwitchInfo_MulticastFDBTop
;
1301 static int hf_opa_SwitchInfo_CollectiveCap
;
1302 static int hf_opa_SwitchInfo_CollectiveTop
;
1303 static int hf_opa_SwitchInfo_IPAddrIPv6
;
1304 static int hf_opa_SwitchInfo_IPAddrIPv4
;
1305 static int hf_opa_SwitchInfo_LifeTimeValue
;
1306 static int hf_opa_SwitchInfo_PortStateChange
;
1307 static int hf_opa_SwitchInfo_reserved2
;
1308 static int hf_opa_SwitchInfo_PartitionEnforcementCap
;
1309 static int hf_opa_SwitchInfo_PortGroupCap
;
1310 static int hf_opa_SwitchInfo_PortGroupTop
;
1311 static int hf_opa_SwitchInfo_SupportedRoutingMode
;
1312 static int hf_opa_SwitchInfo_EnabledRoutingMode
;
1313 static int hf_opa_SwitchInfo_reserved3
;
1314 static int hf_opa_SwitchInfo_EnhancedPortZero
;
1315 static int hf_opa_SwitchInfo_reserved4
;
1316 static int hf_opa_SwitchInfo_reserved5
;
1317 static int hf_opa_SwitchInfo_CollectiveMask
;
1318 static int hf_opa_SwitchInfo_MulticastMask
;
1319 static int hf_opa_SwitchInfo_AdaptiveRoutingEnable
;
1320 static int hf_opa_SwitchInfo_AdaptiveRoutingPause
;
1321 static int hf_opa_SwitchInfo_AdaptiveRoutingAlgorithm
;
1322 static int hf_opa_SwitchInfo_AdaptiveRoutingFrequency
;
1323 static int hf_opa_SwitchInfo_AdaptiveRoutingLostRoutesOnly
;
1324 static int hf_opa_SwitchInfo_AdaptiveRoutingThreshold
;
1325 static int hf_opa_SwitchInfo_reserved6
;
1326 static int * const _SwitchInfo_AdaptiveRouting
[] = {
1327 &hf_opa_SwitchInfo_AdaptiveRoutingEnable
,
1328 &hf_opa_SwitchInfo_AdaptiveRoutingPause
,
1329 &hf_opa_SwitchInfo_AdaptiveRoutingAlgorithm
,
1330 &hf_opa_SwitchInfo_AdaptiveRoutingFrequency
,
1331 &hf_opa_SwitchInfo_AdaptiveRoutingLostRoutesOnly
,
1332 &hf_opa_SwitchInfo_AdaptiveRoutingThreshold
,
1333 &hf_opa_SwitchInfo_reserved6
,
1336 static int hf_opa_SwitchInfo_SwitchCapabilityMask
;
1337 static int hf_opa_SwitchInfo_SwitchCapabilityMask_reserved
;
1338 static int hf_opa_SwitchInfo_SwitchCapabilityMask_IsAddrRangeConfigSupported
;
1339 static int hf_opa_SwitchInfo_SwitchCapabilityMask_reserved2
;
1340 static int hf_opa_SwitchInfo_SwitchCapabilityMask_IsAdaptiveRoutingSupported
;
1341 static int * const _SwitchInfo_SwitchCapabilityMask
[] = {
1342 &hf_opa_SwitchInfo_SwitchCapabilityMask_reserved
,
1343 &hf_opa_SwitchInfo_SwitchCapabilityMask_IsAddrRangeConfigSupported
,
1344 &hf_opa_SwitchInfo_SwitchCapabilityMask_reserved2
,
1345 &hf_opa_SwitchInfo_SwitchCapabilityMask_IsAdaptiveRoutingSupported
,
1348 static int hf_opa_SwitchInfo_CapabilityMaskCollectives
;
1349 static int hf_opa_PortInfo
;
1350 static int hf_opa_PortInfo_LID
;
1351 static int hf_opa_PortInfo_FlowControlMask
;
1352 static int hf_opa_PortInfo_VL_PreemptCap
;
1353 static int hf_opa_PortInfo_VL_reserved
;
1354 static int hf_opa_PortInfo_VL_Cap
;
1355 static int hf_opa_PortInfo_VL_HighLimit
;
1356 static int hf_opa_PortInfo_VL_PreemptingLimit
;
1357 static int hf_opa_PortInfo_VL_ArbitrationHighCap
;
1358 static int hf_opa_PortInfo_VL_ArbitrationLowCap
;
1359 static int hf_opa_PortInfo_PortPhysConfig_reserved
;
1360 static int hf_opa_PortInfo_PortPhysConfig_PortType
;
1361 static int hf_opa_PortInfo_MultiCollectMask_reserved
;
1362 static int hf_opa_PortInfo_MultiCollectMask_CollectiveMask
;
1363 static int hf_opa_PortInfo_MultiCollectMask_MulticastMask
;
1364 static int hf_opa_PortInfo_M_KeyProtectBits
;
1365 static int hf_opa_PortInfo_S1_reserved
;
1366 static int hf_opa_PortInfo_LMC
;
1367 static int hf_opa_PortInfo_S2_reserved
;
1368 static int hf_opa_PortInfo_MasterSMSL
;
1369 static int hf_opa_PortInfo_LinkInitReason
;
1370 static int hf_opa_PortInfo_PartitionEnforcementInbound
;
1371 static int hf_opa_PortInfo_PartitionEnforcementOutbound
;
1372 static int hf_opa_PortInfo_S3_reserved2
;
1373 static int hf_opa_PortInfo_S4_reserved
;
1374 static int hf_opa_PortInfo_OperationalVL
;
1375 static int hf_opa_PortInfo_P_Keys_P_Key_8B
;
1376 static int hf_opa_PortInfo_P_Keys_P_Key_10B
;
1377 static int hf_opa_PortInfo_M_KeyViolations
;
1378 static int hf_opa_PortInfo_P_KeyViolations
;
1379 static int hf_opa_PortInfo_Q_KeyViolations
;
1380 static int hf_opa_PortInfo_TrapQueuePair_reserved
;
1381 static int hf_opa_PortInfo_TrapQueuePair
;
1382 static int hf_opa_PortInfo_SAQueuePair_reserved
;
1383 static int hf_opa_PortInfo_SAQueuePair
;
1384 static int hf_opa_PortInfo_NeighborPortNum
;
1385 static int hf_opa_PortInfo_LinkDownReason
;
1386 static int hf_opa_PortInfo_NeighborLinkDownReason
;
1387 static int hf_opa_PortInfo_ClientReregister
;
1388 static int hf_opa_PortInfo_MulticastPKeyTrapSuppressEnabled
;
1389 static int hf_opa_PortInfo_Timeout
;
1390 static int hf_opa_PortInfo_LinkSpeedSupported
;
1391 static int hf_opa_PortInfo_LinkSpeedEnabled
;
1392 static int hf_opa_PortInfo_LinkSpeedActive
;
1393 static int hf_opa_PortInfo_LinkWidthSupported
;
1394 static int hf_opa_PortInfo_LinkWidthEnabled
;
1395 static int hf_opa_PortInfo_LinkWidthActive
;
1396 static int hf_opa_PortInfo_LinkWidthDowngrade_Supported
;
1397 static int hf_opa_PortInfo_LinkWidthDowngrade_Enabled
;
1398 static int hf_opa_PortInfo_LinkWidthDowngrade_TxActive
;
1399 static int hf_opa_PortInfo_LinkWidthDowngrade_RxActive
;
1400 static int hf_opa_PortInfo_PortLinkMode_reserved
;
1401 static int hf_opa_PortInfo_PortLinkMode_Supported
;
1402 static int hf_opa_PortInfo_PortLinkMode_Enabled
;
1403 static int hf_opa_PortInfo_PortLinkMode_Active
;
1404 static int hf_opa_PortInfo_PortLTPCRCMode_reserved
;
1405 static int hf_opa_PortInfo_PortLTPCRCMode_Supported
;
1406 static int hf_opa_PortInfo_PortLTPCRCMode_Enabled
;
1407 static int hf_opa_PortInfo_PortLTPCRCMode_Active
;
1408 static int hf_opa_PortInfo_PortMode
;
1409 static int hf_opa_PortInfo_PortMode_reserved
;
1410 static int hf_opa_PortInfo_PortMode_IsActiveOptimizeEnabled
;
1411 static int hf_opa_PortInfo_PortMode_IsPassThroughEnabled
;
1412 static int hf_opa_PortInfo_PortMode_IsVLMarkerEnabled
;
1413 static int hf_opa_PortInfo_PortMode_reserved2
;
1414 static int hf_opa_PortInfo_PortMode_Is16BTrapQueryEnabled
;
1415 static int hf_opa_PortInfo_PortMode_reserved3
;
1416 static int * const _PortInfo_PortMode
[] = {
1417 &hf_opa_PortInfo_PortMode_reserved
,
1418 &hf_opa_PortInfo_PortMode_IsActiveOptimizeEnabled
,
1419 &hf_opa_PortInfo_PortMode_IsPassThroughEnabled
,
1420 &hf_opa_PortInfo_PortMode_IsVLMarkerEnabled
,
1421 &hf_opa_PortInfo_PortMode_reserved2
,
1422 &hf_opa_PortInfo_PortMode_Is16BTrapQueryEnabled
,
1423 &hf_opa_PortInfo_PortMode_reserved3
,
1426 static int hf_opa_PortInfo_PortPacketFormats_Supported
;
1427 static int hf_opa_PortInfo_PortPacketFormats_Enabled
;
1428 static int hf_opa_PortInfo_FlitControl_Interleave_reserved
;
1429 static int hf_opa_PortInfo_FlitControl_Interleave_DistanceSupported
;
1430 static int hf_opa_PortInfo_FlitControl_Interleave_DistanceEnabled
;
1431 static int hf_opa_PortInfo_FlitControl_Interleave_MaxNestLevelTxEnabled
;
1432 static int hf_opa_PortInfo_FlitControl_Interleave_MaxNestLevelRxSupported
;
1433 static int hf_opa_PortInfo_FlitControl_Preemption_MinInitial
;
1434 static int hf_opa_PortInfo_FlitControl_Preemption_MinTail
;
1435 static int hf_opa_PortInfo_FlitControl_Preemption_LargePacketLimit
;
1436 static int hf_opa_PortInfo_FlitControl_Preemption_SmallPacketLimit
;
1437 static int hf_opa_PortInfo_FlitControl_Preemption_MaxSmallPacketLimit
;
1438 static int hf_opa_PortInfo_FlitControl_Preemption_PreemptionLimit
;
1439 static int hf_opa_PortInfo_PortErrorAction
;
1440 static int hf_opa_PortInfo_PortErrorAction_ExcessiveBufferOverrun
;
1441 static int hf_opa_PortInfo_PortErrorAction_reserved
;
1442 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorExceedMulticastLimit
;
1443 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadControlFlit
;
1444 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadPreempt
;
1445 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadVLMarker
;
1446 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadCrdtAck
;
1447 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadCtrlDist
;
1448 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadTailDist
;
1449 static int hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadHeadDist
;
1450 static int hf_opa_PortInfo_PortErrorAction_reserved2
;
1451 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadVLMarker
;
1452 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorPreemptVL15
;
1453 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorPreemptError
;
1454 static int hf_opa_PortInfo_PortErrorAction_reserved3
;
1455 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadMidTail
;
1456 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorReserved
;
1457 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadSC
;
1458 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadL2
;
1459 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadDLID
;
1460 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadSLID
;
1461 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorPktLenTooShort
;
1462 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorPktLenTooLong
;
1463 static int hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadPktLen
;
1464 static int hf_opa_PortInfo_PortErrorAction_reserved4
;
1465 static int * const _PortInfo_PortErrorAction
[] = {
1466 &hf_opa_PortInfo_PortErrorAction_ExcessiveBufferOverrun
,
1467 &hf_opa_PortInfo_PortErrorAction_reserved
,
1468 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorExceedMulticastLimit
,
1469 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadControlFlit
,
1470 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadPreempt
,
1471 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadVLMarker
,
1472 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadCrdtAck
,
1473 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadCtrlDist
,
1474 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadTailDist
,
1475 &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadHeadDist
,
1476 &hf_opa_PortInfo_PortErrorAction_reserved2
,
1477 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadVLMarker
,
1478 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPreemptVL15
,
1479 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPreemptError
,
1480 &hf_opa_PortInfo_PortErrorAction_reserved3
,
1481 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadMidTail
,
1482 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorReserved
,
1483 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadSC
,
1484 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadL2
,
1485 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadDLID
,
1486 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadSLID
,
1487 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPktLenTooShort
,
1488 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPktLenTooLong
,
1489 &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadPktLen
,
1490 &hf_opa_PortInfo_PortErrorAction_reserved4
,
1493 static int hf_opa_PortInfo_PassThroughControl_EgressPort
;
1494 static int hf_opa_PortInfo_PassThroughControl_reserved
;
1495 static int hf_opa_PortInfo_PassThroughControl_DRControl
;
1496 static int hf_opa_PortInfo_M_KeyLeasePeriod
;
1497 static int hf_opa_PortInfo_BufferUnits_reserved
;
1498 static int hf_opa_PortInfo_BufferUnits_VL15Init
;
1499 static int hf_opa_PortInfo_BufferUnits_VL15CreditRate
;
1500 static int hf_opa_PortInfo_BufferUnits_CreditAck
;
1501 static int hf_opa_PortInfo_BufferUnits_BufferAlloc
;
1502 static int hf_opa_PortInfo_MasterSMLID
;
1503 static int hf_opa_PortInfo_M_Key
;
1504 static int hf_opa_PortInfo_SubnetPrefix
;
1505 static int hf_opa_PortInfo_VL1
;
1506 static int hf_opa_PortInfo_VL2
;
1507 static int hf_opa_PortInfo_XmitQ_VLStallCount
;
1508 static int hf_opa_PortInfo_XmitQ_HOQLife
;
1509 static int hf_opa_PortInfo_IPAddrIPv6
;
1510 static int hf_opa_PortInfo_IPAddrIPv4
;
1511 static int hf_opa_PortInfo_NeighborNodeGUID
;
1512 static int hf_opa_PortInfo_CapabilityMask
;
1513 static int hf_opa_PortInfo_CapabilityMask_reserved
;
1514 static int hf_opa_PortInfo_CapabilityMask_IsCapabilityMaskNoticeSupported
;
1515 static int hf_opa_PortInfo_CapabilityMask_reserved2
;
1516 static int hf_opa_PortInfo_CapabilityMask_IsVendorClassSupported
;
1517 static int hf_opa_PortInfo_CapabilityMask_IsDeviceManagementSupported
;
1518 static int hf_opa_PortInfo_CapabilityMask_reserved3
;
1519 static int hf_opa_PortInfo_CapabilityMask_IsConnectionManagementSupported
;
1520 static int hf_opa_PortInfo_CapabilityMask_reserved4
;
1521 static int hf_opa_PortInfo_CapabilityMask_IsAutomaticMigrationSupported
;
1522 static int hf_opa_PortInfo_CapabilityMask_reserved5
;
1523 static int hf_opa_PortInfo_CapabilityMask_IsSM
;
1524 static int hf_opa_PortInfo_CapabilityMask_reserved6
;
1525 static int * const _PortInfo_CapabilityMask
[] = {
1526 &hf_opa_PortInfo_CapabilityMask_reserved
,
1527 &hf_opa_PortInfo_CapabilityMask_IsCapabilityMaskNoticeSupported
,
1528 &hf_opa_PortInfo_CapabilityMask_reserved2
,
1529 &hf_opa_PortInfo_CapabilityMask_IsVendorClassSupported
,
1530 &hf_opa_PortInfo_CapabilityMask_IsDeviceManagementSupported
,
1531 &hf_opa_PortInfo_CapabilityMask_reserved3
,
1532 &hf_opa_PortInfo_CapabilityMask_IsConnectionManagementSupported
,
1533 &hf_opa_PortInfo_CapabilityMask_reserved4
,
1534 &hf_opa_PortInfo_CapabilityMask_IsAutomaticMigrationSupported
,
1535 &hf_opa_PortInfo_CapabilityMask_reserved5
,
1536 &hf_opa_PortInfo_CapabilityMask_IsSM
,
1537 &hf_opa_PortInfo_CapabilityMask_reserved6
,
1540 static int hf_opa_PortInfo_CapabilityMask3
;
1541 static int hf_opa_PortInfo_CapabilityMask3_reserved
;
1542 static int hf_opa_PortInfo_CapabilityMask3_IsSnoopSupported
;
1543 static int hf_opa_PortInfo_CapabilityMask3_IsAsyncSCtoVLSupported
;
1544 static int hf_opa_PortInfo_CapabilityMask3_IsAddrRangeConfigSupported
;
1545 static int hf_opa_PortInfo_CapabilityMask3_IsPassThroughSupported
;
1546 static int hf_opa_PortInfo_CapabilityMask3_IsSharedSpaceSupported
;
1547 static int hf_opa_PortInfo_CapabilityMask3_reserved2
;
1548 static int hf_opa_PortInfo_CapabilityMask3_IsVLMarkerSupported
;
1549 static int hf_opa_PortInfo_CapabilityMask3_IsVLrSupported
;
1550 static int * const _PortInfo_CapabilityMask3
[] = {
1551 &hf_opa_PortInfo_CapabilityMask3_reserved
,
1552 &hf_opa_PortInfo_CapabilityMask3_IsSnoopSupported
,
1553 &hf_opa_PortInfo_CapabilityMask3_IsAsyncSCtoVLSupported
,
1554 &hf_opa_PortInfo_CapabilityMask3_IsAddrRangeConfigSupported
,
1555 &hf_opa_PortInfo_CapabilityMask3_IsPassThroughSupported
,
1556 &hf_opa_PortInfo_CapabilityMask3_IsSharedSpaceSupported
,
1557 &hf_opa_PortInfo_CapabilityMask3_reserved2
,
1558 &hf_opa_PortInfo_CapabilityMask3_IsVLMarkerSupported
,
1559 &hf_opa_PortInfo_CapabilityMask3_IsVLrSupported
,
1562 static int hf_opa_PortInfo_OverallBufferSpace
;
1563 static int hf_opa_PortInfo_DiagCode
;
1564 static int hf_opa_PortInfo_ReplayDepth_BufferDepth
;
1565 static int hf_opa_PortInfo_ReplayDepth_WireDepth
;
1566 static int hf_opa_PortInfo_PortNeighborMode_reserved
;
1567 static int hf_opa_PortInfo_PortNeighborMode_MgmtAllowed
;
1568 static int hf_opa_PortInfo_PortNeighborMode_NeighborFWAuthenBypass
;
1569 static int hf_opa_PortInfo_PortNeighborMode_NeighborNodeType
;
1570 static int hf_opa_PortInfo_MTU_reserved
;
1571 static int hf_opa_PortInfo_MTU_Cap
;
1572 static int hf_opa_PortInfo_Resp_reserved
;
1573 static int hf_opa_PortInfo_Resp_TimeValue
;
1574 static int hf_opa_PortInfo_LocalPortNum
;
1575 static int hf_opa_PortStates
;
1576 static int hf_opa_PortStates_reserved
;
1577 static int hf_opa_PortStates_LEDEnabled
;
1578 static int hf_opa_PortStates_IsSMConfigurationStarted
;
1579 static int hf_opa_PortStates_NeighborNormal
;
1580 static int hf_opa_PortStates_OfflineDisabledReason
;
1581 static int hf_opa_PortStates_PortUnsleepState
;
1582 static int hf_opa_PortStates_DownDefaultState
;
1583 static int hf_opa_PortStates_PortPhysicalState
;
1584 static int hf_opa_PortStates_PortState
;
1585 static int * const _PortStates
[] = {
1586 &hf_opa_PortStates_reserved
,
1587 &hf_opa_PortStates_LEDEnabled
,
1588 &hf_opa_PortStates_IsSMConfigurationStarted
,
1589 &hf_opa_PortStates_NeighborNormal
,
1590 &hf_opa_PortStates_OfflineDisabledReason
,
1591 &hf_opa_PortStates_PortUnsleepState
,
1592 &hf_opa_PortStates_DownDefaultState
,
1593 &hf_opa_PortStates_PortPhysicalState
,
1594 &hf_opa_PortStates_PortState
,
1597 static int hf_opa_PortStates_LinkWidthDowngradeTxActive
;
1598 static int hf_opa_PortStates_LinkWidthDowngradeRxActive
;
1599 static int hf_opa_P_KeyTable
;
1600 static int hf_opa_P_KeyTable_MembershipType
;
1601 static int hf_opa_P_KeyTable_P_KeyBase
;
1602 static int hf_opa_SLtoSCMappingTable
;
1603 static int hf_opa_SLtoSCMappingTable_SLtoSC_HighBits
;
1604 static int hf_opa_SLtoSCMappingTable_SLtoSC_LowBits
;
1605 static int hf_opa_SCtoSCMappingTable
;
1606 static int hf_opa_SCtoSCMappingTable_SCtoSC_HighBits
;
1607 static int hf_opa_SCtoSCMappingTable_SCtoSC_LowBits
;
1608 static int hf_opa_SCtoSLMappingTable
;
1609 static int hf_opa_SCtoSLMappingTable_SCtoSL_HighBits
;
1610 static int hf_opa_SCtoSLMappingTable_SCtoSL_LowBits
;
1611 static int hf_opa_SCtoVLxMappingTable
;
1612 static int hf_opa_SCtoVLxMappingTable_SCtoVLx_HighBits
;
1613 static int hf_opa_SCtoVLxMappingTable_SCtoVLx_LowBits
;
1614 static int hf_opa_VLArbitrationTable
;
1615 static int hf_opa_VLArbitrationTable_reserved
;
1616 static int hf_opa_VLArbitrationTable_VL
;
1617 static int hf_opa_VLArbitrationTable_Weight
;
1618 static int hf_opa_VLArbitrationTable_Matrix
;
1619 static int hf_opa_LinearForwardingTable
;
1620 static int hf_opa_LinearForwardingTable_Port
;
1621 static int hf_opa_MulticastForwardingTable
;
1622 static int hf_opa_MulticastForwardingTable_PortMask
;
1623 static int hf_opa_PortGroupForwardingTable
;
1624 static int hf_opa_PortGroupForwardingTable_Port
;
1625 static int hf_opa_PortGroupTable
;
1626 static int hf_opa_PortGroupTable_PortMask
;
1627 static int hf_opa_SMInfo
;
1628 static int hf_opa_SMInfo_GUID
;
1629 static int hf_opa_SMInfo_SM_Key
;
1630 static int hf_opa_SMInfo_ActCount
;
1631 static int hf_opa_SMInfo_ElapsedTime
;
1632 static int hf_opa_SMInfo_Priority
;
1633 static int hf_opa_SMInfo_ElevatedPriority
;
1634 static int hf_opa_SMInfo_InitialPriority
;
1635 static int hf_opa_SMInfo_SMState
;
1636 static int hf_opa_LedInfo
;
1637 static int hf_opa_LedInfo_LedMask
;
1638 static int hf_opa_LedInfo_reserved
;
1639 static int hf_opa_CableInfo
;
1640 static int hf_opa_CableInfo_Data
;
1641 static int hf_opa_CableInfo_DataStream
;
1642 static int hf_opa_Aggregate
;
1643 static int hf_opa_Aggregate_AttributeID
;
1644 static int hf_opa_Aggregate_Error
;
1645 static int hf_opa_Aggregate_RequestLength
;
1646 static int hf_opa_BufferControlTable
;
1647 static int hf_opa_BufferControlTable_TxOverallSharedLimit
;
1648 static int hf_opa_BufferControlTable_TxDedicatedLimit
;
1649 static int hf_opa_BufferControlTable_TxSharedLimit
;
1650 static int hf_opa_CongestionInfo
;
1651 static int hf_opa_CongestionInfo_CongestionInfo
;
1652 static int hf_opa_CongestionInfo_ControlTableCap
;
1653 static int hf_opa_CongestionInfo_CongestionLogLength
;
1654 static int hf_opa_SwitchCongestionLog
;
1655 static int hf_opa_SwitchCongestionLog_LogType
;
1656 static int hf_opa_SwitchCongestionLog_CongestionFlags
;
1657 static int hf_opa_SwitchCongestionLog_LogEventsCounter
;
1658 static int hf_opa_SwitchCongestionLog_CurrentTimeStamp
;
1659 static int hf_opa_SwitchCongestionLog_PortMap
;
1660 static int hf_opa_SwitchCongestionLog_SLID
;
1661 static int hf_opa_SwitchCongestionLog_DLID
;
1662 static int hf_opa_SwitchCongestionLog_SC
;
1663 static int hf_opa_SwitchCongestionLog_reserved
;
1664 static int hf_opa_SwitchCongestionLog_TimeStamp
;
1665 static int hf_opa_SwitchCongestionSetting
;
1666 static int hf_opa_SwitchCongestionSetting_Control_Map
;
1667 static int hf_opa_SwitchCongestionSetting_Victim_Mask
;
1668 static int hf_opa_SwitchCongestionSetting_Credit_Mask
;
1669 static int hf_opa_SwitchCongestionSetting_Threshold
;
1670 static int hf_opa_SwitchCongestionSetting_reserved1
;
1671 static int hf_opa_SwitchCongestionSetting_Packet_Size
;
1672 static int hf_opa_SwitchCongestionSetting_CS_Threshold
;
1673 static int hf_opa_SwitchCongestionSetting_reserved2
;
1674 static int hf_opa_SwitchCongestionSetting_CS_ReturnDelay
;
1675 static int hf_opa_SwitchCongestionSetting_Marking_Rate
;
1676 static int hf_opa_SwitchPortCongestionSetting
;
1677 static int hf_opa_SwitchPortCongestionSetting_Valid
;
1678 static int hf_opa_SwitchPortCongestionSetting_Control_Type
;
1679 static int hf_opa_SwitchPortCongestionSetting_reserved
;
1680 static int hf_opa_SwitchPortCongestionSetting_Threshold
;
1681 static int hf_opa_SwitchPortCongestionSetting_Packet_Size
;
1682 static int hf_opa_SwitchPortCongestionSetting_Marking_Rate
;
1683 static int hf_opa_HFICongestionLog
;
1684 static int hf_opa_HFICongestionLog_LogType
;
1685 static int hf_opa_HFICongestionLog_CongestionFlags
;
1686 static int hf_opa_HFICongestionLog_ThresholdEventCounter
;
1687 static int hf_opa_HFICongestionLog_CurrentTimeStamp
;
1688 static int hf_opa_HFICongestionLog_ThresholdCongestionEventMap
;
1689 static int hf_opa_HFICongestionLog_Local_QP_CN_Entry
;
1690 static int hf_opa_HFICongestionLog_Remote_QP_Number_CN_Entry
;
1691 static int hf_opa_HFICongestionLog_SL_CN_Entry
;
1692 static int hf_opa_HFICongestionLog_Service_Type_CN_Entry
;
1693 static int hf_opa_HFICongestionLog_Remote_LID_CN_Entry
;
1694 static int hf_opa_HFICongestionLog_TimeStamp_CN_Entry
;
1695 static int hf_opa_HFICongestionSetting
;
1696 static int hf_opa_HFICongestionSetting_Control_Map
;
1697 static int hf_opa_HFICongestionSetting_Port_Control
;
1698 static int hf_opa_HFICongestionSetting_CCTI_Increase
;
1699 static int hf_opa_HFICongestionSetting_CCTI_Timer
;
1700 static int hf_opa_HFICongestionSetting_TriggerThreshold
;
1701 static int hf_opa_HFICongestionSetting_CCTI_Min
;
1702 static int hf_opa_HFICongestionControlTable
;
1703 static int hf_opa_HFICongestionControlTable_CCTI_Limit
;
1704 static int hf_opa_HFICongestionControlTable_CCT_Shift
;
1705 static int hf_opa_HFICongestionControlTable_CCT_Multiplier
;
1707 static int hf_opa_PortInfoRecord_LinkDownReason_NeighborLinkDownReason
;
1708 static int hf_opa_PortInfoRecord_LinkDownReason_LinkDownReason
;
1709 static int hf_opa_PortInfoRecord_LinkDownReason_Timestamp
;
1710 static int hf_opa_LinkRecord
;
1711 static int hf_opa_LinkRecord_ToPort
;
1712 static int hf_opa_LinkRecord_ToLID
;
1713 static int hf_opa_ServiceRecord
;
1714 static int hf_opa_ServiceRecord_ServiceLease
;
1715 static int hf_opa_ServiceRecord_ServiceKey
;
1716 static int hf_opa_ServiceRecord_ServiceName
;
1717 static int hf_opa_ServiceRecord_ServiceData
;
1718 static int hf_opa_ServiceAssociationRecord_ServiceKey
;
1719 static int hf_opa_ServiceAssociationRecord_ServiceName
;
1720 static int hf_opa_PathRecord
;
1721 static int hf_opa_PathRecord_DGID
;
1722 static int hf_opa_PathRecord_SGID
;
1723 static int hf_opa_PathRecord_DLID
;
1724 static int hf_opa_PathRecord_SLID
;
1725 static int hf_opa_PathRecord_RawTraffic
;
1726 static int hf_opa_PathRecord_reserved
;
1727 static int hf_opa_PathRecord_FlowLabel
;
1728 static int hf_opa_PathRecord_HopLimit
;
1729 static int hf_opa_PathRecord_TClass
;
1730 static int hf_opa_PathRecord_Reversible
;
1731 static int hf_opa_PathRecord_NumbPath
;
1732 static int hf_opa_PathRecord_P_Key
;
1733 static int hf_opa_PathRecord_QosType
;
1734 static int hf_opa_PathRecord_reserved2
;
1735 static int hf_opa_PathRecord_QosPriority
;
1736 static int hf_opa_PathRecord_SL
;
1737 static int hf_opa_PathRecord_MTUSelector
;
1738 static int hf_opa_PathRecord_MTU
;
1739 static int hf_opa_PathRecord_RateSelector
;
1740 static int hf_opa_PathRecord_Rate
;
1741 static int hf_opa_PathRecord_PacketLifeTimeSelector
;
1742 static int hf_opa_PathRecord_PacketLifeTime
;
1743 static int hf_opa_PathRecord_Preference
;
1744 static int hf_opa_MCMemberRecord
;
1745 static int hf_opa_MCMemberRecord_Q_Key
;
1746 static int hf_opa_MCMemberRecord_MLID
;
1747 static int hf_opa_MCMemberRecord_MTUSelector
;
1748 static int hf_opa_MCMemberRecord_MTU
;
1749 static int hf_opa_MCMemberRecord_TClass
;
1750 static int hf_opa_MCMemberRecord_P_Key
;
1751 static int hf_opa_MCMemberRecord_RateSelector
;
1752 static int hf_opa_MCMemberRecord_Rate
;
1753 static int hf_opa_MCMemberRecord_PacketLifeTimeSelector
;
1754 static int hf_opa_MCMemberRecord_PacketLifeTime
;
1755 static int hf_opa_MCMemberRecord_SL
;
1756 static int hf_opa_MCMemberRecord_reserved
;
1757 static int hf_opa_MCMemberRecord_HopLimit
;
1758 static int hf_opa_MCMemberRecord_Scope
;
1759 static int hf_opa_MCMemberRecord_reserved2
;
1760 static int hf_opa_MCMemberRecord_JoinSendOnlyMember
;
1761 static int hf_opa_MCMemberRecord_JoinNonMember
;
1762 static int hf_opa_MCMemberRecord_JoinFullMember
;
1763 static int hf_opa_MCMemberRecord_ProxyJoin
;
1764 static int hf_opa_MCMemberRecord_reserved3
;
1765 static int hf_opa_TraceRecord
;
1766 static int hf_opa_TraceRecord_IDGeneration
;
1767 static int hf_opa_TraceRecord_NodeType
;
1768 static int hf_opa_TraceRecord_NodeID
;
1769 static int hf_opa_TraceRecord_ChassisID
;
1770 static int hf_opa_TraceRecord_EntryPortID
;
1771 static int hf_opa_TraceRecord_ExitPortID
;
1772 static int hf_opa_TraceRecord_EntryPort
;
1773 static int hf_opa_TraceRecord_ExitPort
;
1774 static int hf_opa_MultiPathRecord
;
1775 static int hf_opa_MultiPathRecord_reserved
;
1776 static int hf_opa_MultiPathRecord_FlowLabel
;
1777 static int hf_opa_MultiPathRecord_HopLimit
;
1778 static int hf_opa_MultiPathRecord_TClass
;
1779 static int hf_opa_MultiPathRecord_Reversible
;
1780 static int hf_opa_MultiPathRecord_NumbPath
;
1781 static int hf_opa_MultiPathRecord_P_Key
;
1782 static int hf_opa_MultiPathRecord_QoSType
;
1783 static int hf_opa_MultiPathRecord_QoSPriority
;
1784 static int hf_opa_MultiPathRecord_reserved2
;
1785 static int hf_opa_MultiPathRecord_SL
;
1786 static int hf_opa_MultiPathRecord_MTUSelector
;
1787 static int hf_opa_MultiPathRecord_MTU
;
1788 static int hf_opa_MultiPathRecord_RateSelector
;
1789 static int hf_opa_MultiPathRecord_Rate
;
1790 static int hf_opa_MultiPathRecord_PacketLifeTimeSelector
;
1791 static int hf_opa_MultiPathRecord_PacketLifeTime
;
1792 static int hf_opa_MultiPathRecord_IndependenceSelector
;
1793 static int hf_opa_MultiPathRecord_SGIDScope
;
1794 static int hf_opa_MultiPathRecord_DGIDScope
;
1795 static int hf_opa_MultiPathRecord_SGIDCount
;
1796 static int hf_opa_MultiPathRecord_DGIDCount
;
1797 static int hf_opa_MultiPathRecord_SGID
;
1798 static int hf_opa_MultiPathRecord_DGID
;
1799 static int hf_opa_MultiPathRecord_L2_8B
;
1800 static int hf_opa_MultiPathRecord_L2_10B
;
1801 static int hf_opa_MultiPathRecord_L2_9B
;
1802 static int hf_opa_MultiPathRecord_L2_16B
;
1803 static int hf_opa_MultiPathRecord_reserved3
;
1804 static int hf_opa_MultiPathRecord_SGUIDScope
;
1805 static int hf_opa_MultiPathRecord_DGUIDScope
;
1806 static int hf_opa_MultiPathRecord_SGUIDCount
;
1807 static int hf_opa_MultiPathRecord_DGUIDCount
;
1808 static int hf_opa_MultiPathRecord_SGUID
;
1809 static int hf_opa_MultiPathRecord_DGUID
;
1810 static int hf_opa_MultiPathRecord_ServiceID
;
1811 static int hf_opa_MultiPathRecord_SubnetPrefix
;
1812 static int hf_opa_MultiPathRecord_SLIDCount
;
1813 static int hf_opa_MultiPathRecord_DLIDCount
;
1814 static int hf_opa_MultiPathRecord_SLID
;
1815 static int hf_opa_MultiPathRecord_DLID
;
1816 static int hf_opa_CableInfoRecord
;
1817 static int hf_opa_CableInfoRecord_Lid
;
1818 static int hf_opa_CableInfoRecord_Port
;
1819 static int hf_opa_CableInfoRecord_Length
;
1820 static int hf_opa_CableInfoRecord_reserved
;
1821 static int hf_opa_CableInfoRecord_Address
;
1822 static int hf_opa_CableInfoRecord_PortType
;
1823 static int hf_opa_CableInfoRecord_Data
;
1824 static int hf_opa_VFInfoRecord
;
1825 static int hf_opa_VFInfoRecord_vfIndex
;
1826 static int hf_opa_VFInfoRecord_pKey
;
1827 static int hf_opa_VFInfoRecord_vfName
;
1828 static int hf_opa_VFInfoRecord_MGID
;
1829 static int hf_opa_VFInfoRecord_SelectFlags
;
1830 static int hf_opa_VFInfoRecord_reserved
;
1831 static int hf_opa_VFInfoRecord_SL
;
1832 static int hf_opa_VFInfoRecord_MTUSpecified
;
1833 static int hf_opa_VFInfoRecord_reserved2
;
1834 static int hf_opa_VFInfoRecord_MTU
;
1835 static int hf_opa_VFInfoRecord_RateSpecified
;
1836 static int hf_opa_VFInfoRecord_reserved4
;
1837 static int hf_opa_VFInfoRecord_Rate
;
1838 static int hf_opa_VFInfoRecord_PktLifeSpecified
;
1839 static int hf_opa_VFInfoRecord_reserved5
;
1840 static int hf_opa_VFInfoRecord_PktLifeTimeInc
;
1841 static int hf_opa_VFInfoRecord_OptionFlags
;
1842 static int hf_opa_VFInfoRecord_BandwidthPercent
;
1843 static int hf_opa_VFInfoRecord_reserved6
;
1844 static int hf_opa_VFInfoRecord_Priority
;
1845 static int hf_opa_VFInfoRecord_RoutingSLs
;
1846 static int hf_opa_VFInfoRecord_reserved7
;
1847 static int hf_opa_QuarantinedNodeRecord
;
1848 static int hf_opa_QuarantinedNodeRecord_TrustedLid
;
1849 static int hf_opa_QuarantinedNodeRecord_TrustedNodeGUID
;
1850 static int hf_opa_QuarantinedNodeRecord_TrustedPortNum
;
1851 static int hf_opa_QuarantinedNodeRecord_TrustedNeighborNodeGUID
;
1852 static int hf_opa_QuarantinedNodeRecord_QuarantineReasons
;
1853 static int hf_opa_QuarantinedNodeRecord_ExpectedNodeDesc
;
1854 static int hf_opa_QuarantinedNodeRecord_ExpectedNodeGUID
;
1855 static int hf_opa_QuarantinedNodeRecord_ExpectedPortGUID
;
1856 static int hf_opa_FabricInfoRecord
;
1857 static int hf_opa_FabricInfoRecord_NumHFIs
;
1858 static int hf_opa_FabricInfoRecord_NumSwitches
;
1859 static int hf_opa_FabricInfoRecord_NumInternalHFILinks
;
1860 static int hf_opa_FabricInfoRecord_NumExternalHFILinks
;
1861 static int hf_opa_FabricInfoRecord_NumInternalISLs
;
1862 static int hf_opa_FabricInfoRecord_NumExternalISLs
;
1863 static int hf_opa_FabricInfoRecord_NumDegradedHFILinks
;
1864 static int hf_opa_FabricInfoRecord_NumDegradedISLs
;
1865 static int hf_opa_FabricInfoRecord_NumOmittedHFILinks
;
1866 static int hf_opa_FabricInfoRecord_NumOmittedISLs
;
1867 static int hf_opa_FabricInfoRecord_Reserved
;
1869 static int hf_opa_PortStatus
;
1870 static int hf_opa_PortStatus_PortNumber
;
1871 static int hf_opa_PortStatus_VLSelectMask
;
1872 static int hf_opa_PortStatus_PortXmitData
;
1873 static int hf_opa_PortStatus_PortRcvData
;
1874 static int hf_opa_PortStatus_PortXmitPkts
;
1875 static int hf_opa_PortStatus_PortRcvPkts
;
1876 static int hf_opa_PortStatus_PortMulticastXmitPkts
;
1877 static int hf_opa_PortStatus_PortMulticastRcvPkts
;
1878 static int hf_opa_PortStatus_PortXmitWait
;
1879 static int hf_opa_PortStatus_SwPortCongestion
;
1880 static int hf_opa_PortStatus_PortRcvFECN
;
1881 static int hf_opa_PortStatus_PortRcvBECN
;
1882 static int hf_opa_PortStatus_PortXmitTimeCong
;
1883 static int hf_opa_PortStatus_PortXmitWastedBW
;
1884 static int hf_opa_PortStatus_PortXmitWaitData
;
1885 static int hf_opa_PortStatus_PortRcvBubble
;
1886 static int hf_opa_PortStatus_PortMarkFECN
;
1887 static int hf_opa_PortStatus_PortRcvConstraintErrors
;
1888 static int hf_opa_PortStatus_PortRcvSwitchRelayErrors
;
1889 static int hf_opa_PortStatus_PortXmitDiscards
;
1890 static int hf_opa_PortStatus_PortXmitConstraintErrors
;
1891 static int hf_opa_PortStatus_PortRcvRemotePhysicalErrors
;
1892 static int hf_opa_PortStatus_LocalLinkIntegrityErrors
;
1893 static int hf_opa_PortStatus_PortRcvErrors
;
1894 static int hf_opa_PortStatus_ExcessiveBufferOverruns
;
1895 static int hf_opa_PortStatus_FMConfigErrors
;
1896 static int hf_opa_PortStatus_LinkErrorRecovery
;
1897 static int hf_opa_PortStatus_LinkDowned
;
1898 static int hf_opa_PortStatus_UncorrectableErrors
;
1899 static int hf_opa_PortStatus_reserved
;
1900 static int hf_opa_PortStatus_LinkQualityIndicator
;
1901 static int hf_opa_PortStatus_PortVLXmitData
;
1902 static int hf_opa_PortStatus_PortVLRcvData
;
1903 static int hf_opa_PortStatus_PortVLXmitPkts
;
1904 static int hf_opa_PortStatus_PortVLRcvPkts
;
1905 static int hf_opa_PortStatus_PortVLXmitWait
;
1906 static int hf_opa_PortStatus_SwPortVLCongestion
;
1907 static int hf_opa_PortStatus_PortVLRcvFECN
;
1908 static int hf_opa_PortStatus_PortVLRcvBECN
;
1909 static int hf_opa_PortStatus_PortVLXmitTimeCong
;
1910 static int hf_opa_PortStatus_PortVLXmitWastedBW
;
1911 static int hf_opa_PortStatus_PortVLXmitWaitData
;
1912 static int hf_opa_PortStatus_PortVLRcvBubble
;
1913 static int hf_opa_PortStatus_PortVLMarkFECN
;
1914 static int hf_opa_PortStatus_PortVLXmitDiscards
;
1915 static int hf_opa_ClearPortStatus
;
1916 static int hf_opa_ClearPortStatus_PortSelectMask
;
1917 static int hf_opa_ClearPortStatus_PortXmitData
;
1918 static int hf_opa_ClearPortStatus_PortRcvData
;
1919 static int hf_opa_ClearPortStatus_PortXmitPkts
;
1920 static int hf_opa_ClearPortStatus_PortRcvPkts
;
1921 static int hf_opa_ClearPortStatus_PortMulticastXmitPkts
;
1922 static int hf_opa_ClearPortStatus_PortMulticastRcvPkts
;
1923 static int hf_opa_ClearPortStatus_PortXmitWait
;
1924 static int hf_opa_ClearPortStatus_SwPortCongestion
;
1925 static int hf_opa_ClearPortStatus_PortRcvFECN
;
1926 static int hf_opa_ClearPortStatus_PortRcvBECN
;
1927 static int hf_opa_ClearPortStatus_PortXmitTimeCong
;
1928 static int hf_opa_ClearPortStatus_PortXmitWastedBW
;
1929 static int hf_opa_ClearPortStatus_PortXmitWaitData
;
1930 static int hf_opa_ClearPortStatus_PortRcvBubble
;
1931 static int hf_opa_ClearPortStatus_PortMarkFECN
;
1932 static int hf_opa_ClearPortStatus_PortRcvConstraintErrors
;
1933 static int hf_opa_ClearPortStatus_PortRcvSwitchRelayErrors
;
1934 static int hf_opa_ClearPortStatus_PortXmitDiscards
;
1935 static int hf_opa_ClearPortStatus_PortXmitConstraintErrors
;
1936 static int hf_opa_ClearPortStatus_PortRcvRemotePhysicalErrors
;
1937 static int hf_opa_ClearPortStatus_LocalLinkIntegrityErrors
;
1938 static int hf_opa_ClearPortStatus_PortRcvErrors
;
1939 static int hf_opa_ClearPortStatus_ExcessiveBufferOverruns
;
1940 static int hf_opa_ClearPortStatus_FMConfigErrors
;
1941 static int hf_opa_ClearPortStatus_LinkErrorRecovery
;
1942 static int hf_opa_ClearPortStatus_LinkDowned
;
1943 static int hf_opa_ClearPortStatus_UncorrectableErrors
;
1944 static int hf_opa_ClearPortStatus_reserved
;
1945 static int hf_opa_ClearPortStatus_CounterSelectMask
;
1946 static int * const _ClearPortStatus_CounterSelectMask
[] = {
1947 &hf_opa_ClearPortStatus_PortXmitData
,
1948 &hf_opa_ClearPortStatus_PortRcvData
,
1949 &hf_opa_ClearPortStatus_PortXmitPkts
,
1950 &hf_opa_ClearPortStatus_PortRcvPkts
,
1951 &hf_opa_ClearPortStatus_PortMulticastXmitPkts
,
1952 &hf_opa_ClearPortStatus_PortMulticastRcvPkts
,
1953 &hf_opa_ClearPortStatus_PortXmitWait
,
1954 &hf_opa_ClearPortStatus_SwPortCongestion
,
1955 &hf_opa_ClearPortStatus_PortRcvFECN
,
1956 &hf_opa_ClearPortStatus_PortRcvBECN
,
1957 &hf_opa_ClearPortStatus_PortXmitTimeCong
,
1958 &hf_opa_ClearPortStatus_PortXmitWastedBW
,
1959 &hf_opa_ClearPortStatus_PortXmitWaitData
,
1960 &hf_opa_ClearPortStatus_PortRcvBubble
,
1961 &hf_opa_ClearPortStatus_PortMarkFECN
,
1962 &hf_opa_ClearPortStatus_PortRcvConstraintErrors
,
1963 &hf_opa_ClearPortStatus_PortRcvSwitchRelayErrors
,
1964 &hf_opa_ClearPortStatus_PortXmitDiscards
,
1965 &hf_opa_ClearPortStatus_PortXmitConstraintErrors
,
1966 &hf_opa_ClearPortStatus_PortRcvRemotePhysicalErrors
,
1967 &hf_opa_ClearPortStatus_LocalLinkIntegrityErrors
,
1968 &hf_opa_ClearPortStatus_PortRcvErrors
,
1969 &hf_opa_ClearPortStatus_ExcessiveBufferOverruns
,
1970 &hf_opa_ClearPortStatus_FMConfigErrors
,
1971 &hf_opa_ClearPortStatus_LinkErrorRecovery
,
1972 &hf_opa_ClearPortStatus_LinkDowned
,
1973 &hf_opa_ClearPortStatus_UncorrectableErrors
,
1974 &hf_opa_ClearPortStatus_reserved
,
1977 static int hf_opa_DataPortCounters
;
1978 static int hf_opa_DataPortCounters_PortSelectMask
;
1979 static int hf_opa_DataPortCounters_VLSelectMask
;
1980 static int hf_opa_DataPortCounters_resolution_reserved
;
1981 static int hf_opa_DataPortCounters_LocalLinkIntegrityResolution
;
1982 static int hf_opa_DataPortCounters_LinkErrorRecoveryResolution
;
1983 static int hf_opa_DataPortCounters_PortNumber
;
1984 static int hf_opa_DataPortCounters_lqi_reserved
;
1985 static int hf_opa_DataPortCounters_LinkQualityIndicator
;
1986 static int hf_opa_DataPortCounters_PortXmitData
;
1987 static int hf_opa_DataPortCounters_PortRcvData
;
1988 static int hf_opa_DataPortCounters_PortXmitPkts
;
1989 static int hf_opa_DataPortCounters_PortRcvPkts
;
1990 static int hf_opa_DataPortCounters_PortMulticastXmitPkts
;
1991 static int hf_opa_DataPortCounters_PortMulticastRcvPkts
;
1992 static int hf_opa_DataPortCounters_PortXmitWait
;
1993 static int hf_opa_DataPortCounters_SwPortCongestion
;
1994 static int hf_opa_DataPortCounters_PortRcvFECN
;
1995 static int hf_opa_DataPortCounters_PortRcvBECN
;
1996 static int hf_opa_DataPortCounters_PortXmitTimeCong
;
1997 static int hf_opa_DataPortCounters_PortXmitWastedBW
;
1998 static int hf_opa_DataPortCounters_PortXmitWaitData
;
1999 static int hf_opa_DataPortCounters_PortRcvBubble
;
2000 static int hf_opa_DataPortCounters_PortMarkFECN
;
2001 static int hf_opa_DataPortCounters_PortErrorCounterSummary
;
2002 static int hf_opa_DataPortCounters_PortVLXmitData
;
2003 static int hf_opa_DataPortCounters_PortVLRcvData
;
2004 static int hf_opa_DataPortCounters_PortVLXmitPkts
;
2005 static int hf_opa_DataPortCounters_PortVLRcvPkts
;
2006 static int hf_opa_DataPortCounters_PortVLXmitWait
;
2007 static int hf_opa_DataPortCounters_SwPortVLCongestion
;
2008 static int hf_opa_DataPortCounters_PortVLRcvFECN
;
2009 static int hf_opa_DataPortCounters_PortVLRcvBECN
;
2010 static int hf_opa_DataPortCounters_PortVLXmitTimeCong
;
2011 static int hf_opa_DataPortCounters_PortVLXmitWastedBW
;
2012 static int hf_opa_DataPortCounters_PortVLXmitWaitData
;
2013 static int hf_opa_DataPortCounters_PortVLRcvBubble
;
2014 static int hf_opa_DataPortCounters_PortVLMarkFECN
;
2015 static int hf_opa_ErrorPortCounters
;
2016 static int hf_opa_ErrorPortCounters_PortSelectMask
;
2017 static int hf_opa_ErrorPortCounters_VLSelectMask
;
2018 static int hf_opa_ErrorPortCounters_PortNumber
;
2019 static int hf_opa_ErrorPortCounters_PortRcvConstraintErrors
;
2020 static int hf_opa_ErrorPortCounters_PortRcvSwitchRelayErrors
;
2021 static int hf_opa_ErrorPortCounters_PortXmitDiscards
;
2022 static int hf_opa_ErrorPortCounters_PortXmitConstraintErrors
;
2023 static int hf_opa_ErrorPortCounters_PortRcvRemotePhysicalErrors
;
2024 static int hf_opa_ErrorPortCounters_LocalLinkIntegrityErrors
;
2025 static int hf_opa_ErrorPortCounters_PortRcvErrors
;
2026 static int hf_opa_ErrorPortCounters_ExcessiveBufferOverruns
;
2027 static int hf_opa_ErrorPortCounters_FMConfigErrors
;
2028 static int hf_opa_ErrorPortCounters_LinkErrorRecovery
;
2029 static int hf_opa_ErrorPortCounters_LinkDowned
;
2030 static int hf_opa_ErrorPortCounters_UncorrectableErrors
;
2031 static int hf_opa_ErrorPortCounters_PortVLXmitDiscards
;
2032 static int hf_opa_ErrorPortInfo
;
2033 static int hf_opa_ErrorPortInfo_PortSelectMask
;
2034 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvErrorInfo
;
2035 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_ExcessiveBufferOverrunInfo
;
2036 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortXmitConstraintErrorInfo
;
2037 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvConstraintErrorInfo
;
2038 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvSwitchRelayErrorInfo
;
2039 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_UncorrectableErrorInfo
;
2040 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_FMConfigErrorInfo
;
2041 static int hf_opa_ErrorPortInfo_ErrorInfoSelectMask_reserved
;
2042 static int * const _ErrorPortInfo_ErrorInfoSelectMask
[] = {
2043 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvErrorInfo
,
2044 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_ExcessiveBufferOverrunInfo
,
2045 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortXmitConstraintErrorInfo
,
2046 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvConstraintErrorInfo
,
2047 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvSwitchRelayErrorInfo
,
2048 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_UncorrectableErrorInfo
,
2049 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_FMConfigErrorInfo
,
2050 &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_reserved
,
2053 static int hf_opa_ErrorPortInfo_PortNumber
;
2054 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_Status
;
2055 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved
;
2056 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_ErrorCode
;
2057 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketFlit1
;
2058 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketFlit2
;
2059 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_Flit1Bits
;
2060 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_Flit2Bits
;
2061 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved2
;
2062 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketBytes
;
2063 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_FlitBits
;
2064 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved3
;
2065 static int hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved4
;
2066 static int hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_Status
;
2067 static int hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_SC
;
2068 static int hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_reserved
;
2069 static int hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_Status
;
2070 static int hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_reserved
;
2071 static int hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_P_Key
;
2072 static int hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_SLID
;
2073 static int hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_Status
;
2074 static int hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_reserved
;
2075 static int hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_P_Key
;
2076 static int hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_SLID
;
2077 static int hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_Status
;
2078 static int hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_reserved
;
2079 static int hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_ErrorCode
;
2080 static int hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_DLID
;
2081 static int hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_EgressPortNum
;
2082 static int hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_SC
;
2083 static int hf_opa_ErrorPortInfo_UncorrectableErrorInfo_Status
;
2084 static int hf_opa_ErrorPortInfo_UncorrectableErrorInfo_reserved
;
2085 static int hf_opa_ErrorPortInfo_UncorrectableErrorInfo_ErrorCode
;
2086 static int hf_opa_ErrorPortInfo_FMConfigErrorInfo_Status
;
2087 static int hf_opa_ErrorPortInfo_FMConfigErrorInfo_reserved
;
2088 static int hf_opa_ErrorPortInfo_FMConfigErrorInfo_ErrorCode
;
2089 static int hf_opa_ErrorPortInfo_FMConfigErrorInfo_VL
;
2090 static int hf_opa_ErrorPortInfo_FMConfigErrorInfo_Distance
;
2091 static int hf_opa_ErrorPortInfo_FMConfigErrorInfo_BadFlitBits
;
2092 static int hf_opa_ErrorPortInfo_FMConfigErrorInfo_SC
;
2094 static int hf_opa_ImageID_imageNumber
;
2095 static int hf_opa_ImageID_imageOffset
;
2096 static int hf_opa_GetGroupList
;
2097 static int hf_opa_GetGroupList_groupName
;
2098 static int hf_opa_GetGroupInfo
;
2099 static int hf_opa_GetGroupInfo_groupName
;
2100 static int hf_opa_GetGroupInfo_numInternalPorts
;
2101 static int hf_opa_GetGroupInfo_numExternalPorts
;
2102 static int hf_opa_GetGroupInfo_totalMBps
;
2103 static int hf_opa_GetGroupInfo_totalKPps
;
2104 static int hf_opa_GetGroupInfo_avgMBps
;
2105 static int hf_opa_GetGroupInfo_minMBps
;
2106 static int hf_opa_GetGroupInfo_maxMBps
;
2107 static int hf_opa_GetGroupInfo_numBWBuckets
;
2108 static int hf_opa_GetGroupInfo_BWBuckets
;
2109 static int hf_opa_GetGroupInfo_avgKPps
;
2110 static int hf_opa_GetGroupInfo_minKPps
;
2111 static int hf_opa_GetGroupInfo_maxKPps
;
2112 static int hf_opa_GetGroupInfo_pmaFailedPorts
;
2113 static int hf_opa_GetGroupInfo_topoFailedPorts
;
2114 static int hf_opa_GetGroupInfo_integrityErrors
;
2115 static int hf_opa_GetGroupInfo_congestionErrors
;
2116 static int hf_opa_GetGroupInfo_smaCongestionErrors
;
2117 static int hf_opa_GetGroupInfo_bubbleErrors
;
2118 static int hf_opa_GetGroupInfo_securityErrors
;
2119 static int hf_opa_GetGroupInfo_routingErrors
;
2120 static int hf_opa_GetGroupInfo_utilizationPct10
;
2121 static int hf_opa_GetGroupInfo_discardsPct10
;
2122 static int hf_opa_GetGroupInfo_maxInternalRate
;
2123 static int hf_opa_GetGroupInfo_minInternalRate
;
2124 static int hf_opa_GetGroupInfo_maxExternalRate
;
2125 static int hf_opa_GetGroupInfo_minExternalRate
;
2126 static int hf_opa_GetGroupInfo_maxInternalMBps
;
2127 static int hf_opa_GetGroupInfo_maxExternalMBps
;
2128 static int hf_opa_GetGroupConfig
;
2129 static int hf_opa_GetGroupConfig_groupName
;
2130 static int hf_opa_GetGroupConfig_Port_NodeGUID
;
2131 static int hf_opa_GetGroupConfig_Port_nodeDesc
;
2132 static int hf_opa_GetGroupConfig_Port_NodeLID
;
2133 static int hf_opa_GetGroupConfig_Port_PortNumber
;
2134 static int hf_opa_GetPortCounters
;
2135 static int hf_opa_GetPortCounters_nodeLID
;
2136 static int hf_opa_GetPortCounters_PortNumber
;
2137 static int hf_opa_GetPortCounters_flags
;
2138 static int hf_opa_GetPortCounters_PortXmitData
;
2139 static int hf_opa_GetPortCounters_PortRcvData
;
2140 static int hf_opa_GetPortCounters_PortXmitPkts
;
2141 static int hf_opa_GetPortCounters_PortRcvPkts
;
2142 static int hf_opa_GetPortCounters_PortMulticastXmitPkts
;
2143 static int hf_opa_GetPortCounters_PortMulticastRcvPkts
;
2144 static int hf_opa_GetPortCounters_LocalLinkIntegrityErrors
;
2145 static int hf_opa_GetPortCounters_FMConfigErrors
;
2146 static int hf_opa_GetPortCounters_PortRcvErrors
;
2147 static int hf_opa_GetPortCounters_ExcessiveBufferOverruns
;
2148 static int hf_opa_GetPortCounters_PortRcvConstraintErrors
;
2149 static int hf_opa_GetPortCounters_PortRcvSwitchRelayErrors
;
2150 static int hf_opa_GetPortCounters_PortXmitDiscards
;
2151 static int hf_opa_GetPortCounters_PortXmitConstraintErrors
;
2152 static int hf_opa_GetPortCounters_PortRcvRemotePhysicalErrors
;
2153 static int hf_opa_GetPortCounters_SwPortCongestion
;
2154 static int hf_opa_GetPortCounters_PortXmitWait
;
2155 static int hf_opa_GetPortCounters_PortRcvFECN
;
2156 static int hf_opa_GetPortCounters_PortRcvBECN
;
2157 static int hf_opa_GetPortCounters_PortXmitTimeCong
;
2158 static int hf_opa_GetPortCounters_PortXmitWastedBW
;
2159 static int hf_opa_GetPortCounters_PortXmitWaitData
;
2160 static int hf_opa_GetPortCounters_PortRcvBubble
;
2161 static int hf_opa_GetPortCounters_PortMarkFECN
;
2162 static int hf_opa_GetPortCounters_LinkErrorRecovery
;
2163 static int hf_opa_GetPortCounters_LinkDowned
;
2164 static int hf_opa_GetPortCounters_UncorrectableErrors
;
2165 static int hf_opa_GetPortCounters_NumLanesDown
;
2166 static int hf_opa_GetPortCounters_reserved
;
2167 static int hf_opa_GetPortCounters_LinkQualityIndicator
;
2168 static int hf_opa_ClearPortCounters
;
2169 static int hf_opa_ClearPortCounters_nodeLID
;
2170 static int hf_opa_ClearPortCounters_PortNumber
;
2171 static int hf_opa_ClearPortCounters_PortXmitData
;
2172 static int hf_opa_ClearPortCounters_PortRcvData
;
2173 static int hf_opa_ClearPortCounters_PortXmitPkts
;
2174 static int hf_opa_ClearPortCounters_PortRcvPkts
;
2175 static int hf_opa_ClearPortCounters_PortMulticastXmitPkts
;
2176 static int hf_opa_ClearPortCounters_PortMulticastRcvPkts
;
2177 static int hf_opa_ClearPortCounters_LocalLinkIntegrityErrors
;
2178 static int hf_opa_ClearPortCounters_FMConfigErrors
;
2179 static int hf_opa_ClearPortCounters_PortRcvErrors
;
2180 static int hf_opa_ClearPortCounters_ExcessiveBufferOverruns
;
2181 static int hf_opa_ClearPortCounters_PortRcvConstraintErrors
;
2182 static int hf_opa_ClearPortCounters_PortRcvSwitchRelayErrors
;
2183 static int hf_opa_ClearPortCounters_PortXmitDiscards
;
2184 static int hf_opa_ClearPortCounters_PortXmitConstraintErrors
;
2185 static int hf_opa_ClearPortCounters_PortRcvRemotePhysicalErrors
;
2186 static int hf_opa_ClearPortCounters_SwPortCongestion
;
2187 static int hf_opa_ClearPortCounters_PortXmitWait
;
2188 static int hf_opa_ClearPortCounters_PortRcvFECN
;
2189 static int hf_opa_ClearPortCounters_PortRcvBECN
;
2190 static int hf_opa_ClearPortCounters_PortXmitTimeCong
;
2191 static int hf_opa_ClearPortCounters_PortXmitWastedBW
;
2192 static int hf_opa_ClearPortCounters_PortXmitWaitData
;
2193 static int hf_opa_ClearPortCounters_PortRcvBubble
;
2194 static int hf_opa_ClearPortCounters_PortMarkFECN
;
2195 static int hf_opa_ClearPortCounters_LinkErrorRecovery
;
2196 static int hf_opa_ClearPortCounters_LinkDowned
;
2197 static int hf_opa_ClearPortCounters_UncorrectableErrors
;
2198 static int hf_opa_ClearPortCounters_reserved
;
2199 static int hf_opa_ClearPortCounters_CounterSelectMask
;
2200 static int * const _ClearPortCounters_CounterSelectMask
[] = {
2201 &hf_opa_ClearPortCounters_PortXmitData
,
2202 &hf_opa_ClearPortCounters_PortRcvData
,
2203 &hf_opa_ClearPortCounters_PortXmitPkts
,
2204 &hf_opa_ClearPortCounters_PortRcvPkts
,
2205 &hf_opa_ClearPortCounters_PortMulticastXmitPkts
,
2206 &hf_opa_ClearPortCounters_PortMulticastRcvPkts
,
2207 &hf_opa_ClearPortCounters_LocalLinkIntegrityErrors
,
2208 &hf_opa_ClearPortCounters_FMConfigErrors
,
2209 &hf_opa_ClearPortCounters_PortRcvErrors
,
2210 &hf_opa_ClearPortCounters_ExcessiveBufferOverruns
,
2211 &hf_opa_ClearPortCounters_PortRcvConstraintErrors
,
2212 &hf_opa_ClearPortCounters_PortRcvSwitchRelayErrors
,
2213 &hf_opa_ClearPortCounters_PortXmitDiscards
,
2214 &hf_opa_ClearPortCounters_PortXmitConstraintErrors
,
2215 &hf_opa_ClearPortCounters_PortRcvRemotePhysicalErrors
,
2216 &hf_opa_ClearPortCounters_SwPortCongestion
,
2217 &hf_opa_ClearPortCounters_PortXmitWait
,
2218 &hf_opa_ClearPortCounters_PortRcvFECN
,
2219 &hf_opa_ClearPortCounters_PortRcvBECN
,
2220 &hf_opa_ClearPortCounters_PortXmitTimeCong
,
2221 &hf_opa_ClearPortCounters_PortXmitWastedBW
,
2222 &hf_opa_ClearPortCounters_PortXmitWaitData
,
2223 &hf_opa_ClearPortCounters_PortRcvBubble
,
2224 &hf_opa_ClearPortCounters_PortMarkFECN
,
2225 &hf_opa_ClearPortCounters_LinkErrorRecovery
,
2226 &hf_opa_ClearPortCounters_LinkDowned
,
2227 &hf_opa_ClearPortCounters_UncorrectableErrors
,
2228 &hf_opa_ClearPortCounters_reserved
,
2231 static int hf_opa_ClearAllPortCounters
;
2232 static int hf_opa_ClearAllPortCounters_PortXmitData
;
2233 static int hf_opa_ClearAllPortCounters_PortRcvData
;
2234 static int hf_opa_ClearAllPortCounters_PortXmitPkts
;
2235 static int hf_opa_ClearAllPortCounters_PortRcvPkts
;
2236 static int hf_opa_ClearAllPortCounters_PortMulticastXmitPkts
;
2237 static int hf_opa_ClearAllPortCounters_PortMulticastRcvPkts
;
2238 static int hf_opa_ClearAllPortCounters_LocalLinkIntegrityErrors
;
2239 static int hf_opa_ClearAllPortCounters_FMConfigErrors
;
2240 static int hf_opa_ClearAllPortCounters_PortRcvErrors
;
2241 static int hf_opa_ClearAllPortCounters_ExcessiveBufferOverruns
;
2242 static int hf_opa_ClearAllPortCounters_PortRcvConstraintErrors
;
2243 static int hf_opa_ClearAllPortCounters_PortRcvSwitchRelayErrors
;
2244 static int hf_opa_ClearAllPortCounters_PortXmitDiscards
;
2245 static int hf_opa_ClearAllPortCounters_PortXmitConstraintErrors
;
2246 static int hf_opa_ClearAllPortCounters_PortRcvRemotePhysicalErrors
;
2247 static int hf_opa_ClearAllPortCounters_SwPortCongestion
;
2248 static int hf_opa_ClearAllPortCounters_PortXmitWait
;
2249 static int hf_opa_ClearAllPortCounters_PortRcvFECN
;
2250 static int hf_opa_ClearAllPortCounters_PortRcvBECN
;
2251 static int hf_opa_ClearAllPortCounters_PortXmitTimeCong
;
2252 static int hf_opa_ClearAllPortCounters_PortXmitWastedBW
;
2253 static int hf_opa_ClearAllPortCounters_PortXmitWaitData
;
2254 static int hf_opa_ClearAllPortCounters_PortRcvBubble
;
2255 static int hf_opa_ClearAllPortCounters_PortMarkFECN
;
2256 static int hf_opa_ClearAllPortCounters_LinkErrorRecovery
;
2257 static int hf_opa_ClearAllPortCounters_LinkDowned
;
2258 static int hf_opa_ClearAllPortCounters_UncorrectableErrors
;
2259 static int hf_opa_ClearAllPortCounters_reserved
;
2260 static int hf_opa_ClearAllPortCounters_CounterSelectMask
;
2261 static int * const _ClearAllPortCounters_CounterSelectMask
[] = {
2262 &hf_opa_ClearAllPortCounters_PortXmitData
,
2263 &hf_opa_ClearAllPortCounters_PortRcvData
,
2264 &hf_opa_ClearAllPortCounters_PortXmitPkts
,
2265 &hf_opa_ClearAllPortCounters_PortRcvPkts
,
2266 &hf_opa_ClearAllPortCounters_PortMulticastXmitPkts
,
2267 &hf_opa_ClearAllPortCounters_PortMulticastRcvPkts
,
2268 &hf_opa_ClearAllPortCounters_LocalLinkIntegrityErrors
,
2269 &hf_opa_ClearAllPortCounters_FMConfigErrors
,
2270 &hf_opa_ClearAllPortCounters_PortRcvErrors
,
2271 &hf_opa_ClearAllPortCounters_ExcessiveBufferOverruns
,
2272 &hf_opa_ClearAllPortCounters_PortRcvConstraintErrors
,
2273 &hf_opa_ClearAllPortCounters_PortRcvSwitchRelayErrors
,
2274 &hf_opa_ClearAllPortCounters_PortXmitDiscards
,
2275 &hf_opa_ClearAllPortCounters_PortXmitConstraintErrors
,
2276 &hf_opa_ClearAllPortCounters_PortRcvRemotePhysicalErrors
,
2277 &hf_opa_ClearAllPortCounters_SwPortCongestion
,
2278 &hf_opa_ClearAllPortCounters_PortXmitWait
,
2279 &hf_opa_ClearAllPortCounters_PortRcvFECN
,
2280 &hf_opa_ClearAllPortCounters_PortRcvBECN
,
2281 &hf_opa_ClearAllPortCounters_PortXmitTimeCong
,
2282 &hf_opa_ClearAllPortCounters_PortXmitWastedBW
,
2283 &hf_opa_ClearAllPortCounters_PortXmitWaitData
,
2284 &hf_opa_ClearAllPortCounters_PortRcvBubble
,
2285 &hf_opa_ClearAllPortCounters_PortMarkFECN
,
2286 &hf_opa_ClearAllPortCounters_LinkErrorRecovery
,
2287 &hf_opa_ClearAllPortCounters_LinkDowned
,
2288 &hf_opa_ClearAllPortCounters_UncorrectableErrors
,
2289 &hf_opa_ClearAllPortCounters_reserved
,
2292 static int hf_opa_PMConfig
;
2293 static int hf_opa_PMConfig_sweepInterval
;
2294 static int hf_opa_PMConfig_maxClients
;
2295 static int hf_opa_PMConfig_sizeHistory
;
2296 static int hf_opa_PMConfig_sizeFreeze
;
2297 static int hf_opa_PMConfig_lease
;
2298 static int hf_opa_PMConfig_pmFlags
;
2299 static int hf_opa_PMConfig_PortXmitWait
;
2300 static int hf_opa_PMConfig_SwPortCongestion
;
2301 static int hf_opa_PMConfig_PortRcvFECN
;
2302 static int hf_opa_PMConfig_PortRcvBECN
;
2303 static int hf_opa_PMConfig_PortXmitTimeCong
;
2304 static int hf_opa_PMConfig_PortMarkFECN
;
2305 static int hf_opa_PMConfig_integrityErrors
;
2306 static int hf_opa_PMConfig_congestionErrors
;
2307 static int hf_opa_PMConfig_smaCongestionErrors
;
2308 static int hf_opa_PMConfig_bubbleErrors
;
2309 static int hf_opa_PMConfig_securityErrors
;
2310 static int hf_opa_PMConfig_routingErrors
;
2311 static int hf_opa_PMConfig_LocalLinkIntegrityErrors
;
2312 static int hf_opa_PMConfig_PortRcvErrors
;
2313 static int hf_opa_PMConfig_ExcessiveBufferOverrunErrors
;
2314 static int hf_opa_PMConfig_LinkErrorRecovery
;
2315 static int hf_opa_PMConfig_LinkDowned
;
2316 static int hf_opa_PMConfig_UncorrectableErrors
;
2317 static int hf_opa_PMConfig_FMConfigErrors
;
2318 static int hf_opa_PMConfig_LinkQualityIndicator
;
2319 static int hf_opa_PMConfig_LinkWidthDowngrade
;
2320 static int hf_opa_PMConfig_memoryFootprint
;
2321 static int hf_opa_PMConfig_maxAttempts
;
2322 static int hf_opa_PMConfig_respTimeout
;
2323 static int hf_opa_PMConfig_minRespTimeout
;
2324 static int hf_opa_PMConfig_maxParallelNodes
;
2325 static int hf_opa_PMConfig_pmaBatchSize
;
2326 static int hf_opa_PMConfig_errorClear
;
2327 static int hf_opa_MoveFreezeFrame_old
;
2328 static int hf_opa_MoveFreezeFrame_new
;
2329 static int hf_opa_GetFocusPorts
;
2330 static int hf_opa_GetFocusPorts_groupName
;
2331 static int hf_opa_GetFocusPorts_select
;
2332 static int hf_opa_GetFocusPorts_start
;
2333 static int hf_opa_GetFocusPorts_range
;
2334 static int hf_opa_GetFocusPorts_nodeLID
;
2335 static int hf_opa_GetFocusPorts_portNumber
;
2336 static int hf_opa_GetFocusPorts_rate
;
2337 static int hf_opa_GetFocusPorts_mtu
;
2338 static int hf_opa_GetFocusPorts_localFlags
;
2339 static int hf_opa_GetFocusPorts_neighborFlags
;
2340 static int hf_opa_GetFocusPorts_value
;
2341 static int hf_opa_GetFocusPorts_nodeGUID
;
2342 static int hf_opa_GetFocusPorts_nodeDesc
;
2343 static int hf_opa_GetFocusPorts_neighborLid
;
2344 static int hf_opa_GetFocusPorts_neighborPortNumber
;
2345 static int hf_opa_GetFocusPorts_neighborValue
;
2346 static int hf_opa_GetFocusPorts_neighborGuid
;
2347 static int hf_opa_GetFocusPorts_neighborNodeDesc
;
2348 static int hf_opa_GetImageInfo
;
2349 static int hf_opa_GetImageInfo_sweepStart
;
2350 static int hf_opa_GetImageInfo_sweepDuration
;
2351 static int hf_opa_GetImageInfo_numHFIPorts
;
2352 static int hf_opa_GetImageInfo_numSwitchNodes
;
2353 static int hf_opa_GetImageInfo_numSwitchPorts
;
2354 static int hf_opa_GetImageInfo_numLinks
;
2355 static int hf_opa_GetImageInfo_numSMs
;
2356 static int hf_opa_GetImageInfo_numFailedNodes
;
2357 static int hf_opa_GetImageInfo_numFailedPorts
;
2358 static int hf_opa_GetImageInfo_numSkippedNodes
;
2359 static int hf_opa_GetImageInfo_numSkippedPorts
;
2360 static int hf_opa_GetImageInfo_numUnexpectedClearPorts
;
2361 static int hf_opa_GetImageInfo_imageInterval
;
2362 static int hf_opa_GetImageInfo_smPortGuid
;
2363 static int hf_opa_GetImageInfo_smNodeDesc
;
2364 static int hf_opa_GetImageInfo_lid
;
2365 static int hf_opa_GetImageInfo_state
;
2366 static int hf_opa_GetImageInfo_priority
;
2367 static int hf_opa_GetImageInfo_portNumber
;
2368 static int hf_opa_GetVFList
;
2369 static int hf_opa_GetVFList_vfName
;
2371 static int hf_opa_GetVFInfo
;
2372 static int hf_opa_GetVFInfo_vfName
;
2373 static int hf_opa_GetVFInfo_numPorts
;
2374 static int hf_opa_GetVFInfo_totalMBps
;
2375 static int hf_opa_GetVFInfo_totalKPps
;
2376 static int hf_opa_GetVFInfo_avgMBps
;
2377 static int hf_opa_GetVFInfo_minMBps
;
2378 static int hf_opa_GetVFInfo_maxMBps
;
2379 static int hf_opa_GetVFInfo_numBWBuckets
;
2380 static int hf_opa_GetVFInfo_BWBuckets
;
2381 static int hf_opa_GetVFInfo_avgKPps
;
2382 static int hf_opa_GetVFInfo_minKPps
;
2383 static int hf_opa_GetVFInfo_maxKPps
;
2384 static int hf_opa_GetVFInfo_pmaFailedPorts
;
2385 static int hf_opa_GetVFInfo_topoFailedPorts
;
2386 static int hf_opa_GetVFInfo_integrityErrors
;
2387 static int hf_opa_GetVFInfo_congestionErrors
;
2388 static int hf_opa_GetVFInfo_smaCongestionErrors
;
2389 static int hf_opa_GetVFInfo_bubbleErrors
;
2390 static int hf_opa_GetVFInfo_securityErrors
;
2391 static int hf_opa_GetVFInfo_routingErrors
;
2392 static int hf_opa_GetVFInfo_utilizationPct10
;
2393 static int hf_opa_GetVFInfo_discardsPct10
;
2394 static int hf_opa_GetVFInfo_maxInternalRate
;
2395 static int hf_opa_GetVFInfo_minInternalRate
;
2396 static int hf_opa_GetVFInfo_maxInternalMBps
;
2398 static int hf_opa_GetVFConfig
;
2399 static int hf_opa_GetVFConfig_vfName
;
2400 static int hf_opa_GetVFConfig_Port_NodeGUID
;
2401 static int hf_opa_GetVFConfig_Port_nodeDesc
;
2402 static int hf_opa_GetVFConfig_Port_NodeLID
;
2403 static int hf_opa_GetVFConfig_Port_PortNumber
;
2405 static int hf_opa_GetVFPortCounters
;
2406 static int hf_opa_GetVFPortCounters_vfName
;
2407 static int hf_opa_GetVFPortCounters_nodeLID
;
2408 static int hf_opa_GetVFPortCounters_PortNumber
;
2409 static int hf_opa_GetVFPortCounters_flags
;
2410 static int hf_opa_GetVFPortCounters_PortVFXmitData
;
2411 static int hf_opa_GetVFPortCounters_PortVFRcvData
;
2412 static int hf_opa_GetVFPortCounters_PortVFXmitPkts
;
2413 static int hf_opa_GetVFPortCounters_PortVFRcvPkts
;
2414 static int hf_opa_GetVFPortCounters_PortVFXmitDiscards
;
2415 static int hf_opa_GetVFPortCounters_SwPortVFCongestion
;
2416 static int hf_opa_GetVFPortCounters_PortVFXmitWait
;
2417 static int hf_opa_GetVFPortCounters_PortVFRcvFECN
;
2418 static int hf_opa_GetVFPortCounters_PortVFRcvBECN
;
2419 static int hf_opa_GetVFPortCounters_PortVFXmitTimeCong
;
2420 static int hf_opa_GetVFPortCounters_PortVFXmitWastedBW
;
2421 static int hf_opa_GetVFPortCounters_PortVFXmitWaitData
;
2422 static int hf_opa_GetVFPortCounters_PortVFRcvBubble
;
2423 static int hf_opa_GetVFPortCounters_PortVFMarkFECN
;
2425 static int hf_opa_ClearVFPortCounters
;
2426 static int hf_opa_ClearVFPortCounters_vfName
;
2427 static int hf_opa_ClearVFPortCounters_nodeLID
;
2428 static int hf_opa_ClearVFPortCounters_PortNumber
;
2429 static int hf_opa_ClearVFPortCounters_PortVFXmitData
;
2430 static int hf_opa_ClearVFPortCounters_PortVFRcvData
;
2431 static int hf_opa_ClearVFPortCounters_PortVFXmitPkts
;
2432 static int hf_opa_ClearVFPortCounters_PortVFRcvPkts
;
2433 static int hf_opa_ClearVFPortCounters_PortVFXmitDiscards
;
2434 static int hf_opa_ClearVFPortCounters_SwPortVFCongestion
;
2435 static int hf_opa_ClearVFPortCounters_PortVFXmitWait
;
2436 static int hf_opa_ClearVFPortCounters_PortVFRcvFECN
;
2437 static int hf_opa_ClearVFPortCounters_PortVFRcvBECN
;
2438 static int hf_opa_ClearVFPortCounters_PortVFXmitTimeCong
;
2439 static int hf_opa_ClearVFPortCounters_PortVFXmitWastedBW
;
2440 static int hf_opa_ClearVFPortCounters_PortVFXmitWaitData
;
2441 static int hf_opa_ClearVFPortCounters_PortVFRcvBubble
;
2442 static int hf_opa_ClearVFPortCounters_PortVFMarkFECN
;
2443 static int hf_opa_ClearVFPortCounters_reserved
;
2444 static int hf_opa_ClearVFPortCounters_CounterSelectMask
;
2445 static int * const _ClearVFPortCounters_CounterSelectMask
[] = {
2446 &hf_opa_ClearVFPortCounters_PortVFXmitData
,
2447 &hf_opa_ClearVFPortCounters_PortVFRcvData
,
2448 &hf_opa_ClearVFPortCounters_PortVFXmitPkts
,
2449 &hf_opa_ClearVFPortCounters_PortVFRcvPkts
,
2450 &hf_opa_ClearVFPortCounters_PortVFXmitDiscards
,
2451 &hf_opa_ClearVFPortCounters_SwPortVFCongestion
,
2452 &hf_opa_ClearVFPortCounters_PortVFXmitWait
,
2453 &hf_opa_ClearVFPortCounters_PortVFRcvFECN
,
2454 &hf_opa_ClearVFPortCounters_PortVFRcvBECN
,
2455 &hf_opa_ClearVFPortCounters_PortVFXmitTimeCong
,
2456 &hf_opa_ClearVFPortCounters_PortVFXmitWastedBW
,
2457 &hf_opa_ClearVFPortCounters_PortVFXmitWaitData
,
2458 &hf_opa_ClearVFPortCounters_PortVFRcvBubble
,
2459 &hf_opa_ClearVFPortCounters_PortVFMarkFECN
,
2460 &hf_opa_ClearVFPortCounters_reserved
,
2464 static int hf_opa_GetVFFocusPorts
;
2465 static int hf_opa_GetVFFocusPorts_vfName
;
2466 static int hf_opa_GetVFFocusPorts_select
;
2467 static int hf_opa_GetVFFocusPorts_start
;
2468 static int hf_opa_GetVFFocusPorts_range
;
2469 static int hf_opa_GetVFFocusPorts_nodeLID
;
2470 static int hf_opa_GetVFFocusPorts_portNumber
;
2471 static int hf_opa_GetVFFocusPorts_rate
;
2472 static int hf_opa_GetVFFocusPorts_mtu
;
2473 static int hf_opa_GetVFFocusPorts_localFlags
;
2474 static int hf_opa_GetVFFocusPorts_neighborFlags
;
2475 static int hf_opa_GetVFFocusPorts_value
;
2476 static int hf_opa_GetVFFocusPorts_nodeGUID
;
2477 static int hf_opa_GetVFFocusPorts_nodeDesc
;
2478 static int hf_opa_GetVFFocusPorts_neighborLid
;
2479 static int hf_opa_GetVFFocusPorts_neighborPortNumber
;
2480 static int hf_opa_GetVFFocusPorts_neighborValue
;
2481 static int hf_opa_GetVFFocusPorts_neighborGuid
;
2482 static int hf_opa_GetVFFocusPorts_neighborNodeDesc
;
2485 static expert_field ei_opa_mad_error
;
2486 static expert_field ei_opa_mad_no_attribute_dissector
;
2487 static expert_field ei_opa_mad_attribute_modifier_error_nonzero
;
2488 static expert_field ei_opa_rmpp_undecoded
;
2489 static expert_field ei_opa_aggregate_error
;
2492 static int hf_opa_rmpp_fragments
;
2493 static int hf_opa_rmpp_fragment
;
2494 static int hf_opa_rmpp_fragment_overlap
;
2495 static int hf_opa_rmpp_fragment_overlap_conflicts
;
2496 static int hf_opa_rmpp_fragment_multiple_tails
;
2497 static int hf_opa_rmpp_fragment_too_long_fragment
;
2498 static int hf_opa_rmpp_fragment_error
;
2499 static int hf_opa_rmpp_fragment_count
;
2500 static int hf_opa_rmpp_reassembled_in
;
2501 static int hf_opa_rmpp_reassembled_length
;
2503 static const fragment_items opa_rmpp_frag_items
= {
2505 &ett_rmpp_fragments
,
2506 &hf_opa_rmpp_fragments
,
2507 &hf_opa_rmpp_fragment
,
2508 &hf_opa_rmpp_fragment_overlap
,
2509 &hf_opa_rmpp_fragment_overlap_conflicts
,
2510 &hf_opa_rmpp_fragment_multiple_tails
,
2511 &hf_opa_rmpp_fragment_too_long_fragment
,
2512 &hf_opa_rmpp_fragment_error
,
2513 &hf_opa_rmpp_fragment_count
,
2514 &hf_opa_rmpp_reassembled_in
,
2515 &hf_opa_rmpp_reassembled_length
,
2521 * Builds a range string from a PortSelectMask
2523 * @param[in] tvb pointer to packet buffer
2524 * @param[in] offset offset into packet buffer where port select mask begins
2525 * @param[out] port_list optional: pointer to an arrray of ports, allocated by
2526 * wmem_alloc(wmem_packet_scope(), 256)
2527 * @param[out] num_ports optional: pointer to a number of ports in set in port
2528 * select mask and portlist if provided.
2529 * @return char* pointer to range string allocated using
2530 * wmem_strbuf_new_sized(wmem_packet_scope(),...)
2532 static char *opa_format_port_select_mask(tvbuff_t
*tvb
, int offset
, uint8_t **port_list
, uint8_t *num_ports
)
2534 int i
, j
, port
, last
= -1, first
= 0, ports
= 0;
2535 uint64_t mask
, psm
[4];
2536 wmem_strbuf_t
*buf
= NULL
;
2537 uint8_t *portlist
= NULL
;
2539 if (!tvb_bytes_exist(tvb
, offset
, 32)) {
2540 return (char *)"Invalid Length: Requires 32 bytes";
2542 psm
[0] = tvb_get_ntoh64(tvb
, offset
);
2543 psm
[1] = tvb_get_ntoh64(tvb
, offset
+ 8);
2544 psm
[2] = tvb_get_ntoh64(tvb
, offset
+ 16);
2545 psm
[3] = tvb_get_ntoh64(tvb
, offset
+ 24);
2547 buf
= wmem_strbuf_create(wmem_packet_scope());
2550 /* Allocate list of ports; max = 256 = 64 * 4 */
2551 portlist
= (uint8_t *)wmem_alloc(wmem_packet_scope(), 256);
2552 memset(portlist
, 0xFF, 256);
2554 for (i
= 0; i
< 4; i
++) {
2556 for (j
= 0; mask
&& j
< 64; j
++, mask
>>= 1) {
2557 if ((mask
& (uint64_t)0x1) == 0) continue;
2558 port
= (i
* 64) + j
;
2559 if (portlist
) portlist
[ports
] = port
;
2562 wmem_strbuf_append_printf(buf
, "%d", port
);
2563 last
= first
= port
;
2564 } else if ((port
- last
) > 1) {
2566 wmem_strbuf_append_printf(buf
, ",%d", port
);
2568 wmem_strbuf_append_printf(buf
, "-%d,%d", last
, port
);
2569 last
= first
= port
;
2576 if (first
!= last
&& last
!= -1) {
2577 wmem_strbuf_append_printf(buf
, "-%d", last
);
2579 if (wmem_strbuf_get_len(buf
) == 0) {
2580 wmem_strbuf_append(buf
, "<Empty>");
2582 if (num_ports
) *num_ports
= ports
;
2583 if (port_list
) *port_list
= portlist
;
2584 return (char *)wmem_strbuf_finalize(buf
);
2586 /* Custom Functions */
2587 static void cf_opa_mad_swinfo_ar_frequency(char *buf
, uint16_t value
)
2589 snprintf(buf
, ITEM_LABEL_LENGTH
, "%u ms", 2 ^ (value
)*64);
2591 static void cf_opa_mad_linkspeed(char *buf
, uint16_t value
)
2594 if (value
& 0x1) /* 12.5 Gbps */
2595 len
= snprintf(buf
, ITEM_LABEL_LENGTH
, "12.5");
2596 if (value
& 0x2) /* 25.78125 Gbps */
2597 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s25.78125", (len
? ", " : ""));
2599 snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, " Gbps");
2601 snprintf(buf
, ITEM_LABEL_LENGTH
, "No State Change");
2603 static void cf_opa_mad_linkwidth(char *buf
, uint16_t value
)
2606 if (value
& 0x1) /* 1x */
2607 len
= snprintf(buf
, ITEM_LABEL_LENGTH
, "1X");
2608 if (value
& 0x2) /* 2x */
2609 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s2X", (len
? ", " : ""));
2610 if (value
& 0x4) /* 3x */
2611 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s3X", (len
? ", " : ""));
2612 if (value
& 0x8) /* 4x */
2613 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s4X", (len
? ", " : ""));
2615 snprintf(buf
, ITEM_LABEL_LENGTH
, "No State Change");
2617 static void cf_opa_mad_portlinkmode(char *buf
, uint16_t value
)
2620 if (value
& 0x1) /* Reserved */
2621 len
= snprintf(buf
, ITEM_LABEL_LENGTH
, "Reserved");
2622 if (value
& 0x2) /* Ethernet */
2623 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%sEthernet", (len
? ", " : ""));
2624 if (value
& 0x4) /* STL */
2625 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%sSTL", (len
? ", " : ""));
2627 snprintf(buf
, ITEM_LABEL_LENGTH
, "No State Change");
2629 static void cf_opa_mad_portltpcrcmode(char *buf
, uint16_t value
)
2632 if (value
& 0x1) /* 14-bit */
2633 len
= snprintf(buf
, ITEM_LABEL_LENGTH
, "14-bit");
2634 if (value
& 0x2) /* 16-bit */
2635 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s16-bit", (len
? ", " : ""));
2636 if (value
& 0x4) /* 48-bit */
2637 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s48-bit overlapping", (len
? ", " : ""));
2638 if (value
& 0x8) /* 12 to 16 bit per lane */
2639 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s[12,16]-bit per lane", (len
? ", " : ""));
2641 snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, " LTP CRC Mode");
2643 snprintf(buf
, ITEM_LABEL_LENGTH
, "No State Change");
2645 static void cf_opa_mad_packetformat(char *buf
, uint16_t value
)
2648 if (value
& 0x1) /* 8B */
2649 len
= snprintf(buf
, ITEM_LABEL_LENGTH
, "8B");
2650 if (value
& 0x2) /* 9B */
2651 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s9B", (len
? ", " : ""));
2652 if (value
& 0x4) /* 10B */
2653 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s10B", (len
? ", " : ""));
2654 if (value
& 0x8) /* 16B */
2655 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s16B", (len
? ", " : ""));
2657 snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, " Format%s", (len
> 4 ? "s" : ""));
2659 snprintf(buf
, ITEM_LABEL_LENGTH
, "No State Change");
2661 static void cf_opa_mad_swcongestionsetting_controlmap(char *buf
, uint32_t value
)
2664 if (value
& 0x1) /* Victim */
2665 len
= snprintf(buf
, ITEM_LABEL_LENGTH
, "Victim");
2666 if (value
& 0x2) /* Credit */
2667 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%sCredit", (len
? ", " : ""));
2668 if (value
& 0x4) /* Threshold & PacketSize */
2669 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%sThreshold & PacketSize", (len
? ", " : ""));
2670 if (value
& 0x8) /* CS_threshold & CS_ReturnDelay */
2671 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%sCS_threshold & CS_ReturnDelay", (len
? ", " : ""));
2672 if (value
& 0x10) /* Marking Rate */
2673 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%sMarking Rate", (len
? ", " : ""));
2675 snprintf(buf
, ITEM_LABEL_LENGTH
, "No Valid Fields");
2677 static void cf_opa_mad_32b_mask(char *buf
, uint32_t value
)
2681 for (i
= 0, mask
= value
; mask
&& i
< 32 && len
< ITEM_LABEL_LENGTH
; i
++, mask
>>= 1) {
2683 len
+= snprintf(&buf
[len
], ITEM_LABEL_LENGTH
- len
, "%s%u", (len
? ", " : ""), i
);
2687 snprintf(buf
, ITEM_LABEL_LENGTH
, " ");
2690 static void cf_opa_mad_computed_pct10(char *buf
, uint16_t value
)
2692 snprintf(buf
, ITEM_LABEL_LENGTH
, "%u.%01u", value
/ 10, value
% 10);
2695 /* Dissector Declarations */
2696 static dissector_handle_t opa_mad_handle
;
2697 static dissector_table_t ethertype_dissector_table
;
2699 static reassembly_table opa_mad_rmpp_reassembly_table
;
2701 static bool pref_parse_on_mad_status_error
;
2702 static bool pref_attempt_rmpp_defragment
= true;
2704 static range_t
*global_mad_vendor_class
;
2705 static range_t
*global_mad_vendor_rmpp_class
;
2706 static range_t
*global_mad_application_class
;
2707 static range_t
*global_mad_reserved_class
;
2708 static range_t
*global_mad_opa_class
;
2710 static int parse_MAD_AttributeModifier(proto_tree
*MAD_tree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
2712 proto_tree
*AttributeModifier_tree
;
2713 proto_item
*AttributeModifier_item
;
2714 int local_offset
= *offset
;
2716 AttributeModifier_item
= proto_tree_add_item(MAD_tree
, hf_opa_attribute_modifier
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2717 AttributeModifier_tree
= proto_item_add_subtree(AttributeModifier_item
, ett_mad_attributemod
);
2719 switch (MAD
->MgmtClass
) {
2720 case SUBN_LID_ROUTED
:
2721 case SUBN_DIRECTED_ROUTE
:
2722 switch (MAD
->AttributeID
) {
2723 case SM_ATTR_ID_CLASS_PORT_INFO
: /* Shall be 0 */
2724 case SM_ATTR_ID_NOTICE
:
2725 case SM_ATTR_ID_NODE_DESCRIPTION
:
2726 case SM_ATTR_ID_NODE_INFO
:
2727 case SM_ATTR_ID_SWITCH_INFO
:
2728 case SM_ATTR_ID_SL_SC_MAPPING_TABLE
:
2729 case SM_ATTR_ID_SC_SL_MAPPING_TABLE
:
2730 case SM_ATTR_ID_SM_INFO
:
2731 case SM_ATTR_ID_CONGESTION_INFO
:
2732 case SM_ATTR_ID_SWITCH_CONGESTION_LOG
:
2733 case SM_ATTR_ID_SWITCH_CONGESTION_SETTING
:
2734 case SM_ATTR_ID_HFI_CONGESTION_LOG
:
2735 case SM_ATTR_ID_HFI_CONGESTION_SETTING
:
2736 if (MAD
->AttributeModifier
)
2737 expert_add_info(NULL
, AttributeModifier_item
, &ei_opa_mad_attribute_modifier_error_nonzero
);
2739 case SM_ATTR_ID_PORT_INFO
: /* NNNN NNNN 0000 0000 0000 00SA PPPP PPPP */
2740 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_Nps2AP
, ENC_BIG_ENDIAN
);
2742 case SM_ATTR_ID_PORT_STATE_INFO
: /* NNNN NNNN 0000 0000 0000 00S0 PPPP PPPP */
2743 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NpS2P
, ENC_BIG_ENDIAN
);
2745 case SM_ATTR_ID_LED_INFO
: /* NNNN NNNN 0000 0000 0000 000A PPPP PPPP */
2746 case SM_ATTR_ID_BUFFER_CONTROL_TABLE
:
2747 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NpAP
, ENC_BIG_ENDIAN
);
2749 case SM_ATTR_ID_PART_TABLE
: /* NNNN NNNN PPPP PPPP 0000 0BBB BBBB BBBB */
2750 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NbP2B
, ENC_BIG_ENDIAN
);
2752 case SM_ATTR_ID_SC_SC_MAPPING_TABLE
: /* NNNN NNNN 0000 00AB IIII IIII EEEE EEEE */
2753 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NbA2B2IE
, ENC_BIG_ENDIAN
);
2755 case SM_ATTR_ID_VL_ARBITRATION
: /* NNNN NNNN SSSS SSSS 0000 000A PPPP PPPP */
2756 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NpSAP
, ENC_BIG_ENDIAN
);
2758 case SM_ATTR_ID_LINEAR_FWD_TABLE
: /* NNNN NNNN 0000 0ABB BBBB BBBB BBBB BBBB */
2759 case SM_ATTR_ID_PORT_GROUP_FWD_TABLE
:
2760 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NbA3B3
, ENC_BIG_ENDIAN
);
2762 case SM_ATTR_ID_MCAST_FWD_TABLE
: /* NNNN NNNN PP0A BBBB BBBB BBBB BBBB BBBB */
2763 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NbP3A4B4
, ENC_BIG_ENDIAN
);
2765 case SM_ATTR_ID_CABLE_INFO
: /* 0AAA AAAA AAAA ALLL LLL0 0000 PPPP PPPP */
2766 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_A5LP
, ENC_BIG_ENDIAN
);
2768 case SM_ATTR_ID_AGGREGATE
: /* 0000 0000 0000 0000 0000 0000 NNNN NNNN */
2769 proto_tree_add_item(AttributeModifier_tree
, hf_opa_attribute_modifier_N2
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2771 case SM_ATTR_ID_SC_VLR_MAPPING_TABLE
: /* NNNN NNNN 0000 0000 000Y 000A PPPP PPPP */
2772 case SM_ATTR_ID_SC_VLT_MAPPING_TABLE
:
2773 case SM_ATTR_ID_SC_VLNT_MAPPING_TABLE
:
2774 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NbYAP
, ENC_BIG_ENDIAN
);
2776 case SM_ATTR_ID_SWITCH_PORT_CONGESTION_SETTING
: /* NNNN NNNN 0000 0000 0000 0000 PPPP PPPP */
2777 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NpP
, ENC_BIG_ENDIAN
);
2779 case SM_ATTR_ID_HFI_CONGESTION_CONTROL_TABLE
: /* NNNN NNNN 0000 0000 0000 0000 PPPP PPPP */
2780 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NbP
, ENC_BIG_ENDIAN
);
2782 case SM_ATTR_ID_PORT_GROUP_TABLE
: /* NNNN NNNN PP00 0000 0000 0000 00AB BBBB */
2783 proto_tree_add_bitmask_list(AttributeModifier_tree
, tvb
, local_offset
, 4, _attribute_modifier_NbP3A6B5
, ENC_BIG_ENDIAN
);
2786 if (MAD
->AttributeModifier
)
2787 expert_add_info(NULL
, AttributeModifier_item
, &ei_opa_mad_attribute_modifier_error_nonzero
);
2792 switch (MAD
->AttributeID
) {
2793 case PM_ATTR_ID_CLASS_PORTINFO
: /* 0 */
2794 if (MAD
->AttributeModifier
)
2795 expert_add_info(NULL
, AttributeModifier_item
, &ei_opa_mad_attribute_modifier_error_nonzero
);
2797 case PM_ATTR_ID_PORT_STATUS
: /* PPPP PPPP 0000 0000 0000 0000 0000 0000 */
2798 case PM_ATTR_ID_CLEAR_PORT_STATUS
:
2799 case PM_ATTR_ID_DATA_PORT_COUNTERS
:
2800 case PM_ATTR_ID_ERROR_PORT_COUNTERS
:
2801 proto_tree_add_item(AttributeModifier_tree
, hf_opa_attribute_modifier_NP
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2803 case PM_ATTR_ID_ERROR_INFO
:
2805 if (MAD
->AttributeModifier
)
2806 expert_add_info(NULL
, AttributeModifier_item
, &ei_opa_mad_attribute_modifier_error_nonzero
);
2812 if (MAD
->AttributeModifier
)
2813 expert_add_info(NULL
, AttributeModifier_item
, &ei_opa_mad_attribute_modifier_error_nonzero
);
2819 return local_offset
;
2821 /* Parse the common MAD Header */
2822 static bool parse_MAD_Common(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
2824 int local_offset
= *offset
;
2825 proto_item
*MAD_header_item
;
2826 proto_tree
*MAD_header_tree
;
2827 proto_item
*MAD_Status_item
;
2833 /* Get the Management Class to decide between LID Routed and Direct Route */
2835 /* Populate the Dissector Tree */
2836 MAD_header_item
= proto_tree_add_item(parentTree
, hf_opa_mad
, tvb
, local_offset
, 24, ENC_NA
);
2837 MAD_header_tree
= proto_item_add_subtree(MAD_header_item
, ett_mad
);
2839 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_base_version
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2840 MAD
->BaseVersion
= tvb_get_uint8(tvb
, local_offset
);
2842 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_mgmt_class
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2843 MAD
->MgmtClass
= tvb_get_uint8(tvb
, local_offset
);
2845 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_class_version
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2846 MAD
->ClassVersion
= tvb_get_uint8(tvb
, local_offset
);
2848 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_method
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2849 MAD
->Method
= tvb_get_uint8(tvb
, local_offset
);
2851 if (MAD
->MgmtClass
== SUBN_DIRECTED_ROUTE
) {
2852 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_status_DR_D
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
2853 MAD_Status_item
= proto_tree_add_item(MAD_header_tree
, hf_opa_mad_status_DR_status
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
2854 MAD
->Status
= tvb_get_ntohs(tvb
, local_offset
);
2856 if (MAD
->Status
& 0x7FFF) {
2857 proto_item_append_text(MAD_header_item
, " Error: 0x%04x", MAD
->Status
& 0x7FFF);
2858 expert_add_info_format(pinfo
, MAD_Status_item
, &ei_opa_mad_error
,
2859 "Mad Status Error (0x%04x)", MAD
->Status
& 0x7FFF);
2861 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_status_DR_Hop_Pointer
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2862 MAD
->HopPointer
= tvb_get_uint8(tvb
, local_offset
);
2864 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_status_DR_Hop_Count
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2865 MAD
->HopCount
= tvb_get_uint8(tvb
, local_offset
);
2868 MAD_Status_item
= proto_tree_add_bitmask(MAD_header_tree
, tvb
, local_offset
,
2869 hf_opa_mad_status
, ett_mad_status
, _mad_status
, ENC_BIG_ENDIAN
);
2870 MAD
->Status
= tvb_get_ntohs(tvb
, local_offset
);
2873 proto_item_append_text(MAD_header_item
, " Error: 0x%04x", MAD
->Status
);
2874 expert_add_info_format(pinfo
, MAD_Status_item
, &ei_opa_mad_error
,
2875 "Mad Status Error (0x%04x)", MAD
->Status
);
2877 proto_tree_add_item(MAD_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
2880 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_transaction_id
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
2881 MAD
->TransactionID
= tvb_get_ntoh64(tvb
, local_offset
);
2883 proto_tree_add_item(MAD_header_tree
, hf_opa_mad_attribute_id
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
2884 MAD
->AttributeID
= tvb_get_ntohs(tvb
, local_offset
);
2886 proto_tree_add_item(MAD_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
2889 MAD
->AttributeModifier
= tvb_get_ntohl(tvb
, local_offset
);
2890 *offset
= parse_MAD_AttributeModifier(MAD_header_tree
, tvb
, &local_offset
, MAD
);
2894 /* Parse the RMPP (Reliable Multi-Packet Transaction Protocol) */
2895 static bool parse_RMPP(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
, RMPP_t
*RMPP
)
2897 int local_offset
= *offset
;
2898 proto_item
*RMPP_header_item
;
2899 proto_item
*RMPP_type_item
;
2900 proto_item
*RMPP_segment_number_item
;
2901 proto_tree
*RMPP_header_tree
;
2904 RMPP_header_item
= proto_tree_add_item(parentTree
, hf_opa_rmpp
, tvb
, local_offset
, 12, ENC_NA
);
2905 RMPP_header_tree
= proto_item_add_subtree(RMPP_header_item
, ett_rmpp
);
2907 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_version
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2908 RMPP
->Version
= tvb_get_uint8(tvb
, local_offset
);
2911 RMPP_type_item
= proto_tree_add_item_ret_uint(RMPP_header_tree
, hf_opa_rmpp_type
, tvb
,
2912 local_offset
, 1, ENC_BIG_ENDIAN
, &val
);
2915 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_r_resp_time
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2916 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_flags_last
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2917 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_flags_first
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2918 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_flags_active
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
2919 RMPP
->resptime_flags
= tvb_get_uint8(tvb
, local_offset
);
2922 proto_tree_add_item_ret_uint(RMPP_header_tree
, hf_opa_rmpp_status
, tvb
,
2923 local_offset
, 1, ENC_BIG_ENDIAN
, &val
);
2927 if (!(RMPP
->resptime_flags
& RMPP_FLAG_ACTIVE_MASK
) && RMPP
->Type
== RMPP_ILLEGAL
) {
2928 proto_item_set_text(RMPP_header_item
, "%s%s", "RMPP (Empty)", " - Reliable Multi-Packet Transaction Protocol");
2929 proto_item_append_text(RMPP_type_item
, " %s", "RMPP (Empty)");
2931 proto_item_set_text(RMPP_header_item
, "%s%s", val_to_str(RMPP
->Type
, RMPP_Packet_Types
, "RMPP (Reserved 0x%02x)"), " - Reliable Multi-Packet Transaction Protocol");
2932 proto_item_append_text(RMPP_type_item
, " %s", val_to_str(RMPP
->Type
, RMPP_Packet_Types
, "RMPP (Reserved 0x%02x)"));
2935 RMPP
->PayloadLength
= 0;
2937 switch (RMPP
->Type
) {
2939 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_data1
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2941 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_data2
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2945 RMPP_segment_number_item
= proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_segment_number
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2946 RMPP
->SegmentNumber
= tvb_get_ntohl(tvb
, local_offset
);
2947 if (!pref_attempt_rmpp_defragment
&& RMPP
->SegmentNumber
> 1) {
2948 expert_add_info_format(pinfo
, RMPP_segment_number_item
, &ei_opa_rmpp_undecoded
,
2949 "Parsing Disabled for RMPP Data Segments greater than 1 (%u)", RMPP
->SegmentNumber
);
2952 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_payload_length32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2953 RMPP
->PayloadLength
= tvb_get_ntohl(tvb
, local_offset
);
2957 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_segment_number
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2959 proto_tree_add_item(RMPP_header_tree
, hf_opa_rmpp_new_window_last
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
2964 proto_tree_add_item(RMPP_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_NA
);
2966 proto_tree_add_item(RMPP_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_NA
);
2972 *offset
= local_offset
;
2975 /* Parse NoticeDataDetails Attribute Field */
2976 static int parse_NoticeDataDetails(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, uint16_t trapNumber
)
2978 int local_offset
= *offset
;
2979 proto_item
*DataDetails_header_item
;
2980 proto_tree
*DataDetails_header_tree
;
2985 DataDetails_header_item
= proto_tree_add_item(parentTree
, hf_opa_Trap
, tvb
, local_offset
, 64, ENC_NA
);
2986 DataDetails_header_tree
= proto_item_add_subtree(DataDetails_header_item
, ett_datadetails
);
2987 proto_item_append_text(DataDetails_header_item
, " %u DataDetails", trapNumber
);
2989 switch (trapNumber
) {
2994 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_GID
, tvb
, local_offset
, 16, ENC_NA
);
2999 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3005 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3007 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_PORTNO
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3011 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3013 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_CAPABILITYMASK
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3015 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3017 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_CAPABILITYMASK3
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3019 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3021 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_144_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3022 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LinkWidthDowngradeEnabledChange
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3023 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LinkSpeecEnabledChange
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3024 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LinkWidthEnabledChange
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3025 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_NodeDescriptionChange
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3029 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_SystemImageGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3031 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3035 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3037 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_DRSLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3039 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_Method
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3041 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_DRNotice
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3042 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_DRPathTruncated
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3043 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_DRHopCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3045 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_AttributeID
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3047 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_AttributeModifier
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3049 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_MKey
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3051 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_DRNoticeReturnPath
, tvb
, local_offset
, 30, ENC_NA
);
3056 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3058 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3060 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_Key
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3062 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_SL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3063 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_SL_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3065 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3067 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_GID
, tvb
, local_offset
, 16, ENC_NA
);
3069 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_GID
, tvb
, local_offset
, 16, ENC_NA
);
3071 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3073 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_QP
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3075 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3077 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_QP
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3081 proto_tree_add_bitmask(DataDetails_header_tree
, tvb
, local_offset
, hf_opa_Trap_DataValid
,
3082 ett_datadetails_trap259datavalid
, _Trap_DataValid
, ENC_BIG_ENDIAN
);
3084 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_PKey
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3086 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3088 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3090 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_SL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3091 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_SL_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3093 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3095 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_GID
, tvb
, local_offset
, 16, ENC_NA
);
3097 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_GID
, tvb
, local_offset
, 16, ENC_NA
);
3099 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_QP
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3101 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3103 proto_tree_add_item(DataDetails_header_tree
, hf_opa_Trap_QP
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3105 proto_tree_add_item(DataDetails_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3112 return local_offset
;
3115 /* Parse NoticesAndTraps Attribute */
3116 static int parse_NoticesAndTraps(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
3118 int local_offset
= *offset
;
3119 proto_item
*NoticesAndTraps_header_item
;
3120 proto_tree
*NoticesAndTraps_header_tree
;
3121 bool isGeneric
= tvb_get_bits8(tvb
, local_offset
* 8, 1);
3122 uint16_t trapNumber
= tvb_get_ntohs(tvb
, local_offset
+ 4);
3127 NoticesAndTraps_header_item
= proto_tree_add_item(parentTree
, hf_opa_Notice
, tvb
, local_offset
, 96, ENC_NA
);
3128 proto_item_set_text(NoticesAndTraps_header_item
, "%s", val_to_str(trapNumber
, Trap_Description
, "Unknown or Vendor Specific Trap Number! (0x%02x)"));
3129 NoticesAndTraps_header_tree
= proto_item_add_subtree(NoticesAndTraps_header_item
, ett_noticestraps
);
3131 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_IsGeneric
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3132 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_Type
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3135 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_ProducerType
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3137 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_TrapNumber
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3140 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_VendorID
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3142 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_DeviceID
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3145 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_Toggle
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3146 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_Count
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3148 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_IssuerLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3150 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3152 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_IssuerGID
, tvb
, local_offset
, 16, ENC_NA
);
3156 parse_NoticeDataDetails(NoticesAndTraps_header_tree
, tvb
, &local_offset
, trapNumber
);
3158 if (tvb_bytes_exist(tvb
, local_offset
, 8)) {
3159 proto_tree_add_item(NoticesAndTraps_header_tree
, hf_opa_Notice_ClassDataDetails
, tvb
, local_offset
, -1, ENC_NA
);
3164 return local_offset
;
3167 /* Parse InformInfo Attribute*/
3168 static int parse_InformInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3170 int local_offset
= *offset
;
3171 proto_item
*InformInfo_header_item
;
3172 proto_tree
*InformInfo_header_tree
;
3175 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3178 InformInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_InformInfo
, tvb
, local_offset
, 40, ENC_NA
);
3179 InformInfo_header_tree
= proto_item_add_subtree(InformInfo_header_item
, ett_informinfo
);
3181 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_GID
, tvb
, local_offset
, 16, ENC_NA
);
3183 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_LIDRangeBegin
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3185 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_LIDRangeEnd
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3187 isGeneric
= (bool)tvb_get_bits8(tvb
, local_offset
* 8 + 7, 1);
3188 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_IsGeneric
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3190 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_Subscribe
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3192 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_Type
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3194 proto_tree_add_item(InformInfo_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3197 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_TrapNumber
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3200 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_DeviceID
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3203 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_QPN
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3205 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3206 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_RespTimeValue
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3208 proto_tree_add_item(InformInfo_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3211 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_ProducerType
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3214 proto_tree_add_item(InformInfo_header_tree
, hf_opa_InformInfo_VendorID
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3218 return local_offset
;
3221 /* Parse ClassPortInfo MAD from the ALL classes. */
3222 static int parse_ClassPortInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3224 proto_item
*ClassPortInfo_item
;
3225 proto_tree
*ClassPortInfo_tree
;
3226 proto_tree
*ClassPortInfo_Redirect_tree
;
3227 proto_tree
*ClassPortInfo_Trap_tree
;
3228 int local_offset
= *offset
;
3230 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3233 ClassPortInfo_item
= proto_tree_add_item(parentTree
, hf_opa_ClassPortInfo
, tvb
, local_offset
, 80, ENC_NA
);
3234 ClassPortInfo_tree
= proto_item_add_subtree(ClassPortInfo_item
, ett_classportinfo
);
3236 proto_tree_add_item(ClassPortInfo_tree
, hf_opa_ClassPortInfo_BaseVersion
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3238 proto_tree_add_item(ClassPortInfo_tree
, hf_opa_ClassPortInfo_ClassVersion
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3241 proto_tree_add_item(ClassPortInfo_tree
, hf_opa_ClassPortInfo_CapMask
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3243 proto_tree_add_item(ClassPortInfo_tree
, hf_opa_ClassPortInfo_CapMask2
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3244 proto_tree_add_item(ClassPortInfo_tree
, hf_opa_ClassPortInfo_RespTimeValue
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3247 ClassPortInfo_Redirect_tree
= proto_tree_add_subtree(ClassPortInfo_tree
, tvb
, local_offset
, 32,
3248 ett_classportinfo_redirect
, NULL
, "Redirect");
3250 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_GID
, tvb
, local_offset
, 16, ENC_NA
);
3252 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_TClass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3254 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_reserved
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3255 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_FlowLabel
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3257 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3259 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_SL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3260 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3262 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_QP
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3264 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_Q_Key
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3267 ClassPortInfo_Trap_tree
= proto_tree_add_subtree(ClassPortInfo_tree
, tvb
, local_offset
, 32,
3268 ett_classportinfo_trap
, NULL
, "Trap");
3270 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_GID
, tvb
, local_offset
, 16, ENC_NA
);
3272 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_TClass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3274 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_reserved
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3275 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_FlowLabel
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3277 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3279 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_HopLimit
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3281 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_QP
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3283 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_Q_Key
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3286 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3288 proto_tree_add_item(ClassPortInfo_Redirect_tree
, hf_opa_ClassPortInfo_Redirect_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3291 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_SL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3292 proto_tree_add_item(ClassPortInfo_Trap_tree
, hf_opa_ClassPortInfo_Trap_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3295 proto_tree_add_item(ClassPortInfo_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3298 return local_offset
;
3301 /* Parse NodeDescription Attribute */
3302 static int parse_NodeDescription(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3304 int local_offset
= *offset
;
3305 proto_tree
*NodeDescription_header_tree
= parentTree
;
3306 proto_item
*NodeDescription_header_item
;
3308 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3311 NodeDescription_header_item
= proto_tree_add_item(NodeDescription_header_tree
, hf_opa_NodeDescription
, tvb
, local_offset
, 64, ENC_NA
);
3312 NodeDescription_header_tree
= proto_item_add_subtree(NodeDescription_header_item
, ett_nodedescription
);
3314 proto_tree_add_item(NodeDescription_header_tree
, hf_opa_NodeDescription_NodeString
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
3316 return local_offset
;
3319 /* Parse NodeInfo Attribute */
3320 static int parse_NodeInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3322 int local_offset
= *offset
;
3323 proto_tree
*NodeInfo_header_tree
= parentTree
;
3324 proto_item
*NodeInfo_header_item
;
3326 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3329 NodeInfo_header_item
= proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo
, tvb
, local_offset
, 44, ENC_NA
);
3330 NodeInfo_header_tree
= proto_item_add_subtree(NodeInfo_header_item
, ett_nodeinfo
);
3332 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_BaseVersion
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3334 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_ClassVersion
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3336 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_NodeType
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3338 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_NumPorts
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3340 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3342 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_SystemImageGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3344 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_NodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3346 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_PortGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3348 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_PartitionCap
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3350 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_DeviceID
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3352 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_Revision
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3354 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_LocalPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3356 proto_tree_add_item(NodeInfo_header_tree
, hf_opa_NodeInfo_VendorID
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3359 return local_offset
;
3363 /* Parse SwitchInfo Attribute */
3364 static int parse_SwitchInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3366 int local_offset
= *offset
;
3367 proto_tree
*SwitchInfo_header_tree
= parentTree
;
3368 proto_item
*SwitchInfo_header_item
;
3370 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3373 SwitchInfo_header_item
= proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo
, tvb
, local_offset
, 84, ENC_NA
);
3374 SwitchInfo_header_tree
= proto_item_add_subtree(SwitchInfo_header_item
, ett_switchinfo
);
3376 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_LinearFDBCap
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3378 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3380 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_MulticastFDBCap
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3382 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_LinearFDBTop
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3384 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_MulticastFDBTop
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3386 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_CollectiveCap
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3388 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_CollectiveTop
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3390 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3392 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_IPAddrIPv6
, tvb
, local_offset
, 16, ENC_NA
);
3394 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_IPAddrIPv4
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3396 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3398 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3400 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3402 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
3404 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_LifeTimeValue
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3405 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_PortStateChange
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3406 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3408 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3410 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_PartitionEnforcementCap
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3412 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_PortGroupCap
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3414 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_PortGroupTop
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3416 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_SupportedRoutingMode
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3418 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_EnabledRoutingMode
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3421 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_reserved3
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3422 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_EnhancedPortZero
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3423 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_reserved4
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3425 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_reserved5
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3426 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_CollectiveMask
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3427 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_MulticastMask
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3430 proto_tree_add_bitmask_list(SwitchInfo_header_tree
, tvb
, local_offset
, 2,
3431 _SwitchInfo_AdaptiveRouting
, ENC_BIG_ENDIAN
);
3434 proto_tree_add_bitmask(SwitchInfo_header_tree
, tvb
, local_offset
, hf_opa_SwitchInfo_SwitchCapabilityMask
,
3435 ett_switchinfo_switchcapabilitymask
, _SwitchInfo_SwitchCapabilityMask
, ENC_BIG_ENDIAN
);
3438 proto_tree_add_item(SwitchInfo_header_tree
, hf_opa_SwitchInfo_CapabilityMaskCollectives
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3441 return local_offset
;
3444 /* Parse PortInfo Attribute */
3445 static int parse_PortInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3447 int local_offset
= *offset
;
3448 proto_tree
*PortInfo_header_tree
= parentTree
,
3450 *PortInfo_Link_tree
,
3451 *PortInfo_FlitControl_tree
,
3452 *PortInfo_NeighborMTU_tree
,
3453 *PortInfo_XmitQ_tree
;
3454 proto_item
* PortInfo_header_item
,
3455 *PortInfo_PortWdthSpeedActive_item
;
3456 proto_item
*temp_item
;
3457 unsigned p
, i
, Num_ports
, Port_num
;
3459 int block_length
= 242;
3460 int block_pad_len
= 8 - (block_length
& 7); /* Padding to add */
3462 if (MAD
->MgmtClass
== SUBNADMN
) {
3464 Port_num
= tvb_get_uint8(tvb
, local_offset
- 4);
3466 Num_ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
3467 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
3470 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3473 for (p
= Port_num
; p
< (Port_num
+ Num_ports
);) {
3474 PortInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_PortInfo
, tvb
, local_offset
, block_length
, ENC_NA
);
3475 proto_item_set_text(PortInfo_header_item
, "PortInfo on Port %d", p
);
3476 PortInfo_header_tree
= proto_item_add_subtree(PortInfo_header_item
, ett_portinfo
);
3478 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_LID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3480 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_FlowControlMask
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3484 PortInfo_VL_tree
= proto_tree_add_subtree(PortInfo_header_tree
, tvb
, local_offset
, 8,
3485 ett_portinfo_vl
, NULL
, "VL Info");
3486 proto_tree_add_item(PortInfo_VL_tree
, hf_opa_PortInfo_VL_PreemptCap
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3488 proto_tree_add_item(PortInfo_VL_tree
, hf_opa_PortInfo_VL_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3489 proto_tree_add_item(PortInfo_VL_tree
, hf_opa_PortInfo_VL_Cap
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3491 proto_tree_add_item(PortInfo_VL_tree
, hf_opa_PortInfo_VL_HighLimit
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3493 proto_tree_add_item(PortInfo_VL_tree
, hf_opa_PortInfo_VL_PreemptingLimit
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3495 proto_tree_add_item(PortInfo_VL_tree
, hf_opa_PortInfo_VL_ArbitrationHighCap
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3497 proto_tree_add_item(PortInfo_VL_tree
, hf_opa_PortInfo_VL_ArbitrationLowCap
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3501 proto_tree_add_bitmask_list(PortInfo_header_tree
, tvb
, local_offset
, 4, _PortStates
, ENC_BIG_ENDIAN
);
3504 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortPhysConfig_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3505 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortPhysConfig_PortType
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3508 /* MultiCollectMask */
3509 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MultiCollectMask_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3510 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MultiCollectMask_CollectiveMask
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3511 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MultiCollectMask_MulticastMask
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3514 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_M_KeyProtectBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3515 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_S1_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3516 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_LMC
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3519 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_S2_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3520 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MasterSMSL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3523 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_LinkInitReason
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3524 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PartitionEnforcementInbound
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3525 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PartitionEnforcementOutbound
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3526 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_S3_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3529 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_S4_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3530 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_OperationalVL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3534 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_P_Keys_P_Key_8B
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3536 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_P_Keys_P_Key_10B
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3540 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_M_KeyViolations
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3542 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_P_KeyViolations
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3544 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_Q_KeyViolations
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3547 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_TrapQueuePair_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3548 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_TrapQueuePair
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3551 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_SAQueuePair_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3552 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_SAQueuePair
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3555 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_NeighborPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3558 /*STL Linkdown reason */
3559 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_LinkDownReason
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3562 /*STL NeighborLinkdown reason */
3563 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_NeighborLinkDownReason
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3567 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_ClientReregister
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3568 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MulticastPKeyTrapSuppressEnabled
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3569 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_Timeout
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3572 PortInfo_Link_tree
= proto_tree_add_subtree(PortInfo_header_tree
, tvb
, local_offset
, 22,
3573 ett_portinfo_link
, NULL
, "Link Info");
3575 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkSpeedSupported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3577 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkSpeedEnabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3579 active
= tvb_get_ntohs(tvb
, local_offset
);
3580 PortInfo_PortWdthSpeedActive_item
= proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkSpeedActive
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3582 if (!active
&& (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
))
3583 proto_item_set_text(PortInfo_PortWdthSpeedActive_item
, "None");
3585 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkWidthSupported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3587 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkWidthEnabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3589 active
= tvb_get_ntohs(tvb
, local_offset
);
3590 PortInfo_PortWdthSpeedActive_item
= proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkWidthActive
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3592 if (!active
&& (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
))
3593 proto_item_set_text(PortInfo_PortWdthSpeedActive_item
, "None");
3595 /* LinkWidthDowngrade */
3596 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkWidthDowngrade_Supported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3598 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkWidthDowngrade_Enabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3600 active
= tvb_get_ntohs(tvb
, local_offset
);
3601 PortInfo_PortWdthSpeedActive_item
= proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkWidthDowngrade_TxActive
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3603 if (!active
&& (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
))
3604 proto_item_set_text(PortInfo_PortWdthSpeedActive_item
, "None");
3605 active
= tvb_get_ntohs(tvb
, local_offset
);
3606 PortInfo_PortWdthSpeedActive_item
= proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_LinkWidthDowngrade_RxActive
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3608 if (!active
&& (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
))
3609 proto_item_set_text(PortInfo_PortWdthSpeedActive_item
, "None");
3612 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_PortLinkMode_reserved
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3613 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_PortLinkMode_Supported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3614 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_PortLinkMode_Enabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3615 proto_tree_add_item(PortInfo_Link_tree
, hf_opa_PortInfo_PortLinkMode_Active
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3619 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortLTPCRCMode_reserved
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3620 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortLTPCRCMode_Supported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3621 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortLTPCRCMode_Enabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3622 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortLTPCRCMode_Active
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3625 proto_tree_add_bitmask(PortInfo_header_tree
, tvb
, local_offset
, hf_opa_PortInfo_PortMode
,
3626 ett_portinfo_portmode
, _PortInfo_PortMode
, ENC_BIG_ENDIAN
);
3629 /* PortPacketFormats */
3630 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortPacketFormats_Supported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3632 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortPacketFormats_Enabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3636 PortInfo_FlitControl_tree
= proto_tree_add_subtree(PortInfo_header_tree
, tvb
, local_offset
, 10,
3637 ett_portinfo_flitcontrol
, NULL
, "Flit Control");
3638 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Interleave_reserved
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3639 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Interleave_DistanceSupported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3640 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Interleave_DistanceEnabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3641 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Interleave_MaxNestLevelTxEnabled
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3642 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Interleave_MaxNestLevelRxSupported
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3645 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Preemption_MinInitial
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3647 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Preemption_MinTail
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3649 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Preemption_LargePacketLimit
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3651 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Preemption_SmallPacketLimit
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3653 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Preemption_MaxSmallPacketLimit
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3655 proto_tree_add_item(PortInfo_FlitControl_tree
, hf_opa_PortInfo_FlitControl_Preemption_PreemptionLimit
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3658 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3662 proto_tree_add_bitmask(PortInfo_header_tree
, tvb
, local_offset
, hf_opa_PortInfo_PortErrorAction
,
3663 ett_portinfo_porterroraction
, _PortInfo_PortErrorAction
, ENC_BIG_ENDIAN
);
3666 /* PassThroughControl */
3667 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PassThroughControl_EgressPort
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3669 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PassThroughControl_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3670 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PassThroughControl_DRControl
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3673 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_M_KeyLeasePeriod
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3677 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_BufferUnits_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3678 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_BufferUnits_VL15Init
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3679 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_BufferUnits_VL15CreditRate
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3680 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_BufferUnits_CreditAck
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3681 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_BufferUnits_BufferAlloc
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3684 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3687 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MasterSMLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3690 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_M_Key
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3692 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_SubnetPrefix
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3696 PortInfo_NeighborMTU_tree
= proto_tree_add_subtree(PortInfo_header_tree
, tvb
, local_offset
, 32 / 2,
3697 ett_portinfo_neighbormtu
, NULL
, "NeighborMTU");
3698 for (i
= 0; i
< (32 / 2); i
++) {
3699 temp_item
= proto_tree_add_item(PortInfo_NeighborMTU_tree
, hf_opa_PortInfo_VL1
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3700 proto_item_prepend_text(temp_item
, "%3u: ", 2 * i
);
3701 temp_item
= proto_tree_add_item(PortInfo_NeighborMTU_tree
, hf_opa_PortInfo_VL2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3703 proto_item_prepend_text(temp_item
, "%3u: ", 2 * i
+ 1);
3707 PortInfo_XmitQ_tree
= proto_tree_add_subtree(PortInfo_header_tree
, tvb
, local_offset
, 32,
3708 ett_portinfo_xmitq
, NULL
, "XmitQ");
3709 for (i
= 0; i
< 32; i
++) {
3710 temp_item
= proto_tree_add_item(PortInfo_XmitQ_tree
, hf_opa_PortInfo_XmitQ_VLStallCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3711 proto_item_prepend_text(temp_item
, "%3u: ", i
);
3712 temp_item
= proto_tree_add_item(PortInfo_XmitQ_tree
, hf_opa_PortInfo_XmitQ_HOQLife
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3714 proto_item_prepend_text(temp_item
, " ");
3717 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_IPAddrIPv6
, tvb
, local_offset
, 16, ENC_NA
);
3719 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_IPAddrIPv4
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3721 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3723 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3725 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3728 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_NeighborNodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
3731 /* Capability Mask Flags */
3732 proto_tree_add_bitmask(PortInfo_header_tree
, tvb
, local_offset
, hf_opa_PortInfo_CapabilityMask
,
3733 ett_portinfo_capmask
, _PortInfo_CapabilityMask
, ENC_BIG_ENDIAN
);
3735 /* End Capability Mask Flags */
3737 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3740 /* CapabilityMask3 */
3741 proto_tree_add_bitmask(PortInfo_header_tree
, tvb
, local_offset
, hf_opa_PortInfo_CapabilityMask3
,
3742 ett_portinfo_capmask3
, _PortInfo_CapabilityMask3
, ENC_BIG_ENDIAN
);
3745 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
3748 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_OverallBufferSpace
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3750 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3754 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_DiagCode
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3759 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_ReplayDepth_BufferDepth
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3761 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_ReplayDepth_WireDepth
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3764 /* PortNeighborMode */
3765 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortNeighborMode_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3766 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortNeighborMode_MgmtAllowed
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3767 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortNeighborMode_NeighborFWAuthenBypass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3768 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_PortNeighborMode_NeighborNodeType
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3772 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MTU_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3773 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_MTU_Cap
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3776 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_Resp_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3777 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_Resp_TimeValue
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3780 proto_tree_add_item(PortInfo_header_tree
, hf_opa_PortInfo_LocalPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3783 proto_tree_add_item(PortInfo_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3786 /* If Not last block add byte padding */
3787 if ((++p
) < (Port_num
+ Num_ports
)) {
3788 local_offset
+= block_pad_len
;
3792 return local_offset
;
3795 /* Parse PortStateInfo Attribute */
3796 static int parse_PortStateInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3798 int local_offset
= *offset
;
3799 proto_item
*PortStates_header_item
;
3800 proto_tree
*PortStates_header_tree
;
3801 unsigned i
, Num_ports
, Port_num
;
3803 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3806 Num_ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
3807 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
3809 for (i
= Port_num
; i
< Port_num
+ Num_ports
; i
++) {
3810 PortStates_header_item
= proto_tree_add_item(parentTree
, hf_opa_PortStates
, tvb
, local_offset
, 4, ENC_NA
);
3811 proto_item_set_text(PortStates_header_item
, "Port Sate Info on Port %d", i
);
3812 PortStates_header_tree
= proto_item_add_subtree(PortStates_header_item
, ett_portstates
);
3814 proto_tree_add_bitmask_list(PortStates_header_tree
, tvb
, local_offset
, 4,
3815 _PortStates
, ENC_BIG_ENDIAN
);
3818 proto_tree_add_item(PortStates_header_tree
, hf_opa_PortStates_LinkWidthDowngradeTxActive
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3820 proto_tree_add_item(PortStates_header_tree
, hf_opa_PortStates_LinkWidthDowngradeRxActive
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3824 return local_offset
;
3827 /* Parse P_KeyTable Attribute */
3828 static int parse_P_KeyTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3830 int local_offset
= *offset
;
3831 proto_item
*P_KeyTable_header_item
;
3832 proto_tree
*P_KeyTable_header_tree
;
3833 proto_tree
*tempBlock_tree
;
3834 proto_item
*tempItemLow
;
3835 proto_item
*tempItemHigh
;
3836 unsigned i
, b
, Num_blocks
, Block_num
/*, Port_num*/;
3838 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3841 if (MAD
->MgmtClass
== SUBNADMN
) {
3843 Block_num
= tvb_get_ntohs(tvb
, local_offset
- 4);
3844 /*Port_num = tvb_get_uint8(tvb, local_offset - 2);*/
3846 Num_blocks
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
3847 Block_num
= (MAD
->AttributeModifier
& 0x000007FF);
3848 /*Port_num = (MAD->AttributeModifier & 0x00FF0000) >> 16;*/
3851 P_KeyTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_P_KeyTable
, tvb
, local_offset
, 64 * Num_blocks
, ENC_NA
);
3852 P_KeyTable_header_tree
= proto_item_add_subtree(P_KeyTable_header_item
, ett_pkeytable
);
3854 for (b
= Block_num
; b
< Block_num
+ Num_blocks
; b
++) {
3855 tempBlock_tree
= proto_tree_add_subtree_format(P_KeyTable_header_tree
, tvb
, local_offset
, 64,
3856 ett_pkeytable_block
, NULL
, "PKey Table Block %u", b
);
3858 for (i
= 0; i
< 32; i
++) {
3859 tempItemHigh
= proto_tree_add_item(tempBlock_tree
, hf_opa_P_KeyTable_MembershipType
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3860 tempItemLow
= proto_tree_add_item(tempBlock_tree
, hf_opa_P_KeyTable_P_KeyBase
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
3862 proto_item_prepend_text(tempItemHigh
, "%3u: ", i
);
3863 proto_item_prepend_text(tempItemLow
, " ");
3866 return local_offset
;
3869 /* Parse SLtoSC Mapping Table Attribute */
3870 static int parse_SLtoSCMappingTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3872 int local_offset
= *offset
;
3873 proto_item
*SLtoSCMappingTable_header_item
;
3874 proto_tree
*SLtoSCMappingTable_header_tree
;
3875 proto_item
*tempItemHigh
;
3876 proto_item
*tempItemLow
;
3879 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3882 SLtoSCMappingTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_SLtoSCMappingTable
, tvb
, local_offset
, 32, ENC_NA
);
3883 SLtoSCMappingTable_header_tree
= proto_item_add_subtree(SLtoSCMappingTable_header_item
, ett_sltoscmapping
);
3885 for (i
= 0; i
< 32; i
++) {
3886 tempItemHigh
= proto_tree_add_item(SLtoSCMappingTable_header_tree
, hf_opa_SLtoSCMappingTable_SLtoSC_HighBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3887 proto_item_prepend_text(tempItemHigh
, "%3u: ", i
);
3888 tempItemLow
= proto_tree_add_item(SLtoSCMappingTable_header_tree
, hf_opa_SLtoSCMappingTable_SLtoSC_LowBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3889 proto_item_prepend_text(tempItemLow
, " ");
3893 return local_offset
;
3896 /* Parse SCtoSC Mapping Table Attribute */
3897 static int parse_SCtoSCMappingTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3899 int local_offset
= *offset
;
3900 proto_item
*SCtoSCMappingTable_header_item
;
3901 proto_tree
*SCtoSCMappingTable_header_tree
;
3902 proto_item
*tempItemHigh
;
3903 proto_item
*tempItemLow
;
3904 proto_tree
*tempBlock_tree
;
3905 unsigned i
, b
, i_block
, e_block
, Num_blocks
, Block_num
;
3908 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3911 if (MAD
->MgmtClass
== SUBNADMN
) {
3914 i_block
= tvb_get_uint8(tvb
, local_offset
- 4);
3915 e_block
= tvb_get_uint8(tvb
, local_offset
- 3);
3916 Block_num
= e_block
;
3918 Num_blocks
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
3919 B
= (bool)((MAD
->AttributeModifier
& 0x00010000) >> 16);
3920 i_block
= (MAD
->AttributeModifier
& 0x0000FF00) >> 8;
3921 e_block
= (MAD
->AttributeModifier
& 0x000000FF);
3922 Block_num
= (B
? i_block
: e_block
);
3925 SCtoSCMappingTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_SCtoSCMappingTable
, tvb
, local_offset
, 32 * Num_blocks
, ENC_NA
);
3926 SCtoSCMappingTable_header_tree
= proto_item_add_subtree(SCtoSCMappingTable_header_item
, ett_sctoscmapping
);
3928 for (b
= Block_num
; b
< (Block_num
+ Num_blocks
); b
++) {
3929 tempBlock_tree
= proto_tree_add_subtree_format(SCtoSCMappingTable_header_tree
, tvb
, local_offset
, 32,
3930 ett_sctoscmapping_block
, NULL
, "SC to SC Mapping Table for InPort %u, OutPort %u", (B
? b
: i_block
), (B
? e_block
: b
));
3932 for (i
= 0; i
< 32; i
++) {
3933 tempItemHigh
= proto_tree_add_item(tempBlock_tree
, hf_opa_SCtoSCMappingTable_SCtoSC_HighBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3934 proto_item_prepend_text(tempItemHigh
, "%3u: ", i
);
3935 tempItemLow
= proto_tree_add_item(tempBlock_tree
, hf_opa_SCtoSCMappingTable_SCtoSC_LowBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3936 proto_item_prepend_text(tempItemLow
, " ");
3941 return local_offset
;
3944 /* Parse SCtoSL Mapping Table Attribute */
3945 static int parse_SCtoSLMappingTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3947 int local_offset
= *offset
;
3948 proto_item
*SCtoSLMappingTable_header_item
;
3949 proto_tree
*SCtoSLMappingTable_header_tree
;
3950 proto_item
*tempItemHigh
;
3951 proto_item
*tempItemLow
;
3954 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3957 SCtoSLMappingTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_SCtoSLMappingTable
, tvb
, local_offset
, 32, ENC_NA
);
3958 SCtoSLMappingTable_header_tree
= proto_item_add_subtree(SCtoSLMappingTable_header_item
, ett_sctoslmapping
);
3960 for (i
= 0; i
< 32; i
++) {
3961 tempItemHigh
= proto_tree_add_item(SCtoSLMappingTable_header_tree
, hf_opa_SCtoSLMappingTable_SCtoSL_HighBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3962 proto_item_prepend_text(tempItemHigh
, "%3u: ", i
);
3963 tempItemLow
= proto_tree_add_item(SCtoSLMappingTable_header_tree
, hf_opa_SCtoSLMappingTable_SCtoSL_LowBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
3964 proto_item_prepend_text(tempItemLow
, " ");
3967 return local_offset
;
3970 /* Parse SCtoVLx Mapping Table Attribute */
3971 static int parse_SCtoVLxMappingTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
3973 int local_offset
= *offset
;
3974 proto_item
*SCtoVLxMappingTable_header_item
;
3975 proto_tree
*SCtoVLxMappingTable_header_tree
;
3976 proto_item
*tempItemLow
;
3977 proto_item
*tempItemHigh
;
3978 proto_tree
*tempBlock_tree
;
3979 unsigned p
, v
, Port_num
, Num_ports
;
3982 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
3985 if (MAD
->MgmtClass
== SUBNADMN
) {
3987 Port_num
= tvb_get_uint8(tvb
, local_offset
- 4);
3988 VLx
= val_to_str_const(MAD
->AttributeID
, SA_SC_VLx
, "x");
3990 Num_ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
3991 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
3992 VLx
= val_to_str_const(MAD
->AttributeID
, SM_SC_VLx
, "x");
3995 SCtoVLxMappingTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_SCtoVLxMappingTable
, tvb
, local_offset
, 32 * Num_ports
, ENC_NA
);
3996 proto_item_set_text(SCtoVLxMappingTable_header_item
, "SC to VL%s Mapping Table", VLx
);
3997 SCtoVLxMappingTable_header_tree
= proto_item_add_subtree(SCtoVLxMappingTable_header_item
, ett_sctovlxmappingtable
);
3999 for (p
= Port_num
; p
< (Port_num
+ Num_ports
); p
++) {
4000 tempBlock_tree
= proto_tree_add_subtree_format(SCtoVLxMappingTable_header_tree
, tvb
, local_offset
, 32,
4001 ett_sctovlxmappingtable_block
, NULL
, "SC to VL%s Mapping Table for Port %u", VLx
, p
);
4003 for (v
= 0; v
< 32; v
++) {
4004 tempItemHigh
= proto_tree_add_item(tempBlock_tree
, hf_opa_SCtoVLxMappingTable_SCtoVLx_HighBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4005 proto_item_prepend_text(tempItemHigh
, "%3u: ", v
);
4006 tempItemLow
= proto_tree_add_item(tempBlock_tree
, hf_opa_SCtoVLxMappingTable_SCtoVLx_LowBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4007 proto_item_prepend_text(tempItemLow
, " ");
4011 return local_offset
;
4014 /* Parse VLArbitrationTable Attribute */
4015 static int parse_VLArbitrationTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4017 int local_offset
= *offset
;
4018 proto_item
*VLArbitrationTable_header_item
;
4019 proto_tree
* VLArbitrationTable_header_tree
,*VLArbitrationTable_port_tree
;
4020 proto_item
*tempItemHigh
;
4021 proto_item
*tempItemLow
;
4022 proto_item
*tempItem
;
4023 unsigned i
, p
, Section
, Num_ports
, Port_num
;
4024 const char *TableType
;
4026 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4029 if (MAD
->MgmtClass
== SUBNADMN
) {
4031 Section
= tvb_get_uint8(tvb
, local_offset
- 3);
4032 Port_num
= tvb_get_uint8(tvb
, local_offset
- 4);
4034 Num_ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4035 Section
= (MAD
->AttributeModifier
& 0x00FF0000) >> 16;
4036 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
4038 TableType
= val_to_str_const(Section
, MADAttrModSectionVLarb_short
, "Reserved");
4040 VLArbitrationTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_VLArbitrationTable
, tvb
, local_offset
, 256 * Num_ports
, ENC_NA
);
4041 VLArbitrationTable_header_tree
= proto_item_add_subtree(VLArbitrationTable_header_item
, ett_vlarbitrationtable
);
4043 for (p
= Port_num
; p
< (Port_num
+ Num_ports
); p
++) {
4044 VLArbitrationTable_port_tree
= proto_tree_add_subtree_format(VLArbitrationTable_header_tree
, tvb
, local_offset
, 256,
4045 ett_vlarbitrationtable_port
, NULL
, "%s VL Arbitration Table on Port %u", TableType
, p
);
4048 for (i
= 0; i
< 128; i
++) {
4049 tempItemHigh
= proto_tree_add_item(VLArbitrationTable_port_tree
, hf_opa_VLArbitrationTable_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4050 proto_item_prepend_text(tempItemHigh
, "%3u: ", i
);
4051 tempItemLow
= proto_tree_add_item(VLArbitrationTable_port_tree
, hf_opa_VLArbitrationTable_VL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4052 proto_item_prepend_text(tempItemLow
, " ");
4055 tempItem
= proto_tree_add_item(VLArbitrationTable_port_tree
, hf_opa_VLArbitrationTable_Weight
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4057 proto_item_prepend_text(tempItem
, " ");
4059 } else if (Section
== 3) {
4060 for (i
= 0; i
< 32; i
++) {
4061 tempItemLow
= proto_tree_add_item(VLArbitrationTable_port_tree
, hf_opa_VLArbitrationTable_Matrix
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4063 proto_item_prepend_text(tempItemLow
, "%3u: ", i
);
4065 local_offset
+= 128;
4067 local_offset
+= 256;
4070 return local_offset
;
4073 /* Parse LinearForwardingTable Attribute */
4074 static int parse_LinearForwardingTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4076 int local_offset
= *offset
;
4077 proto_item
*LinearForwardingTable_header_item
;
4078 proto_tree
*LinearForwardingTable_header_tree
;
4079 proto_item
*tempItemLow
;
4080 proto_tree
*tempBlock_tree
;
4081 unsigned b
, i
, Block_num
, Num_blocks
;
4083 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4086 if (MAD
->MgmtClass
== SUBNADMN
) {
4088 Block_num
= tvb_get_ntohl(tvb
, local_offset
- 4) & 0x0003FFFF;
4090 Num_blocks
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4091 Block_num
= (MAD
->AttributeModifier
& 0x0003FFFF);
4094 LinearForwardingTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_LinearForwardingTable
, tvb
, local_offset
, 64 * Num_blocks
, ENC_NA
);
4095 LinearForwardingTable_header_tree
= proto_item_add_subtree(LinearForwardingTable_header_item
, ett_linearforwardingtable
);
4096 for (b
= Block_num
; b
< (Block_num
+ Num_blocks
); b
++) {
4097 tempBlock_tree
= proto_tree_add_subtree_format(LinearForwardingTable_header_tree
, tvb
, local_offset
, 64,
4098 ett_linearforwardingtable_block
, NULL
, "Linear Forwarding Table Block %u", b
);
4100 for (i
= 0; i
< 64; i
++) {
4101 tempItemLow
= proto_tree_add_item(tempBlock_tree
, hf_opa_LinearForwardingTable_Port
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4103 proto_item_prepend_text(tempItemLow
, "%3u: ", i
);
4106 return local_offset
;
4109 /* Parse MulticastForwardingTable Attribute */
4110 static int parse_MulticastForwardingTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4112 int local_offset
= *offset
;
4113 proto_item
*MulticastForwardingTable_header_item
;
4114 proto_tree
*MulticastForwardingTable_header_tree
;
4115 proto_item
*tempItem
;
4116 proto_tree
*tempBlock_tree
;
4117 unsigned b
, i
, Block_num
, Num_blocks
, Pos
;
4118 const char *Position
;
4120 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4123 if (MAD
->MgmtClass
== SUBNADMN
) {
4126 Block_num
= tvb_get_ntohl(tvb
, local_offset
- 4) & 0x001FFFFF;
4128 Num_blocks
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4129 Pos
= (MAD
->AttributeModifier
& 0x00C00000) >> 22;
4130 Block_num
= (MAD
->AttributeModifier
& 0x000FFFFF);
4132 Position
= val_to_str_const(Pos
, GroupTablePosition
, "Unknown");
4134 MulticastForwardingTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_MulticastForwardingTable
, tvb
, local_offset
, 64 * Num_blocks
, ENC_NA
);
4135 MulticastForwardingTable_header_tree
= proto_item_add_subtree(MulticastForwardingTable_header_item
, ett_multicastforwardingtable
);
4136 for (b
= Block_num
; b
< (Block_num
+ Num_blocks
); b
++) {
4137 tempBlock_tree
= proto_tree_add_subtree_format(MulticastForwardingTable_header_tree
, tvb
, local_offset
, 64,
4138 ett_multicastforwardingtable_block
, NULL
, "Multicast Forwarding Table Block %u, Ports %s", b
, Position
);
4140 for (i
= 0; i
< 8; i
++) {
4141 tempItem
= proto_tree_add_item(tempBlock_tree
, hf_opa_MulticastForwardingTable_PortMask
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
4143 proto_item_prepend_text(tempItem
, "%3u: ", i
);
4146 return local_offset
;
4149 /* Parse PortGroupForwardingTable Attribute */
4150 static int parse_PortGroupForwardingTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4152 int local_offset
= *offset
;
4153 proto_item
*PortGroupForwardingTable_header_item
;
4154 proto_tree
*PortGroupForwardingTable_header_tree
;
4155 proto_item
*tempItemLow
;
4156 proto_tree
*tempBlock_tree
;
4157 unsigned b
, i
, Block_num
, Num_blocks
;
4159 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4162 if (MAD
->MgmtClass
== SUBNADMN
) {
4164 Block_num
= tvb_get_ntohl(tvb
, local_offset
- 4) & 0x0003FFFF;
4166 Num_blocks
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4167 Block_num
= (MAD
->AttributeModifier
& 0x0003FFFF);
4170 PortGroupForwardingTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_PortGroupForwardingTable
, tvb
, local_offset
, 64 * Num_blocks
, ENC_NA
);
4171 PortGroupForwardingTable_header_tree
= proto_item_add_subtree(PortGroupForwardingTable_header_item
, ett_portgroupforwardingtable
);
4173 for (b
= Block_num
; b
< (Block_num
+ Num_blocks
); b
++) {
4174 tempBlock_tree
= proto_tree_add_subtree_format(PortGroupForwardingTable_header_tree
, tvb
, local_offset
, 64,
4175 ett_portgroupforwardingtable_block
, NULL
, "Port Group Forwarding Table Block %u", b
);
4177 for (i
= 0; i
< 64; i
++) {
4178 tempItemLow
= proto_tree_add_item(tempBlock_tree
, hf_opa_PortGroupForwardingTable_Port
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4180 proto_item_prepend_text(tempItemLow
, "%3u: ", i
);
4183 return local_offset
;
4186 /* Parse PortGroupTable Attribute */
4187 static int parse_PortGroupTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4189 int local_offset
= *offset
;
4190 proto_item
*PortGroupTable_header_item
;
4191 proto_tree
*PortGroupTable_header_tree
;
4192 proto_item
*tempItemLow
;
4193 proto_tree
*tempBlock_tree
;
4194 unsigned b
, i
, Block_num
, Num_blocks
, Pos
;
4195 const char *Position
;
4197 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4200 if (MAD
->MgmtClass
== SUBNADMN
) {
4203 Block_num
= tvb_get_uint8(tvb
, local_offset
- 3) & 0x1F;
4205 Num_blocks
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4206 Pos
= (MAD
->AttributeModifier
& 0x00C00000) >> 22;
4207 Block_num
= (MAD
->AttributeModifier
& 0x0000001F);
4209 Position
= val_to_str_const(Pos
, GroupTablePosition
, "Unknown");
4211 PortGroupTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_PortGroupTable
, tvb
, local_offset
, 64 * Num_blocks
, ENC_NA
);
4212 PortGroupTable_header_tree
= proto_item_add_subtree(PortGroupTable_header_item
, ett_portgrouptable
);
4214 for (b
= Block_num
; b
< (Block_num
+ Num_blocks
); b
++) {
4215 tempBlock_tree
= proto_tree_add_subtree_format(PortGroupTable_header_tree
, tvb
, local_offset
, 64,
4216 ett_portgrouptable_block
, NULL
, "Port Group Table Block %u, Ports %s", b
, Position
);
4218 for (i
= 0; i
< 8; i
++) {
4219 tempItemLow
= proto_tree_add_item(tempBlock_tree
, hf_opa_PortGroupTable_PortMask
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
4221 proto_item_prepend_text(tempItemLow
, "%3u: ", i
);
4224 return local_offset
;
4227 /* Parse SMInfo Attribute */
4228 static int parse_SMInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4230 int local_offset
= *offset
;
4231 proto_item
*SMInfo_header_item
;
4232 proto_tree
*SMInfo_header_tree
;
4234 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4237 SMInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_SMInfo
, tvb
, local_offset
, 26, ENC_NA
);
4238 SMInfo_header_tree
= proto_item_add_subtree(SMInfo_header_item
, ett_sminfo
);
4240 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_GUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
4242 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_SM_Key
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
4244 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_ActCount
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4246 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_ElapsedTime
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4248 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_Priority
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4249 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_ElevatedPriority
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4250 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_InitialPriority
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4251 proto_tree_add_item(SMInfo_header_tree
, hf_opa_SMInfo_SMState
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4253 return local_offset
;
4256 /* Parse LedInfo Attribute */
4257 static int parse_LedInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4259 int local_offset
= *offset
;
4260 proto_item
*LedInfo_header_item
;
4261 proto_tree
*LedInfo_header_tree
;
4262 proto_item
*tempItemHigh
;
4263 proto_item
*tempItemLow
;
4264 unsigned p
, Port_num
, Num_ports
;
4266 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4269 Num_ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4270 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
4272 LedInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_LedInfo
, tvb
, local_offset
, 8 * Num_ports
, ENC_NA
);
4273 LedInfo_header_tree
= proto_item_add_subtree(LedInfo_header_item
, ett_ledinfo
);
4275 for (p
= Port_num
; p
< (Port_num
+ Num_ports
); p
++) {
4276 tempItemHigh
= proto_tree_add_item(LedInfo_header_tree
, hf_opa_LedInfo_LedMask
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4277 proto_item_prepend_text(tempItemHigh
, "Port %3u: ", p
);
4278 tempItemLow
= proto_tree_add_item(LedInfo_header_tree
, hf_opa_LedInfo_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4279 proto_item_prepend_text(tempItemLow
, " ");
4281 proto_tree_add_item(LedInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4284 return local_offset
;
4287 /* Parse CableInfo Attribute */
4288 static int parse_CableInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4290 int local_offset
= *offset
;
4291 proto_item
*CableInfo_header_item
;
4292 proto_tree
*CableInfo_header_tree
;
4293 proto_item
*tempItemLow
;
4294 unsigned i
, Port_num
, Data_Len
, start_addr
;
4296 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4299 start_addr
= (MAD
->AttributeModifier
& 0x7FF80000) >> 19;
4300 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
4301 Data_Len
= ((MAD
->AttributeModifier
& 0x0007E000) >> 13) + 1;
4303 CableInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_CableInfo
, tvb
, local_offset
, Data_Len
, ENC_NA
);
4304 proto_item_set_text(CableInfo_header_item
, "Cable Info on Port %u", Port_num
);
4305 CableInfo_header_tree
= proto_item_add_subtree(CableInfo_header_item
, ett_cableinfo
);
4307 proto_tree_add_item(CableInfo_header_tree
, hf_opa_CableInfo_DataStream
, tvb
, local_offset
, Data_Len
, ENC_ASCII
| ENC_NA
);
4308 for (i
= 0; i
< Data_Len
; i
++) {
4309 tempItemLow
= proto_tree_add_item(CableInfo_header_tree
, hf_opa_CableInfo_Data
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4310 proto_item_prepend_text(tempItemLow
, "0x%04X: ", i
+ start_addr
);
4313 return local_offset
;
4315 /* Parse BufferControlTable Attribute */
4316 static int parse_BufferControlTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4318 int local_offset
= *offset
;
4319 proto_item
*BCT_header_item
;
4320 proto_tree
*BCT_header_tree
;
4321 proto_item
*tempItemLow
;
4322 proto_item
*tempItemHigh
;
4323 unsigned p
, i
, Port_num
, Num_ports
;
4324 int block_length
= 4 + (32 * 4);
4325 int block_pad_len
= 8 - (block_length
& 7); /* Padding to add */
4327 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4330 if (MAD
->MgmtClass
== SUBNADMN
) {
4332 Port_num
= tvb_get_uint8(tvb
, local_offset
- 4);
4334 Num_ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4335 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
4338 for (p
= Port_num
; p
< (Port_num
+ Num_ports
);) {
4339 BCT_header_item
= proto_tree_add_item(parentTree
, hf_opa_BufferControlTable
, tvb
, local_offset
, block_length
, ENC_NA
);
4340 proto_item_append_text(BCT_header_item
, " Port %u", p
);
4341 BCT_header_tree
= proto_item_add_subtree(BCT_header_item
, ett_buffercontroltable
);
4343 proto_tree_add_item(BCT_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4345 proto_tree_add_item(BCT_header_tree
, hf_opa_BufferControlTable_TxOverallSharedLimit
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4347 for (i
= 0; i
< 32; i
++) {
4348 tempItemHigh
= proto_tree_add_item(BCT_header_tree
, hf_opa_BufferControlTable_TxSharedLimit
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4350 tempItemLow
= proto_tree_add_item(BCT_header_tree
, hf_opa_BufferControlTable_TxDedicatedLimit
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4352 proto_item_prepend_text(tempItemHigh
, "VL %2u: ", i
);
4353 proto_item_prepend_text(tempItemLow
, " ");
4356 /* If Not last block add byte padding */
4357 if ((++p
) < (Port_num
+ Num_ports
)) {
4358 local_offset
+= block_pad_len
;
4361 return local_offset
;
4364 /* Parse CongestionInfo Attribute */
4365 static int parse_CongestionInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4367 int local_offset
= *offset
;
4368 proto_item
*CongestionInfo_header_item
;
4369 proto_tree
*CongestionInfo_header_tree
;
4371 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4374 CongestionInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_CongestionInfo
, tvb
, local_offset
, 4, ENC_NA
);
4375 CongestionInfo_header_tree
= proto_item_add_subtree(CongestionInfo_header_item
, ett_congestioninfo
);
4377 proto_tree_add_item(CongestionInfo_header_tree
, hf_opa_CongestionInfo_CongestionInfo
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4379 proto_tree_add_item(CongestionInfo_header_tree
, hf_opa_CongestionInfo_ControlTableCap
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4381 proto_tree_add_item(CongestionInfo_header_tree
, hf_opa_CongestionInfo_CongestionLogLength
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4383 return local_offset
;
4386 /* Parse SwitchCongestionLog Attribute */
4387 static int parse_SwitchCongestionLog(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4389 int local_offset
= *offset
;
4390 proto_item
*SwitchCongestionLog_header_item
;
4391 proto_tree
*SwitchCongestionLog_header_tree
;
4392 proto_tree
*SwitchCongestionLog_Entry_tree
;
4395 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4398 SwitchCongestionLog_header_item
= proto_tree_add_item(parentTree
, hf_opa_SwitchCongestionLog
, tvb
, local_offset
, 40 + (96 * 16), ENC_NA
);
4399 SwitchCongestionLog_header_tree
= proto_item_add_subtree(SwitchCongestionLog_header_item
, ett_switchcongestionlog
);
4401 proto_tree_add_item(SwitchCongestionLog_header_tree
, hf_opa_SwitchCongestionLog_LogType
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4403 proto_tree_add_item(SwitchCongestionLog_header_tree
, hf_opa_SwitchCongestionLog_CongestionFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4405 proto_tree_add_item(SwitchCongestionLog_header_tree
, hf_opa_SwitchCongestionLog_LogEventsCounter
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4407 proto_tree_add_item(SwitchCongestionLog_header_tree
, hf_opa_SwitchCongestionLog_CurrentTimeStamp
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4409 proto_tree_add_item(SwitchCongestionLog_header_tree
, hf_opa_SwitchCongestionLog_PortMap
, tvb
, local_offset
, 32, ENC_NA
);
4412 for (i
= 0; i
< 96; i
++) {
4413 SwitchCongestionLog_Entry_tree
= proto_tree_add_subtree_format(SwitchCongestionLog_header_tree
, tvb
, local_offset
, 16,
4414 ett_switchcongestionlog_entry
, NULL
, "Switch Congestion Log Entry %u", i
);
4416 proto_tree_add_item(SwitchCongestionLog_Entry_tree
, hf_opa_SwitchCongestionLog_SLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4418 proto_tree_add_item(SwitchCongestionLog_Entry_tree
, hf_opa_SwitchCongestionLog_DLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4420 proto_tree_add_item(SwitchCongestionLog_Entry_tree
, hf_opa_SwitchCongestionLog_SC
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4421 proto_tree_add_item(SwitchCongestionLog_Entry_tree
, hf_opa_SwitchCongestionLog_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4423 proto_tree_add_item(SwitchCongestionLog_Entry_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
4425 proto_tree_add_item(SwitchCongestionLog_Entry_tree
, hf_opa_SwitchCongestionLog_TimeStamp
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4428 return local_offset
;
4431 /* Parse SwitchCongestionSetting Attribute */
4432 static int parse_SwitchCongestionSetting(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4434 int local_offset
= *offset
;
4435 proto_item
*SwitchCongestionSetting_header_item
;
4436 proto_tree
*SwitchCongestionSetting_header_tree
;
4438 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4441 SwitchCongestionSetting_header_item
= proto_tree_add_item(parentTree
, hf_opa_SwitchCongestionSetting
, tvb
, local_offset
, 64, ENC_NA
);
4442 SwitchCongestionSetting_header_tree
= proto_item_add_subtree(SwitchCongestionSetting_header_item
, ett_switchcongestionsetting
);
4444 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_Control_Map
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4446 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_Victim_Mask
, tvb
, local_offset
, 32, ENC_NA
);
4448 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_Credit_Mask
, tvb
, local_offset
, 32, ENC_NA
);
4450 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_Threshold
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4451 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_reserved1
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4453 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_Packet_Size
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4455 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_CS_Threshold
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4456 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4458 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4460 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_CS_ReturnDelay
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4462 proto_tree_add_item(SwitchCongestionSetting_header_tree
, hf_opa_SwitchCongestionSetting_Marking_Rate
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4465 return local_offset
;
4468 /* Parse SwitchPortCongestionSetting Attribute */
4469 static int parse_SwitchPortCongestionSetting(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4471 int local_offset
= *offset
;
4472 proto_item
*SwitchPortCongestionSetting_header_item
;
4473 proto_tree
*SwitchPortCongestionSetting_header_tree
;
4474 proto_tree
*SwitchPortCongestionSetting_Port_tree
;
4475 unsigned p
, Num_ports
, Port_num
;
4477 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4480 if (MAD
->MgmtClass
== SUBNADMN
) {
4482 Port_num
= tvb_get_uint8(tvb
, local_offset
- 4);
4484 Num_ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4485 Port_num
= (MAD
->AttributeModifier
& 0x000000FF);
4488 SwitchPortCongestionSetting_header_item
= proto_tree_add_item(parentTree
, hf_opa_SwitchPortCongestionSetting
, tvb
, local_offset
, 4 * Num_ports
, ENC_NA
);
4489 SwitchPortCongestionSetting_header_tree
= proto_item_add_subtree(SwitchPortCongestionSetting_header_item
, ett_switchportcongestionsetting
);
4491 for (p
= Port_num
; p
< Port_num
+ Num_ports
; p
++) {
4492 SwitchPortCongestionSetting_Port_tree
= proto_tree_add_subtree_format(SwitchPortCongestionSetting_header_tree
, tvb
, local_offset
, 4,
4493 ett_switchportcongestionsetting_port
, NULL
, "Switch Port Congestion Setting on Port %u", p
);
4495 proto_tree_add_item(SwitchPortCongestionSetting_Port_tree
, hf_opa_SwitchPortCongestionSetting_Valid
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4496 proto_tree_add_item(SwitchPortCongestionSetting_Port_tree
, hf_opa_SwitchPortCongestionSetting_Control_Type
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4497 proto_tree_add_item(SwitchPortCongestionSetting_Port_tree
, hf_opa_SwitchPortCongestionSetting_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4498 proto_tree_add_item(SwitchPortCongestionSetting_Port_tree
, hf_opa_SwitchPortCongestionSetting_Threshold
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4500 proto_tree_add_item(SwitchPortCongestionSetting_Port_tree
, hf_opa_SwitchPortCongestionSetting_Packet_Size
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4502 proto_tree_add_item(SwitchPortCongestionSetting_Port_tree
, hf_opa_SwitchPortCongestionSetting_Marking_Rate
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4506 return local_offset
;
4509 /* Parse HFICongestionLog Attribute */
4510 static int parse_HFICongestionLog(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4512 int local_offset
= *offset
;
4513 proto_item
*HFICongestionLog_header_item
;
4514 proto_tree
*HFICongestionLog_header_tree
;
4515 proto_tree
*HFICongestionLog_Entry_tree
;
4518 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4521 HFICongestionLog_header_item
= proto_tree_add_item(parentTree
, hf_opa_HFICongestionLog
, tvb
, local_offset
, 12 + (96 * 16), ENC_NA
);
4522 HFICongestionLog_header_tree
= proto_item_add_subtree(HFICongestionLog_header_item
, ett_hficongestionlog
);
4524 proto_tree_add_item(HFICongestionLog_header_tree
, hf_opa_HFICongestionLog_LogType
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4526 proto_tree_add_item(HFICongestionLog_header_tree
, hf_opa_HFICongestionLog_CongestionFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4528 proto_tree_add_item(HFICongestionLog_header_tree
, hf_opa_HFICongestionLog_ThresholdEventCounter
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4530 proto_tree_add_item(HFICongestionLog_header_tree
, hf_opa_HFICongestionLog_CurrentTimeStamp
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4532 proto_tree_add_item(HFICongestionLog_header_tree
, hf_opa_HFICongestionLog_ThresholdCongestionEventMap
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4535 for (i
= 0; i
< 96; i
++) {
4536 HFICongestionLog_Entry_tree
= proto_tree_add_subtree_format(HFICongestionLog_header_tree
, tvb
, local_offset
, 16,
4537 ett_hficongestionlog_entry
, NULL
, "HFI Congestion Log Entry %u", i
);
4539 proto_tree_add_item(HFICongestionLog_Entry_tree
, hf_opa_HFICongestionLog_Local_QP_CN_Entry
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
4541 proto_tree_add_item(HFICongestionLog_Entry_tree
, hf_opa_HFICongestionLog_Remote_QP_Number_CN_Entry
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
4543 proto_tree_add_item(HFICongestionLog_Entry_tree
, hf_opa_HFICongestionLog_SL_CN_Entry
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4544 proto_tree_add_item(HFICongestionLog_Entry_tree
, hf_opa_HFICongestionLog_Service_Type_CN_Entry
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4546 proto_tree_add_item(HFICongestionLog_Entry_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4549 proto_tree_add_item(HFICongestionLog_Entry_tree
, hf_opa_HFICongestionLog_Remote_LID_CN_Entry
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4552 proto_tree_add_item(HFICongestionLog_Entry_tree
, hf_opa_HFICongestionLog_TimeStamp_CN_Entry
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4555 return local_offset
;
4558 /* Parse HFICongestionSetting Attribute*/
4559 static int parse_HFICongestionSetting(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4562 int local_offset
= *offset
;
4563 proto_item
*HFICongestionSetting_header_item
;
4564 proto_tree
*HFICongestionSetting_header_tree
;
4565 proto_item
*tempItem
;
4567 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4570 HFICongestionSetting_header_item
= proto_tree_add_item(parentTree
, hf_opa_HFICongestionSetting
, tvb
, local_offset
, 6 + 32 * 6, ENC_NA
);
4571 HFICongestionSetting_header_tree
= proto_item_add_subtree(HFICongestionSetting_header_item
, ett_hficongestionsetting
);
4573 proto_tree_add_item(HFICongestionSetting_header_tree
, hf_opa_HFICongestionSetting_Control_Map
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4575 proto_tree_add_item(HFICongestionSetting_header_tree
, hf_opa_HFICongestionSetting_Port_Control
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4578 for (i
= 0; i
< 32; i
++) {
4579 tempItem
= proto_tree_add_item(HFICongestionSetting_header_tree
, hf_opa_HFICongestionSetting_CCTI_Increase
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4580 proto_item_prepend_text(tempItem
, "%3u: ", i
);
4583 tempItem
= proto_tree_add_item(HFICongestionSetting_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4584 proto_item_prepend_text(tempItem
, " ");
4587 tempItem
= proto_tree_add_item(HFICongestionSetting_header_tree
, hf_opa_HFICongestionSetting_CCTI_Timer
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4588 proto_item_prepend_text(tempItem
, " ");
4591 tempItem
= proto_tree_add_item(HFICongestionSetting_header_tree
, hf_opa_HFICongestionSetting_TriggerThreshold
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4592 proto_item_prepend_text(tempItem
, " ");
4595 tempItem
= proto_tree_add_item(HFICongestionSetting_header_tree
, hf_opa_HFICongestionSetting_CCTI_Min
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4596 proto_item_prepend_text(tempItem
, " ");
4600 return local_offset
;
4603 /* Parse HFICongestionControlTable Attribute*/
4604 static int parse_HFICongestionControlTable(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4606 int local_offset
= *offset
;
4607 proto_item
*HFICongestionControlTable_header_item
;
4608 proto_tree
*HFICongestionControlTable_header_tree
;
4609 proto_item
*tempItem
;
4610 proto_tree
*tempBlock_tree
;
4611 unsigned b
, i
, Num_blocks
, Block_Num
;
4613 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
4616 if (MAD
->MgmtClass
== SUBNADMN
) {
4618 Block_Num
= tvb_get_ntohs(tvb
, local_offset
- 4);
4619 } else { /* SM LID and SM DR */
4620 Num_blocks
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
4621 Block_Num
= (MAD
->AttributeModifier
& 0x000000FF);
4624 HFICongestionControlTable_header_item
= proto_tree_add_item(parentTree
, hf_opa_HFICongestionControlTable
, tvb
, local_offset
, 2 + ((64 * 2) * Num_blocks
), ENC_NA
);
4625 HFICongestionControlTable_header_tree
= proto_item_add_subtree(HFICongestionControlTable_header_item
, ett_hficongestioncontroltable
);
4627 proto_tree_add_item(HFICongestionControlTable_header_tree
, hf_opa_HFICongestionControlTable_CCTI_Limit
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4629 for (b
= Block_Num
; b
< Block_Num
+ Num_blocks
; b
++) {
4630 tempBlock_tree
= proto_tree_add_subtree_format(HFICongestionControlTable_header_tree
, tvb
, local_offset
, 128,
4631 ett_hficongestioncontroltable_block
, NULL
, "HFI Congestion Control Table Block %u", b
);
4633 for (i
= 0; i
< 64; i
++) {
4634 tempItem
= proto_tree_add_item(tempBlock_tree
, hf_opa_HFICongestionControlTable_CCT_Shift
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4635 proto_item_prepend_text(tempItem
, "%3u: ", i
);
4636 tempItem
= proto_tree_add_item(tempBlock_tree
, hf_opa_HFICongestionControlTable_CCT_Multiplier
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4638 proto_item_prepend_text(tempItem
, " ");
4642 return local_offset
;
4644 /* Call appropriate parsing function */
4645 static bool call_SUBM_Parser(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, uint16_t AttributeID
)
4647 proto_tree
*SUBM_Attribute_header_tree
= parentTree
;
4648 int local_offset
= *offset
;
4650 if (!tvb_bytes_exist(tvb
, local_offset
, 8))
4653 switch (AttributeID
) {
4654 case SM_ATTR_ID_CLASS_PORT_INFO
:
4655 local_offset
= parse_ClassPortInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4657 case SM_ATTR_ID_NOTICE
:
4658 local_offset
= parse_NoticesAndTraps(SUBM_Attribute_header_tree
, tvb
, offset
);
4660 case SM_ATTR_ID_NODE_DESCRIPTION
:
4661 local_offset
= parse_NodeDescription(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4663 case SM_ATTR_ID_NODE_INFO
:
4664 local_offset
= parse_NodeInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4666 case SM_ATTR_ID_SWITCH_INFO
:
4667 local_offset
= parse_SwitchInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4669 case SM_ATTR_ID_PORT_INFO
:
4670 local_offset
= parse_PortInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4672 case SM_ATTR_ID_PART_TABLE
:
4673 local_offset
= parse_P_KeyTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4675 case SM_ATTR_ID_SL_SC_MAPPING_TABLE
:
4676 local_offset
= parse_SLtoSCMappingTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4678 case SM_ATTR_ID_VL_ARBITRATION
:
4679 local_offset
= parse_VLArbitrationTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4681 case SM_ATTR_ID_LINEAR_FWD_TABLE
:
4682 local_offset
= parse_LinearForwardingTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4684 case SM_ATTR_ID_MCAST_FWD_TABLE
:
4685 local_offset
= parse_MulticastForwardingTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4687 case SM_ATTR_ID_SM_INFO
:
4688 local_offset
= parse_SMInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4690 case SM_ATTR_ID_LED_INFO
:
4691 local_offset
= parse_LedInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4693 case SM_ATTR_ID_CABLE_INFO
:
4694 local_offset
= parse_CableInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4696 case SM_ATTR_ID_SC_SC_MAPPING_TABLE
:
4697 local_offset
= parse_SCtoSCMappingTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4699 case SM_ATTR_ID_SC_SL_MAPPING_TABLE
:
4700 local_offset
= parse_SCtoSLMappingTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4702 case SM_ATTR_ID_SC_VLR_MAPPING_TABLE
:
4703 case SM_ATTR_ID_SC_VLT_MAPPING_TABLE
:
4704 case SM_ATTR_ID_SC_VLNT_MAPPING_TABLE
:
4705 local_offset
= parse_SCtoVLxMappingTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4707 case SM_ATTR_ID_PORT_STATE_INFO
:
4708 local_offset
= parse_PortStateInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4710 case SM_ATTR_ID_PORT_GROUP_FWD_TABLE
:
4711 local_offset
= parse_PortGroupForwardingTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4713 case SM_ATTR_ID_PORT_GROUP_TABLE
:
4714 local_offset
= parse_PortGroupTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4716 case SM_ATTR_ID_BUFFER_CONTROL_TABLE
:
4717 local_offset
= parse_BufferControlTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4719 case SM_ATTR_ID_CONGESTION_INFO
:
4720 local_offset
= parse_CongestionInfo(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4722 case SM_ATTR_ID_SWITCH_CONGESTION_LOG
:
4723 local_offset
= parse_SwitchCongestionLog(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4725 case SM_ATTR_ID_SWITCH_CONGESTION_SETTING
:
4726 local_offset
= parse_SwitchCongestionSetting(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4728 case SM_ATTR_ID_SWITCH_PORT_CONGESTION_SETTING
:
4729 local_offset
= parse_SwitchPortCongestionSetting(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4731 case SM_ATTR_ID_HFI_CONGESTION_LOG
:
4732 local_offset
= parse_HFICongestionLog(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4734 case SM_ATTR_ID_HFI_CONGESTION_SETTING
:
4735 local_offset
= parse_HFICongestionSetting(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4737 case SM_ATTR_ID_HFI_CONGESTION_CONTROL_TABLE
:
4738 local_offset
= parse_HFICongestionControlTable(SUBM_Attribute_header_tree
, tvb
, offset
, MAD
);
4743 *offset
= local_offset
;
4747 /* Parse Aggregate Attribute */
4748 static int parse_Aggregate(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4751 unsigned requestLength
;
4753 int local_offset
= *offset
;
4755 uint16_t LocalAttributeID
= 0;
4756 bool AggregatError
= false;
4757 proto_item
*Aggregate_header_item
;
4758 proto_item
*Aggregate_Length_item
;
4759 proto_item
*Aggregate_Error_item
;
4760 proto_tree
*Aggregate_header_tree
;
4765 numAttributes
= MAD
->AttributeModifier
& 0x000000FF;
4767 for (i
= 0; i
< numAttributes
; i
++) {
4768 requestLength
= (tvb_get_uint8(tvb
, local_offset
+ 3) & 0x7F) * 8;
4769 if (i
== numAttributes
- 1 && MAD
->Method
== METHOD_GET
) {
4770 Aggregate_header_item
= proto_tree_add_item(parentTree
, hf_opa_Aggregate
, tvb
, local_offset
, 8, ENC_NA
);
4772 Aggregate_header_item
= proto_tree_add_item(parentTree
, hf_opa_Aggregate
, tvb
, local_offset
, requestLength
+ 8, ENC_NA
);
4774 Aggregate_header_tree
= proto_item_add_subtree(Aggregate_header_item
, ett_aggregate
);
4776 proto_tree_add_item(Aggregate_header_tree
, hf_opa_Aggregate_AttributeID
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4777 LocalAttributeID
= tvb_get_ntohs(tvb
, local_offset
);
4779 proto_item_set_text(Aggregate_header_item
, "Aggregate %u: %s", i
+ 1, val_to_str(LocalAttributeID
, SUBM_Attributes
, "Unknown Attribute Type! (0x%02x)"));
4781 AggregatError
= (bool)tvb_get_bits(tvb
, local_offset
* 8, 1, ENC_BIG_ENDIAN
);
4782 Aggregate_Error_item
= proto_tree_add_item(Aggregate_header_tree
, hf_opa_Aggregate_Error
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4784 expert_add_info(NULL
, Aggregate_Error_item
, &ei_opa_aggregate_error
);
4786 Aggregate_Length_item
= proto_tree_add_item(Aggregate_header_tree
, hf_opa_Aggregate_RequestLength
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4787 proto_item_append_text(Aggregate_Length_item
, " (%u Bytes)", requestLength
);
4790 MAD
->AttributeModifier
= tvb_get_ntohl(tvb
, local_offset
);
4791 MAD
->AttributeID
= LocalAttributeID
;
4792 local_offset
= parse_MAD_AttributeModifier(Aggregate_header_tree
, tvb
, &local_offset
, MAD
);
4793 if (i
== numAttributes
- 1 && MAD
->Method
== METHOD_GET
) {
4796 saved_offset
= local_offset
;
4797 call_SUBM_Parser(Aggregate_header_tree
, tvb
, &local_offset
, MAD
, LocalAttributeID
);
4798 if (local_offset
!= (saved_offset
+ (int)requestLength
)) {
4799 local_offset
= saved_offset
+ (int)requestLength
;
4803 return local_offset
;
4805 /* Parse the attribute from a Subnet Management Packet. */
4806 static bool parse_SUBM_Attribute(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4808 int local_offset
= *offset
;
4809 if (MAD
->AttributeID
== SM_ATTR_ID_AGGREGATE
) {
4810 *offset
= parse_Aggregate(parentTree
, tvb
, &local_offset
, MAD
);
4813 return call_SUBM_Parser(parentTree
, tvb
, offset
, MAD
, MAD
->AttributeID
);
4815 /* Parse the Method from the MAD Common Header. */
4816 static void label_SUBM_Method(proto_item
*SubMItem
, MAD_t
*MAD
, packet_info
*pinfo
)
4818 const char *label
= val_to_str_const(MAD
->Method
, SUBM_Methods
, "(Unknown SM Method!)");
4819 proto_item_append_text(SubMItem
, " %s", label
);
4820 col_append_str(pinfo
->cinfo
, COL_INFO
, label
);
4822 /* Parse the Attribute from the MAD Common Header */
4823 static void label_SUBM_Attribute(proto_item
*SubMItem
, MAD_t
*MAD
, packet_info
*pinfo
)
4825 const char *label
= val_to_str_const(MAD
->AttributeID
, SUBM_Attributes
, "Attribute (Unknown SM Attribute!)");
4826 proto_item_append_text(SubMItem
, "%s", &label
[11]);
4827 col_append_str(pinfo
->cinfo
, COL_INFO
, &label
[11]);
4829 /* Parse Subnet Management (LID Routed) */
4830 static void parse_SUBN_LID_ROUTED(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
4834 proto_item
*SM_LID_header_item
;
4835 proto_tree
*SM_LID_header_tree
;
4837 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
4840 local_offset
= *offset
;
4842 SM_LID_header_item
= proto_tree_add_item(parentTree
, hf_opa_sm_lid
, tvb
, local_offset
, -1, ENC_NA
);
4843 SM_LID_header_tree
= proto_item_add_subtree(SM_LID_header_item
, ett_sm_lid
);
4845 proto_tree_add_item(SM_LID_header_tree
, hf_opa_sm_m_key
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
4848 label_SUBM_Method(SM_LID_header_item
, &MAD
, pinfo
);
4849 label_SUBM_Attribute(SM_LID_header_item
, &MAD
, pinfo
);
4851 *offset
= local_offset
;
4852 if (!pref_parse_on_mad_status_error
&& MAD
.Status
) {
4853 local_offset
+= tvb_captured_length_remaining(tvb
, *offset
);
4854 } else if (!parse_SUBM_Attribute(SM_LID_header_tree
, tvb
, &local_offset
, &MAD
)) {
4855 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
4856 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
4857 local_offset
+= tvb_captured_length_remaining(tvb
, *offset
);
4859 *offset
= local_offset
;
4862 /* Parse Subnet Management (Directed Route) */
4863 static void parse_SUBN_DIRECTED_ROUTE(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
4867 proto_item
*SM_DR_header_item
;
4868 proto_tree
*SM_DR_header_tree
;
4870 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
4873 local_offset
= *offset
;
4875 SM_DR_header_item
= proto_tree_add_item(parentTree
, hf_opa_sm_dr
, tvb
, local_offset
, -1, ENC_NA
);
4876 SM_DR_header_tree
= proto_item_add_subtree(SM_DR_header_item
, ett_sm_dr
);
4878 proto_tree_add_item(SM_DR_header_item
, hf_opa_sm_m_key
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
4881 label_SUBM_Method(SM_DR_header_item
, &MAD
, pinfo
);
4882 label_SUBM_Attribute(SM_DR_header_item
, &MAD
, pinfo
);
4884 proto_tree_add_item(SM_DR_header_tree
, hf_opa_sm_dr_slid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4886 proto_tree_add_item(SM_DR_header_tree
, hf_opa_sm_dr_dlid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4888 proto_tree_add_item(SM_DR_header_tree
, hf_opa_sm_dr_initial_path
, tvb
, local_offset
, 64, ENC_NA
);
4890 proto_tree_add_item(SM_DR_header_tree
, hf_opa_sm_dr_return_path
, tvb
, local_offset
, 64, ENC_NA
);
4892 proto_tree_add_item(SM_DR_header_tree
, hf_opa_sm_dr_reserved64
, tvb
, local_offset
, 8, ENC_NA
);
4894 *offset
= local_offset
;
4895 if (!pref_parse_on_mad_status_error
&& (MAD
.Status
& 0x7FFF)) {
4896 local_offset
+= tvb_captured_length_remaining(tvb
, *offset
);
4897 } else if (!parse_SUBM_Attribute(SM_DR_header_tree
, tvb
, &local_offset
, &MAD
)) {
4898 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
4899 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
4900 local_offset
+= tvb_captured_length_remaining(tvb
, *offset
);
4903 *offset
= local_offset
;
4906 static int parse_PortInfoRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
4908 int local_offset
= *offset
;
4909 proto_tree
* PortInfoRecord_LinkDownReason_tree
,
4910 *PortInfoRecord_LinkDownReason_Entry_tree
;
4912 local_offset
= parse_PortInfo(parentTree
, tvb
, &local_offset
, MAD
);
4914 PortInfoRecord_LinkDownReason_tree
= proto_tree_add_subtree(parentTree
, tvb
, local_offset
, 8 * 16,
4915 ett_portinforecord_linkdownreason
, NULL
, "Port Info Record LinkDown Reason");
4916 for (i
= 0; i
< 8; i
++) {
4917 PortInfoRecord_LinkDownReason_Entry_tree
= proto_tree_add_subtree_format(PortInfoRecord_LinkDownReason_tree
, tvb
, local_offset
, 16,
4918 ett_portinforecord_linkdownreason_entry
, NULL
, "Link Down Reason Entry %u", i
);
4920 proto_tree_add_item(PortInfoRecord_LinkDownReason_Entry_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_NA
);
4922 proto_tree_add_item(PortInfoRecord_LinkDownReason_Entry_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_NA
);
4924 proto_tree_add_item(PortInfoRecord_LinkDownReason_Entry_tree
, hf_opa_PortInfoRecord_LinkDownReason_NeighborLinkDownReason
, tvb
, local_offset
, 1, ENC_NA
);
4926 proto_tree_add_item(PortInfoRecord_LinkDownReason_Entry_tree
, hf_opa_PortInfoRecord_LinkDownReason_LinkDownReason
, tvb
, local_offset
, 1, ENC_NA
);
4928 proto_tree_add_item(PortInfoRecord_LinkDownReason_Entry_tree
, hf_opa_PortInfoRecord_LinkDownReason_Timestamp
, tvb
, local_offset
, 8, ENC_NA
);
4932 return local_offset
;
4935 /* Parse LinkRecord Attribute*/
4936 static int parse_LinkRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
4938 int local_offset
= *offset
;
4939 proto_item
*LinkRecord_header_item
;
4940 proto_tree
*LinkRecord_header_tree
;
4946 LinkRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_LinkRecord
, tvb
, local_offset
, 7, ENC_NA
);
4947 LinkRecord_header_tree
= proto_item_add_subtree(LinkRecord_header_item
, ett_linkrecord
);
4949 proto_tree_add_item(LinkRecord_header_tree
, hf_opa_LinkRecord_ToPort
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
4951 proto_tree_add_item(LinkRecord_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
4953 proto_tree_add_item(LinkRecord_header_tree
, hf_opa_LinkRecord_ToLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4956 return local_offset
;
4960 /* Parse ServiceRecord Attribute*/
4961 static int parse_ServiceRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
4963 int local_offset
= *offset
;
4964 proto_item
*ServiceRecord_header_item
;
4965 proto_tree
*ServiceRecord_header_tree
;
4966 proto_item
*tempData
;
4972 ServiceRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_ServiceRecord
, tvb
, local_offset
, 152, ENC_NA
);
4973 ServiceRecord_header_tree
= proto_item_add_subtree(ServiceRecord_header_item
, ett_servicerecord
);
4975 proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_ServiceRecord_ServiceLease
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4977 proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
4979 proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_ServiceRecord_ServiceKey
, tvb
, local_offset
, 16, ENC_NA
);
4981 proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_ServiceRecord_ServiceName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
4984 tempData
= proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_ServiceRecord_ServiceData
, tvb
, local_offset
, 16, ENC_NA
);
4986 proto_item_append_text(tempData
, "(ServiceData 8.1, 8.16)");
4987 tempData
= proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_ServiceRecord_ServiceData
, tvb
, local_offset
, 16, ENC_NA
);
4989 proto_item_append_text(tempData
, "(ServiceData 16.1, 16.8)");
4990 tempData
= proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_ServiceRecord_ServiceData
, tvb
, local_offset
, 16, ENC_NA
);
4992 proto_item_append_text(tempData
, "(ServiceData 32.1, 32.4)");
4993 tempData
= proto_tree_add_item(ServiceRecord_header_tree
, hf_opa_ServiceRecord_ServiceData
, tvb
, local_offset
, 16, ENC_NA
);
4995 proto_item_append_text(tempData
, "(ServiceData 64.1, 64.2)");
4997 return local_offset
;
5001 /* Parse PathRecord Attribute*/
5002 static int parse_PathRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5004 int local_offset
= *offset
;
5005 proto_item
* PathRecord_header_item
;
5006 proto_tree
* PathRecord_header_tree
;
5012 PathRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_PathRecord
, tvb
, local_offset
, 64, ENC_NA
);
5013 PathRecord_header_tree
= proto_item_add_subtree(PathRecord_header_item
, ett_pathrecord
);
5015 proto_tree_add_item(PathRecord_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_NA
);
5017 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_DGID
, tvb
, local_offset
, 16, ENC_NA
);
5019 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_SGID
, tvb
, local_offset
, 16, ENC_NA
);
5021 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_DLID
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5023 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_SLID
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5025 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_RawTraffic
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5026 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5027 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_FlowLabel
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5028 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_HopLimit
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5031 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_TClass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5034 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_Reversible
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5035 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_NumbPath
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5038 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5041 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_QosType
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5042 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_reserved2
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5043 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_QosPriority
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5044 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_SL
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5046 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_MTUSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5047 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_MTU
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5049 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_RateSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5050 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_Rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5052 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_PacketLifeTimeSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5053 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_PacketLifeTime
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5055 proto_tree_add_item(PathRecord_header_tree
, hf_opa_PathRecord_Preference
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5057 proto_tree_add_item(PathRecord_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5059 proto_tree_add_item(PathRecord_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5062 return local_offset
;
5065 /* Parse MCMemberRecord Attribute*/
5066 static int parse_MCMemberRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5068 int local_offset
= *offset
;
5069 proto_item
*MCMemberRecord_header_item
;
5070 proto_tree
*MCMemberRecord_header_tree
;
5076 MCMemberRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_MCMemberRecord
, tvb
, local_offset
, 24, ENC_NA
);
5077 MCMemberRecord_header_tree
= proto_item_add_subtree(MCMemberRecord_header_item
, ett_mcmemberrecord
);
5079 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_Q_Key
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5081 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5083 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_MTUSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5084 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_MTU
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5086 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_TClass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5088 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5090 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_RateSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5091 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_Rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5093 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_PacketLifeTimeSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5094 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_PacketLifeTime
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5096 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_SL
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5097 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5098 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_HopLimit
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5101 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_Scope
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5102 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5103 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_JoinSendOnlyMember
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5104 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_JoinNonMember
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5105 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_JoinFullMember
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5108 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_ProxyJoin
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5109 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_reserved3
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5112 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5115 proto_tree_add_item(MCMemberRecord_header_tree
, hf_opa_MCMemberRecord_MLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5118 return local_offset
;
5122 /* Parse TraceRecord Attribute*/
5123 static int parse_TraceRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5125 int local_offset
= *offset
;
5126 proto_item
*TraceRecord_header_item
;
5127 proto_tree
*TraceRecord_header_tree
;
5133 TraceRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_TraceRecord
, tvb
, local_offset
, 40, ENC_NA
);
5134 TraceRecord_header_tree
= proto_item_add_subtree(TraceRecord_header_item
, ett_tracerecord
);
5136 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_IDGeneration
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5138 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5140 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_NodeType
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5142 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_EntryPort
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5144 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_ExitPort
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5146 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5148 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_NodeID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5150 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_ChassisID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5152 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_EntryPortID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5154 proto_tree_add_item(TraceRecord_header_tree
, hf_opa_TraceRecord_ExitPortID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5157 return local_offset
;
5160 /* Parse MultiPathRecord Attribute*/
5161 static int parse_MultiPathRecord_GID(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5163 int local_offset
= *offset
;
5164 proto_item
*MultiPathRecord_header_item
;
5165 proto_tree
*MultiPathRecord_header_tree
;
5174 SGIDCount
= tvb_get_uint8(tvb
, local_offset
+ 14);
5175 DGIDCount
= tvb_get_uint8(tvb
, local_offset
+ 15);
5176 MultiPathRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_MultiPathRecord
, tvb
, local_offset
, 32 + (SGIDCount
+ DGIDCount
) * 16, ENC_NA
);
5177 proto_item_append_text(MultiPathRecord_header_item
, " (GID)");
5178 MultiPathRecord_header_tree
= proto_item_add_subtree(MultiPathRecord_header_item
, ett_multipathrecord_gid
);
5179 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5180 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_FlowLabel
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5181 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_HopLimit
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5184 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_TClass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5187 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_Reversible
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5188 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_NumbPath
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5191 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5194 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_QoSType
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5195 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_QoSPriority
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5196 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved2
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5197 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SL
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5200 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_MTUSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5201 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_MTU
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5203 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_RateSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5204 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_Rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5206 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_PacketLifeTimeSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5207 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_PacketLifeTime
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5210 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_IndependenceSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5211 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SGIDScope
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5212 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DGIDScope
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5215 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SGIDCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5217 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DGIDCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5220 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_sa_ServiceID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5223 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_8B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5224 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_10B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5225 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_9B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5226 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_16B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5227 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved3
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5230 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
5232 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5235 for (i
= 0; i
< SGIDCount
; i
++) {
5236 SDGID
= proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SGID
, tvb
, local_offset
, 16, ENC_NA
);
5238 proto_item_prepend_text(SDGID
, "%u: ", i
);
5240 for (i
= 0; i
< DGIDCount
; i
++) {
5241 SDGID
= proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DGID
, tvb
, local_offset
, 16, ENC_NA
);
5243 proto_item_prepend_text(SDGID
, "%u: ", i
);
5246 return local_offset
;
5249 /* Parse MultiPathRecord Attribute*/
5250 static int parse_MultiPathRecord_GUID(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5252 int local_offset
= *offset
;
5253 proto_item
*MultiPathRecord_header_item
;
5254 proto_tree
*MultiPathRecord_header_tree
;
5256 uint16_t SGUIDCount
;
5257 uint16_t DGUIDCount
;
5263 SGUIDCount
= tvb_get_ntohs(tvb
, local_offset
+ 14);
5264 DGUIDCount
= tvb_get_ntohs(tvb
, local_offset
+ 16);
5265 MultiPathRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_MultiPathRecord
, tvb
, local_offset
, 40 + (SGUIDCount
+ DGUIDCount
) * 8, ENC_NA
);
5266 proto_item_append_text(MultiPathRecord_header_item
, " (GUID)");
5267 MultiPathRecord_header_tree
= proto_item_add_subtree(MultiPathRecord_header_item
, ett_multipathrecord_guid
);
5268 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5269 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_FlowLabel
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5270 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_HopLimit
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5273 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_TClass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5276 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_Reversible
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5277 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_NumbPath
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5280 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5283 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_QoSType
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5284 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_QoSPriority
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5285 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved2
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5286 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SL
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5289 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_MTUSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5290 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_MTU
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5292 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_RateSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5293 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_Rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5295 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_PacketLifeTimeSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5296 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_PacketLifeTime
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5299 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_IndependenceSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5300 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SGUIDScope
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5301 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DGUIDScope
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5304 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SGUIDCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5307 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DGUIDCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5310 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_8B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5311 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_10B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5312 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_9B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5313 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_16B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5314 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved3
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5317 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5319 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5322 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_ServiceID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5324 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SubnetPrefix
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5327 for (i
= 0; i
< SGUIDCount
; i
++) {
5328 SDGUID
= proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SGUID
, tvb
, local_offset
, 8, ENC_NA
);
5330 proto_item_prepend_text(SDGUID
, "%u: ", i
);
5332 for (i
= 0; i
< DGUIDCount
; i
++) {
5333 SDGUID
= proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DGUID
, tvb
, local_offset
, 8, ENC_NA
);
5335 proto_item_prepend_text(SDGUID
, "%u: ", i
);
5337 return local_offset
;
5340 /* Parse MultiPathRecord Attribute*/
5341 static int parse_MultiPathRecord_lid(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5343 int local_offset
= *offset
;
5344 proto_item
*MultiPathRecord_header_item
;
5345 proto_tree
*MultiPathRecord_header_tree
;
5354 SLIDCount
= tvb_get_ntohs(tvb
, local_offset
+ 14);
5355 DLIDCount
= tvb_get_ntohs(tvb
, local_offset
+ 16);
5356 MultiPathRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_MultiPathRecord
, tvb
, local_offset
, 40 + (SLIDCount
+ DLIDCount
) * 4, ENC_NA
);
5357 MultiPathRecord_header_tree
= proto_item_add_subtree(MultiPathRecord_header_item
, ett_multipathrecord_lid
);
5358 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5359 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_FlowLabel
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5360 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_HopLimit
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5363 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_TClass
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5366 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_Reversible
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5367 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_NumbPath
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5370 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5373 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_QoSType
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5374 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_QoSPriority
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5375 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved2
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5376 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SL
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5379 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_MTUSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5380 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_MTU
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5382 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_RateSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5383 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_Rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5385 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_PacketLifeTimeSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5386 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_PacketLifeTime
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5389 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_IndependenceSelector
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5390 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SGUIDScope
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5391 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DGUIDScope
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5394 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SLIDCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5396 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DLIDCount
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5399 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_8B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5400 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_10B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5401 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_9B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5402 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_L2_16B
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5403 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_reserved3
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5406 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5408 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5411 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_ServiceID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5413 proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SubnetPrefix
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5416 for (i
= 0; i
< SLIDCount
; i
++) {
5417 SDLID
= proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_SLID
, tvb
, local_offset
, 4, ENC_NA
);
5419 proto_item_prepend_text(SDLID
, "%u: ", i
);
5421 for (i
= 0; i
< DLIDCount
; i
++) {
5422 SDLID
= proto_tree_add_item(MultiPathRecord_header_tree
, hf_opa_MultiPathRecord_DLID
, tvb
, local_offset
, 4, ENC_NA
);
5424 proto_item_prepend_text(SDLID
, "%u: ", i
);
5426 return local_offset
;
5429 /* Parse CableInfoRecord Attribute*/
5430 static int parse_CableInfoRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5432 int local_offset
= *offset
;
5433 proto_item
*CableInfoRecord_header_item
;
5434 proto_tree
*CableInfoRecord_header_tree
;
5439 CableInfoRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_CableInfoRecord
, tvb
, local_offset
, 72, ENC_NA
);
5440 CableInfoRecord_header_tree
= proto_item_add_subtree(CableInfoRecord_header_item
, ett_cableinforecord
);
5442 proto_tree_add_item(CableInfoRecord_header_tree
, hf_opa_CableInfoRecord_Lid
, tvb
, local_offset
, 4, ENC_NA
);
5444 proto_tree_add_item(CableInfoRecord_header_tree
, hf_opa_CableInfoRecord_Port
, tvb
, local_offset
, 1, ENC_NA
);
5446 proto_tree_add_item(CableInfoRecord_header_tree
, hf_opa_CableInfoRecord_Length
, tvb
, local_offset
, 1, ENC_NA
);
5447 proto_tree_add_item(CableInfoRecord_header_tree
, hf_opa_CableInfoRecord_reserved
, tvb
, local_offset
, 1, ENC_NA
);
5449 proto_tree_add_item(CableInfoRecord_header_tree
, hf_opa_CableInfoRecord_Address
, tvb
, local_offset
, 2, ENC_NA
);
5450 proto_tree_add_item(CableInfoRecord_header_tree
, hf_opa_CableInfoRecord_PortType
, tvb
, local_offset
, 2, ENC_NA
);
5452 proto_tree_add_item(CableInfoRecord_header_tree
, hf_opa_CableInfoRecord_Data
, tvb
, local_offset
, 64, ENC_NA
);
5455 return local_offset
;
5458 /* Parse ServiceAssociationRecord Attribute*/
5459 static int parse_ServiceAssociationRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5461 int local_offset
= *offset
;
5462 /* proto_item *ServiceAssociationRecord_header_item; */
5463 proto_tree
*ServiceAssociationRecord_header_tree
;
5469 /* ServiceAssociationRecord_header_item = proto_tree_add_item(parentTree, hf_opa_sapa, tvb, local_offset, 80, ENC_NA); */
5470 /* proto_item_set_text(ServiceAssociationRecord_header_item, "%s", "ServiceAssociationRecord"); */
5471 ServiceAssociationRecord_header_tree
= parentTree
; /* proto_item_add_subtree(ServiceAssociationRecord_header_item, ett_serviceassocrecord); */
5473 proto_tree_add_item(ServiceAssociationRecord_header_tree
, hf_opa_ServiceAssociationRecord_ServiceKey
, tvb
, local_offset
, 16, ENC_NA
);
5475 proto_tree_add_item(ServiceAssociationRecord_header_tree
, hf_opa_ServiceAssociationRecord_ServiceName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
5478 return local_offset
;
5481 static int parse_VFInfoRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
5483 int local_offset
= *offset
;
5484 proto_item
*VFInfoRecord_header_item
;
5485 proto_tree
*VFInfoRecord_header_tree
;
5490 VFInfoRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_VFInfoRecord
, tvb
, local_offset
, 128, ENC_NA
);
5491 VFInfoRecord_header_tree
= proto_item_add_subtree(VFInfoRecord_header_item
, ett_vfinforecord
);
5493 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_vfIndex
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5495 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_pKey
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5497 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5499 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
5501 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_sa_ServiceID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5503 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_MGID
, tvb
, local_offset
, 16, ENC_NA
);
5506 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_SelectFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5507 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5508 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_SL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5511 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_MTUSpecified
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5512 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5513 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_MTU
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5516 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_RateSpecified
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5517 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_reserved4
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5518 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_Rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5521 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_PktLifeSpecified
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5522 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_reserved5
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5523 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_PktLifeTimeInc
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5526 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_OptionFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5529 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_BandwidthPercent
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5532 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_reserved6
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5533 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_Priority
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5536 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_RoutingSLs
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5539 proto_tree_add_item(VFInfoRecord_header_tree
, hf_opa_VFInfoRecord_reserved7
, tvb
, local_offset
, 24, ENC_NA
);
5542 return local_offset
;
5544 static int parse_QuarantinedNodeRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
5546 int local_offset
= *offset
;
5547 proto_item
*QuarantinedNodeRecord_header_item
;
5548 proto_tree
*QuarantinedNodeRecord_header_tree
;
5550 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
5553 QuarantinedNodeRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_QuarantinedNodeRecord
, tvb
, local_offset
, 213, ENC_NA
);
5554 QuarantinedNodeRecord_header_tree
= proto_item_add_subtree(QuarantinedNodeRecord_header_item
, ett_quarantinednoderecord
);
5556 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_TrustedLid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5558 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_TrustedPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5560 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
5562 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_TrustedNodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5564 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_TrustedNeighborNodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5567 local_offset
= parse_NodeDescription(QuarantinedNodeRecord_header_tree
, tvb
, &local_offset
, MAD
);
5568 local_offset
= parse_NodeInfo(QuarantinedNodeRecord_header_tree
, tvb
, &local_offset
, MAD
);
5570 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_QuarantineReasons
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5572 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_ExpectedNodeDesc
, tvb
, local_offset
, 64, ENC_NA
);
5574 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_ExpectedNodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5576 proto_tree_add_item(QuarantinedNodeRecord_header_tree
, hf_opa_QuarantinedNodeRecord_ExpectedPortGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5579 return local_offset
;
5581 static int parse_FabricInfoRecord(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
5583 int local_offset
= *offset
;
5584 proto_item
*FabricInfoRecord_header_item
;
5585 proto_tree
*FabricInfoRecord_header_tree
;
5587 if (!parentTree
|| MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
)
5590 FabricInfoRecord_header_item
= proto_tree_add_item(parentTree
, hf_opa_FabricInfoRecord
, tvb
, local_offset
, 132, ENC_NA
);
5591 FabricInfoRecord_header_tree
= proto_item_add_subtree(FabricInfoRecord_header_item
, ett_fabricinforecord
);
5593 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumHFIs
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5595 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumSwitches
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5597 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumInternalHFILinks
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5599 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumExternalHFILinks
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5601 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumInternalISLs
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5603 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumExternalISLs
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5605 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumDegradedHFILinks
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5607 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumDegradedISLs
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5609 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumOmittedHFILinks
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5611 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_NumOmittedISLs
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5613 proto_tree_add_item(FabricInfoRecord_header_tree
, hf_opa_FabricInfoRecord_Reserved
, tvb
, local_offset
, 92, ENC_NA
);
5616 return local_offset
;
5618 /* Parse RID Field from Subnet Administration Packets. */
5619 static void parse_RID(proto_tree
*SA_header_tree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
5621 int local_offset
= *offset
;
5623 if (!SA_header_tree
)
5626 switch (MAD
->AttributeID
) {
5627 case SA_ATTR_ID_CLASS_PORT_INFO
:
5629 case SA_ATTR_ID_NOTICE
:
5631 case SA_ATTR_ID_NODE_RECORD
: /* NodeRecord */
5632 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5635 case SA_ATTR_ID_PORTINFO_RECORD
: /* PortInfoRecord */
5636 proto_tree_add_item(SA_header_tree
, hf_opa_sa_EndportLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5638 proto_tree_add_item(SA_header_tree
, hf_opa_sa_PortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5640 proto_tree_add_item(SA_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5643 case SA_ATTR_ID_SC_MAPTBL_RECORD
: /* SCMappingTableRecord */
5644 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5646 proto_tree_add_item(SA_header_tree
, hf_opa_sa_InputPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5648 proto_tree_add_item(SA_header_tree
, hf_opa_sa_OutputPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5651 case SA_ATTR_ID_SL2SC_MAPTBL_RECORD
:
5652 case SA_ATTR_ID_SC2SL_MAPTBL_RECORD
:
5653 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5655 proto_tree_add_item(SA_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5658 case SA_ATTR_ID_SC_VLNT_MAPTBL_RECORD
:
5659 case SA_ATTR_ID_SC_VLT_MAPTBL_RECORD
:
5660 case SA_ATTR_ID_SC_VLR_MAPTBL_RECORD
:
5661 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5663 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Port
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5666 case SA_ATTR_ID_SWITCHINFO_RECORD
: /* SwitchInfoRecord */
5667 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5670 case SA_ATTR_ID_LINEAR_FWDTBL_RECORD
: /* LinearForwardingTableRecord */
5671 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5673 proto_tree_add_item(SA_header_tree
, hf_opa_sa_reserved14
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5674 proto_tree_add_item(SA_header_tree
, hf_opa_sa_BlockNum_18b
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5677 case SA_ATTR_ID_MCAST_FWDTBL_RECORD
: /* MulticastForwardingTableRecord */
5678 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5680 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Position
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5681 proto_tree_add_item(SA_header_tree
, hf_opa_sa_reserved9
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5682 proto_tree_add_item(SA_header_tree
, hf_opa_sa_BlockNum_21b
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5685 case SA_ATTR_ID_VLARBTABLE_RECORD
: /*VLArbitrationTableRecord */
5686 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5688 proto_tree_add_item(SA_header_tree
, hf_opa_sa_OutputPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5690 proto_tree_add_item(SA_header_tree
, hf_opa_sa_BlockNum_8b
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5693 case SA_ATTR_ID_SMINFO_RECORD
: /* SMInfoRecord */
5694 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5697 case SA_ATTR_ID_P_KEY_TABLE_RECORD
: /* P_KeyTableRecord */
5698 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5700 proto_tree_add_item(SA_header_tree
, hf_opa_sa_BlockNum_16b
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5702 proto_tree_add_item(SA_header_tree
, hf_opa_sa_PortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5705 case SA_ATTR_ID_INFORM_INFO_RECORD
: /* InformInfoRecord */
5706 proto_tree_add_item(SA_header_tree
, hf_opa_sa_SubscriberLID
, tvb
, local_offset
, 4, ENC_NA
);
5708 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Enum
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5711 case SA_ATTR_ID_LINK_RECORD
: /* LinkRecord */
5712 proto_tree_add_item(SA_header_tree
, hf_opa_sa_FromLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5714 proto_tree_add_item(SA_header_tree
, hf_opa_sa_FromPort
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5717 case SA_ATTR_ID_SERVICE_RECORD
: /* ServiceRecord */
5718 proto_tree_add_item(SA_header_tree
, hf_opa_sa_ServiceID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5720 proto_tree_add_item(SA_header_tree
, hf_opa_sa_ServiceLID
, tvb
, local_offset
, 4, ENC_NA
);
5722 proto_tree_add_item(SA_header_tree
, hf_opa_sa_ServiceP_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5724 proto_tree_add_item(SA_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5726 proto_tree_add_item(SA_header_tree
, hf_opa_sa_ServiceGID
, tvb
, local_offset
, 16, ENC_NA
);
5729 case SA_ATTR_ID_PATH_RECORD
: /* PathRecord */
5731 case SA_ATTR_ID_MCMEMBER_RECORD
: /* MCMemberRecord */
5732 proto_tree_add_item(SA_header_tree
, hf_opa_sa_MGID
, tvb
, local_offset
, 16, ENC_NA
);
5734 proto_tree_add_item(SA_header_tree
, hf_opa_sa_PortGID
, tvb
, local_offset
, 16, ENC_NA
);
5737 case SA_ATTR_ID_TRACE_RECORD
:
5739 case SA_ATTR_ID_MULTIPATH_GID_RECORD
:
5741 case SA_ATTR_ID_MULTIPATH_GUID_RECORD
:
5743 case SA_ATTR_ID_MULTIPATH_LID_RECORD
:
5745 case SA_ATTR_ID_CABLE_INFO_RECORD
:
5747 case SA_ATTR_ID_VF_INFO_RECORD
:
5749 case SA_ATTR_ID_PORTGROUP_TABLE_RECORD
:
5750 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5752 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Position_16b
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5753 proto_tree_add_item(SA_header_tree
, hf_opa_sa_reserved9_16b
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5754 proto_tree_add_item(SA_header_tree
, hf_opa_sa_BlockNum_5b
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5757 case SA_ATTR_ID_QUARANTINED_NODE_RECORD
:
5759 case SA_ATTR_ID_CONGESTION_INFO_RECORD
:
5760 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5763 case SA_ATTR_ID_SWITCH_CONG_RECORD
:
5764 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5767 case SA_ATTR_ID_SWITCH_PORT_CONG_RECORD
:
5768 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5770 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Port
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5773 case SA_ATTR_ID_HFI_CONG_RECORD
:
5774 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5777 case SA_ATTR_ID_HFI_CONG_CTRL_RECORD
:
5778 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5780 proto_tree_add_item(SA_header_tree
, hf_opa_sa_BlockNum_16b
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5783 case SA_ATTR_ID_BUFF_CTRL_TAB_RECORD
:
5784 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5786 proto_tree_add_item(SA_header_tree
, hf_opa_sa_Port
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5789 case SA_ATTR_ID_FABRICINFO_RECORD
:
5794 *offset
= local_offset
;
5796 /* Parse the attribute from a Subnet Administration Packet. */
5797 static bool parse_SUBA_Attribute(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, SA_HEADER_t
*SA_HEADER
)
5799 proto_tree
*SUBA_Attribute_header_tree
= parentTree
;
5800 int local_offset
= *offset
;
5802 if (RMPP
->Type
== RMPP_ACK
|| SA_HEADER
->AttributeOffset
== 0 || (RMPP
->PayloadLength
<= 20 && RMPP
->Type
== RMPP_DATA
) ||
5803 (!pref_attempt_rmpp_defragment
&& RMPP
->Type
== RMPP_DATA
&& RMPP
->SegmentNumber
!= 1))
5806 /* Skim off the RID fields should they be present */
5807 parse_RID(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5809 /* Parse the rest of the attributes */
5810 switch (MAD
->AttributeID
) {
5811 case SA_ATTR_ID_CLASS_PORT_INFO
: /* (ClassPortInfo) */
5812 local_offset
= parse_ClassPortInfo(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5814 case SA_ATTR_ID_NOTICE
: /* (Notice) */
5815 local_offset
= parse_NoticesAndTraps(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5817 case SA_ATTR_ID_INFORM_INFO
: /* (InformInfo) */
5818 local_offset
= parse_InformInfo(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5820 case SA_ATTR_ID_NODE_RECORD
: /* (NodeRecord) */
5821 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5823 local_offset
= parse_NodeInfo(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5824 local_offset
= parse_NodeDescription(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5826 case SA_ATTR_ID_PORTINFO_RECORD
: /* (PortInfoRecord) */
5827 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5829 local_offset
= parse_PortInfoRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5831 case SA_ATTR_ID_SL2SC_MAPTBL_RECORD
:
5832 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5834 local_offset
= parse_SLtoSCMappingTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5836 case SA_ATTR_ID_SC_MAPTBL_RECORD
:
5837 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5839 local_offset
= parse_SCtoSCMappingTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5841 case SA_ATTR_ID_SC2SL_MAPTBL_RECORD
:
5842 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5844 local_offset
= parse_SCtoSLMappingTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5846 case SA_ATTR_ID_SC_VLNT_MAPTBL_RECORD
:
5847 case SA_ATTR_ID_SC_VLT_MAPTBL_RECORD
:
5848 case SA_ATTR_ID_SC_VLR_MAPTBL_RECORD
:
5849 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
5851 local_offset
= parse_SCtoVLxMappingTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5853 case SA_ATTR_ID_SWITCHINFO_RECORD
: /* (SwitchInfoRecord) */
5854 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5856 local_offset
= parse_SwitchInfo(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5858 case SA_ATTR_ID_LINEAR_FWDTBL_RECORD
: /*(LinearForwardingTableRecord) */
5859 local_offset
= parse_LinearForwardingTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5861 case SA_ATTR_ID_MCAST_FWDTBL_RECORD
: /* (MulticastForwardingTableRecord) */
5862 local_offset
= parse_MulticastForwardingTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5864 case SA_ATTR_ID_VLARBTABLE_RECORD
: /* (VLArbitrationTableRecord) */
5865 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5867 local_offset
= parse_VLArbitrationTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5869 case SA_ATTR_ID_SMINFO_RECORD
: /* (SMInfoRecord) */
5870 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5872 local_offset
= parse_SMInfo(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5874 case SA_ATTR_ID_P_KEY_TABLE_RECORD
: /* (P_KeyTableRecord) */
5875 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
5877 local_offset
= parse_P_KeyTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5879 case SA_ATTR_ID_INFORM_INFO_RECORD
: /*(InformInfoRecord) */
5880 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5882 local_offset
= parse_InformInfo(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5884 case SA_ATTR_ID_LINK_RECORD
: /* (LinkRecord) */
5885 local_offset
= parse_LinkRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5887 case SA_ATTR_ID_SERVICE_RECORD
: /*(ServiceRecord) */
5888 local_offset
= parse_ServiceRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5890 case SA_ATTR_ID_PATH_RECORD
: /* (PathRecord) */
5891 local_offset
= parse_PathRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5893 case SA_ATTR_ID_MCMEMBER_RECORD
: /* (MCMemberRecord) */
5894 local_offset
= parse_MCMemberRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5896 case SA_ATTR_ID_TRACE_RECORD
: /* (TraceRecord) */
5897 local_offset
= parse_TraceRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5899 case SA_ATTR_ID_MULTIPATH_GID_RECORD
: /* (MultiPathRecord) */
5900 local_offset
= parse_MultiPathRecord_GID(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5902 case SA_ATTR_ID_MULTIPATH_GUID_RECORD
:
5903 local_offset
= parse_MultiPathRecord_GUID(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5905 case SA_ATTR_ID_MULTIPATH_LID_RECORD
:
5906 local_offset
= parse_MultiPathRecord_lid(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5908 case SA_ATTR_ID_SERVICEASSOCIATION_RECORD
: /* (ServiceAssociationRecord) */
5909 local_offset
= parse_ServiceAssociationRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5911 case SA_ATTR_ID_PGROUP_FWDTBL_RECORD
:
5912 local_offset
= parse_PortGroupForwardingTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5914 case SA_ATTR_ID_CABLE_INFO_RECORD
: /* (CableInfoRecord) */
5915 local_offset
= parse_CableInfoRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5917 case SA_ATTR_ID_VF_INFO_RECORD
:
5918 local_offset
= parse_VFInfoRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
);
5920 case SA_ATTR_ID_PORTGROUP_TABLE_RECORD
:
5921 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5923 local_offset
= parse_PortGroupTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5925 case SA_ATTR_ID_QUARANTINED_NODE_RECORD
:
5926 local_offset
= parse_QuarantinedNodeRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5928 case SA_ATTR_ID_CONGESTION_INFO_RECORD
:
5929 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5931 local_offset
= parse_CongestionInfo(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5933 case SA_ATTR_ID_SWITCH_CONG_RECORD
:
5934 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5936 local_offset
= parse_SwitchCongestionSetting(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5938 case SA_ATTR_ID_SWITCH_PORT_CONG_RECORD
:
5939 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
5941 local_offset
= parse_SwitchPortCongestionSetting(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5943 case SA_ATTR_ID_HFI_CONG_RECORD
:
5944 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
5946 local_offset
= parse_HFICongestionSetting(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5948 case SA_ATTR_ID_HFI_CONG_CTRL_RECORD
:
5949 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
5951 local_offset
= parse_HFICongestionControlTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5953 case SA_ATTR_ID_BUFF_CTRL_TAB_RECORD
:
5954 proto_tree_add_item(SUBA_Attribute_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
5956 local_offset
= parse_BufferControlTable(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5958 case SA_ATTR_ID_FABRICINFO_RECORD
:
5959 local_offset
= parse_FabricInfoRecord(SUBA_Attribute_header_tree
, tvb
, &local_offset
, MAD
);
5965 *offset
= local_offset
;
5968 /* Parse the SA Method from the MAD Common Header. */
5969 static void label_SUBA_Method(proto_item
*SubAItem
, MAD_t
*MAD
, packet_info
*pinfo
)
5971 const char *label
= val_to_str_const(MAD
->Method
, SUBA_Methods
, "(Unknown SA Method!)");
5972 proto_item_append_text(SubAItem
, " %s", label
);
5973 col_append_str(pinfo
->cinfo
, COL_INFO
, label
);
5975 /* Parse the SA Attribute from the MAD Common Header */
5976 static void label_SUBA_Attribute(proto_item
*SubAItem
, MAD_t
*MAD
, packet_info
*pinfo
)
5978 const char *label
= val_to_str_const(MAD
->AttributeID
, SUBA_Attributes
, "Attribute (Unknown SA Attribute!)");
5979 proto_item_append_text(SubAItem
, "%s", &label
[11]);
5980 col_append_str(pinfo
->cinfo
, COL_INFO
, &label
[11]);
5982 /* Parse the SA_HEADER
5983 * IN: parentTree to add the dissection to
5984 * IN: tvb - the data buffer from wireshark
5985 * IN/OUT: The current and updated offset */
5986 static bool parse_SA_HEADER(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, SA_HEADER_t
*SA_HEADER
)
5988 int local_offset
= *offset
;
5989 proto_item
*SA_HEADER_header_item
;
5990 proto_tree
*SA_HEADER_header_tree
;
5992 SA_HEADER_header_item
= proto_tree_add_item(parentTree
, hf_opa_sa
, tvb
, local_offset
, 20, ENC_NA
);
5993 SA_HEADER_header_tree
= proto_item_add_subtree(SA_HEADER_header_item
, ett_sa
);
5995 SA_HEADER
->SM_Key
= tvb_get_ntoh64(tvb
, local_offset
);
5996 proto_tree_add_item(SA_HEADER_header_tree
, hf_opa_sa_sm_key
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
5998 SA_HEADER
->AttributeOffset
= tvb_get_ntohs(tvb
, local_offset
);
5999 proto_tree_add_item(SA_HEADER_header_tree
, hf_opa_sa_attribute_offset
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6001 SA_HEADER
->Reserved
= tvb_get_ntohs(tvb
, local_offset
);
6002 proto_tree_add_item(SA_HEADER_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6004 SA_HEADER
->ComponentMask
= tvb_get_ntoh64(tvb
, local_offset
);
6005 proto_tree_add_item(SA_HEADER_header_tree
, hf_opa_sa_component_mask
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6008 label_SUBA_Method(SA_HEADER_header_item
, MAD
, pinfo
);
6009 label_SUBA_Attribute(SA_HEADER_header_item
, MAD
, pinfo
);
6011 *offset
= local_offset
;
6014 /* Parse Subnet Administration */
6015 static void parse_SUBNADMN(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
6019 SA_HEADER_t SA_HEADER
;
6020 fragment_head
*frag_head
= NULL
;
6021 tvbuff_t
*old_tvb
= NULL
;
6023 unsigned r
, records
, length
;
6024 proto_tree
*SA_record_tree
;
6026 bool parent_was_opa_fe
= proto_is_frame_protocol(pinfo
->layers
, "opa.fe");
6028 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
6031 if (!parse_RMPP(parentTree
, pinfo
, tvb
, offset
, &RMPP
)) {
6034 if (!parse_SA_HEADER(parentTree
, pinfo
, tvb
, offset
, &MAD
, &SA_HEADER
)) {
6037 if ((!pref_parse_on_mad_status_error
&& MAD
.Status
) ||
6038 RMPP
.Type
== RMPP_ACK
) {
6039 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
6043 if (!parent_was_opa_fe
&& pref_attempt_rmpp_defragment
6044 && (RMPP
.resptime_flags
& RMPP_FLAG_ACTIVE_MASK
) && (RMPP
.Type
== RMPP_DATA
)
6045 && !((RMPP
.resptime_flags
& RMPP_FLAG_FIRST_MASK
)
6046 && (RMPP
.resptime_flags
& RMPP_FLAG_LAST_MASK
))) {
6048 frag_head
= fragment_add_seq_check(&opa_mad_rmpp_reassembly_table
,
6049 tvb
, *offset
, pinfo
, (uint32_t)MAD
.TransactionID
, NULL
, RMPP
.SegmentNumber
- 1,
6050 ((RMPP
.resptime_flags
& RMPP_FLAG_LAST_MASK
) ?
6051 RMPP
.PayloadLength
- 20 : (uint32_t)tvb_captured_length_remaining(tvb
, *offset
)),
6052 (bool)!(RMPP
.resptime_flags
& RMPP_FLAG_LAST_MASK
));
6053 /* Back up tvb & offset */
6055 old_offset
= *offset
;
6056 /* Create new tvb from reassembled data */
6057 tvb
= process_reassembled_data(old_tvb
, old_offset
, pinfo
, "Reassembled RMPP Packet",
6058 frag_head
, &opa_rmpp_frag_items
, NULL
, parentTree
);
6065 length
= tvb_captured_length_remaining(tvb
, *offset
);
6066 records
= (SA_HEADER
.AttributeOffset
? length
/ (SA_HEADER
.AttributeOffset
* 8) : 0);
6067 for (r
= 0; r
< records
; r
++) {
6068 old_offset
= *offset
;
6069 label
= val_to_str_const(MAD
.AttributeID
, SUBA_Attributes
, "Attribute (Unknown SA Attribute!)");
6070 SA_record_tree
= proto_tree_add_subtree_format(parentTree
, tvb
, old_offset
,
6071 (SA_HEADER
.AttributeOffset
* 8), ett_rmpp_sa_record
, NULL
, "%s Record %u: ", label
, r
);
6073 if (!parse_SUBA_Attribute(SA_record_tree
, tvb
, offset
, &MAD
, &RMPP
, &SA_HEADER
)) {
6074 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
6075 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
6076 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
6079 *offset
= old_offset
+ (SA_HEADER
.AttributeOffset
* 8);
6084 /* Parse PortStatus MAD from the Performance management class. */
6085 static int parse_PortStatus(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
6087 proto_item
*PortStatus_header_item
;
6088 proto_tree
*PortStatus_header_tree
;
6089 proto_tree
*PortStatus_VL_tree
;
6090 int local_offset
= *offset
;
6091 uint32_t VLSelectMask
;
6093 uint32_t vlSelMskTmp
;
6098 VLSelectMask
= tvb_get_ntohl(tvb
, local_offset
+ 4);
6099 for (i
= 0, VLs
= 0, vlSelMskTmp
= VLSelectMask
; vlSelMskTmp
&& i
< 32; i
++, vlSelMskTmp
>>= 1) {
6100 VLs
= VLs
+ (vlSelMskTmp
& 0x1);
6103 if (MAD
->Method
== METHOD_GET
) { /* Get() */
6104 PortStatus_header_item
= proto_tree_add_item(parentTree
, hf_opa_PortStatus
, tvb
, local_offset
, 8, ENC_NA
);
6105 } else if (MAD
->Method
== METHOD_GET_RESP
) { /* GetResp(): */
6106 PortStatus_header_item
= proto_tree_add_item(parentTree
, hf_opa_PortStatus
, tvb
, local_offset
, 208 + VLs
* 112, ENC_NA
);
6110 PortStatus_header_tree
= proto_item_add_subtree(PortStatus_header_item
, ett_portstatus
);
6112 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6114 proto_tree_add_item(PortStatus_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6117 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_VLSelectMask
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6120 if (MAD
->Method
== METHOD_GET
)
6121 return local_offset
;
6123 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6125 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6127 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6129 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6132 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortMulticastXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6134 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortMulticastRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6136 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitWait
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6138 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_SwPortCongestion
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6140 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6143 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvBECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6145 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitTimeCong
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6147 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitWastedBW
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6149 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitWaitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6151 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvBubble
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6154 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortMarkFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6156 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvConstraintErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6158 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvSwitchRelayErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6160 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitDiscards
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6162 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortXmitConstraintErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6165 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvRemotePhysicalErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6167 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_LocalLinkIntegrityErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6169 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_PortRcvErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6171 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_ExcessiveBufferOverruns
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6173 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_FMConfigErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6176 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_LinkErrorRecovery
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6178 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_LinkDowned
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6181 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_UncorrectableErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6183 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6184 proto_tree_add_item(PortStatus_header_tree
, hf_opa_PortStatus_LinkQualityIndicator
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6187 proto_tree_add_item(PortStatus_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6189 proto_tree_add_item(PortStatus_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6192 for (i
= 0, vlSelMskTmp
= VLSelectMask
; vlSelMskTmp
&& i
< 32; i
++, vlSelMskTmp
>>= 1) {
6193 if (vlSelMskTmp
& 0x1) {
6194 PortStatus_VL_tree
= proto_tree_add_subtree_format(PortStatus_header_tree
, tvb
, local_offset
, 112,
6195 ett_portstatus_vl
, NULL
, "VL %u", i
);
6197 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLXmitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6199 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLRcvData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6201 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6203 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6205 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLXmitWait
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6208 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_SwPortVLCongestion
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6210 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLRcvFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6212 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLRcvBECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6214 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLXmitTimeCong
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6216 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLXmitWastedBW
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6219 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLXmitWaitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6221 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLRcvBubble
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6223 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLMarkFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6225 proto_tree_add_item(PortStatus_VL_tree
, hf_opa_PortStatus_PortVLXmitDiscards
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6229 return local_offset
;
6232 /* Parse ClearPortStatus MAD from the Performance management class.*/
6233 static int parse_ClearPortStatus(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
6235 proto_item
*ClearPortStatus_header_item
;
6236 proto_tree
*ClearPortStatus_header_tree
;
6237 proto_item
*ClearPortStatus_PortSelectMask_item
;
6238 int local_offset
= *offset
;
6243 if (MAD
->Method
== METHOD_SET
|| MAD
->Method
== METHOD_GET_RESP
) { /* Only Set()/GetResp() is supported. */
6244 ClearPortStatus_header_item
= proto_tree_add_item(parentTree
, hf_opa_ClearPortStatus
, tvb
, local_offset
, 36, ENC_NA
);
6248 ClearPortStatus_header_tree
= proto_item_add_subtree(ClearPortStatus_header_item
, ett_clearportstatus
);
6250 ClearPortStatus_PortSelectMask_item
= proto_tree_add_item(ClearPortStatus_header_tree
, hf_opa_ClearPortStatus_PortSelectMask
, tvb
, local_offset
, 32, ENC_NA
);
6251 proto_item_append_text(ClearPortStatus_PortSelectMask_item
, ": %s",
6252 opa_format_port_select_mask(tvb
, local_offset
, NULL
, NULL
));
6255 proto_tree_add_bitmask(ClearPortStatus_header_tree
, tvb
, local_offset
,
6256 hf_opa_ClearPortStatus_CounterSelectMask
, ett_clearportstatus_counterselectmask
,
6257 _ClearPortStatus_CounterSelectMask
, ENC_BIG_ENDIAN
);
6260 return local_offset
;
6263 /* Parse DataPortCounters MAD from the Performance management class.*/
6264 static int parse_DataPortCounters(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
6266 proto_item
*DataPortCounters_header_item
;
6267 proto_item
*DataPortCounters_PortSelectMask_item
;
6268 proto_tree
*DataPortCounters_header_tree
;
6269 proto_tree
*DataPortCounters_Port_tree
;
6270 proto_tree
*DataPortCounters_VL_tree
;
6272 int local_offset
= *offset
;
6273 uint32_t VLSelectMask
, vlSelMskTmp
;
6275 unsigned Num_Ports
= (MAD
->AttributeModifier
>> 24) & 0xFF;
6280 VLSelectMask
= tvb_get_ntohl(tvb
, local_offset
+ 32);
6281 for (i
= 0, VLs
= 0, vlSelMskTmp
= VLSelectMask
; vlSelMskTmp
&& i
< 32; i
++, vlSelMskTmp
>>= 1) {
6282 VLs
+= (vlSelMskTmp
& 0x1);
6285 if (MAD
->Method
== METHOD_GET
) { /* Get() */
6286 DataPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_DataPortCounters
, tvb
, local_offset
, 40, ENC_NA
);
6287 } else if (MAD
->Method
== METHOD_GET_RESP
) { /* GetResp(): */
6288 DataPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_DataPortCounters
, tvb
, local_offset
, 40 + Num_Ports
* (136 + VLs
* 104), ENC_NA
);
6289 } else { /* Set() */
6292 DataPortCounters_header_tree
= proto_item_add_subtree(DataPortCounters_header_item
, ett_dataportcounters
);
6294 DataPortCounters_PortSelectMask_item
= proto_tree_add_item(DataPortCounters_header_tree
, hf_opa_DataPortCounters_PortSelectMask
, tvb
, local_offset
, 32, ENC_NA
);
6295 proto_item_append_text(DataPortCounters_PortSelectMask_item
, ": %s",
6296 opa_format_port_select_mask(tvb
, local_offset
, NULL
, NULL
));
6299 proto_tree_add_item(DataPortCounters_header_tree
, hf_opa_DataPortCounters_VLSelectMask
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6302 proto_tree_add_item(DataPortCounters_header_tree
, hf_opa_DataPortCounters_resolution_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6303 proto_tree_add_item(DataPortCounters_header_tree
, hf_opa_DataPortCounters_LocalLinkIntegrityResolution
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6304 proto_tree_add_item(DataPortCounters_header_tree
, hf_opa_DataPortCounters_LinkErrorRecoveryResolution
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6307 if (MAD
->Method
== METHOD_GET
)
6308 return local_offset
;
6310 for (p
= 0; p
< Num_Ports
; p
++) {
6311 DataPortCounters_Port_tree
= proto_tree_add_subtree_format(DataPortCounters_header_tree
, tvb
, local_offset
, (1 + 3 + 4 + (8 * 16) + VLs
* (8 * 13)),
6312 ett_dataportcounters_port
, NULL
, "Port %u", tvb_get_uint8(tvb
, local_offset
));
6314 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6316 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6318 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_lqi_reserved
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6319 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_LinkQualityIndicator
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6322 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortXmitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6324 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortRcvData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6326 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6328 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6331 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortMulticastXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6333 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortMulticastRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6335 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortXmitWait
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6337 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_SwPortCongestion
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6339 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortRcvFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6342 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortRcvBECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6344 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortXmitTimeCong
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6346 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortXmitWastedBW
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6348 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortXmitWaitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6350 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortRcvBubble
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6353 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortMarkFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6355 proto_tree_add_item(DataPortCounters_Port_tree
, hf_opa_DataPortCounters_PortErrorCounterSummary
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6358 for (i
= 0, vlSelMskTmp
= VLSelectMask
; vlSelMskTmp
&& i
< 32; i
++, vlSelMskTmp
>>= 1) {
6359 if (vlSelMskTmp
& 0x1) {
6360 DataPortCounters_VL_tree
= proto_tree_add_subtree_format(DataPortCounters_Port_tree
, tvb
, local_offset
, 8 * 13,
6361 ett_dataportcounters_vl
, NULL
, "VL %u", i
);
6363 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLXmitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6365 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLRcvData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6367 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6369 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6371 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLXmitWait
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6374 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_SwPortVLCongestion
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6376 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLRcvFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6378 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLRcvBECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6380 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLXmitTimeCong
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6382 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLXmitWastedBW
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6385 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLXmitWaitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6387 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLRcvBubble
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6389 proto_tree_add_item(DataPortCounters_VL_tree
, hf_opa_DataPortCounters_PortVLMarkFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6394 return local_offset
;
6397 /* Parse ErrorPortCounters MAD from the Performance management class.*/
6398 static int parse_ErrorPortCounters(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
6400 proto_item
*ErrorPortCounters_header_item
;
6401 proto_item
*ErrorPortCounters_PortSelectMask_item
;
6402 proto_item
*ErrorPortCounters_VL_item
;
6403 proto_tree
*ErrorPortCounters_header_tree
;
6404 proto_tree
*ErrorPortCounters_Port_tree
;
6406 int local_offset
= *offset
;
6407 uint32_t VLSelectMask
, vlSelMskTmp
;
6409 unsigned Num_Ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
6414 VLSelectMask
= tvb_get_ntohl(tvb
, local_offset
+ 32);
6415 for (i
= 0, VLs
= 0, vlSelMskTmp
= VLSelectMask
; vlSelMskTmp
&& i
< 32; i
++, vlSelMskTmp
>>= 1) {
6416 VLs
+= (vlSelMskTmp
& 0x1);
6419 if (MAD
->Method
== METHOD_GET
) { /* Get() */
6420 ErrorPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_ErrorPortCounters
, tvb
, local_offset
, 40, ENC_NA
);
6421 } else if (MAD
->Method
== METHOD_GET_RESP
) { /* GetResp(): */
6422 ErrorPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_ErrorPortCounters
, tvb
, local_offset
, 40 + Num_Ports
* (96 + VLs
* 8), ENC_NA
);
6423 } else { /* Set() */
6426 ErrorPortCounters_header_tree
= proto_item_add_subtree(ErrorPortCounters_header_item
, ett_errorportcounters
);
6428 ErrorPortCounters_PortSelectMask_item
= proto_tree_add_item(ErrorPortCounters_header_tree
, hf_opa_ErrorPortCounters_PortSelectMask
, tvb
, local_offset
, 32, ENC_NA
);
6429 proto_item_append_text(ErrorPortCounters_PortSelectMask_item
, ": %s",
6430 opa_format_port_select_mask(tvb
, local_offset
, NULL
, NULL
));
6433 proto_tree_add_item(ErrorPortCounters_header_tree
, hf_opa_ErrorPortCounters_VLSelectMask
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6436 proto_tree_add_item(ErrorPortCounters_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6439 if (MAD
->Method
== METHOD_GET
)
6440 return local_offset
;
6442 for (p
= 0; p
< Num_Ports
; p
++) {
6443 ErrorPortCounters_Port_tree
= proto_tree_add_subtree_format(ErrorPortCounters_header_tree
, tvb
, local_offset
, (96 + VLs
* 8),
6444 ett_errorportcounters_port
, NULL
, "Port %u", tvb_get_uint8(tvb
, local_offset
));
6446 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6448 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6450 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6452 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortRcvConstraintErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6454 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortRcvSwitchRelayErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6456 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortXmitDiscards
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6458 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortXmitConstraintErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6460 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortRcvRemotePhysicalErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6463 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_LocalLinkIntegrityErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6465 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortRcvErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6467 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_ExcessiveBufferOverruns
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6469 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_FMConfigErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6472 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_LinkErrorRecovery
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6474 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_LinkDowned
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6477 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_UncorrectableErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6480 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6482 proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6485 for (i
= 0, vlSelMskTmp
= VLSelectMask
; vlSelMskTmp
&& i
< 32; i
++, vlSelMskTmp
>>= 1) {
6486 if (vlSelMskTmp
& 0x1) {
6487 ErrorPortCounters_VL_item
= proto_tree_add_item(ErrorPortCounters_Port_tree
, hf_opa_ErrorPortCounters_PortVLXmitDiscards
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6489 proto_item_prepend_text(ErrorPortCounters_VL_item
, "%3u: ", i
);
6493 return local_offset
;
6496 /* Parse ErrorPortInfo MAD from the Performance management class.*/
6497 static int parse_ErrorPortInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
6499 proto_item
*ErrorPortInfo_header_item
;
6500 proto_item
*ErrorPortInfo_PortSelectMask_item
;
6502 proto_tree
*ErrorPortInfo_header_tree
;
6503 proto_tree
*ErrorPortInfo_Port_tree
;
6504 proto_tree
* PortRcvErrorInfo_tree
,
6505 *ExcessiveBufferOverrunInfo_tree
,
6506 *PortXmitConstraintErrorInfo_tree
,
6507 *PortRcvConstraintErrorInfo_tree
,
6508 *PortRcvSwitchRelayErrorInfo_tree
,
6509 *UncorrectableErrorInfo_tree
,
6510 *FMConfigErrorInfo_tree
;
6512 int local_offset
= *offset
;
6513 unsigned p
, ErrorCode
;
6514 unsigned Num_Ports
= (MAD
->AttributeModifier
& 0xFF000000) >> 24;
6519 if (MAD
->Method
== METHOD_GET_RESP
) {
6520 ErrorPortInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_ErrorPortInfo
, tvb
, local_offset
, -1, ENC_NA
);
6521 } else if (MAD
->Method
== METHOD_SET
) {
6522 ErrorPortInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_ErrorPortInfo
, tvb
, local_offset
, 40, ENC_NA
);
6524 ErrorPortInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_ErrorPortInfo
, tvb
, local_offset
, 32, ENC_NA
);
6526 ErrorPortInfo_header_tree
= proto_item_add_subtree(ErrorPortInfo_header_item
, ett_errorportinfo
);
6528 ErrorPortInfo_PortSelectMask_item
= proto_tree_add_item(ErrorPortInfo_header_tree
, hf_opa_ErrorPortInfo_PortSelectMask
, tvb
, local_offset
, 32, ENC_NA
);
6529 proto_item_append_text(ErrorPortInfo_PortSelectMask_item
, ": %s",
6530 opa_format_port_select_mask(tvb
, local_offset
, NULL
, NULL
));
6533 if (MAD
->Method
== METHOD_GET
)
6534 return local_offset
;
6535 /* ErrorInfoSelectMask */
6536 proto_tree_add_bitmask_list(ErrorPortInfo_header_tree
, tvb
, local_offset
, 4, _ErrorPortInfo_ErrorInfoSelectMask
, ENC_BIG_ENDIAN
);
6539 if (MAD
->Method
== METHOD_SET
6540 /* GetResp packet from a Set operation will contain 1 zeroed port struct */
6541 || (MAD
->Method
== METHOD_GET_RESP
&& Num_Ports
> 1
6542 && tvb_reported_length_remaining(tvb
, local_offset
) < (72 * 2)))
6543 return local_offset
;
6545 proto_tree_add_item(ErrorPortInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6547 for (p
= 0; p
< Num_Ports
; p
++) {
6548 ErrorPortInfo_Port_tree
= proto_tree_add_subtree_format(ErrorPortInfo_header_tree
, tvb
, local_offset
, 72,
6549 ett_errorportinfoport
, NULL
, "Port %u", tvb_get_uint8(tvb
, local_offset
));
6551 proto_tree_add_item(ErrorPortInfo_Port_tree
, hf_opa_ErrorPortInfo_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6553 proto_tree_add_item(ErrorPortInfo_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6555 proto_tree_add_item(ErrorPortInfo_Port_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6558 /* PortRcvErrorInfo */
6559 PortRcvErrorInfo_tree
= proto_tree_add_subtree(ErrorPortInfo_Port_tree
, tvb
, local_offset
, 24,
6560 ett_errorportinfo_portrcverrorinfo
, NULL
, "PortRcv Error Info");
6562 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_Status
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6563 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6564 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_ErrorCode
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6565 ErrorCode
= tvb_get_uint8(tvb
, local_offset
) & 0x0F;
6567 if (ErrorCode
>= 1 && ErrorCode
<= 12) {
6568 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketFlit1
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6570 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketFlit2
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6572 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_Flit1Bits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6573 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_Flit2Bits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6574 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved2
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6576 } else if (ErrorCode
== 13) {
6577 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketBytes
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6579 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_FlitBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6580 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved3
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6582 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6585 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved4
, tvb
, local_offset
, 17, ENC_NA
);
6588 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6590 proto_tree_add_item(PortRcvErrorInfo_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6593 /* ExcessiveBufferOverrunErrorInfo */
6594 ExcessiveBufferOverrunInfo_tree
= proto_tree_add_subtree(ErrorPortInfo_Port_tree
, tvb
, local_offset
, 8,
6595 ett_errorportinfo_excessivebufferoverruninfo
, NULL
, "ExcessiveBufferOverrun Error Info");
6597 proto_tree_add_item(ExcessiveBufferOverrunInfo_tree
, hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_Status
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6598 proto_tree_add_item(ExcessiveBufferOverrunInfo_tree
, hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_SC
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6599 proto_tree_add_item(ExcessiveBufferOverrunInfo_tree
, hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6601 proto_tree_add_item(ExcessiveBufferOverrunInfo_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6603 proto_tree_add_item(ExcessiveBufferOverrunInfo_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6606 /* PortXmitConstraintErrorInfo */
6607 PortXmitConstraintErrorInfo_tree
= proto_tree_add_subtree(ErrorPortInfo_Port_tree
, tvb
, local_offset
, 8,
6608 ett_errorportinfo_portxmitconstrainterrorinfo
, NULL
, "PortXmitConstraint Error Info");
6610 proto_tree_add_item(PortXmitConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_Status
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6611 proto_tree_add_item(PortXmitConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6613 proto_tree_add_item(PortXmitConstraintErrorInfo_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6615 proto_tree_add_item(PortXmitConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6617 proto_tree_add_item(PortXmitConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_SLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6620 /* PortRcvConstraintErrorInfo */
6621 PortRcvConstraintErrorInfo_tree
= proto_tree_add_subtree(ErrorPortInfo_Port_tree
, tvb
, local_offset
, 8,
6622 ett_errorportinfo_portrcvconstrainterrorinfo
, NULL
, "PortRcvConstraint Error Info");
6624 proto_tree_add_item(PortRcvConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_Status
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6625 proto_tree_add_item(PortRcvConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6627 proto_tree_add_item(PortRcvConstraintErrorInfo_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6629 proto_tree_add_item(PortRcvConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_P_Key
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6631 proto_tree_add_item(PortRcvConstraintErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_SLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6634 /* PortRcvSwitchRelayErrorInfo */
6635 PortRcvSwitchRelayErrorInfo_tree
= proto_tree_add_subtree(ErrorPortInfo_Port_tree
, tvb
, local_offset
, 8,
6636 ett_errorportinfo_portrcvswitchrelayerrorinfo
, NULL
, "PortRcvSwitchRelay Error Info");
6638 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_Status
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6639 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6640 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_ErrorCode
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6641 ErrorCode
= tvb_get_uint8(tvb
, local_offset
) & 0x0F;
6643 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6645 switch (ErrorCode
) {
6647 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_DLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6651 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_EgressPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6653 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
6657 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_EgressPortNum
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6659 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_SC
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6661 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6665 proto_tree_add_item(PortRcvSwitchRelayErrorInfo_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6670 /* UncorrectableErrorInfo */
6671 UncorrectableErrorInfo_tree
= proto_tree_add_subtree(ErrorPortInfo_Port_tree
, tvb
, local_offset
, 2,
6672 ett_errorportinfo_uncorrectableerrorinfo
, NULL
, "Uncorrectable Error Info");
6674 proto_tree_add_item(UncorrectableErrorInfo_tree
, hf_opa_ErrorPortInfo_UncorrectableErrorInfo_Status
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6675 proto_tree_add_item(UncorrectableErrorInfo_tree
, hf_opa_ErrorPortInfo_UncorrectableErrorInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6676 proto_tree_add_item(UncorrectableErrorInfo_tree
, hf_opa_ErrorPortInfo_UncorrectableErrorInfo_ErrorCode
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6678 proto_tree_add_item(UncorrectableErrorInfo_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6681 /* FMConfigErrorInfo */
6682 FMConfigErrorInfo_tree
= proto_tree_add_subtree(ErrorPortInfo_Port_tree
, tvb
, local_offset
, 6,
6683 ett_errorportinfo_fmconfigerrorinfo
, NULL
, "FMConfig Error Info");
6685 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_ErrorPortInfo_FMConfigErrorInfo_Status
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6686 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_ErrorPortInfo_FMConfigErrorInfo_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6687 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_ErrorPortInfo_FMConfigErrorInfo_ErrorCode
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6688 ErrorCode
= tvb_get_uint8(tvb
, local_offset
) & 0x0F;
6690 switch (ErrorCode
) {
6694 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_ErrorPortInfo_FMConfigErrorInfo_Distance
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6700 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_ErrorPortInfo_FMConfigErrorInfo_VL
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6704 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_ErrorPortInfo_FMConfigErrorInfo_BadFlitBits
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6708 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_ErrorPortInfo_FMConfigErrorInfo_SC
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6712 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
6717 proto_tree_add_item(FMConfigErrorInfo_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6720 return local_offset
;
6722 static bool parse_PM_Attribute(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
6724 int local_offset
= *offset
;
6726 switch (MAD
->AttributeID
) {
6728 case PA_ATTR_ID_CLASS_PORTINFO
:
6729 local_offset
= parse_ClassPortInfo(parentTree
, tvb
, &local_offset
, MAD
);
6731 case PM_ATTR_ID_PORT_STATUS
:
6732 local_offset
= parse_PortStatus(parentTree
, tvb
, &local_offset
, MAD
);
6734 case PM_ATTR_ID_CLEAR_PORT_STATUS
:
6735 local_offset
= parse_ClearPortStatus(parentTree
, tvb
, &local_offset
, MAD
);
6737 case PM_ATTR_ID_DATA_PORT_COUNTERS
:
6738 local_offset
= parse_DataPortCounters(parentTree
, tvb
, &local_offset
, MAD
);
6740 case PM_ATTR_ID_ERROR_PORT_COUNTERS
:
6741 local_offset
= parse_ErrorPortCounters(parentTree
, tvb
, &local_offset
, MAD
);
6743 case PM_ATTR_ID_ERROR_INFO
:
6744 local_offset
= parse_ErrorPortInfo(parentTree
, tvb
, &local_offset
, MAD
);
6750 *offset
= local_offset
;
6754 /* Parse the Method from the MAD Common Header. */
6755 static void label_PM_Method(proto_item
*PMItem
, MAD_t
*MAD
, packet_info
*pinfo
)
6757 const char *label
= val_to_str_const(MAD
->Method
, PM_Methods
, "(Unknown Perf Method!)");
6758 proto_item_append_text(PMItem
, " %s", label
);
6759 col_append_str(pinfo
->cinfo
, COL_INFO
, label
);
6762 /* Parse the Attribute from the MAD Common Header */
6763 static void label_PM_Attribute(proto_item
*PMItem
, MAD_t
*MAD
, packet_info
*pinfo
)
6765 const char *label
= val_to_str_const(MAD
->AttributeID
, PM_Attributes
, "Attribute (Unknown Perf Attribute!)");
6766 proto_item_append_text(PMItem
, "%s", &label
[11]);
6767 col_append_str(pinfo
->cinfo
, COL_INFO
, &label
[11]);
6769 /* Parse Performance Management */
6770 static void parse_PERF(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
6773 proto_item
*PM_header_item
;
6774 proto_tree
*PM_header_tree
;
6776 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
6780 PM_header_item
= proto_tree_add_item(parentTree
, hf_opa_pm
, tvb
, *offset
, -1, ENC_NA
);
6781 PM_header_tree
= proto_item_add_subtree(PM_header_item
, ett_pm
);
6783 label_PM_Method(PM_header_item
, &MAD
, pinfo
);
6784 label_PM_Attribute(PM_header_item
, &MAD
, pinfo
);
6786 if (!pref_parse_on_mad_status_error
&& MAD
.Status
) {
6787 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
6790 if (!parse_PM_Attribute(PM_header_tree
, tvb
, offset
, &MAD
)) {
6791 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
6792 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
6793 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
6798 /* Parse Image MAD from the Performance Admin class. */
6799 static int parse_Image(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
6801 proto_tree
*Image_header_tree
= parentTree
;
6803 int local_offset
= *offset
;
6809 proto_tree_add_item(Image_header_tree
, hf_opa_ImageID_imageNumber
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6811 proto_tree_add_item(Image_header_tree
, hf_opa_ImageID_imageOffset
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6813 proto_tree_add_item(Image_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6817 return local_offset
;
6819 /* Parse GetGroupList MAD from the Performance Admin class.*/
6820 static int parse_GetGroupList(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
6822 proto_item
*GetGroupList_GroupName_item
;
6823 proto_tree
*GetGroupList_header_tree
;
6824 proto_item
*GetGroupList_header_item
;
6825 int local_offset
= *offset
;
6828 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
6829 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
6831 if (!parentTree
|| RMPP
->Type
!= RMPP_DATA
||
6832 (MAD
->Method
!= METHOD_GET_RESP
&& MAD
->Method
!= METHOD_GETTABLE_RESP
)) {
6836 GetGroupList_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetGroupList
, tvb
, local_offset
, length
, ENC_NA
);
6837 GetGroupList_header_tree
= proto_item_add_subtree(GetGroupList_header_item
, ett_getgrouplist
);
6838 proto_tree_add_none_format(GetGroupList_header_tree
, hf_opa_GetGroupList
, tvb
, local_offset
, length
, "Number of Groups: %u", records
);
6840 for (i
= 0; i
< records
; i
++) {
6841 GetGroupList_GroupName_item
= proto_tree_add_item(GetGroupList_header_tree
, hf_opa_GetGroupList_groupName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
6843 proto_item_prepend_text(GetGroupList_GroupName_item
, "%3u: ", i
+ 1);
6845 return local_offset
;
6848 /* Parse GetGroupInfo MAD from the Performance Admin class.*/
6849 static int parse_GetGroupInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
6851 proto_tree
*GetGroupInfo_header_tree
;
6852 proto_tree
*GetGroupInfo_header_item
;
6854 proto_tree
*GetGroupInfo_Util_Stats_tree
;
6855 proto_item
*GetGroupInfo_Util_Stats_Buckets_item
;
6856 proto_tree
*GetGroupInfo_Util_Stats_Buckets_tree
;
6857 proto_item
*GetGroupInfo_Util_Stats_Bucket_item
;
6859 proto_tree
*GetGroupInfo_Error_Summary_tree
;
6860 proto_tree
*GetGroupInfo_Error_Integrity_Buckets_tree
;
6861 proto_tree
*GetGroupInfo_Error_Congestion_Buckets_tree
;
6862 proto_tree
*GetGroupInfo_Error_SmaCongestion_Buckets_tree
;
6863 proto_tree
*GetGroupInfo_Error_Bubble_Buckets_tree
;
6864 proto_tree
*GetGroupInfo_Error_Security_Buckets_tree
;
6865 proto_tree
*GetGroupInfo_Error_Routing_Buckets_tree
;
6866 proto_item
*GetGroupInfo_Error_Stats_Integrity_Buckets_item
;
6867 proto_item
*GetGroupInfo_Error_Stats_Congestion_Buckets_item
;
6868 proto_item
*GetGroupInfo_Error_Stats_SmaCongestion_Buckets_item
;
6869 proto_item
*GetGroupInfo_Error_Stats_Bubble_Buckets_item
;
6870 proto_item
*GetGroupInfo_Error_Stats_Security_Buckets_item
;
6871 proto_item
*GetGroupInfo_Error_Stats_Routing_Buckets_item
;
6872 proto_item
*GetGroupInfo_Error_Stats_Bucket_item
;
6874 int local_offset
= *offset
;
6877 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
6878 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
6880 unsigned util
= 100 / PM_UTIL_BUCKETS
; /* 0%+ 10%+ 20%+ ... 80%+ 90%+ */
6881 unsigned err
= 100 / (PM_ERR_BUCKETS
- 1); /* 0%+ 25%+ 50%+ 75%+ 100%+ */
6883 if (!parentTree
|| (!pref_attempt_rmpp_defragment
&& RMPP
->Type
== RMPP_DATA
&& RMPP
->SegmentNumber
!= 1))
6886 if (MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
) {
6887 GetGroupInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetGroupInfo
, tvb
, local_offset
, 64 + 16, ENC_NA
);
6888 proto_item_set_text(GetGroupInfo_header_item
, "GroupInfo for %s", tvb_get_string_enc(wmem_file_scope(), tvb
, local_offset
, 64, ENC_ASCII
));
6889 GetGroupInfo_header_tree
= proto_item_add_subtree(GetGroupInfo_header_item
, ett_getgroupinfo
);
6890 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_groupName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
6893 local_offset
= parse_Image(GetGroupInfo_header_tree
, tvb
, &local_offset
);
6894 return local_offset
;
6897 for (r
= 0; r
< records
; r
++) {
6898 GetGroupInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetGroupInfo
, tvb
, local_offset
, 64 + 16, ENC_NA
);
6899 proto_item_set_text(GetGroupInfo_header_item
, "GroupInfo for %s", tvb_get_string_enc(wmem_file_scope(), tvb
, local_offset
, 64, ENC_ASCII
));
6900 GetGroupInfo_header_tree
= proto_item_add_subtree(GetGroupInfo_header_item
, ett_getgroupinfo
);
6901 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_groupName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
6905 local_offset
= parse_Image(GetGroupInfo_header_tree
, tvb
, &local_offset
);
6907 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_numInternalPorts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6909 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_numExternalPorts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6912 /* internalUtilStats */
6913 GetGroupInfo_Util_Stats_tree
= proto_tree_add_subtree(GetGroupInfo_header_tree
, tvb
, local_offset
, 48 + PM_UTIL_BUCKETS
* 4,
6914 ett_getgroupinfoutilstats
, NULL
, "Internal Utilization Statistics");
6916 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_totalMBps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6918 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_totalKPps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6920 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_avgMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6922 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_minMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6924 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_maxMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6926 GetGroupInfo_Util_Stats_Buckets_item
= proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_numBWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6928 GetGroupInfo_Util_Stats_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Util_Stats_Buckets_item
, ett_getgroupinfoutilbuckets
);
6929 for (i
= 0; i
< PM_UTIL_BUCKETS
; i
++) {
6930 GetGroupInfo_Util_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Util_Stats_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6931 proto_item_set_text(GetGroupInfo_Util_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* util
, tvb_get_ntohl(tvb
, local_offset
));
6934 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_avgKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6936 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_minKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6938 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_maxKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6940 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_pmaFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6942 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_topoFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6946 GetGroupInfo_Util_Stats_tree
= proto_tree_add_subtree(GetGroupInfo_header_tree
, tvb
, local_offset
, 48 + PM_UTIL_BUCKETS
* 4,
6947 ett_getgroupinfoutilstats
, NULL
, "External Send Utilization Statistics");
6949 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_totalMBps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6951 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_totalKPps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6953 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_avgMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6955 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_minMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6957 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_maxMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6959 GetGroupInfo_Util_Stats_Buckets_item
= proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_numBWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6961 GetGroupInfo_Util_Stats_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Util_Stats_Buckets_item
, ett_getgroupinfoutilbuckets
);
6962 for (i
= 0; i
< PM_UTIL_BUCKETS
; i
++) {
6963 GetGroupInfo_Util_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Util_Stats_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6964 proto_item_set_text(GetGroupInfo_Util_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* util
, tvb_get_ntohl(tvb
, local_offset
));
6967 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_avgKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6969 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_minKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6971 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_maxKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6973 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_pmaFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6975 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_topoFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
6979 GetGroupInfo_Util_Stats_tree
= proto_tree_add_subtree(GetGroupInfo_header_tree
, tvb
, local_offset
, 48 + PM_UTIL_BUCKETS
* 4,
6980 ett_getgroupinfoutilstats
, NULL
, "External Receive Utilization Statistics");
6982 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_totalMBps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6984 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_totalKPps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
6986 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_avgMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6988 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_minMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6990 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_maxMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6992 GetGroupInfo_Util_Stats_Buckets_item
= proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_numBWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6994 GetGroupInfo_Util_Stats_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Util_Stats_Buckets_item
, ett_getgroupinfoutilbuckets
);
6995 for (i
= 0; i
< PM_UTIL_BUCKETS
; i
++) {
6996 GetGroupInfo_Util_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Util_Stats_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
6997 proto_item_set_text(GetGroupInfo_Util_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* util
, tvb_get_ntohl(tvb
, local_offset
));
7000 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_avgKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7002 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_minKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7004 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_maxKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7006 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_pmaFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7008 proto_tree_add_item(GetGroupInfo_Util_Stats_tree
, hf_opa_GetGroupInfo_topoFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7011 /* internalErrors */
7012 GetGroupInfo_Error_Summary_tree
= proto_tree_add_subtree(GetGroupInfo_header_tree
, tvb
, local_offset
, 40 + PM_ERR_BUCKETS
* 24,
7013 ett_getgroupinfoerrorsummary
, NULL
, "Internal Error Statistics");
7015 GetGroupInfo_Error_Stats_Integrity_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_integrityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7017 GetGroupInfo_Error_Stats_Congestion_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_congestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7019 GetGroupInfo_Error_Stats_SmaCongestion_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_smaCongestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7021 GetGroupInfo_Error_Stats_Bubble_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_bubbleErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7023 GetGroupInfo_Error_Stats_Security_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_securityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7025 GetGroupInfo_Error_Stats_Routing_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_routingErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7028 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_utilizationPct10
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7030 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_discardsPct10
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7032 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7034 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7037 GetGroupInfo_Error_Integrity_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Integrity_Buckets_item
, ett_getgroupinfoerrintegritybucket
);
7038 GetGroupInfo_Error_Congestion_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Congestion_Buckets_item
, ett_getgroupinfoerrcongestionbucket
);
7039 GetGroupInfo_Error_SmaCongestion_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_SmaCongestion_Buckets_item
, ett_getgroupinfoerrsmacongestionbucket
);
7040 GetGroupInfo_Error_Bubble_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Bubble_Buckets_item
, ett_getgroupinfoerrbubblebucket
);
7041 GetGroupInfo_Error_Security_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Security_Buckets_item
, ett_getgroupinfoerrsecuritybucket
);
7042 GetGroupInfo_Error_Routing_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Routing_Buckets_item
, ett_getgroupinfoerrroutingbucket
);
7044 for (i
= 0; i
< PM_ERR_BUCKETS
; i
++) {
7045 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Integrity_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7046 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7048 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Congestion_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7049 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7051 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_SmaCongestion_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7052 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7054 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Bubble_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7055 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7057 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Security_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7058 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7060 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Routing_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7061 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7065 /* externalErrors */
7066 GetGroupInfo_Error_Summary_tree
= proto_tree_add_subtree(GetGroupInfo_header_tree
, tvb
, local_offset
, 40 + PM_ERR_BUCKETS
* 24,
7067 ett_getgroupinfoerrorsummary
, NULL
, "External Error Statistics");
7069 GetGroupInfo_Error_Stats_Integrity_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_integrityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7071 GetGroupInfo_Error_Stats_Congestion_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_congestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7073 GetGroupInfo_Error_Stats_SmaCongestion_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_smaCongestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7075 GetGroupInfo_Error_Stats_Bubble_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_bubbleErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7077 GetGroupInfo_Error_Stats_Security_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_securityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7079 GetGroupInfo_Error_Stats_Routing_Buckets_item
= proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_routingErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7082 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_utilizationPct10
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7084 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_GetGroupInfo_discardsPct10
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7086 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7088 proto_tree_add_item(GetGroupInfo_Error_Summary_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7091 GetGroupInfo_Error_Integrity_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Integrity_Buckets_item
, ett_getgroupinfoerrintegritybucket
);
7092 GetGroupInfo_Error_Congestion_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Congestion_Buckets_item
, ett_getgroupinfoerrcongestionbucket
);
7093 GetGroupInfo_Error_SmaCongestion_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_SmaCongestion_Buckets_item
, ett_getgroupinfoerrsmacongestionbucket
);
7094 GetGroupInfo_Error_Bubble_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Bubble_Buckets_item
, ett_getgroupinfoerrbubblebucket
);
7095 GetGroupInfo_Error_Security_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Security_Buckets_item
, ett_getgroupinfoerrsecuritybucket
);
7096 GetGroupInfo_Error_Routing_Buckets_tree
= proto_item_add_subtree(GetGroupInfo_Error_Stats_Routing_Buckets_item
, ett_getgroupinfoerrroutingbucket
);
7098 for (i
= 0; i
< PM_ERR_BUCKETS
; i
++) {
7099 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Integrity_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7100 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7102 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Congestion_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7103 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7105 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_SmaCongestion_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7106 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7108 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Bubble_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7109 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7111 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Security_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7112 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7114 GetGroupInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetGroupInfo_Error_Routing_Buckets_tree
, hf_opa_GetGroupInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7115 proto_item_set_text(GetGroupInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7119 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_maxInternalRate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7121 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_minInternalRate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7123 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_maxExternalRate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7125 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_minExternalRate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7127 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_maxInternalMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7129 proto_tree_add_item(GetGroupInfo_header_tree
, hf_opa_GetGroupInfo_maxExternalMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7132 return local_offset
;
7135 /* Parse GetGroupConfig MAD from the Performance Admin class.*/
7136 static int parse_GetGroupConfig(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
7138 proto_item
*GetGroupConfig_header_item
;
7139 proto_tree
*GetGroupConfig_header_tree
= parentTree
;
7141 proto_item
*GetGroupConfig_Port_item
;
7142 proto_tree
*GetGroupConfig_Port_tree
;
7144 int local_offset
= *offset
;
7147 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
7148 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
7150 if (!parentTree
|| (!pref_attempt_rmpp_defragment
&& RMPP
->Type
== RMPP_DATA
&& RMPP
->SegmentNumber
!= 1))
7153 if (MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
) {
7154 GetGroupConfig_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetGroupConfig
, tvb
, local_offset
, 64 + 16, ENC_NA
);
7155 proto_item_set_text(GetGroupConfig_header_item
, "GroupConfig for %s", tvb_get_string_enc(wmem_file_scope(), tvb
, local_offset
, 64, ENC_ASCII
));
7156 GetGroupConfig_header_tree
= proto_item_add_subtree(GetGroupConfig_header_item
, ett_getgroupconfig
);
7158 proto_tree_add_item(GetGroupConfig_header_tree
, hf_opa_GetGroupConfig_groupName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7160 local_offset
= parse_Image(GetGroupConfig_header_tree
, tvb
, &local_offset
);
7161 } else if (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
) {
7162 GetGroupConfig_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetGroupConfig
, tvb
, local_offset
, records
* PA_HEADER
->AttributeOffset
* 8, ENC_NA
);
7163 GetGroupConfig_header_tree
= proto_item_add_subtree(GetGroupConfig_header_item
, ett_getgroupconfig
);
7164 for (i
= 0; i
< records
; i
++) {
7165 GetGroupConfig_Port_tree
= proto_tree_add_subtree_format(GetGroupConfig_header_tree
, tvb
, local_offset
,
7166 PA_HEADER
->AttributeOffset
* 8, ett_getgroupconfigport
, &GetGroupConfig_Port_item
, "%3u: ", i
);
7167 local_offset
= parse_Image(GetGroupConfig_Port_tree
, tvb
, &local_offset
);
7168 proto_tree_add_item(GetGroupConfig_Port_tree
, hf_opa_GetGroupConfig_Port_NodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7170 proto_tree_add_item(GetGroupConfig_Port_tree
, hf_opa_GetGroupConfig_Port_nodeDesc
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7172 proto_item_append_text(GetGroupConfig_Port_item
, "LID: 0x%04x, Port: %u", tvb_get_ntohl(tvb
, local_offset
), tvb_get_uint8(tvb
, local_offset
+ 4));
7173 proto_tree_add_item(GetGroupConfig_Port_tree
, hf_opa_GetGroupConfig_Port_NodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7175 proto_tree_add_item(GetGroupConfig_Port_tree
, hf_opa_GetGroupConfig_Port_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7177 proto_tree_add_item(GetGroupConfig_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7182 return local_offset
;
7185 /* Parse GetPortCounters MAD from the Performance Admin class.*/
7186 static int parse_GetPortCounters(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
7188 proto_tree
*GetPortCounters_header_tree
;
7189 proto_item
*GetPortCounters_header_item
;
7191 int local_offset
= *offset
;
7196 GetPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetPortCounters
, tvb
, local_offset
, 232 + 16, ENC_NA
);
7197 proto_item_set_text(GetPortCounters_header_item
, "Port Counters for LID: 0x%x Port: %u", tvb_get_ntohl(tvb
, local_offset
), tvb_get_uint8(tvb
, local_offset
+ 4));
7198 GetPortCounters_header_tree
= proto_item_add_subtree(GetPortCounters_header_item
, ett_getportcounters
);
7200 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_nodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7202 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7204 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7207 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_flags
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7209 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7211 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7215 local_offset
= parse_Image(GetPortCounters_header_tree
, tvb
, &local_offset
);
7216 if (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
) {
7217 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7219 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7221 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7223 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7225 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortMulticastXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7227 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortMulticastRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7229 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_LocalLinkIntegrityErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7231 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_FMConfigErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7233 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7235 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_ExcessiveBufferOverruns
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7237 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvConstraintErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7239 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvSwitchRelayErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7241 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitDiscards
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7243 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitConstraintErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7245 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvRemotePhysicalErrors
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7247 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_SwPortCongestion
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7249 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitWait
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7251 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7253 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvBECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7255 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitTimeCong
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7257 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitWastedBW
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7259 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortXmitWaitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7261 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortRcvBubble
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7263 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_PortMarkFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7266 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_LinkErrorRecovery
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7268 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_LinkDowned
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7271 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_UncorrectableErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7273 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_NumLanesDown
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7274 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_reserved
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7275 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_GetPortCounters_LinkQualityIndicator
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7278 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7280 proto_tree_add_item(GetPortCounters_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7283 local_offset
+= 208;
7286 return local_offset
;
7289 static int parse_ClearPortCounters(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
7291 proto_tree
*ClearPortCounters_header_tree
;
7292 proto_item
*ClearPortCounters_header_item
;
7294 int local_offset
= *offset
;
7299 ClearPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_ClearPortCounters
, tvb
, local_offset
, 20, ENC_NA
);
7300 proto_item_set_text(ClearPortCounters_header_item
, "Clear User Port Counters for LID: 0x%x Port: %u", tvb_get_ntohl(tvb
, local_offset
), tvb_get_uint8(tvb
, local_offset
+ 4));
7301 ClearPortCounters_header_tree
= proto_item_add_subtree(ClearPortCounters_header_item
, ett_clearportcounters
);
7303 proto_tree_add_item(ClearPortCounters_header_tree
, hf_opa_ClearPortCounters_nodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7305 proto_tree_add_item(ClearPortCounters_header_tree
, hf_opa_ClearPortCounters_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7307 proto_tree_add_item(ClearPortCounters_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7309 proto_tree_add_item(ClearPortCounters_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7312 proto_tree_add_bitmask(ClearPortCounters_header_tree
, tvb
, local_offset
,
7313 hf_opa_ClearPortCounters_CounterSelectMask
, ett_clearportcounters_counterselectmask
,
7314 _ClearPortCounters_CounterSelectMask
, ENC_BIG_ENDIAN
);
7317 return local_offset
;
7320 static int parse_ClearAllPortCounters(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
7323 proto_tree
*ClearAllPortCounters_header_tree
;
7324 proto_item
*ClearAllPortCounters_header_item
;
7326 int local_offset
= *offset
;
7331 ClearAllPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_ClearAllPortCounters
, tvb
, local_offset
, 4, ENC_NA
);
7332 proto_item_set_text(ClearAllPortCounters_header_item
, "Clear All User Port Counters");
7333 ClearAllPortCounters_header_tree
= proto_item_add_subtree(ClearAllPortCounters_header_item
, ett_clearallportcounters
);
7335 proto_tree_add_bitmask(ClearAllPortCounters_header_tree
, tvb
, local_offset
,
7336 hf_opa_ClearAllPortCounters_CounterSelectMask
, ett_clearallportcounters_counterselectmask
,
7337 _ClearAllPortCounters_CounterSelectMask
, ENC_BIG_ENDIAN
);
7340 return local_offset
;
7343 static int parse_PMConfig(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
7345 proto_tree
*PMConfig_header_tree
;
7346 proto_item
*PMConfig_header_item
;
7348 int local_offset
= *offset
;
7353 PMConfig_header_item
= proto_tree_add_item(parentTree
, hf_opa_PMConfig
, tvb
, local_offset
, 104, ENC_NA
);
7354 PMConfig_header_tree
= proto_item_add_subtree(PMConfig_header_item
, ett_pmconfig
);
7356 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_sweepInterval
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7358 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_maxClients
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7360 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_sizeHistory
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7362 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_sizeFreeze
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7364 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_lease
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7366 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_pmFlags
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7369 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_PortXmitWait
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7371 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_SwPortCongestion
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7373 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_PortRcvFECN
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7375 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_PortRcvBECN
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7377 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_PortXmitTimeCong
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7379 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_PortMarkFECN
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7381 proto_tree_add_item(PMConfig_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7384 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_integrityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7386 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_congestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7388 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_smaCongestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7390 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_bubbleErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7392 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_securityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7394 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_routingErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7397 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_LocalLinkIntegrityErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7399 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_PortRcvErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7401 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_ExcessiveBufferOverrunErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7403 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_LinkErrorRecovery
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7405 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_LinkDowned
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7407 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_UncorrectableErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7409 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_FMConfigErrors
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7411 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_LinkQualityIndicator
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7413 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_LinkWidthDowngrade
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7415 proto_tree_add_item(PMConfig_header_tree
, hf_opa_reserved8
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7417 proto_tree_add_item(PMConfig_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7419 proto_tree_add_item(PMConfig_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7422 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_memoryFootprint
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7424 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_maxAttempts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7426 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_respTimeout
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7428 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_minRespTimeout
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7430 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_maxParallelNodes
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7432 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_pmaBatchSize
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7434 proto_tree_add_item(PMConfig_header_tree
, hf_opa_PMConfig_errorClear
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7436 proto_tree_add_item(PMConfig_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7439 return local_offset
;
7442 /* Parse MoveFreezeFrame MAD from the Performance Admin class. */
7443 static int parse_MoveFreezeFrame(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
7445 proto_tree
*MoveFreezeFrame_header_tree
= parentTree
;
7446 proto_item
*MoveFreezeFrame_old_item
;
7447 proto_tree
*MoveFreezeFrame_old_tree
;
7448 proto_item
*MoveFreezeFrame_new_item
;
7449 proto_tree
*MoveFreezeFrame_new_tree
;
7451 int local_offset
= *offset
;
7456 MoveFreezeFrame_old_item
= proto_tree_add_item(MoveFreezeFrame_header_tree
, hf_opa_MoveFreezeFrame_old
, tvb
, local_offset
, 16, ENC_NA
);
7457 MoveFreezeFrame_old_tree
= proto_item_add_subtree(MoveFreezeFrame_old_item
, ett_movefreezeframeold
);
7458 local_offset
= parse_Image(MoveFreezeFrame_old_tree
, tvb
, &local_offset
);
7460 MoveFreezeFrame_new_item
= proto_tree_add_item(MoveFreezeFrame_header_tree
, hf_opa_MoveFreezeFrame_new
, tvb
, local_offset
, 16, ENC_NA
);
7461 MoveFreezeFrame_new_tree
= proto_item_add_subtree(MoveFreezeFrame_new_item
, ett_movefreezeframenew
);
7462 local_offset
= parse_Image(MoveFreezeFrame_new_tree
, tvb
, &local_offset
);
7464 return local_offset
;
7467 /* Parse GetFocusPorts MAD from the Performance Admin class. */
7468 static int parse_GetFocusPorts(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
7470 proto_tree
*GetFocusPorts_header_tree
;
7471 proto_item
*GetFocusPorts_header_item
;
7473 proto_tree
*GetFocusPorts_Port_tree
;
7474 proto_item
*GetFocusPorts_Port_item
;
7476 int local_offset
= *offset
;
7479 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
7480 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
7482 if (!parentTree
|| (!pref_attempt_rmpp_defragment
&& RMPP
->Type
== RMPP_DATA
&& RMPP
->SegmentNumber
!= 1))
7485 if (MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
) {
7486 GetFocusPorts_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetFocusPorts
, tvb
, local_offset
, 64 + 28, ENC_NA
);
7487 proto_item_set_text(GetFocusPorts_header_item
, "Focus Ports for %s", tvb_get_string_enc(wmem_file_scope(), tvb
, local_offset
, 64, ENC_ASCII
));
7488 GetFocusPorts_header_tree
= proto_item_add_subtree(GetFocusPorts_header_item
, ett_getfocusports
);
7490 proto_tree_add_item(GetFocusPorts_header_tree
, hf_opa_GetFocusPorts_groupName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7492 local_offset
= parse_Image(GetFocusPorts_header_tree
, tvb
, &local_offset
);
7493 proto_tree_add_item(GetFocusPorts_header_tree
, hf_opa_GetFocusPorts_select
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7495 proto_tree_add_item(GetFocusPorts_header_tree
, hf_opa_GetFocusPorts_start
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7497 proto_tree_add_item(GetFocusPorts_header_tree
, hf_opa_GetFocusPorts_range
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7500 } else if (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
) {
7501 GetFocusPorts_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetFocusPorts
, tvb
, local_offset
, records
* PA_HEADER
->AttributeOffset
* 8, ENC_NA
);
7502 GetFocusPorts_header_tree
= proto_item_add_subtree(GetFocusPorts_header_item
, ett_getfocusports
);
7503 for (i
= 0; i
< records
; i
++) {
7504 GetFocusPorts_Port_tree
= proto_tree_add_subtree_format(GetFocusPorts_header_tree
, tvb
, local_offset
,
7505 PA_HEADER
->AttributeOffset
* 8, ett_getfocusportsport
, &GetFocusPorts_Port_item
, "%3u: ", i
);
7506 local_offset
= parse_Image(GetFocusPorts_Port_tree
, tvb
, &local_offset
);
7508 proto_item_append_text(GetFocusPorts_Port_item
, "LID: %04x, Port %u",
7509 tvb_get_ntohl(tvb
, local_offset
), tvb_get_uint8(tvb
, local_offset
+ 4));
7510 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_nodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7512 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_portNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7514 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7516 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_mtu
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7518 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_localFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7519 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_neighborFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7521 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_value
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7523 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_nodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7525 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_nodeDesc
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7527 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_neighborLid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7529 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_neighborPortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7531 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7533 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_neighborValue
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7535 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_neighborGuid
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7537 proto_tree_add_item(GetFocusPorts_Port_tree
, hf_opa_GetFocusPorts_neighborNodeDesc
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7542 return local_offset
;
7545 /* Parse GetImageInfo MAD from the Performance Admin class. */
7546 static int parse_GetImageInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
7548 proto_tree
*GetImageInfo_header_tree
= parentTree
;
7549 proto_item
*GetImageInfo_header_item
;
7550 proto_tree
*GetImageInfo_SM_tree
;
7553 int local_offset
= *offset
;
7558 GetImageInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetImageInfo
, tvb
, local_offset
, 216, ENC_NA
);
7559 GetImageInfo_header_tree
= proto_item_add_subtree(GetImageInfo_header_item
, ett_getimageinfo
);
7561 local_offset
= parse_Image(GetImageInfo_header_tree
, tvb
, &local_offset
);
7563 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_sweepStart
,
7564 tvb
, local_offset
, 8, ENC_TIME_SECS
|ENC_BIG_ENDIAN
);
7566 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_sweepDuration
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7568 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numHFIPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7570 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7572 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numSwitchNodes
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7574 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numSwitchPorts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7576 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numLinks
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7578 numSMs
= tvb_get_ntohl(tvb
, local_offset
);
7579 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numSMs
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7581 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numFailedNodes
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7583 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numFailedPorts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7585 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numSkippedNodes
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7587 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numSkippedPorts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7589 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_numUnexpectedClearPorts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7591 proto_tree_add_item(GetImageInfo_header_tree
, hf_opa_GetImageInfo_imageInterval
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7594 GetImageInfo_SM_tree
= proto_tree_add_subtree(GetImageInfo_header_tree
, tvb
, local_offset
, 16 + 64,
7595 ett_getimageinfosm
, NULL
, "Primary SM Info");
7596 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7598 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_state
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7599 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_priority
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7601 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_portNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7603 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7605 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_smPortGuid
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7607 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_smNodeDesc
, tvb
, local_offset
, 64, ENC_NA
| ENC_ASCII
);
7610 if (!numSMs
|| numSMs
> 1) {
7611 GetImageInfo_SM_tree
= proto_tree_add_subtree(GetImageInfo_header_tree
, tvb
, local_offset
, 16 + 64,
7612 ett_getimageinfosm
, NULL
, "Secondary SM Info");
7613 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_lid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7615 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_state
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7616 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_priority
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7618 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_portNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7620 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7622 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_smPortGuid
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7624 proto_tree_add_item(GetImageInfo_SM_tree
, hf_opa_GetImageInfo_smNodeDesc
, tvb
, local_offset
, 64, ENC_NA
| ENC_ASCII
);
7627 proto_tree_add_subtree(GetImageInfo_header_tree
, tvb
, local_offset
, 16 + 64,
7628 ett_getimageinfosm
, NULL
, "No Secondary SM Info");
7629 local_offset
+= (16 + 64);
7631 return local_offset
;
7634 /* Parse GetVFList MAD from the Performance Admin class. */
7635 static int parse_GetVFList(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
7637 proto_item
*GetVFList_GroupName_item
;
7638 proto_tree
*GetVFList_header_tree
;
7639 proto_item
*GetVFList_header_item
;
7641 int local_offset
= *offset
;
7644 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
7645 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
7647 if (!parentTree
|| RMPP
->Type
!= RMPP_DATA
||
7648 (MAD
->Method
!= METHOD_GET_RESP
&& MAD
->Method
!= METHOD_GETTABLE_RESP
)) {
7652 GetVFList_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFList
, tvb
, local_offset
, length
, ENC_NA
);
7653 GetVFList_header_tree
= proto_item_add_subtree(GetVFList_header_item
, ett_getvflist
);
7654 proto_tree_add_none_format(GetVFList_header_tree
, hf_opa_GetVFList
, tvb
, local_offset
, length
, "Number of VFs: %u", records
);
7656 for (i
= 0; i
< records
; i
++) {
7657 GetVFList_GroupName_item
= proto_tree_add_item(GetVFList_header_tree
, hf_opa_GetVFList_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7659 proto_item_prepend_text(GetVFList_GroupName_item
, "%3u: ", i
+ 1);
7662 return local_offset
;
7665 /* Parse GetVFInfo MAD from the Performance Admin class. */
7666 static int parse_GetVFInfo(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
7668 proto_tree
*GetVFInfo_header_tree
= parentTree
;
7669 proto_tree
*GetVFInfo_header_item
= parentTree
;
7671 proto_tree
*GetVFInfo_Util_Stats_tree
;
7672 proto_item
*GetVFInfo_Util_Stats_Buckets_item
;
7673 proto_tree
*GetVFInfo_Util_Stats_Buckets_tree
;
7674 proto_item
*GetVFInfo_Util_Stats_Bucket_item
;
7676 proto_tree
*GetVFInfo_Error_Summary_tree
;
7677 proto_tree
*GetVFInfo_Error_Integrity_Buckets_tree
;
7678 proto_tree
*GetVFInfo_Error_Congestion_Buckets_tree
;
7679 proto_tree
*GetVFInfo_Error_SmaCongestion_Buckets_tree
;
7680 proto_tree
*GetVFInfo_Error_Bubble_Buckets_tree
;
7681 proto_tree
*GetVFInfo_Error_Security_Buckets_tree
;
7682 proto_tree
*GetVFInfo_Error_Routing_Buckets_tree
;
7683 proto_item
*GetVFInfo_Error_Stats_Integrity_Buckets_item
;
7684 proto_item
*GetVFInfo_Error_Stats_Congestion_Buckets_item
;
7685 proto_item
*GetVFInfo_Error_Stats_SmaCongestion_Buckets_item
;
7686 proto_item
*GetVFInfo_Error_Stats_Bubble_Buckets_item
;
7687 proto_item
*GetVFInfo_Error_Stats_Security_Buckets_item
;
7688 proto_item
*GetVFInfo_Error_Stats_Routing_Buckets_item
;
7689 proto_item
*GetVFInfo_Error_Stats_Bucket_item
;
7691 int local_offset
= *offset
;
7694 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
7695 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
7697 unsigned util
= 100 / PM_UTIL_BUCKETS
; /* 0%+ 10%+ 20%+ ... 80%+ 90%+ */
7698 unsigned err
= 100 / (PM_ERR_BUCKETS
- 1); /* 0%+ 25%+ 50%+ 75%+ 100%+ */
7700 if (!parentTree
|| (!pref_attempt_rmpp_defragment
&& RMPP
->Type
== RMPP_DATA
&& RMPP
->SegmentNumber
!= 1)) {
7704 if (MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
) {
7705 GetVFInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFInfo
, tvb
, local_offset
, 64 + 24, ENC_NA
);
7706 proto_item_set_text(GetVFInfo_header_item
, "VFInfo for %s", tvb_get_string_enc(wmem_file_scope(), tvb
, local_offset
, 64, ENC_ASCII
));
7707 GetVFInfo_header_tree
= proto_item_add_subtree(GetVFInfo_header_item
, ett_getvfinfo
);
7708 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_GetVFInfo_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7710 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7714 local_offset
= parse_Image(GetVFInfo_header_tree
, tvb
, &local_offset
);
7715 return local_offset
;
7718 for (i
= 0; i
< records
; i
++) {
7719 GetVFInfo_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFInfo
, tvb
, local_offset
, PA_HEADER
->AttributeOffset
* 8, ENC_NA
);
7720 proto_item_set_text(GetVFInfo_header_item
, "VFInfo for %s", tvb_get_string_enc(wmem_file_scope(), tvb
, local_offset
, 64, ENC_ASCII
));
7721 GetVFInfo_header_tree
= proto_item_add_subtree(GetVFInfo_header_item
, ett_getvfinfo
);
7723 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_GetVFInfo_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7725 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7728 local_offset
= parse_Image(GetVFInfo_header_tree
, tvb
, &local_offset
);
7730 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_GetVFInfo_numPorts
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7734 GetVFInfo_Util_Stats_tree
= proto_tree_add_subtree(GetVFInfo_header_tree
, tvb
, local_offset
, 40 + PM_UTIL_BUCKETS
* 4,
7735 ett_getvfinfoutilstats
, NULL
, "Internal Utilization Statistics");
7737 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_totalMBps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7739 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_totalKPps
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7741 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_avgMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7743 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_minMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7745 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_maxMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7747 GetVFInfo_Util_Stats_Buckets_item
= proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_numBWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7749 GetVFInfo_Util_Stats_Buckets_tree
= proto_item_add_subtree(GetVFInfo_Util_Stats_Buckets_item
, ett_getvfinfoutilbuckets
);
7750 for (i
= 0; i
< PM_UTIL_BUCKETS
; i
++) {
7751 GetVFInfo_Util_Stats_Bucket_item
= proto_tree_add_item(GetVFInfo_Util_Stats_Buckets_tree
, hf_opa_GetVFInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7752 proto_item_set_text(GetVFInfo_Util_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* util
, tvb_get_ntohl(tvb
, local_offset
));
7756 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_avgKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7758 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_minKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7760 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_maxKPps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7762 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_pmaFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7764 proto_tree_add_item(GetVFInfo_Util_Stats_tree
, hf_opa_GetVFInfo_topoFailedPorts
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7768 GetVFInfo_Error_Summary_tree
= proto_tree_add_subtree(GetVFInfo_header_tree
, tvb
, local_offset
, 40 + PM_ERR_BUCKETS
* 24,
7769 ett_getvfinfoerrorsummary
, NULL
, "Internal Error Statistics");
7771 GetVFInfo_Error_Stats_Integrity_Buckets_item
= proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_integrityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7773 GetVFInfo_Error_Stats_Congestion_Buckets_item
= proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_congestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7775 GetVFInfo_Error_Stats_SmaCongestion_Buckets_item
= proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_smaCongestionErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7777 GetVFInfo_Error_Stats_Bubble_Buckets_item
= proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_bubbleErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7779 GetVFInfo_Error_Stats_Security_Buckets_item
= proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_securityErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7781 GetVFInfo_Error_Stats_Routing_Buckets_item
= proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_routingErrors
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7784 proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_utilizationPct10
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7786 proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_GetVFInfo_discardsPct10
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
7788 proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7790 proto_tree_add_item(GetVFInfo_Error_Summary_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7793 GetVFInfo_Error_Integrity_Buckets_tree
= proto_item_add_subtree(GetVFInfo_Error_Stats_Integrity_Buckets_item
, ett_getvfinfoerrintegritybucket
);
7794 GetVFInfo_Error_Congestion_Buckets_tree
= proto_item_add_subtree(GetVFInfo_Error_Stats_Congestion_Buckets_item
, ett_getvfinfoerrcongestionbucket
);
7795 GetVFInfo_Error_SmaCongestion_Buckets_tree
= proto_item_add_subtree(GetVFInfo_Error_Stats_SmaCongestion_Buckets_item
, ett_getvfinfoerrsmacongestionbucket
);
7796 GetVFInfo_Error_Bubble_Buckets_tree
= proto_item_add_subtree(GetVFInfo_Error_Stats_Bubble_Buckets_item
, ett_getvfinfoerrbubblebucket
);
7797 GetVFInfo_Error_Security_Buckets_tree
= proto_item_add_subtree(GetVFInfo_Error_Stats_Security_Buckets_item
, ett_getvfinfoerrsecuritybucket
);
7798 GetVFInfo_Error_Routing_Buckets_tree
= proto_item_add_subtree(GetVFInfo_Error_Stats_Routing_Buckets_item
, ett_getvfinfoerrroutingbucket
);
7800 for (i
= 0; i
< PM_ERR_BUCKETS
; i
++) {
7801 GetVFInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetVFInfo_Error_Integrity_Buckets_tree
, hf_opa_GetVFInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7802 proto_item_set_text(GetVFInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7804 GetVFInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetVFInfo_Error_Congestion_Buckets_tree
, hf_opa_GetVFInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7805 proto_item_set_text(GetVFInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7807 GetVFInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetVFInfo_Error_SmaCongestion_Buckets_tree
, hf_opa_GetVFInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7808 proto_item_set_text(GetVFInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7810 GetVFInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetVFInfo_Error_Bubble_Buckets_tree
, hf_opa_GetVFInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7811 proto_item_set_text(GetVFInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7813 GetVFInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetVFInfo_Error_Security_Buckets_tree
, hf_opa_GetVFInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7814 proto_item_set_text(GetVFInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7816 GetVFInfo_Error_Stats_Bucket_item
= proto_tree_add_item(GetVFInfo_Error_Routing_Buckets_tree
, hf_opa_GetVFInfo_BWBuckets
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7817 proto_item_set_text(GetVFInfo_Error_Stats_Bucket_item
, "Bucket %u: %3u%%+: %u", i
, i
* err
, tvb_get_ntohl(tvb
, local_offset
));
7820 /* End internalErrors */
7821 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_GetVFInfo_maxInternalRate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7823 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_GetVFInfo_minInternalRate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7825 proto_tree_add_item(GetVFInfo_header_tree
, hf_opa_GetVFInfo_maxInternalMBps
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7829 return local_offset
;
7832 /* Parse GetVFConfig MAD from the Performance Admin class. */
7833 static int parse_GetVFConfig(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
7835 proto_tree
*GetVFConfig_header_tree
;
7836 proto_item
*GetVFConfig_header_item
;
7837 proto_item
*GetVFConfig_Port_item
;
7838 proto_tree
*GetVFConfig_Port_tree
;
7840 int local_offset
= *offset
;
7843 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
7844 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
7846 if (!parentTree
|| (!pref_attempt_rmpp_defragment
&& RMPP
->Type
== RMPP_DATA
&& RMPP
->SegmentNumber
!= 1))
7849 if (MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
) {
7850 GetVFConfig_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFConfig
, tvb
, local_offset
, 64 + 24, ENC_NA
);
7851 proto_item_set_text(GetVFConfig_header_item
, "VF Config");
7852 GetVFConfig_header_tree
= proto_item_add_subtree(GetVFConfig_header_item
, ett_getvfconfig
);
7853 proto_tree_add_item(GetVFConfig_header_tree
, hf_opa_GetVFConfig_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7855 proto_tree_add_item(GetVFConfig_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7857 local_offset
= parse_Image(GetVFConfig_header_tree
, tvb
, &local_offset
);
7858 } else if (MAD
->Method
== METHOD_GETTABLE_RESP
|| MAD
->Method
== METHOD_GET_RESP
) {
7859 GetVFConfig_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFConfig
, tvb
, local_offset
, records
* PA_HEADER
->AttributeOffset
* 8, ENC_NA
);
7860 proto_item_set_text(GetVFConfig_header_item
, "VF Config");
7861 GetVFConfig_header_tree
= proto_item_add_subtree(GetVFConfig_header_item
, ett_getvfconfig
);
7862 for (i
= 0; i
< records
; i
++) {
7863 GetVFConfig_Port_tree
= proto_tree_add_subtree_format(GetVFConfig_header_tree
, tvb
, local_offset
,
7864 PA_HEADER
->AttributeOffset
* 8, ett_getvfconfigport
, &GetVFConfig_Port_item
, "%3u: ", i
);
7865 local_offset
= parse_Image(GetVFConfig_Port_tree
, tvb
, &local_offset
);
7866 proto_tree_add_item(GetVFConfig_Port_tree
, hf_opa_GetVFConfig_Port_NodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7868 proto_tree_add_item(GetVFConfig_Port_tree
, hf_opa_GetVFConfig_Port_nodeDesc
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7870 proto_item_append_text(GetVFConfig_Port_item
, "LID: 0x%04x, Port: %u", tvb_get_ntohl(tvb
, local_offset
), tvb_get_uint8(tvb
, local_offset
+ 4));
7871 proto_tree_add_item(GetVFConfig_Port_tree
, hf_opa_GetVFConfig_Port_NodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7873 proto_tree_add_item(GetVFConfig_Port_tree
, hf_opa_GetVFConfig_Port_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7875 proto_tree_add_item(GetVFConfig_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7880 return local_offset
;
7883 /* Parse GetVFPortCounters MAD from the Performance Admin class. */
7884 static int parse_GetVFPortCounters(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
)
7886 proto_tree
*GetVFPortCounters_header_tree
;
7887 proto_item
*GetVFPortCounters_header_item
;
7889 int local_offset
= *offset
;
7894 GetVFPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFPortCounters
, tvb
, local_offset
, 224, ENC_NA
);
7895 GetVFPortCounters_header_tree
= proto_item_add_subtree(GetVFPortCounters_header_item
, ett_getvfportcounters
);
7897 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_nodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7899 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7901 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7904 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_flags
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7906 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_reserved32
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7908 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7911 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7913 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7916 local_offset
= parse_Image(GetVFPortCounters_header_tree
, tvb
, &local_offset
);
7918 if (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
) {
7919 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFXmitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7921 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFRcvData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7923 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFXmitPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7925 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFRcvPkts
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7927 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFXmitDiscards
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7929 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_SwPortVFCongestion
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7931 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFXmitWait
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7933 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFRcvFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7935 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFRcvBECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7937 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFXmitTimeCong
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7939 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFXmitWastedBW
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7941 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFXmitWaitData
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7943 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFRcvBubble
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7945 proto_tree_add_item(GetVFPortCounters_header_tree
, hf_opa_GetVFPortCounters_PortVFMarkFECN
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7948 local_offset
+= 112;
7951 return local_offset
;
7954 /* Parse ClearVFPortCounters MAD from the Performance Admin class. */
7955 static int parse_ClearVFPortCounters(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
)
7957 proto_tree
*ClearVFPortCounters_header_tree
;
7958 proto_item
*ClearVFPortCounters_header_item
;
7960 int local_offset
= *offset
;
7965 ClearVFPortCounters_header_item
= proto_tree_add_item(parentTree
, hf_opa_ClearVFPortCounters
, tvb
, local_offset
, 92, ENC_NA
);
7966 ClearVFPortCounters_header_tree
= proto_item_add_subtree(ClearVFPortCounters_header_item
, ett_clearvfportcounters
);
7968 proto_tree_add_item(ClearVFPortCounters_header_tree
, hf_opa_ClearVFPortCounters_nodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
7970 proto_tree_add_item(ClearVFPortCounters_header_tree
, hf_opa_ClearVFPortCounters_PortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
7972 proto_tree_add_item(ClearVFPortCounters_header_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
7974 proto_tree_add_item(ClearVFPortCounters_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7977 proto_tree_add_item(ClearVFPortCounters_header_tree
, hf_opa_ClearVFPortCounters_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
7979 proto_tree_add_item(ClearVFPortCounters_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
7982 proto_tree_add_bitmask(ClearVFPortCounters_header_tree
, tvb
, local_offset
,
7983 hf_opa_ClearVFPortCounters_CounterSelectMask
, ett_clearvfportcounters_counterselectmask
,
7984 _ClearVFPortCounters_CounterSelectMask
, ENC_BIG_ENDIAN
);
7987 return local_offset
;
7990 /* Parse GetVFFocusPorts MAD from the Performance Admin class. */
7991 static int parse_GetVFFocusPorts(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
7993 proto_tree
*GetVFFocusPorts_header_tree
;
7994 proto_item
*GetVFFocusPorts_header_item
;
7996 proto_tree
*GetVFFocusPorts_Port_tree
;
7998 int local_offset
= *offset
;
8001 unsigned length
= tvb_captured_length_remaining(tvb
, local_offset
);
8002 unsigned records
= (PA_HEADER
->AttributeOffset
? length
/ (PA_HEADER
->AttributeOffset
* 8) : 0);
8004 if (!parentTree
|| (!pref_attempt_rmpp_defragment
&& RMPP
->Type
== RMPP_DATA
&& RMPP
->SegmentNumber
!= 1))
8007 if (MAD
->Method
== METHOD_GET
|| MAD
->Method
== METHOD_GETTABLE
) {
8008 GetVFFocusPorts_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFFocusPorts
, tvb
, local_offset
, 130, ENC_NA
);
8009 GetVFFocusPorts_header_tree
= proto_item_add_subtree(GetVFFocusPorts_header_item
, ett_getvffocusports
);
8011 proto_tree_add_item(GetVFFocusPorts_header_tree
, hf_opa_GetVFFocusPorts_vfName
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
8013 proto_tree_add_item(GetVFFocusPorts_header_tree
, hf_opa_reserved64
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
8015 local_offset
= parse_Image(GetVFFocusPorts_header_tree
, tvb
, &local_offset
);
8016 proto_tree_add_item(GetVFFocusPorts_header_tree
, hf_opa_GetVFFocusPorts_select
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
8018 proto_tree_add_item(GetVFFocusPorts_header_tree
, hf_opa_GetVFFocusPorts_start
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
8020 proto_tree_add_item(GetVFFocusPorts_header_tree
, hf_opa_GetVFFocusPorts_range
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
8022 } else if (MAD
->Method
== METHOD_GET_RESP
|| MAD
->Method
== METHOD_GETTABLE_RESP
) {
8023 GetVFFocusPorts_header_item
= proto_tree_add_item(parentTree
, hf_opa_GetVFFocusPorts
, tvb
, local_offset
, records
* PA_HEADER
->AttributeOffset
* 8, ENC_NA
);
8024 GetVFFocusPorts_header_tree
= proto_item_add_subtree(GetVFFocusPorts_header_item
, ett_getvffocusports
);
8025 for (i
= 0; i
< records
; i
++) {
8026 GetVFFocusPorts_Port_tree
= proto_tree_add_subtree_format(GetVFFocusPorts_header_tree
,
8027 tvb
, local_offset
, PA_HEADER
->AttributeOffset
* 8, ett_getvffocusportsport
, NULL
,
8028 "%3u: LID: 0x%04x, Port: %u",
8029 i
, tvb_get_ntohl(tvb
, local_offset
), tvb_get_uint8(tvb
, local_offset
+ 4));
8030 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_nodeLID
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
8032 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_portNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
8034 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_rate
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
8036 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_mtu
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
8038 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_localFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
8039 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_neighborFlags
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
8041 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_value
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
8043 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_nodeGUID
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
8045 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_nodeDesc
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
8047 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_neighborLid
, tvb
, local_offset
, 4, ENC_BIG_ENDIAN
);
8049 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_neighborPortNumber
, tvb
, local_offset
, 1, ENC_BIG_ENDIAN
);
8051 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_reserved24
, tvb
, local_offset
, 3, ENC_BIG_ENDIAN
);
8053 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_neighborValue
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
8055 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_neighborGuid
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
8057 proto_tree_add_item(GetVFFocusPorts_Port_tree
, hf_opa_GetVFFocusPorts_neighborNodeDesc
, tvb
, local_offset
, 64, ENC_ASCII
| ENC_NA
);
8062 return local_offset
;
8064 static bool parse_PA_Attribute(proto_tree
*parentTree
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, RMPP_t
*RMPP
, PA_HEADER_t
*PA_HEADER
)
8066 int local_offset
= *offset
;
8068 switch (MAD
->AttributeID
) {
8069 case PA_ATTR_ID_CLASS_PORTINFO
:
8070 local_offset
= parse_ClassPortInfo(parentTree
, tvb
, &local_offset
, MAD
);
8072 case PA_ATTR_ID_GET_GRP_LIST
:
8073 local_offset
= parse_GetGroupList(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8075 case PA_ATTR_ID_GET_GRP_INFO
:
8076 local_offset
= parse_GetGroupInfo(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8078 case PA_ATTR_ID_GET_GRP_CFG
:
8079 local_offset
= parse_GetGroupConfig(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8081 case PA_ATTR_ID_GET_PORT_CTRS
:
8082 local_offset
= parse_GetPortCounters(parentTree
, tvb
, &local_offset
, MAD
);
8084 case PA_ATTR_ID_CLR_PORT_CTRS
:
8085 local_offset
= parse_ClearPortCounters(parentTree
, tvb
, &local_offset
);
8087 case PA_ATTR_ID_CLR_ALL_PORT_CTRS
:
8088 local_offset
= parse_ClearAllPortCounters(parentTree
, tvb
, &local_offset
);
8090 case PA_ATTR_ID_GET_PM_CFG
:
8091 local_offset
= parse_PMConfig(parentTree
, tvb
, &local_offset
);
8093 case PA_ATTR_ID_FREEZE_IMAGE
:
8094 local_offset
= parse_Image(parentTree
, tvb
, &local_offset
);
8096 case PA_ATTR_ID_RELEASE_IMAGE
:
8097 local_offset
= parse_Image(parentTree
, tvb
, &local_offset
);
8099 case PA_ATTR_ID_RENEW_IMAGE
:
8100 local_offset
= parse_Image(parentTree
, tvb
, &local_offset
);
8102 case PA_ATTR_ID_GET_FOCUS_PORTS
:
8103 local_offset
= parse_GetFocusPorts(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8105 case PA_ATTR_ID_GET_IMAGE_INFO
:
8106 local_offset
= parse_GetImageInfo(parentTree
, tvb
, &local_offset
);
8108 case PA_ATTR_ID_MOVE_FREEZE_FRAME
:
8109 local_offset
= parse_MoveFreezeFrame(parentTree
, tvb
, &local_offset
);
8111 case PA_ATTR_ID_GET_VF_LIST
:
8112 local_offset
= parse_GetVFList(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8114 case PA_ATTR_ID_GET_VF_INFO
:
8115 local_offset
= parse_GetVFInfo(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8117 case PA_ATTR_ID_GET_VF_CONFIG
:
8118 local_offset
= parse_GetVFConfig(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8120 case PA_ATTR_ID_GET_VF_PORT_CTRS
:
8121 local_offset
= parse_GetVFPortCounters(parentTree
, tvb
, &local_offset
, MAD
);
8123 case PA_ATTR_ID_CLR_VF_PORT_CTRS
:
8124 local_offset
= parse_ClearVFPortCounters(parentTree
, tvb
, &local_offset
);
8126 case PA_ATTR_ID_GET_VF_FOCUS_PORTS
:
8127 local_offset
= parse_GetVFFocusPorts(parentTree
, tvb
, &local_offset
, MAD
, RMPP
, PA_HEADER
);
8133 *offset
= local_offset
;
8137 /* Parse the Method from the MAD Common Header. */
8138 static void label_PA_Method(proto_item
*PAItem
, MAD_t
*MAD
, packet_info
*pinfo
)
8140 const char *label
= val_to_str_const(MAD
->Method
, PA_Methods
, "(Unknown Perf Method!)");
8141 proto_item_append_text(PAItem
, " %s", label
);
8142 col_append_str(pinfo
->cinfo
, COL_INFO
, label
);
8145 /* Parse the Attribute from the MAD Common Header */
8146 static void label_PA_Attribute(proto_item
*PAItem
, MAD_t
*MAD
, packet_info
*pinfo
)
8148 const char *label
= val_to_str_const(MAD
->AttributeID
, PA_Attributes
, "Attribute (Unknown Perf Attribute!)");
8149 proto_item_append_text(PAItem
, "%s", &label
[11]);
8150 col_append_str(pinfo
->cinfo
, COL_INFO
, &label
[11]);
8152 /* Parse the PA_HEADER
8153 * IN: parentTree to add the dissection to
8154 * IN: tvb - the data buffer from wireshark
8155 * IN/OUT: The current and updated offset */
8156 static bool parse_PA_HEADER(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
, MAD_t
*MAD
, PA_HEADER_t
*PA_HEADER
)
8158 int local_offset
= *offset
;
8159 proto_item
*PA_HEADER_header_item
;
8160 proto_tree
*PA_HEADER_header_tree
;
8162 PA_HEADER_header_item
= proto_tree_add_item(parentTree
, hf_opa_pa
, tvb
, local_offset
, 20, ENC_NA
);
8163 PA_HEADER_header_tree
= proto_item_add_subtree(PA_HEADER_header_item
, ett_pa
);
8165 PA_HEADER
->SM_Key
= tvb_get_ntoh64(tvb
, local_offset
);
8166 proto_tree_add_item(PA_HEADER_header_tree
, hf_opa_pa_sm_key
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
8168 PA_HEADER
->AttributeOffset
= tvb_get_ntohs(tvb
, local_offset
);
8169 proto_tree_add_item(PA_HEADER_header_tree
, hf_opa_pa_attribute_offset
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
8171 PA_HEADER
->Reserved
= tvb_get_ntohs(tvb
, local_offset
);
8172 proto_tree_add_item(PA_HEADER_header_tree
, hf_opa_reserved16
, tvb
, local_offset
, 2, ENC_BIG_ENDIAN
);
8174 PA_HEADER
->ComponentMask
= tvb_get_ntoh64(tvb
, local_offset
);
8175 proto_tree_add_item(PA_HEADER_header_tree
, hf_opa_pa_component_mask
, tvb
, local_offset
, 8, ENC_BIG_ENDIAN
);
8178 label_PA_Method(PA_HEADER_header_item
, MAD
, pinfo
);
8179 label_PA_Attribute(PA_HEADER_header_item
, MAD
, pinfo
);
8181 *offset
= local_offset
;
8184 /* Parse Performance Administration */
8185 static void parse_PERFADMN(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
8189 PA_HEADER_t PA_HEADER
;
8190 fragment_head
*frag_head
= NULL
;
8191 tvbuff_t
*old_tvb
= NULL
;
8193 bool parent_was_opa_fe
= proto_is_frame_protocol(pinfo
->layers
, "opa.fe");
8195 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
8198 if (!parse_RMPP(parentTree
, pinfo
, tvb
, offset
, &RMPP
)) {
8201 if (!parse_PA_HEADER(parentTree
, pinfo
, tvb
, offset
, &MAD
, &PA_HEADER
)) {
8204 if ((!pref_parse_on_mad_status_error
&& MAD
.Status
) ||
8205 RMPP
.Type
== RMPP_ACK
) {
8206 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8210 if (!parent_was_opa_fe
&& pref_attempt_rmpp_defragment
8211 && (RMPP
.resptime_flags
& RMPP_FLAG_ACTIVE_MASK
) && (RMPP
.Type
== RMPP_DATA
)
8212 && !((RMPP
.resptime_flags
& RMPP_FLAG_FIRST_MASK
)
8213 && (RMPP
.resptime_flags
& RMPP_FLAG_LAST_MASK
))) {
8215 frag_head
= fragment_add_seq_check(&opa_mad_rmpp_reassembly_table
,
8216 tvb
, *offset
, pinfo
, (uint32_t)MAD
.TransactionID
, NULL
, RMPP
.SegmentNumber
- 1,
8217 ((RMPP
.resptime_flags
& RMPP_FLAG_LAST_MASK
) ?
8218 RMPP
.PayloadLength
- 20 : (uint32_t)tvb_captured_length_remaining(tvb
, *offset
)),
8219 (bool)!(RMPP
.resptime_flags
& RMPP_FLAG_LAST_MASK
));
8220 /* Back up tvb & offset */
8222 old_offset
= *offset
;
8223 /* Create new tvb from reassembled data */
8224 tvb
= process_reassembled_data(old_tvb
, old_offset
, pinfo
, "Reassembled RMPP Packet",
8225 frag_head
, &opa_rmpp_frag_items
, NULL
, parentTree
);
8231 if (!parse_PA_Attribute(parentTree
, tvb
, offset
, &MAD
, &RMPP
, &PA_HEADER
)) {
8232 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
8233 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
8234 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8238 /* Parse Vendor Specific Management Packets */
8239 /* TBD: Replace with dissector table to call other possible dissectors */
8240 static void parse_VENDOR_MANAGEMENT(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
8245 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
8248 if (value_is_in_range(global_mad_vendor_class
, MAD
.MgmtClass
)) {
8249 /* Vendor MAD 0x09 to 0x0F does NOT have an RMPP header */
8251 } else if (value_is_in_range(global_mad_vendor_rmpp_class
, MAD
.MgmtClass
)) {
8252 /* Vendor MAD 0x30 to 0x4F has an RMPP header */
8253 if (!parse_RMPP(parentTree
, pinfo
, tvb
, offset
, &RMPP
)) {
8257 if (!pref_parse_on_mad_status_error
&& MAD
.Status
) {
8258 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8261 proto_tree_add_item(parentTree
, hf_opa_vendor
, tvb
, *offset
, -1, ENC_NA
);
8263 col_append_str(pinfo
->cinfo
, COL_INFO
, "Vendor: (Dissector Not Implemented)");
8265 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
8266 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
8268 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8272 /* Parse Application Specific Management Packets */
8273 /* TBD: Replace with dissector table to call other possible dissectors */
8274 static void parse_APPLICATION_MANAGEMENT(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
8278 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
8281 if (!pref_parse_on_mad_status_error
&& MAD
.Status
) {
8282 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8285 proto_tree_add_item(parentTree
, hf_opa_application
, tvb
, *offset
, -1, ENC_NA
);
8287 col_append_str(pinfo
->cinfo
, COL_INFO
, "Application: (Dissector Not Implemented)");
8289 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
8290 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
8292 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8296 /* Parse Reserved Management Packets --- ERROR */
8297 static void parse_RESERVED_MANAGEMENT(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
8301 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
8304 if (!pref_parse_on_mad_status_error
&& MAD
.Status
) {
8305 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8308 proto_tree_add_item(parentTree
, hf_opa_reservedmclass
, tvb
, *offset
, -1, ENC_NA
);
8310 col_append_str(pinfo
->cinfo
, COL_INFO
, "Reserved: (Dissector Not Implemented)");
8312 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
8313 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
8315 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8319 /* Parse Unknown Management Packets --- WARNING */
8320 /* TBD: Replace with dissector table to call other possible dissectors */
8321 static void parse_UNKNOWN_MANAGEMENT(proto_tree
*parentTree
, packet_info
*pinfo
, tvbuff_t
*tvb
, int *offset
)
8325 if (!parse_MAD_Common(parentTree
, pinfo
, tvb
, offset
, &MAD
)) {
8328 if (!pref_parse_on_mad_status_error
&& MAD
.Status
) {
8329 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8332 proto_tree_add_item(parentTree
, hf_opa_unknown
, tvb
, *offset
, -1, ENC_NA
);
8334 col_append_str(pinfo
->cinfo
, COL_INFO
, "Unknown: (Dissector Not Implemented)");
8336 expert_add_info_format(pinfo
, NULL
, &ei_opa_mad_no_attribute_dissector
,
8337 "Attribute Dissector Not Implemented (0x%x)", MAD
.AttributeID
);
8339 *offset
+= tvb_captured_length_remaining(tvb
, *offset
);
8343 /* Main OPA MAD dissector */
8344 static int dissect_opa_mad(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
8346 int offset
= 0; /* Current Offset */
8347 uint8_t management_class
;
8348 uint16_t etype
, reserved
;
8349 dissector_handle_t dissector_found
= NULL
;
8350 bool parent_was_opa_fe
= proto_is_frame_protocol(pinfo
->layers
, "opa.fe");
8352 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "Omni-Path");
8353 col_clear_fence(pinfo
->cinfo
, COL_INFO
);
8355 /* management datagrams are determined by the source/destination QPs */
8356 if (pinfo
->srcport
== 0 || pinfo
->srcport
== 1 || pinfo
->destport
== 0
8357 || pinfo
->destport
== 1 || parent_was_opa_fe
) {
8358 management_class
= tvb_get_uint8(tvb
, offset
+ 1);
8359 if (value_is_in_range(global_mad_vendor_class
, management_class
) ||
8360 value_is_in_range(global_mad_vendor_rmpp_class
, management_class
)) {
8361 /* parse vendor specific */
8362 parse_VENDOR_MANAGEMENT(tree
, pinfo
, tvb
, &offset
);
8363 } else if (value_is_in_range(global_mad_application_class
, management_class
)) {
8364 /* parse application specific */
8365 parse_APPLICATION_MANAGEMENT(tree
, pinfo
, tvb
, &offset
);
8366 } else if (value_is_in_range(global_mad_reserved_class
, management_class
)) {
8367 /* parse reserved classes */
8368 parse_RESERVED_MANAGEMENT(tree
, pinfo
, tvb
, &offset
);
8369 } else if (value_is_in_range(global_mad_opa_class
, management_class
)) {
8370 switch (management_class
) {
8371 case SUBN_LID_ROUTED
: /* parse subn man lid routed */
8372 parse_SUBN_LID_ROUTED(tree
, pinfo
, tvb
, &offset
);
8374 case SUBN_DIRECTED_ROUTE
: /* parse subn directed route */
8375 parse_SUBN_DIRECTED_ROUTE(tree
, pinfo
, tvb
, &offset
);
8377 case SUBNADMN
: /* parse sub admin */
8378 parse_SUBNADMN(tree
, pinfo
, tvb
, &offset
);
8381 parse_PERFADMN(tree
, pinfo
, tvb
, &offset
);
8383 case PERF
: /* parse performance */
8384 parse_PERF(tree
, pinfo
, tvb
, &offset
);
8387 parse_UNKNOWN_MANAGEMENT(tree
, pinfo
, tvb
, &offset
);
8391 /* parse Unknown classes */
8392 parse_UNKNOWN_MANAGEMENT(tree
, pinfo
, tvb
, &offset
);
8394 } else { /* Normal Data Packet - Parse as such */
8395 etype
= tvb_get_ntohs(tvb
, offset
);
8396 reserved
= tvb_get_ntohs(tvb
, offset
+ 2);
8397 dissector_found
= dissector_get_uint_handle(ethertype_dissector_table
, etype
);
8398 if (dissector_found
!= NULL
&& (reserved
== 0)) {
8399 proto_tree_add_item(tree
, hf_opa_etype
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8401 proto_tree_add_item(tree
, hf_opa_etype_reserved16
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
8404 call_dissector(dissector_found
, tvb_new_subset_remaining(tvb
, offset
), pinfo
, tree
);
8407 return tvb_captured_length(tvb
);
8410 static void opa_mad_init(void)
8412 reassembly_table_init(&opa_mad_rmpp_reassembly_table
,
8413 &addresses_ports_reassembly_table_functions
);
8415 static void opa_mad_cleanup(void)
8417 reassembly_table_destroy(&opa_mad_rmpp_reassembly_table
);
8419 void proto_register_opa_mad(void)
8421 module_t
*opa_mad_module
;
8422 expert_module_t
*expert_opa_mad
;
8424 static hf_register_info hf
[] = {
8425 { &hf_opa_reserved64
, {
8426 "Reserved (64 bits)", "opa.reserved64",
8427 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8429 { &hf_opa_reserved32
, {
8430 "Reserved (32 bits)", "opa.reserved",
8431 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8433 { &hf_opa_reserved24
, {
8434 "Reserved (24 bits)", "opa.reserved",
8435 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8437 { &hf_opa_reserved16
, {
8438 "Reserved (16 bits)", "opa.reserved",
8439 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8441 { &hf_opa_reserved8
, {
8442 "Reserved (8 bits)", "opa.reserved",
8443 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8447 "Ethertype", "opa.etype",
8448 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8450 { &hf_opa_etype_reserved16
, {
8451 "Reserved (16 bits)", "opa.etype.reserved",
8452 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
8455 /* SM - Lid Routed*/
8457 "Subnet Management (LID Routed)", "opa.sm.lid",
8458 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8460 { &hf_opa_sm_m_key
, {
8461 "M_Key", "opa.sm.lid.mkey",
8462 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8465 /* SM - Directed Route */
8467 "Subnet Management (Directed Route)", "opa.sm.dr",
8468 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8470 { &hf_opa_sm_dr_slid
, {
8471 "DrSLID", "opa.sm.dr.slid",
8472 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8474 { &hf_opa_sm_dr_dlid
, {
8475 "DrDLID", "opa.sm.dr.dlid",
8476 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8478 { &hf_opa_sm_dr_initial_path
, {
8479 "Initial Path", "opa.sm.dr.initialpath",
8480 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
8482 { &hf_opa_sm_dr_return_path
, {
8483 "Return Path", "opa.sm.dr.returnpath",
8484 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
8486 { &hf_opa_sm_dr_reserved64
, {
8487 "Reserved (64 bits)", "opa.sm.dr.reserved",
8488 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8493 "Subnet Administration Header", "opa.sa",
8494 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8496 { &hf_opa_sa_sm_key
, {
8497 "SM_Key (Verification Key)", "opa.sa.smkey",
8498 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8500 { &hf_opa_sa_attribute_offset
, {
8501 "Attribute Offset", "opa.sa.attributeoffset",
8502 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8504 { &hf_opa_sa_component_mask
, {
8505 "Component Mask", "opa.sa.componentmask",
8506 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8511 "Performance Management", "opa.pm",
8512 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8517 "Performance Administration Header", "opa.pa",
8518 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8520 { &hf_opa_pa_sm_key
, {
8521 "SM_Key (Verification Key)", "opa.pa.smkey",
8522 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8524 { &hf_opa_pa_attribute_offset
, {
8525 "Attribute Offset", "opa.pa.attributeoffset",
8526 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8528 { &hf_opa_pa_component_mask
, {
8529 "Component Mask", "opa.pa.componentmask",
8530 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8533 /* Other MAD Headers */
8535 "Vendor MAD Header", "opa.vendor",
8536 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8538 { &hf_opa_application
, {
8539 "Application MAD Header", "opa.application",
8540 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8542 { &hf_opa_reservedmclass
, {
8543 "Reserved MAD Header", "opa.reservedmclass",
8544 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8546 { &hf_opa_unknown
, {
8547 "Unknown MAD Header", "opa.unknown",
8548 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8553 "MAD Header - Common Management Datagram", "opa.mad.header",
8554 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8556 { &hf_opa_mad_base_version
, {
8557 "Base Version", "opa.mad.baseversion",
8558 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8560 { &hf_opa_mad_mgmt_class
, {
8561 "Management Class", "opa.mad.mgmtclass",
8562 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &MAD_mgmt_names_ext
, 0x0, NULL
, HFILL
}
8564 { &hf_opa_mad_class_version
, {
8565 "Class Version", "opa.mad.classversion",
8566 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8568 { &hf_opa_mad_method
, {
8569 "Method", "opa.mad.method",
8570 FT_UINT8
, BASE_HEX
, VALS(Methods
), 0x0, NULL
, HFILL
}
8572 { &hf_opa_mad_status
, {
8573 "Status", "opa.mad.status",
8574 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8576 { &hf_opa_mad_status_DR_D
, {
8577 "Direction", "opa.mad.dr.direction",
8578 FT_UINT16
, BASE_HEX
, NULL
, 0x8000, NULL
, HFILL
}
8580 { &hf_opa_mad_status_DR_status
, {
8581 "Status", "opa.mad.status",
8582 FT_UINT16
, BASE_HEX
, NULL
, 0x7FFF, NULL
, HFILL
}
8584 { &hf_opa_mad_status_DR_Hop_Pointer
, {
8585 "Hop Pointer", "opa.mad.dr.hoppointer",
8586 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8588 { &hf_opa_mad_status_DR_Hop_Count
, {
8589 "Hop Counter", "opa.mad.dr.hopcounter",
8590 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8592 { &hf_opa_mad_status_NM_ClassSpecific
, {
8593 "Class Specific", "opa.mad.status.classspecific",
8594 FT_UINT16
, BASE_HEX
, NULL
, 0xFF00, NULL
, HFILL
}
8596 { &hf_opa_mad_status_NM_reserved1
, {
8597 "Reserved (3 Bits)", "opa.mad.status.reserved",
8598 FT_UINT16
, BASE_HEX
, NULL
, 0x00E0, NULL
, HFILL
}
8600 { &hf_opa_mad_status_NM_InvalidField
, {
8601 "Invalid Field", "opa.mad.status.invalidfield",
8602 FT_UINT16
, BASE_HEX
, VALS(MAD_Status_InvalidField
), 0x001C, NULL
, HFILL
}
8604 { &hf_opa_mad_status_NM_RedirectRqrd
, {
8605 "Redirect Required", "opa.mad.status.redirectrqrd",
8606 FT_BOOLEAN
, 16, TFS(&tfs_redirect_no_redirect
), 0x0002, NULL
, HFILL
}
8608 { &hf_opa_mad_status_NM_Busy
, {
8609 "Busy", "opa.mad.status.busy",
8610 FT_BOOLEAN
, 16, TFS(&tfs_busy_not_busy
), 0x0001, NULL
, HFILL
}
8612 { &hf_opa_mad_transaction_id
, {
8613 "Transaction ID", "opa.mad.transactionid",
8614 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8616 { &hf_opa_mad_attribute_id
, {
8617 "Attribute ID", "opa.mad.attributeid",
8618 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8620 /* MAD Header - Attribute Modifier */
8621 { &hf_opa_attribute_modifier
, {
8622 "Attribute Modifier", "opa.mad.attributemodifier",
8623 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8625 { &hf_opa_attribute_modifier_A
, {
8626 "All", "opa.mad.attributemodifier.a",
8627 FT_BOOLEAN
, 32, NULL
, 0x00000100, NULL
, HFILL
}
8629 { &hf_opa_attribute_modifier_A2
, {
8630 "All Ingress Ports", "opa.mad.attributemodifier.a2",
8631 FT_BOOLEAN
, 32, NULL
, 0x00020000, NULL
, HFILL
}
8633 { &hf_opa_attribute_modifier_A3
, {
8634 "All", "opa.mad.attributemodifier.a3",
8635 FT_BOOLEAN
, 32, NULL
, 0x00040000, NULL
, HFILL
}
8637 { &hf_opa_attribute_modifier_A4
, {
8638 "All", "opa.mad.attributemodifier.a4",
8639 FT_BOOLEAN
, 32, NULL
, 0x00100000, NULL
, HFILL
}
8641 { &hf_opa_attribute_modifier_A5
, {
8642 "Starting Address", "opa.mad.attributemodifier.a5",
8643 FT_UINT32
, BASE_HEX
, NULL
, 0x7FF80000, NULL
, HFILL
}
8645 { &hf_opa_attribute_modifier_A6
, {
8646 "All", "opa.mad.attributemodifier.a6",
8647 FT_BOOLEAN
, 32, NULL
, 0x00000020, NULL
, HFILL
}
8649 { &hf_opa_attribute_modifier_B
, {
8650 "Block Number", "opa.mad.attributemodifier.b",
8651 FT_UINT32
, BASE_DEC
, NULL
, 0x000007FF, NULL
, HFILL
}
8653 { &hf_opa_attribute_modifier_B2
, {
8654 "All Egress Ports", "opa.mad.attributemodifier.b2",
8655 FT_BOOLEAN
, 32, NULL
, 0x00010000, NULL
, HFILL
}
8657 { &hf_opa_attribute_modifier_B3
, {
8658 "Block Number", "opa.mad.attributemodifier.b3",
8659 FT_UINT32
, BASE_DEC
, NULL
, 0x0003FFFF, NULL
, HFILL
}
8661 { &hf_opa_attribute_modifier_B4
, {
8662 "Block Number", "opa.mad.attributemodifier.b4",
8663 FT_UINT32
, BASE_DEC
, NULL
, 0x000FFFFF, NULL
, HFILL
}
8665 { &hf_opa_attribute_modifier_B5
, {
8666 "Block Number", "opa.mad.attributemodifier.b5",
8667 FT_UINT32
, BASE_DEC
, NULL
, 0x0000001F, NULL
, HFILL
}
8669 { &hf_opa_attribute_modifier_E
, {
8670 "Egress Ports", "opa.mad.attributemodifier.e",
8671 FT_UINT32
, BASE_DEC
, NULL
, 0x000000FF, NULL
, HFILL
}
8673 { &hf_opa_attribute_modifier_I
, {
8674 "Ingress Ports", "opa.mad.attributemodifier.i",
8675 FT_UINT32
, BASE_DEC
, NULL
, 0x0000FF00, NULL
, HFILL
}
8677 { &hf_opa_attribute_modifier_L
, {
8678 "Length", "opa.mad.attributemodifier.l",
8679 FT_UINT32
, BASE_DEC
, NULL
, 0x0007E000, NULL
, HFILL
}
8681 { &hf_opa_attribute_modifier_NP
, {
8682 "Number of Ports", "opa.mad.attributemodifier.n",
8683 FT_UINT32
, BASE_DEC
, NULL
, 0xFF000000, NULL
, HFILL
}
8685 { &hf_opa_attribute_modifier_NB
, {
8686 "Number of Blocks", "opa.mad.attributemodifier.n",
8687 FT_UINT32
, BASE_DEC
, NULL
, 0xFF000000, NULL
, HFILL
}
8689 { &hf_opa_attribute_modifier_N2
, {
8690 "Number of aggregated Attributes", "opa.mad.attributemodifier.n",
8691 FT_UINT32
, BASE_DEC
, NULL
, 0x000000FF, NULL
, HFILL
}
8693 { &hf_opa_attribute_modifier_P
, {
8694 "Port Number", "opa.mad.attributemodifier.p",
8695 FT_UINT32
, BASE_DEC
, NULL
, 0x000000FF, NULL
, HFILL
}
8697 { &hf_opa_attribute_modifier_P2
, {
8698 "Port Number", "opa.mad.attributemodifier.p",
8699 FT_UINT32
, BASE_DEC
, NULL
, 0x00FF0000, NULL
, HFILL
}
8701 { &hf_opa_attribute_modifier_P3
, {
8702 "Position", "opa.mad.attributemodifier.p",
8703 FT_UINT32
, BASE_DEC
, NULL
, 0x00C00000, NULL
, HFILL
}
8705 { &hf_opa_attribute_modifier_S
, {
8706 "Section of Table", "opa.mad.attributemodifier.s",
8707 FT_UINT32
, BASE_DEC
, VALS(MADAttrModSectionVLarb
), 0x00FF0000, NULL
, HFILL
}
8709 { &hf_opa_attribute_modifier_S2
, {
8710 "Start of SM Configuration", "opa.mad.attributemodifier.s2",
8711 FT_BOOLEAN
, 32, NULL
, 0x00000200, NULL
, HFILL
}
8713 { &hf_opa_attribute_modifier_Y
, {
8714 "Asynchronous update", "opa.mad.attributemodifier.y",
8715 FT_BOOLEAN
, 32, NULL
, 0x00001000, NULL
, HFILL
}
8720 "RMPP - Reliable Multi-Packet Transaction Protocol", "opa.rmpp",
8721 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8723 { &hf_opa_rmpp_version
, {
8724 "RMPP Version", "opa.rmpp.rmppversion",
8725 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8727 { &hf_opa_rmpp_type
, {
8728 "RMPP Type", "opa.rmpp.rmpptype",
8729 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8731 { &hf_opa_rmpp_r_resp_time
, {
8732 "R Resp Time", "opa.rmpp.rresptime",
8733 FT_UINT8
, BASE_HEX
, NULL
, 0xF8, NULL
, HFILL
}
8735 { &hf_opa_rmpp_flags_last
, {
8736 "Last", "opa.rmpp.flags.last",
8737 FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}
8739 { &hf_opa_rmpp_flags_first
, {
8740 "First", "opa.rmpp.flags.first",
8741 FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}
8743 { &hf_opa_rmpp_flags_active
, {
8744 "Active", "opa.rmpp.flags.active",
8745 FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}
8747 { &hf_opa_rmpp_status
, {
8748 "RMPP Status", "opa.rmpp.rmppstatus",
8749 FT_UINT8
, BASE_HEX
, VALS(RMPP_Status
), 0x0, NULL
, HFILL
}
8751 { &hf_opa_rmpp_data1
, {
8752 "RMPP Data 1", "opa.rmpp.data1",
8753 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8755 { &hf_opa_rmpp_data2
, {
8756 "RMPP Data 2", "opa.rmpp.data2",
8757 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8760 { &hf_opa_rmpp_segment_number
, {
8761 "Segment Number", "opa.rmpp.segmentnumber",
8762 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8764 { &hf_opa_rmpp_payload_length32
, {
8765 "Payload Length", "opa.rmpp.payloadlength",
8766 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8769 { &hf_opa_rmpp_new_window_last
, {
8770 "New Window Last", "opa.rmpp.newwindowlast",
8771 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8774 { &hf_opa_rmpp_fragments
, {
8775 "Message fragments", "opa.fragments",
8776 FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8778 { &hf_opa_rmpp_fragment
, {
8779 "Message fragment", "opa.fragment",
8780 FT_FRAMENUM
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8782 { &hf_opa_rmpp_fragment_overlap
, {
8783 "Message fragment overlap", "opa.fragment.overlap",
8784 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8786 { &hf_opa_rmpp_fragment_overlap_conflicts
, {
8787 "Message fragment overlapping with conflicting data", "opa.fragment.overlap.conflicts",
8788 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8790 { &hf_opa_rmpp_fragment_multiple_tails
, {
8791 "Message has multiple tail fragments", "opa.fragment.multiple_tails",
8792 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8794 { &hf_opa_rmpp_fragment_too_long_fragment
, {
8795 "Message fragment too long", "opa.fragment.too_long_fragment",
8796 FT_BOOLEAN
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8798 { &hf_opa_rmpp_fragment_error
, {
8799 "Message defragmentation error", "opa.fragment.error",
8800 FT_FRAMENUM
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8802 { &hf_opa_rmpp_fragment_count
, {
8803 "Message fragment count", "opa.fragment.count",
8804 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
8806 { &hf_opa_rmpp_reassembled_in
, {
8807 "Reassembled in", "opa.reassembled.in",
8808 FT_FRAMENUM
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}
8810 { &hf_opa_rmpp_reassembled_length
, {
8811 "Reassembled length", "opa.reassembled.length",
8812 FT_UINT32
, BASE_DEC
, NULL
, 0x00, NULL
, HFILL
}
8818 "LID", "opa.sa.lid",
8819 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8821 { &hf_opa_sa_Port
, {
8822 "Port", "opa.sa.port",
8823 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8825 { &hf_opa_sa_EndportLID
, {
8826 "EndportLID", "opa.sa.endportlid",
8827 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8829 { &hf_opa_sa_PortNum
, {
8830 "PortNum", "opa.sa.portnum",
8831 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8833 { &hf_opa_sa_InputPortNum
, {
8834 "InputPortNum", "opa.sa.inputportnum",
8835 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8837 { &hf_opa_sa_OutputPortNum
, {
8838 "OutputPortNum", "opa.sa.outputportnum",
8839 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8841 { &hf_opa_sa_reserved14
, {
8842 "Reserved (14 bits)", "opa.sa.reserved",
8843 FT_UINT32
, BASE_HEX
, NULL
, 0xFFFC0000, NULL
, HFILL
}
8845 { &hf_opa_sa_BlockNum_18b
, {
8846 "BlockNum", "opa.sa.blocknum",
8847 FT_UINT32
, BASE_HEX
, NULL
, 0x0003FFFF, NULL
, HFILL
}
8849 { &hf_opa_sa_Position
, {
8850 "Position", "opa.sa.position",
8851 FT_UINT32
, BASE_HEX
, NULL
, 0xC0000000, NULL
, HFILL
}
8853 { &hf_opa_sa_Position_16b
, {
8854 "Position", "opa.sa.position",
8855 FT_UINT16
, BASE_HEX
, NULL
, 0xC000, NULL
, HFILL
}
8857 { &hf_opa_sa_reserved9
, {
8858 "Reserved (9 bits)", "opa.sa.reserved",
8859 FT_UINT32
, BASE_HEX
, NULL
, 0x3FE00000, NULL
, HFILL
}
8861 { &hf_opa_sa_reserved9_16b
, {
8862 "Reserved (9 bits)", "opa.sa.reserved",
8863 FT_UINT16
, BASE_HEX
, NULL
, 0x3FE0, NULL
, HFILL
}
8865 { &hf_opa_sa_BlockNum_21b
, {
8866 "BlockNum", "opa.sa.blocknum",
8867 FT_UINT32
, BASE_HEX
, NULL
, 0x001FFFFF, NULL
, HFILL
}
8869 { &hf_opa_sa_BlockNum_8b
, {
8870 "BlockNum", "opa.sa.blocknum",
8871 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8873 { &hf_opa_sa_BlockNum_16b
, {
8874 "BlockNum", "opa.sa.blocknum",
8875 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8877 { &hf_opa_sa_BlockNum_5b
, {
8878 "BlockNum", "opa.sa.blocknum",
8879 FT_UINT16
, BASE_HEX
, NULL
, 0x001F, NULL
, HFILL
}
8881 { &hf_opa_sa_SubscriberLID
, {
8882 "SubscriberGID", "opa.sa.subscribergid",
8883 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8885 { &hf_opa_sa_Enum
, {
8886 "Enum", "opa.sa.enum",
8887 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8889 { &hf_opa_sa_FromLID
, {
8890 "FromLID", "opa.sa.fromlid",
8891 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8893 { &hf_opa_sa_FromPort
, {
8894 "FromPort", "opa.sa.fromport",
8895 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8897 { &hf_opa_sa_ServiceID
, {
8898 "ServiceID", "opa.sa.serviceid",
8899 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8901 { &hf_opa_sa_ServiceLID
, {
8902 "ServiceLID", "opa.sa.servicelid",
8903 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8905 { &hf_opa_sa_ServiceP_Key
, {
8906 "ServiceP_Key", "opa.sa.servicep_key",
8907 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8909 { &hf_opa_sa_ServiceGID
, {
8910 "ServiceGID", "opa.sa.servicegid",
8911 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8913 { &hf_opa_sa_MGID
, {
8914 "MGID", "opa.sa.mgid",
8915 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8917 { &hf_opa_sa_PortGID
, {
8918 "PortGID", "opa.sa.portgid",
8919 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8924 "Notice", "opa.notice",
8925 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8927 { &hf_opa_Notice_IsGeneric
, {
8928 "IsGeneric", "opa.notice.isgeneric",
8929 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
8931 { &hf_opa_Notice_Type
, {
8932 "Type", "opa.notice.type",
8933 FT_UINT8
, BASE_HEX
, VALS(NoticeType
), 0x7F, NULL
, HFILL
}
8935 { &hf_opa_Notice_ProducerType
, {
8936 "ProducerType", "opa.notice.producertype",
8937 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8939 { &hf_opa_Notice_TrapNumber
, {
8940 "TrapNumber", "opa.notice.trapnumber",
8941 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8943 { &hf_opa_Notice_VendorID
, {
8944 "VendorID", "opa.notice.vendorid",
8945 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8947 { &hf_opa_Notice_DeviceID
, {
8948 "DeviceID", "opa.notice.deviceid",
8949 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8951 { &hf_opa_Notice_Toggle
, {
8952 "Toggle", "opa.notice.toggle",
8953 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
8955 { &hf_opa_Notice_Count
, {
8956 "Count", "opa.notice.count",
8957 FT_UINT16
, BASE_HEX
, NULL
, 0x7FFF, NULL
, HFILL
}
8959 { &hf_opa_Notice_IssuerLID
, {
8960 "IssuerLID", "opa.notice.issuerlid",
8961 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8963 { &hf_opa_Notice_IssuerGID
, {
8964 "IssuerGID", "opa.notice.issuergid",
8965 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8967 { &hf_opa_Notice_ClassDataDetails
, {
8968 "ClassDataDetails", "opa.notice.classdatadetails",
8969 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8975 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8978 /* Traps 64,65,66,67 */
8979 { &hf_opa_Trap_GID
, {
8980 "GID", "opa.trap.gid",
8981 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
8986 { &hf_opa_Trap_LID
, {
8987 "LIDADDR", "opa.trap.lidaddr",
8988 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8991 /* Trap 129, 130, 131 */
8992 { &hf_opa_Trap_PORTNO
, {
8993 "PORTNO", "opa.trap.portno",
8994 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
8998 { &hf_opa_Trap_CAPABILITYMASK
, {
8999 "CapabilityMask", "opa.trap.capabilitymask",
9000 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9002 { &hf_opa_Trap_CAPABILITYMASK3
, {
9003 "CapabilityMask3", "opa.trap.capabilitymask3",
9004 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9006 { &hf_opa_Trap_144_reserved
, {
9007 "Reserved (4 bits)", "opa.trap.144.reserved",
9008 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
9010 { &hf_opa_Trap_LinkWidthDowngradeEnabledChange
, {
9011 "LinkWidthDowngradeEnabledChange", "opa.trap.linkwidthdowngradeenabledchange",
9012 FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}
9014 { &hf_opa_Trap_LinkSpeecEnabledChange
, {
9015 "LinkSpeecEnabledChange", "opa.trap.linkspeecenabledchange",
9016 FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}
9018 { &hf_opa_Trap_LinkWidthEnabledChange
, {
9019 "LinkWidthEnabledChange", "opa.trap.linkwidthenabledchange",
9020 FT_BOOLEAN
, 8, NULL
, 0x02, NULL
, HFILL
}
9022 { &hf_opa_Trap_NodeDescriptionChange
, {
9023 "NodeDescriptionChange", "opa.trap.nodedescriptionchange",
9024 FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}
9028 { &hf_opa_Trap_SystemImageGUID
, {
9029 "SystemImageGUID", "opa.trap.systemimageguid",
9030 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9034 { &hf_opa_Trap_DRSLID
, {
9035 "DR SLID", "opa.trap.drslid",
9036 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9038 { &hf_opa_Trap_Method
, {
9039 "Method", "opa.trap.method",
9040 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9042 { &hf_opa_Trap_AttributeID
, {
9043 "AttributeID", "opa.trap.attributeid",
9044 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9046 { &hf_opa_Trap_AttributeModifier
, {
9047 "AttributeModifier", "opa.trap.attributemodifier",
9048 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9050 { &hf_opa_Trap_MKey
, {
9051 "MKey", "opa.trap.mkey",
9052 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9054 { &hf_opa_Trap_DRNotice
, {
9055 "DRNotice", "opa.trap.drnotice",
9056 FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}
9058 { &hf_opa_Trap_DRPathTruncated
, {
9059 "DRPathTruncated", "opa.trap.drpathtruncated",
9060 FT_BOOLEAN
, 8, NULL
, 0x40, NULL
, HFILL
}
9062 { &hf_opa_Trap_DRHopCount
, {
9063 "DRHopCount", "opa.trap.drhopcount",
9064 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
9066 { &hf_opa_Trap_DRNoticeReturnPath
, {
9067 "DRNoticeReturnPath", "opa.trap.drnoticereturnpath",
9068 FT_BYTES
, SEP_SPACE
, NULL
, 0x0, NULL
, HFILL
}
9072 { &hf_opa_Trap_Key
, {
9073 "Key", "opa.trap.key",
9074 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9076 { &hf_opa_Trap_SL
, {
9077 "SL", "opa.trap.sl",
9078 FT_UINT8
, BASE_HEX
, NULL
, 0xF8, NULL
, HFILL
}
9080 { &hf_opa_Trap_SL_reserved
, {
9081 "Reserved (3 bits)", "opa.trap.sl.reserved",
9082 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
9084 { &hf_opa_Trap_QP
, {
9085 "QP", "opa.trap.qp",
9086 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9090 { &hf_opa_Trap_DataValid
, {
9091 "DataValid", "opa.trap.datavalid",
9092 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9094 { &hf_opa_Trap_DataValid_Lid1
, {
9095 "Lid1", "opa.trap.datavalid.lid1",
9096 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x8000, NULL
, HFILL
}
9098 { &hf_opa_Trap_DataValid_Lid2
, {
9099 "Lid2", "opa.trap.datavalid.lid2",
9100 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x4000, NULL
, HFILL
}
9102 { &hf_opa_Trap_DataValid_PKey
, {
9103 "PKey", "opa.trap.datavalid.pkey",
9104 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x2000, NULL
, HFILL
}
9106 { &hf_opa_Trap_DataValid_SL
, {
9107 "SL", "opa.trap.datavalid.sl",
9108 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x1000, NULL
, HFILL
}
9110 { &hf_opa_Trap_DataValid_QP1
, {
9111 "QP1", "opa.trap.datavalid.qp1",
9112 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x0800, NULL
, HFILL
}
9114 { &hf_opa_Trap_DataValid_QP2
, {
9115 "QP2", "opa.trap.datavalid.qp2",
9116 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x0400, NULL
, HFILL
}
9118 { &hf_opa_Trap_DataValid_Gid1
, {
9119 "Gid1", "opa.trap.datavalid.gid1",
9120 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x0200, NULL
, HFILL
}
9122 { &hf_opa_Trap_DataValid_Gid2
, {
9123 "Gid2", "opa.trap.datavalid.gid2",
9124 FT_BOOLEAN
, 16, TFS(&tfs_valid_invalid
), 0x0100, NULL
, HFILL
}
9126 { &hf_opa_Trap_DataValid_Reserved
, {
9127 "DataValid", "opa.trap.datavalid.reserved",
9128 FT_UINT16
, BASE_HEX
, NULL
, 0x00FF, NULL
, HFILL
}
9131 { &hf_opa_Trap_PKey
, {
9132 "PKey", "opa.trap.pkey",
9133 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9136 /* ClassPortInfo in Performance class */
9137 { &hf_opa_ClassPortInfo
, {
9138 "ClassPortInfo", "opa.classportinfo",
9139 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9141 { &hf_opa_ClassPortInfo_BaseVersion
, {
9142 "BaseVersion", "opa.clasportinfo.baseversion",
9143 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9145 { &hf_opa_ClassPortInfo_ClassVersion
, {
9146 "ClassVersion", "opa.clasportinfo.classversion",
9147 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9149 { &hf_opa_ClassPortInfo_CapMask
, {
9150 "CapMask", "opa.clasportinfo.capmask",
9151 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9153 { &hf_opa_ClassPortInfo_CapMask2
, {
9154 "CapMask2", "opa.clasportinfo.capmask2",
9155 FT_UINT32
, BASE_HEX
, NULL
, 0xFFFFFFE0, NULL
, HFILL
}
9157 { &hf_opa_ClassPortInfo_RespTimeValue
, {
9158 "RespTimeValue", "opa.clasportinfo.resptimevalue",
9159 FT_UINT32
, BASE_HEX
, NULL
, 0x0000001F, NULL
, HFILL
}
9161 { &hf_opa_ClassPortInfo_Redirect_GID
, {
9162 "GID", "opa.clasportinfo.redirect.gid",
9163 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9165 { &hf_opa_ClassPortInfo_Redirect_TClass
, {
9166 "TClass", "opa.clasportinfo.redirect.tclass",
9167 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
9169 { &hf_opa_ClassPortInfo_Redirect_reserved
, {
9170 "Reserved (4 bits)", "opa.clasportinfo.redirect.reserved",
9171 FT_UINT24
, BASE_HEX
, NULL
, 0xF00000, NULL
, HFILL
}
9173 { &hf_opa_ClassPortInfo_Redirect_FlowLabel
, {
9174 "FlowLabel", "opa.clasportinfo.redirect.flowlabel",
9175 FT_UINT24
, BASE_HEX
, NULL
, 0x0FFFFF, NULL
, HFILL
}
9177 { &hf_opa_ClassPortInfo_Redirect_LID
, {
9178 "LID", "opa.clasportinfo.redirect.lid",
9179 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9181 { &hf_opa_ClassPortInfo_Redirect_SL
, {
9182 "SL", "opa.clasportinfo.redirect.sl",
9183 FT_UINT8
, BASE_HEX
, NULL
, 0xF8, NULL
, HFILL
}
9185 { &hf_opa_ClassPortInfo_Redirect_reserved2
, {
9186 "Reserved (3 bits)", "opa.clasportinfo.redirect.reserved",
9187 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
9189 { &hf_opa_ClassPortInfo_Redirect_QP
, {
9190 "QP", "opa.clasportinfo.redirect.qp",
9191 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9193 { &hf_opa_ClassPortInfo_Redirect_Q_Key
, {
9194 "Q_Key", "opa.clasportinfo.redirect.q_key",
9195 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9197 { &hf_opa_ClassPortInfo_Trap_GID
, {
9198 "GID", "opa.clasportinfo.trap.gid",
9199 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9201 { &hf_opa_ClassPortInfo_Trap_TClass
, {
9202 "TClass", "opa.clasportinfo.trap.tclass",
9203 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
9205 { &hf_opa_ClassPortInfo_Trap_reserved
, {
9206 "Reserved (4 bits)", "opa.clasportinfo.trap.reserved",
9207 FT_UINT24
, BASE_HEX
, NULL
, 0xF00000, NULL
, HFILL
}
9209 { &hf_opa_ClassPortInfo_Trap_FlowLabel
, {
9210 "FlowLabel", "opa.clasportinfo.trap.flowlabel",
9211 FT_UINT24
, BASE_HEX
, NULL
, 0x0FFFFF, NULL
, HFILL
}
9213 { &hf_opa_ClassPortInfo_Trap_LID
, {
9214 "LID", "opa.clasportinfo.trap.lid",
9215 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9217 { &hf_opa_ClassPortInfo_Trap_HopLimit
, {
9218 "HopLimit", "opa.clasportinfo.trap.hoplimit",
9219 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9221 { &hf_opa_ClassPortInfo_Trap_QP
, {
9222 "QP", "opa.clasportinfo.trap.qp",
9223 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9225 { &hf_opa_ClassPortInfo_Trap_Q_Key
, {
9226 "Q_Key", "opa.clasportinfo.trap.q_key",
9227 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9229 { &hf_opa_ClassPortInfo_Trap_P_Key
, {
9230 "P_Key", "opa.clasportinfo.trap.p_key",
9231 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9233 { &hf_opa_ClassPortInfo_Redirect_P_Key
, {
9234 "P_Key", "opa.clasportinfo.redirect.p_key",
9235 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9237 { &hf_opa_ClassPortInfo_Trap_SL
, {
9238 "SL", "opa.clasportinfo.trap.sl",
9239 FT_UINT8
, BASE_HEX
, NULL
, 0xF8, NULL
, HFILL
}
9241 { &hf_opa_ClassPortInfo_Trap_reserved2
, {
9242 "Reserved (3 bits)", "opa.clasportinfo.trap.reserved",
9243 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
9245 /*******************
9247 *******************/
9249 { &hf_opa_NodeDescription
, {
9250 "NodeDescription", "opa.nodedescription",
9251 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9253 { &hf_opa_NodeDescription_NodeString
, {
9254 "NodeString", "opa.nodedescription.nodestring",
9255 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9261 { &hf_opa_NodeInfo
, {
9262 "Node Info", "opa.nodeinfo",
9263 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9265 { &hf_opa_NodeInfo_BaseVersion
, {
9266 "Base Version", "opa.nodeinfo.baseversion",
9267 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9269 { &hf_opa_NodeInfo_ClassVersion
, {
9270 "Class Version", "opa.nodeinfo.classversion",
9271 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9273 { &hf_opa_NodeInfo_NodeType
, {
9274 "Node Type", "opa.nodeinfo.nodetype",
9275 FT_UINT8
, BASE_HEX
, VALS(NodeType
), 0x0, NULL
, HFILL
}
9277 { &hf_opa_NodeInfo_NumPorts
, {
9278 "Num Ports", "opa.nodeinfo.numports",
9279 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
9281 { &hf_opa_NodeInfo_SystemImageGUID
, {
9282 "System Image GUID", "opa.nodeinfo.systemimageguid",
9283 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9285 { &hf_opa_NodeInfo_NodeGUID
, {
9286 "Node GUID", "opa.nodeinfo.nodeguid",
9287 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9289 { &hf_opa_NodeInfo_PortGUID
, {
9290 "Port GUID", "opa.nodeinfo.portguid",
9291 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9293 { &hf_opa_NodeInfo_PartitionCap
, {
9294 "Partition Cap", "opa.nodeinfo.partitioncap",
9295 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9297 { &hf_opa_NodeInfo_DeviceID
, {
9298 "Device ID", "opa.nodeinfo.deviceid",
9299 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9301 { &hf_opa_NodeInfo_Revision
, {
9302 "Revision", "opa.nodeinfo.revision",
9303 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9305 { &hf_opa_NodeInfo_LocalPortNum
, {
9306 "Local Port Num", "opa.nodeinfo.localportnum",
9307 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
9309 { &hf_opa_NodeInfo_VendorID
, {
9310 "Vendor ID", "opa.nodeinfo.vendorid",
9311 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9318 { &hf_opa_SwitchInfo
, {
9319 "Switch Info", "opa.switchinfo",
9320 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9322 { &hf_opa_SwitchInfo_LinearFDBCap
, {
9323 "Linear FDB Cap", "opa.switchinfo.linearfdbcap",
9324 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9326 { &hf_opa_SwitchInfo_MulticastFDBCap
, {
9327 "Multicast FDB Cap", "opa.switchinfo.multicastfdbcap",
9328 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9330 { &hf_opa_SwitchInfo_LinearFDBTop
, {
9331 "Linear FDB Top", "opa.switchinfo.linearfdbtop",
9332 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9334 { &hf_opa_SwitchInfo_MulticastFDBTop
, {
9335 "Multicast FDB Top", "opa.switchinfo.multicastfdbtop",
9336 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9338 { &hf_opa_SwitchInfo_CollectiveCap
, {
9339 "Collective Cap", "opa.switchinfo.collectivecap",
9340 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9342 { &hf_opa_SwitchInfo_CollectiveTop
, {
9343 "Collective Top", "opa.switchinfo.collectivetop",
9344 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9346 { &hf_opa_SwitchInfo_IPAddrIPv6
, {
9347 "IP Addr IPv6", "opa.switchinfo.ipaddripv6",
9348 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9350 { &hf_opa_SwitchInfo_IPAddrIPv4
, {
9351 "IP Addr IPv4", "opa.switchinfo.ipaddripv4",
9352 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9354 { &hf_opa_SwitchInfo_LifeTimeValue
, {
9355 "Life Time Value", "opa.switchinfo.lifetimevalue",
9356 FT_UINT8
, BASE_HEX
, NULL
, 0xF8, NULL
, HFILL
}
9358 { &hf_opa_SwitchInfo_PortStateChange
, {
9359 "Port State Change", "opa.switchinfo.portstatechange",
9360 FT_BOOLEAN
, 8, NULL
, 0x04, NULL
, HFILL
}
9362 { &hf_opa_SwitchInfo_reserved2
, {
9363 "Reserved (2 bits)", "opa.switchinfo.reserved2",
9364 FT_UINT8
, BASE_HEX
, NULL
, 0x03, NULL
, HFILL
}
9366 { &hf_opa_SwitchInfo_PartitionEnforcementCap
, {
9367 "Partition Enforcement Cap", "opa.switchinfo.partitionenforcementcap",
9368 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9370 { &hf_opa_SwitchInfo_PortGroupCap
, {
9371 "Port Group Cap", "opa.switchinfo.portgroupcap",
9372 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9374 { &hf_opa_SwitchInfo_PortGroupTop
, {
9375 "Port Group Top", "opa.switchinfo.portgrouptop",
9376 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9378 { &hf_opa_SwitchInfo_SupportedRoutingMode
, {
9379 "Supported Routing Mode", "opa.switchinfo.supportedroutingmode",
9380 FT_UINT8
, BASE_HEX
, VALS(RoutingMode
), 0x0, NULL
, HFILL
}
9382 { &hf_opa_SwitchInfo_EnabledRoutingMode
, {
9383 "Enabled Routing Mode", "opa.switchinfo.enabledroutingmode",
9384 FT_UINT8
, BASE_HEX
, VALS(RoutingMode
), 0x0, NULL
, HFILL
}
9386 { &hf_opa_SwitchInfo_reserved3
, {
9387 "Reserved (4 bits)", "opa.switchinfo.reserved3",
9388 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
9390 { &hf_opa_SwitchInfo_EnhancedPortZero
, {
9391 "Enhanced Port Zero", "opa.switchinfo.enhancedportzero",
9392 FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}
9394 { &hf_opa_SwitchInfo_reserved4
, {
9395 "Reserved (3 bits)", "opa.switchinfo.reserved4",
9396 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
9398 { &hf_opa_SwitchInfo_reserved5
, {
9399 "Reserved (2 bits)", "opa.switchinfo.reserved5",
9400 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
9402 { &hf_opa_SwitchInfo_CollectiveMask
, {
9403 "Collective Mask", "opa.switchinfo.collectivemask",
9404 FT_UINT8
, BASE_HEX
, NULL
, 0x38, NULL
, HFILL
}
9406 { &hf_opa_SwitchInfo_MulticastMask
, {
9407 "Multicast Mask", "opa.switchinfo.multicastmask",
9408 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
9410 { &hf_opa_SwitchInfo_AdaptiveRoutingEnable
, {
9411 "Adaptive Routing Enable", "opa.switchinfo.adaptiveroutingenable",
9412 FT_BOOLEAN
, 16, NULL
, 0x8000, NULL
, HFILL
}
9414 { &hf_opa_SwitchInfo_AdaptiveRoutingPause
, {
9415 "Adaptive Routing Pause", "opa.switchinfo.adaptiveroutingpause",
9416 FT_BOOLEAN
, 16, NULL
, 0x4000, NULL
, HFILL
}
9418 { &hf_opa_SwitchInfo_AdaptiveRoutingAlgorithm
, {
9419 "Adaptive Routing Algorithm", "opa.switchinfo.adaptiveroutingalgorithm",
9420 FT_UINT16
, BASE_HEX
, VALS(AdaptiveRoutingAlgorithm
), 0x3800, NULL
, HFILL
}
9422 { &hf_opa_SwitchInfo_AdaptiveRoutingFrequency
, {
9423 "Adaptive Routing Frequency", "opa.switchinfo.adaptiveroutingfrequency",
9424 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_swinfo_ar_frequency
), 0x0700, NULL
, HFILL
}
9426 { &hf_opa_SwitchInfo_AdaptiveRoutingLostRoutesOnly
, {
9427 "Adaptive Routing Lost Routes Only", "opa.switchinfo.adaptiveroutinglostroutesonly",
9428 FT_BOOLEAN
, 16, NULL
, 0x0080, NULL
, HFILL
}
9430 { &hf_opa_SwitchInfo_AdaptiveRoutingThreshold
, {
9431 "Adaptive Routing Threshold", "opa.switchinfo.adaptiveroutingthreshold",
9432 FT_UINT16
, BASE_HEX
, VALS(AdaptiveRoutingThreshold
), 0x0070, NULL
, HFILL
}
9434 { &hf_opa_SwitchInfo_reserved6
, {
9435 "Reserved (4 bits)", "opa.switchinfo.reserved6",
9436 FT_UINT16
, BASE_HEX
, NULL
, 0x000F, NULL
, HFILL
}
9438 { &hf_opa_SwitchInfo_SwitchCapabilityMask
, {
9439 "Switch Capability Mask", "opa.switchinfo.switchcapabilitymask",
9440 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9442 { &hf_opa_SwitchInfo_SwitchCapabilityMask_reserved
, {
9443 "Reserved (13 bits)", "opa.switchinfo.switchcapabilitymask.reserved",
9444 FT_UINT16
, BASE_HEX
, NULL
, 0xFFF8, NULL
, HFILL
}
9446 { &hf_opa_SwitchInfo_SwitchCapabilityMask_IsAddrRangeConfigSupported
, {
9447 "IsAddrRangeConfigSupported", "opa.switchinfo.switchcapabilitymask.isaddrrangeconfigsupported",
9448 FT_BOOLEAN
, 16, NULL
, 0x0004, NULL
, HFILL
}
9450 { &hf_opa_SwitchInfo_SwitchCapabilityMask_reserved2
, {
9451 "Reserved (1 bit)", "opa.switchinfo.switchcapabilitymask.reserved",
9452 FT_UINT16
, BASE_HEX
, NULL
, 0x0002, NULL
, HFILL
}
9454 { &hf_opa_SwitchInfo_SwitchCapabilityMask_IsAdaptiveRoutingSupported
, {
9455 "IsAdaptiveRoutingSupported", "opa.switchinfo.switchcapabilitymask.isadaptiveroutingsupported",
9456 FT_BOOLEAN
, 16, NULL
, 0x0001, NULL
, HFILL
}
9458 { &hf_opa_SwitchInfo_CapabilityMaskCollectives
, {
9459 "Capability Mask Collectives", "opa.switchinfo.capabilitymaskcollectives",
9460 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9466 { &hf_opa_PortInfo
, {
9467 "Port Info", "opa.portinfo",
9468 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9470 { &hf_opa_PortInfo_LID
, {
9471 "LID", "opa.portinfo.lid",
9472 FT_UINT32
, BASE_HEX
, NULL
, 0x0, "Base LID of this node", HFILL
}
9474 { &hf_opa_PortInfo_FlowControlMask
, {
9475 "Flow Control Mask", "opa.portinfo.flowcontrolmask",
9476 FT_UINT32
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_32b_mask
), 0x0, "Flow control enabled on all VLs except VL15", HFILL
}
9478 { &hf_opa_PortInfo_VL_PreemptCap
, {
9479 "PreemptCap", "opa.portinfo.vl.preemptcap",
9480 FT_UINT8
, BASE_DEC
, NULL
, 0x0, "Size of Preempting VL Arbitration table", HFILL
}
9482 { &hf_opa_PortInfo_VL_reserved
, {
9483 "Reserved (3 bits)", "opa.portinfo.vl.reserved",
9484 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
9486 { &hf_opa_PortInfo_VL_Cap
, {
9487 "VL Cap", "opa.portinfo.vl.cap",
9488 FT_UINT8
, BASE_DEC
, NULL
, 0x1F, "Virtual Lanes supported on this port", HFILL
}
9490 { &hf_opa_PortInfo_VL_HighLimit
, {
9491 "HighLimit", "opa.portinfo.vl.highlimit",
9492 FT_UINT16
, BASE_DEC
, NULL
, 0x0, "Limit of high priority component of VL Arbitration table", HFILL
}
9494 { &hf_opa_PortInfo_VL_PreemptingLimit
, {
9495 "PreemptingLimit", "opa.portinfo.vl.preemptinglimit",
9496 FT_UINT16
, BASE_DEC
, NULL
, 0x0, "Limit of preempt component of VL Arbitration table", HFILL
}
9498 { &hf_opa_PortInfo_VL_ArbitrationHighCap
, {
9499 "ArbitrationHighCap", "opa.portinfo.vl.arbitrationhighcap",
9500 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
9502 { &hf_opa_PortInfo_VL_ArbitrationLowCap
, {
9503 "ArbitrationLowCap", "opa.portinfo.vl.arbitrationlowcap",
9504 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
9507 { &hf_opa_PortInfo_PortPhysConfig_reserved
, {
9508 "Reserved (4 bits)", "opa.portinfo.portphysconfig.reserved",
9509 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
9511 { &hf_opa_PortInfo_PortPhysConfig_PortType
, {
9512 "PortPhysConfig PortType", "opa.portinfo.portphysconfig.porttype",
9513 FT_UINT8
, BASE_HEX
, VALS(PortType
), 0x0F, NULL
, HFILL
}
9515 { &hf_opa_PortInfo_MultiCollectMask_reserved
, {
9516 "Reserved (2 bits)", "opa.portinfo.multicollectmask.reserved",
9517 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
9519 { &hf_opa_PortInfo_MultiCollectMask_CollectiveMask
, {
9520 "MultiCollectMask CollectiveMask", "opa.portinfo.multicollectmask.collectivemask",
9521 FT_UINT8
, BASE_HEX
, NULL
, 0x38, NULL
, HFILL
}
9523 { &hf_opa_PortInfo_MultiCollectMask_MulticastMask
, {
9524 "MultiCollectMask MulticastMask", "opa.portinfo.multicollectmask.multicastmask",
9525 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
9527 { &hf_opa_PortInfo_M_KeyProtectBits
, {
9528 "M_KeyProtectBits", "opa.portinfo.mkeyprotectbits",
9529 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
9531 { &hf_opa_PortInfo_S1_reserved
, {
9532 "Reserved (2 bits)", "opa.portinfo.s1.reserved",
9533 FT_UINT8
, BASE_HEX
, NULL
, 0x30, NULL
, HFILL
}
9535 { &hf_opa_PortInfo_LMC
, {
9536 "LMC", "opa.portinfo.lmc",
9537 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
9539 { &hf_opa_PortInfo_S2_reserved
, {
9540 "Reserved (3 bits)", "opa.portinfo.s2.reserved",
9541 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
9543 { &hf_opa_PortInfo_MasterSMSL
, {
9544 "MasterSMSL", "opa.portinfo.mastersml",
9545 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
9547 { &hf_opa_PortInfo_LinkInitReason
, {
9548 "LinkInitReason", "opa.portinfo.linkinitreason",
9549 FT_UINT8
, BASE_HEX
, VALS(LinkInitReason
), 0xF0, NULL
, HFILL
}
9551 { &hf_opa_PortInfo_PartitionEnforcementInbound
, {
9552 "PartitionEnforcementInbound", "opa.portinfo.partitionenforcementinbound",
9553 FT_UINT8
, BASE_HEX
, NULL
, 0x08, NULL
, HFILL
}
9555 { &hf_opa_PortInfo_PartitionEnforcementOutbound
, {
9556 "PartitionEnforcementOutbound", "opa.portinfo.partitionenforcementoutbound",
9557 FT_UINT8
, BASE_HEX
, NULL
, 0x04, NULL
, HFILL
}
9559 { &hf_opa_PortInfo_S3_reserved2
, {
9560 "Reserved (2 bits)", "opa.portinfo.s3.reserved2",
9561 FT_UINT8
, BASE_HEX
, NULL
, 0x03, NULL
, HFILL
}
9563 { &hf_opa_PortInfo_S4_reserved
, {
9564 "Reserved (3 bits)", "opa.portinfo.s4.reserved",
9565 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
9567 { &hf_opa_PortInfo_OperationalVL
, {
9568 "OperationalVL", "opa.portinfo.operationalvl",
9569 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
9572 { &hf_opa_PortInfo_P_Keys_P_Key_8B
, {
9573 "P_Keys P_Key_8B", "opa.portinfo.pkey8",
9574 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9576 { &hf_opa_PortInfo_P_Keys_P_Key_10B
, {
9577 "P_Keys P_Key_10B", "opa.portinfo.pkey10",
9578 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9581 { &hf_opa_PortInfo_M_KeyViolations
, {
9582 "M_KeyViolations", "opa.portinfo.m_keyviolations",
9583 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9585 { &hf_opa_PortInfo_P_KeyViolations
, {
9586 "P_KeyViolations", "opa.portinfo.p_keyviolations",
9587 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9589 { &hf_opa_PortInfo_Q_KeyViolations
, {
9590 "Q_KeyViolations", "opa.portinfo.q_keyviolations",
9591 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9594 { &hf_opa_PortInfo_TrapQueuePair_reserved
, {
9595 "TrapQueuePair Reserved (8 bits)", "opa.portinfo.trapqpair.reserved",
9596 FT_UINT32
, BASE_HEX
, NULL
, 0xFF000000, NULL
, HFILL
}
9598 { &hf_opa_PortInfo_TrapQueuePair
, {
9599 "TrapQueuePair", "opa.portinfo.trapqpair",
9600 FT_UINT32
, BASE_HEX
, NULL
, 0x00FFFFFF, NULL
, HFILL
}
9602 { &hf_opa_PortInfo_SAQueuePair_reserved
, {
9603 "SAQueuePair Reserved (8 bits)", "opa.portinfo.saqpair.reserved",
9604 FT_UINT32
, BASE_HEX
, NULL
, 0xFF000000, NULL
, HFILL
}
9606 { &hf_opa_PortInfo_SAQueuePair
, {
9607 "SAQueuePair", "opa.portinfo.saqpair",
9608 FT_UINT32
, BASE_HEX
, NULL
, 0x00FFFFFF, NULL
, HFILL
}
9610 { &hf_opa_PortInfo_NeighborPortNum
, {
9611 "NeighborPortNum", "opa.portinfo.neighborportnum",
9612 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
9614 { &hf_opa_PortInfo_LinkDownReason
, {
9615 "LinkDownReason", "opa.portinfo.linkdownreason",
9616 FT_UINT8
, BASE_HEX
, VALS(LinkDownReason
), 0x0, NULL
, HFILL
}
9618 { &hf_opa_PortInfo_NeighborLinkDownReason
, {
9619 "NeighborLinkDownReason", "opa.portinfo.neighborlinkdownreason",
9620 FT_UINT8
, BASE_HEX
, VALS(LinkDownReason
), 0x0, NULL
, HFILL
}
9623 { &hf_opa_PortInfo_ClientReregister
, {
9624 "Subnet ClientReregister", "opa.portinfo.clientreregister",
9625 FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}
9627 { &hf_opa_PortInfo_MulticastPKeyTrapSuppressEnabled
, {
9628 "Subnet Multicast PKey Trap Enabled", "opa.portinfo.multicastpkeytrapenabled",
9629 FT_UINT8
, BASE_HEX
, NULL
, 0x60, NULL
, HFILL
}
9631 { &hf_opa_PortInfo_Timeout
, {
9632 "Subnet Timeout", "opa.portinfo.timeout",
9633 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
9635 { &hf_opa_PortInfo_LinkSpeedSupported
, {
9636 "LinkSpeedSupported", "opa.portinfo.linkspeedsupported",
9637 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkspeed
), 0x0, NULL
, HFILL
}
9639 { &hf_opa_PortInfo_LinkSpeedEnabled
, {
9640 "LinkSpeedEnabled", "opa.portinfo.linkspeedenabled",
9641 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkspeed
), 0x0, NULL
, HFILL
}
9643 { &hf_opa_PortInfo_LinkSpeedActive
, {
9644 "LinkSpeedActive", "opa.portinfo.linkspeedactive",
9645 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkspeed
), 0x0, NULL
, HFILL
}
9648 { &hf_opa_PortInfo_LinkWidthSupported
, {
9649 "LinkWidthSupported", "opa.portinfo.linkwidthsupported",
9650 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
9652 { &hf_opa_PortInfo_LinkWidthEnabled
, {
9653 "LinkWidthEnabled", "opa.portinfo.linkwidthenabled",
9654 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
9656 { &hf_opa_PortInfo_LinkWidthActive
, {
9657 "LinkWidthActive", "opa.portinfo.linkwidthactive",
9658 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
9661 { &hf_opa_PortInfo_LinkWidthDowngrade_Supported
, {
9662 "LinkWidthDowngrade Supported", "opa.portinfo.linkwidthdowngradesupported",
9663 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
9665 { &hf_opa_PortInfo_LinkWidthDowngrade_Enabled
, {
9666 "LinkWidthDowngrade Enabled", "opa.portinfo.linkwidthdowngradeenabled",
9667 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
9669 { &hf_opa_PortInfo_LinkWidthDowngrade_TxActive
, {
9670 "LinkWidthDowngrade TxActive", "opa.portinfo.linkwidthdowngradetxactive",
9671 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
9673 { &hf_opa_PortInfo_LinkWidthDowngrade_RxActive
, {
9674 "LinkWidthDowngrade RxActive", "opa.portinfo.linkwidthdowngraderxactive",
9675 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
9678 { &hf_opa_PortInfo_PortLinkMode_reserved
, {
9679 "PortLinkMode Reserved (1 bit)", "opa.portinfo.portlinkmode.reserved",
9680 FT_UINT16
, BASE_HEX
, NULL
, 0x8000, NULL
, HFILL
}
9682 { &hf_opa_PortInfo_PortLinkMode_Supported
, {
9683 "PortLinkMode Supported", "opa.portinfo.portlinkmode.supported",
9684 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_portlinkmode
), 0x7C00, NULL
, HFILL
}
9686 { &hf_opa_PortInfo_PortLinkMode_Enabled
, {
9687 "PortLinkMode Enabled", "opa.portinfo.portlinkmode.enabled",
9688 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_portlinkmode
), 0x03E0, NULL
, HFILL
}
9690 { &hf_opa_PortInfo_PortLinkMode_Active
, {
9691 "PortLinkMode Active", "opa.portinfo.portlinkmode.active",
9692 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_portlinkmode
), 0x001F, NULL
, HFILL
}
9695 /* PortLTPCRCMode */
9696 { &hf_opa_PortInfo_PortLTPCRCMode_reserved
, {
9697 "PortLTPCRCMode Reserved (4 bits)", "opa.portinfo.portltpcrc.reserved",
9698 FT_UINT16
, BASE_HEX
, NULL
, 0xF000, NULL
, HFILL
}
9700 { &hf_opa_PortInfo_PortLTPCRCMode_Supported
, {
9701 "PortLTPCRCMode Supported", "opa.portinfo.portltpcrc.supported",
9702 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_portltpcrcmode
), 0x0F00, NULL
, HFILL
}
9704 { &hf_opa_PortInfo_PortLTPCRCMode_Enabled
, {
9705 "PortLTPCRCMode Enabled", "opa.portinfo.portltpcrc.enabled",
9706 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_portltpcrcmode
), 0x00F0, NULL
, HFILL
}
9708 { &hf_opa_PortInfo_PortLTPCRCMode_Active
, {
9709 "PortLTPCRCMode Active", "opa.portinfo.portltpcrc.active",
9710 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_portltpcrcmode
), 0x000F, NULL
, HFILL
}
9714 { &hf_opa_PortInfo_PortMode
, {
9715 "PortMode", "opa.portinfo.portmode",
9716 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9718 { &hf_opa_PortInfo_PortMode_reserved
, {
9719 "Reserved (9 bits)", "opa.portinfo.portmode.reserved",
9720 FT_UINT16
, BASE_HEX
, NULL
, 0xFF80, NULL
, HFILL
}
9722 { &hf_opa_PortInfo_PortMode_IsActiveOptimizeEnabled
, {
9723 "IsActiveOptimizeEnabled", "opa.portinfo.portmode.isactiveoptimizeenabled",
9724 FT_BOOLEAN
, 16, NULL
, 0x0040, NULL
, HFILL
}
9726 { &hf_opa_PortInfo_PortMode_IsPassThroughEnabled
, {
9727 "IsPassThroughEnabled", "opa.portinfo.portmode.ispassthroughenabled",
9728 FT_BOOLEAN
, 16, NULL
, 0x0020, NULL
, HFILL
}
9730 { &hf_opa_PortInfo_PortMode_IsVLMarkerEnabled
, {
9731 "IsVLMarkerEnabled", "opa.portinfo.portmode.isvlmarkerenabled",
9732 FT_BOOLEAN
, 16, NULL
, 0x0010, NULL
, HFILL
}
9734 { &hf_opa_PortInfo_PortMode_reserved2
, {
9735 "Reserved (2 bits)", "opa.portinfo.portmode.reserved2",
9736 FT_UINT16
, BASE_HEX
, NULL
, 0x000C, NULL
, HFILL
}
9738 { &hf_opa_PortInfo_PortMode_Is16BTrapQueryEnabled
, {
9739 "Is16BTrapQueryEnabled", "opa.portinfo.portmode.is16btrapqueryenabled",
9740 FT_BOOLEAN
, 16, NULL
, 0x0002, NULL
, HFILL
}
9742 { &hf_opa_PortInfo_PortMode_reserved3
, {
9743 "Reserved (1 bit)", "opa.portinfo.portmode.reserved3",
9744 FT_UINT16
, BASE_HEX
, NULL
, 0x0001, NULL
, HFILL
}
9747 /*PortPacketFormats*/
9748 { &hf_opa_PortInfo_PortPacketFormats_Supported
, {
9749 "PortPacketFormats Supported", "opa.portinfo.portpacketformats.supported",
9750 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_packetformat
), 0x0, NULL
, HFILL
}
9752 { &hf_opa_PortInfo_PortPacketFormats_Enabled
, {
9753 "PortPacketFormats Enabled", "opa.portinfo.portpacketformats.enabled",
9754 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_packetformat
), 0x0, NULL
, HFILL
}
9757 { &hf_opa_PortInfo_FlitControl_Interleave_reserved
, {
9758 "Interleave Reserved (2 bits)", "opa.portinfo.flitcontrol.interleave.reserved",
9759 FT_UINT16
, BASE_HEX
, NULL
, 0xC000, NULL
, HFILL
}
9761 { &hf_opa_PortInfo_FlitControl_Interleave_DistanceSupported
, {
9762 "Interleave DistanceSupported", "opa.portinfo.flitcontrol.interleave.distancesupported",
9763 FT_UINT16
, BASE_HEX
, VALS(PortFlitDistanceMode
), 0x3000, NULL
, HFILL
}
9765 { &hf_opa_PortInfo_FlitControl_Interleave_DistanceEnabled
, {
9766 "Interleave DistanceEnabled", "opa.portinfo.flitcontrol.interleave.distanceenabled",
9767 FT_UINT16
, BASE_HEX
, VALS(PortFlitDistanceMode
), 0x0C00, NULL
, HFILL
}
9769 { &hf_opa_PortInfo_FlitControl_Interleave_MaxNestLevelTxEnabled
, {
9770 "Interleave MaxNestLevelTxEnabled", "opa.portinfo.flitcontrol.interleave.maxnestleveltxenabled",
9771 FT_UINT16
, BASE_HEX
, NULL
, 0x03E0, NULL
, HFILL
}
9773 { &hf_opa_PortInfo_FlitControl_Interleave_MaxNestLevelRxSupported
, {
9774 "Interleave MaxNestLevelRxEnabled", "opa.portinfo.flitcontrol.interleave.maxnestlevelrxenabled",
9775 FT_UINT16
, BASE_HEX
, NULL
, 0x001F, NULL
, HFILL
}
9777 { &hf_opa_PortInfo_FlitControl_Preemption_MinInitial
, {
9778 "Preemption MinInitial", "opa.portinfo.flitcontrol.preemption.mininitial",
9779 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9781 { &hf_opa_PortInfo_FlitControl_Preemption_MinTail
, {
9782 "Preemption Mintail", "opa.portinfo.flitcontrol.preemption.mintail",
9783 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9785 { &hf_opa_PortInfo_FlitControl_Preemption_LargePacketLimit
, {
9786 "Preemption LargePacketLimit", "opa.portinfo.flitcontrol.preemption.largepacketlimit",
9787 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9789 { &hf_opa_PortInfo_FlitControl_Preemption_SmallPacketLimit
, {
9790 "Preemption SmallPacketLimit", "opa.portinfo.flitcontrol.preemption.smallpacketlimit",
9791 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9793 { &hf_opa_PortInfo_FlitControl_Preemption_MaxSmallPacketLimit
, {
9794 "Preemption MaxSmallPacketLimit", "opa.portinfo.flitcontrol.preemption.maxsmallpacketlimit",
9795 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9797 { &hf_opa_PortInfo_FlitControl_Preemption_PreemptionLimit
, {
9798 "Preemption PreemptionLimit", "opa.portinfo.flitcontrol.preemption.preemptionlimit",
9799 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9802 /* PortErrorAction */
9803 { &hf_opa_PortInfo_PortErrorAction
, {
9804 "PortErrorAction", "opa.portinfo.porterroraction",
9805 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9807 { &hf_opa_PortInfo_PortErrorAction_ExcessiveBufferOverrun
, {
9808 "ExcessiveBufferOverrun", "opa.portinfo.porterroraction.excessivebufferoverrun",
9809 FT_BOOLEAN
, 32, NULL
, 0x80000000, NULL
, HFILL
}
9811 { &hf_opa_PortInfo_PortErrorAction_reserved
, {
9812 "Reserved (7 bits)", "opa.portinfo.porterroraction.reserved",
9813 FT_UINT32
, BASE_HEX
, NULL
, 0x7F000000, NULL
, HFILL
}
9815 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorExceedMulticastLimit
, {
9816 "FMConfigErrorExceedMulticastLimit", "opa.portinfo.porterroraction.fmconfigerrorexceedmulticastlimit",
9817 FT_BOOLEAN
, 32, NULL
, 0x00800000, NULL
, HFILL
}
9819 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadControlFlit
, {
9820 "FmConfigErrorBadControlFlit", "opa.portinfo.porterroraction.fmconfigerrorbadcontrolflit",
9821 FT_BOOLEAN
, 32, NULL
, 0x00400000, NULL
, HFILL
}
9823 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadPreempt
, {
9824 "FmConfigErrorBadPreempt", "opa.portinfo.porterroraction.fmconfigerrorbadpreempt",
9825 FT_BOOLEAN
, 32, NULL
, 0x00200000, NULL
, HFILL
}
9827 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadVLMarker
, {
9828 "FmConfigErrorBadVLMarker", "opa.portinfo.porterroraction.fmconfigerrorbadvlmarker",
9829 FT_BOOLEAN
, 32, NULL
, 0x00100000, NULL
, HFILL
}
9831 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadCrdtAck
, {
9832 "FmConfigErrorBadCrdtAck", "opa.portinfo.porterroraction.fmconfigerrorbadcrdtack",
9833 FT_BOOLEAN
, 32, NULL
, 0x00080000, NULL
, HFILL
}
9835 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadCtrlDist
, {
9836 "FmConfigErrorBadCtrlDist", "opa.portinfo.porterroraction.fmconfigerrorbadctrldist",
9837 FT_BOOLEAN
, 32, NULL
, 0x00040000, NULL
, HFILL
}
9839 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadTailDist
, {
9840 "FmConfigErrorBadTailDist", "opa.portinfo.porterroraction.fmconfigerrorbadtaildist",
9841 FT_BOOLEAN
, 32, NULL
, 0x00020000, NULL
, HFILL
}
9843 { &hf_opa_PortInfo_PortErrorAction_FmConfigErrorBadHeadDist
, {
9844 "FmConfigErrorBadHeadDist", "opa.portinfo.porterroraction.fmconfigerrorbadheaddist",
9845 FT_BOOLEAN
, 32, NULL
, 0x00010000, NULL
, HFILL
}
9847 { &hf_opa_PortInfo_PortErrorAction_reserved2
, {
9848 "Reserved (2 bits)", "opa.portinfo.porterroraction.reserved2",
9849 FT_UINT32
, BASE_HEX
, NULL
, 0x0000C000, NULL
, HFILL
}
9851 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadVLMarker
, {
9852 "PortRcvErrorBadVLMarker", "opa.portinfo.porterroraction.portrcverrorbadvlmarker",
9853 FT_BOOLEAN
, 32, NULL
, 0x00002000, NULL
, HFILL
}
9855 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPreemptVL15
, {
9856 "PortRcvErrorPreemptVL15", "opa.portinfo.porterroraction.portrcverrorpreemptvl15",
9857 FT_BOOLEAN
, 32, NULL
, 0x00001000, NULL
, HFILL
}
9859 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPreemptError
, {
9860 "PortRcvErrorPreemptError", "opa.portinfo.porterroraction.portrcverrorpreempterror",
9861 FT_BOOLEAN
, 32, NULL
, 0x00000800, NULL
, HFILL
}
9863 { &hf_opa_PortInfo_PortErrorAction_reserved3
, {
9864 "Reserved (1 bit)", "opa.portinfo.porterroraction.reserved3",
9865 FT_UINT32
, BASE_HEX
, NULL
, 0x00000400, NULL
, HFILL
}
9867 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadMidTail
, {
9868 "PortRcvErrorBadMidTail", "opa.portinfo.porterroraction.portrcverrorbadmidtail",
9869 FT_BOOLEAN
, 32, NULL
, 0x00000200, NULL
, HFILL
}
9871 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorReserved
, {
9872 "PortRcvErrorReserved", "opa.portinfo.porterroraction.portrcverrorreserved",
9873 FT_UINT32
, BASE_HEX
, NULL
, 0x00000100, NULL
, HFILL
}
9875 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadSC
, {
9876 "PortRcvErrorBadSC", "opa.portinfo.porterroraction.portrcverrorbadsc",
9877 FT_BOOLEAN
, 32, NULL
, 0x00000080, NULL
, HFILL
}
9879 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadL2
, {
9880 "PortRcvErrorBadL2", "opa.portinfo.porterroraction.portrcverrorbadl2",
9881 FT_BOOLEAN
, 32, NULL
, 0x00000040, NULL
, HFILL
}
9883 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadDLID
, {
9884 "PortRcvErrorBadDLID", "opa.portinfo.porterroraction.portrcverrorbaddlid",
9885 FT_BOOLEAN
, 32, NULL
, 0x00000020, NULL
, HFILL
}
9887 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadSLID
, {
9888 "PortRcvErrorBadSLID", "opa.portinfo.porterroraction.portrcverrorbadslid",
9889 FT_BOOLEAN
, 32, NULL
, 0x00000010, NULL
, HFILL
}
9891 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPktLenTooShort
, {
9892 "PortRcvErrorPktLenTooShort", "opa.portinfo.porterroraction.portrcverrorpktlentooshort",
9893 FT_BOOLEAN
, 32, NULL
, 0x00000008, NULL
, HFILL
}
9895 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorPktLenTooLong
, {
9896 "PortRcvErrorPktLenTooLong", "opa.portinfo.porterroraction.portrcverrorpktlentoolong",
9897 FT_BOOLEAN
, 32, NULL
, 0x00000004, NULL
, HFILL
}
9899 { &hf_opa_PortInfo_PortErrorAction_PortRcvErrorBadPktLen
, {
9900 "PortRcvErrorBadPktLen", "opa.portinfo.porterroraction.portrcverrorbadpktlen",
9901 FT_BOOLEAN
, 32, NULL
, 0x00000002, NULL
, HFILL
}
9903 { &hf_opa_PortInfo_PortErrorAction_reserved4
, {
9904 "Reserved (1 bit)", "opa.portinfo.porterroraction.reserved4",
9905 FT_UINT32
, BASE_HEX
, NULL
, 0x00000001, NULL
, HFILL
}
9907 /* PassThroughControl */
9908 { &hf_opa_PortInfo_PassThroughControl_EgressPort
, {
9909 "PassThroughControl EgressPort", "opa.portinfo.passthroughcontrol.egressport",
9910 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9913 { &hf_opa_PortInfo_PassThroughControl_reserved
, {
9914 "Reserved (7 Bits)", "opa.portinfo.passthroughcontrol.reserved",
9915 FT_UINT8
, BASE_HEX
, NULL
, 0xFE, NULL
, HFILL
}
9917 { &hf_opa_PortInfo_PassThroughControl_DRControl
, {
9918 "PassThroughControl DRControl", "opa.portinfo.passthroughcontrol.drcontrol",
9919 FT_UINT8
, BASE_HEX
, NULL
, 0x01, NULL
, HFILL
}
9921 { &hf_opa_PortInfo_M_KeyLeasePeriod
, {
9922 "M_KeyLeasePeriod", "opa.portinfo.m_keyleaseperiod",
9923 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9925 { &hf_opa_PortInfo_BufferUnits_reserved
, {
9926 "BufferUnits Reserved (9 bits)", "opa.portinfo.bufferunits.reserved",
9927 FT_UINT32
, BASE_HEX
, NULL
, 0xFF800000, NULL
, HFILL
}
9929 { &hf_opa_PortInfo_BufferUnits_VL15Init
, {
9930 "BufferUnits VL15Init", "opa.portinfo.bufferunits.vl15init",
9931 FT_UINT32
, BASE_HEX
, NULL
, 0x007FF800, NULL
, HFILL
}
9933 { &hf_opa_PortInfo_BufferUnits_VL15CreditRate
, {
9934 "BufferUnits VL15Credit", "opa.portinfo.bufferunits.vl15credit",
9935 FT_UINT32
, BASE_HEX
, NULL
, 0x000007C0, NULL
, HFILL
}
9937 { &hf_opa_PortInfo_BufferUnits_CreditAck
, {
9938 "BufferUnits CreditAck", "opa.portinfo.bufferunits.creditack",
9939 FT_UINT32
, BASE_HEX
, NULL
, 0x00000038, NULL
, HFILL
}
9941 { &hf_opa_PortInfo_BufferUnits_BufferAlloc
, {
9942 "BufferUnits BufferAlloc", "opa.portinfo.bufferunits.bufferalloc",
9943 FT_UINT32
, BASE_HEX
, NULL
, 0x00000007, NULL
, HFILL
}
9946 { &hf_opa_PortInfo_MasterSMLID
, {
9947 "MasterSMLID", "opa.portinfo.mastersmlid",
9948 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9950 { &hf_opa_PortInfo_M_Key
, {
9951 "MKey", "opa.portinfo.mkey",
9952 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9954 { &hf_opa_PortInfo_SubnetPrefix
, {
9955 "SubnetPrefix", "opa.portinfo.subnetprefix",
9956 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9958 { &hf_opa_PortInfo_VL1
, {
9959 "VL", "opa.portinfo.vl1",
9960 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0xF0, NULL
, HFILL
}
9962 { &hf_opa_PortInfo_VL2
, {
9963 "VL", "opa.portinfo.vl2",
9964 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x0F, NULL
, HFILL
}
9967 { &hf_opa_PortInfo_XmitQ_VLStallCount
, {
9968 "VLStallCount", "opa.portinfo.xmitq.vlstallcount",
9969 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
9971 { &hf_opa_PortInfo_XmitQ_HOQLife
, {
9972 "HOQLife", "opa.portinfo.xmitq.hoqlife",
9973 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
9976 { &hf_opa_PortInfo_IPAddrIPv6
, {
9977 "IPAddr IPv6", "opa.portinfo.ipaddripv6",
9978 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9980 { &hf_opa_PortInfo_IPAddrIPv4
, {
9981 "IPAddr IPv4", "opa.portinfo.ipaddripv4",
9982 FT_IPv4
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
9984 { &hf_opa_PortInfo_NeighborNodeGUID
, {
9985 "NeighborNodeGUID", "opa.portinfo.neighbornodeguid",
9986 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9989 /* Capability Mask Flags */
9990 { &hf_opa_PortInfo_CapabilityMask
, {
9991 "CapabilityMask", "opa.portinfo.capabilitymask",
9992 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
9994 { &hf_opa_PortInfo_CapabilityMask_reserved
, {
9995 "Reserved (9 bits)", "opa.portinfo.capabilitymask.reserved",
9996 FT_UINT32
, BASE_HEX
, NULL
, 0xFF800000, NULL
, HFILL
}
9998 { &hf_opa_PortInfo_CapabilityMask_IsCapabilityMaskNoticeSupported
, {
9999 "IsCapabilityMaskNoticeSupported", "opa.portinfo.capabilitymask.iscapabilitymasknoticesupported",
10000 FT_BOOLEAN
, 32, NULL
, 0x00400000, NULL
, HFILL
}
10002 { &hf_opa_PortInfo_CapabilityMask_reserved2
, {
10003 "Reserved (1 bit)", "opa.portinfo.capabilitymask.reserved2",
10004 FT_UINT32
, BASE_HEX
, NULL
, 0x00200000, NULL
, HFILL
}
10006 { &hf_opa_PortInfo_CapabilityMask_IsVendorClassSupported
, {
10007 "IsVendorClassSupported", "opa.portinfo.capabilitymask.isvendorclasssupported",
10008 FT_BOOLEAN
, 32, NULL
, 0x00100000, NULL
, HFILL
}
10010 { &hf_opa_PortInfo_CapabilityMask_IsDeviceManagementSupported
, {
10011 "IsDeviceManagementSupported", "opa.portinfo.capabilitymask.isdevicemanagementsupported",
10012 FT_BOOLEAN
, 32, NULL
, 0x00080000, NULL
, HFILL
}
10014 { &hf_opa_PortInfo_CapabilityMask_reserved3
, {
10015 "Reserved (2 bits)", "opa.portinfo.capabilitymask.reserved3",
10016 FT_UINT32
, BASE_HEX
, NULL
, 0x00060000, NULL
, HFILL
}
10018 { &hf_opa_PortInfo_CapabilityMask_IsConnectionManagementSupported
, {
10019 "IsConnectionManagementSupported", "opa.portinfo.capabilitymask.isconnectionmanagementsupported",
10020 FT_BOOLEAN
, 32, NULL
, 0x00010000, NULL
, HFILL
}
10022 { &hf_opa_PortInfo_CapabilityMask_reserved4
, {
10023 "Reserved (10 bits)", "opa.portinfo.capabilitymask.reserved4",
10024 FT_UINT32
, BASE_HEX
, NULL
, 0x0000FFC0, NULL
, HFILL
}
10026 { &hf_opa_PortInfo_CapabilityMask_IsAutomaticMigrationSupported
, {
10027 "IsAutomaticMigrationSupported", "opa.portinfo.capabilitymask.isautomaticmigrationsupported",
10028 FT_BOOLEAN
, 32, NULL
, 0x00000020, NULL
, HFILL
}
10030 { &hf_opa_PortInfo_CapabilityMask_reserved5
, {
10031 "Reserved (3 bits)", "opa.portinfo.capabilitymask.reserved5",
10032 FT_UINT32
, BASE_HEX
, NULL
, 0x0000001C, NULL
, HFILL
}
10034 { &hf_opa_PortInfo_CapabilityMask_IsSM
, {
10035 "IsSM", "opa.portinfo.capabilitymask.issm",
10036 FT_BOOLEAN
, 32, NULL
, 0x00000002, NULL
, HFILL
}
10038 { &hf_opa_PortInfo_CapabilityMask_reserved6
, {
10039 "Reserved (1 bit)", "opa.portinfo.capabilitymask.reserved6",
10040 FT_UINT32
, BASE_HEX
, NULL
, 0x00000001, NULL
, HFILL
}
10042 /* End Capability Mask Flags */
10044 /* Capability Mask 3 */
10045 { &hf_opa_PortInfo_CapabilityMask3
, {
10046 "CapabilityMask3", "opa.portinfo.capabilitymask3",
10047 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10049 { &hf_opa_PortInfo_CapabilityMask3_reserved
, {
10050 "Reserved (8 bits)", "opa.portinfo.capabilitymask3.reserved",
10051 FT_UINT16
, BASE_HEX
, NULL
, 0xFF00, NULL
, HFILL
}
10053 { &hf_opa_PortInfo_CapabilityMask3_IsSnoopSupported
, {
10054 "IsSnoopSupported", "opa.portinfo.capabilitymask3.issnoopsupported",
10055 FT_BOOLEAN
, 16, NULL
, 0x0080, NULL
, HFILL
}
10057 { &hf_opa_PortInfo_CapabilityMask3_IsAsyncSCtoVLSupported
, {
10058 "IsAsyncSCtoVLSupported", "opa.portinfo.capabilitymask3.isasyncsc2vlsupported",
10059 FT_BOOLEAN
, 16, NULL
, 0x0040, NULL
, HFILL
}
10061 { &hf_opa_PortInfo_CapabilityMask3_IsAddrRangeConfigSupported
, {
10062 "IsAddrRangeConfigSupported", "opa.portinfo.capabilitymask3.isaddrrangeconfigsupported",
10063 FT_BOOLEAN
, 16, NULL
, 0x0020, NULL
, HFILL
}
10065 { &hf_opa_PortInfo_CapabilityMask3_IsPassThroughSupported
, {
10066 "IsPassThroughSupported", "opa.portinfo.capabilitymask3.ispassthroughsupported",
10067 FT_BOOLEAN
, 16, NULL
, 0x0010, NULL
, HFILL
}
10069 { &hf_opa_PortInfo_CapabilityMask3_IsSharedSpaceSupported
, {
10070 "IsSharedSpaceSupported", "opa.portinfo.capabilitymask3.issharedspacesupported",
10071 FT_BOOLEAN
, 16, NULL
, 0x0008, NULL
, HFILL
}
10073 { &hf_opa_PortInfo_CapabilityMask3_reserved2
, {
10074 "IsVLMarkerSupported", "opa.portinfo.capabilitymask3.reserved2",
10075 FT_BOOLEAN
, 16, NULL
, 0x0004, NULL
, HFILL
}
10077 { &hf_opa_PortInfo_CapabilityMask3_IsVLMarkerSupported
, {
10078 "IsVLMarkerSupported", "opa.portinfo.capabilitymask3.isvlmarkersupported",
10079 FT_BOOLEAN
, 16, NULL
, 0x0002, NULL
, HFILL
}
10081 { &hf_opa_PortInfo_CapabilityMask3_IsVLrSupported
, {
10082 "IsVLrSupported", "opa.portinfo.capabilitymask3.isvlrsupported",
10083 FT_BOOLEAN
, 16, NULL
, 0x0001, NULL
, HFILL
}
10085 /* End Capability Mask3 Flags */
10087 { &hf_opa_PortInfo_OverallBufferSpace
, {
10088 "OverallBufferSpace", "opa.portinfo.overallbufferspace",
10089 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10091 { &hf_opa_PortInfo_DiagCode
, {
10092 "DiagCode", "opa.portinfo.diagcode",
10093 FT_UINT16
, BASE_HEX
, VALS(DiagCode
), 0x0, NULL
, HFILL
}
10095 { &hf_opa_PortInfo_ReplayDepth_BufferDepth
, {
10096 "Replay BufferDepth", "opa.portinfo.replaydepth.bufferdepth",
10097 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10099 { &hf_opa_PortInfo_ReplayDepth_WireDepth
, {
10100 "Replay WireDepth", "opa.portinfo.replaydepth.wiredepth",
10101 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10104 /* PortNeighborNode*/
10105 { &hf_opa_PortInfo_PortNeighborMode_reserved
, {
10106 "PortNeighborMode Reserved (4 bits)", "opa.portinfo.portneighbormode.reserved",
10107 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
10109 { &hf_opa_PortInfo_PortNeighborMode_MgmtAllowed
, {
10110 "PortNeighborMode MgmtAllowed", "opa.portinfo.portneighbormode.mgmtallowed",
10111 FT_BOOLEAN
, 8, NULL
, 0x08, NULL
, HFILL
}
10113 { &hf_opa_PortInfo_PortNeighborMode_NeighborFWAuthenBypass
, {
10114 "PortNeighborMode NeighborFWAuthenBypass", "opa.portinfo.portneighbormode.neighborfwauthenbypass",
10115 FT_BOOLEAN
, 8, TFS(&tfs_NeighborFWAuthenBypass
), 0x04, NULL
, HFILL
}
10117 { &hf_opa_PortInfo_PortNeighborMode_NeighborNodeType
, {
10118 "PortNeighborMode NeighborNodeType", "opa.portinfo.portneighbormode.neighbornodetype",
10119 FT_UINT8
, BASE_HEX
, NULL
, 0x03, NULL
, HFILL
}
10123 { &hf_opa_PortInfo_MTU_reserved
, {
10124 "MTU Reserved (4 bits)", "opa.portinfo.mtu.reserved",
10125 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
10127 { &hf_opa_PortInfo_MTU_Cap
, {
10128 "MTU Cap", "opa.portinfo.mtu.cap",
10129 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x0F, NULL
, HFILL
}
10131 { &hf_opa_PortInfo_Resp_reserved
, {
10132 "Resp Reserved (3 bits)", "opa.portinfo.resp.reserved",
10133 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
10135 { &hf_opa_PortInfo_Resp_TimeValue
, {
10136 "Resp TimeValue", "opa.portinfo.resp.timevalue",
10137 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
10139 { &hf_opa_PortInfo_LocalPortNum
, {
10140 "LocalPortNum", "opa.portinfo.localportnum",
10141 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10144 /*******************
10145 * Port State Info *
10146 *******************/
10148 { &hf_opa_PortStates
, {
10149 "PortStates", "opa.portstates",
10150 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10152 { &hf_opa_PortStates_reserved
, {
10153 "Reserved (10 bits)", "opa.portstates.reserved",
10154 FT_UINT32
, BASE_HEX
, NULL
, 0xFF800000, NULL
, HFILL
}
10156 { &hf_opa_PortStates_LEDEnabled
, {
10157 "LEDEnabled", "opa.portstates.ledenabled",
10158 FT_BOOLEAN
, 32, NULL
, 0x00400000, NULL
, HFILL
}
10160 { &hf_opa_PortStates_IsSMConfigurationStarted
, {
10161 "IsSMConfigurationStarted", "opa.portstates.issmconfigurationstarted",
10162 FT_BOOLEAN
, 32, NULL
, 0x00200000, NULL
, HFILL
}
10164 { &hf_opa_PortStates_NeighborNormal
, {
10165 "NeighborNormal", "opa.portstates.neighbornormal",
10166 FT_BOOLEAN
, 32, NULL
, 0x00100000, NULL
, HFILL
}
10168 { &hf_opa_PortStates_OfflineDisabledReason
, {
10169 "OfflineDisabledReason", "opa.portstates.offlinedisabledreason",
10170 FT_UINT32
, BASE_HEX
, VALS(OfflineDisabledReason
), 0x000F0000, NULL
, HFILL
}
10172 { &hf_opa_PortStates_PortUnsleepState
, {
10173 "PortUnsleepState", "opa.portstates.portunsleepstates",
10174 FT_UINT32
, BASE_HEX
, VALS(PortPhysicalState
), 0x0000F000, NULL
, HFILL
}
10176 { &hf_opa_PortStates_DownDefaultState
, {
10177 "DownDefaultState", "opa.portstates.downdefaultstate",
10178 FT_UINT32
, BASE_HEX
, VALS(PortPhysicalState
), 0x00000F00, NULL
, HFILL
}
10180 { &hf_opa_PortStates_PortPhysicalState
, {
10181 "PortPhysicalState", "opa.portstates.portphysicalstate",
10182 FT_UINT32
, BASE_HEX
, VALS(PortPhysicalState
), 0x000000F0, NULL
, HFILL
}
10184 { &hf_opa_PortStates_PortState
, {
10185 "PortState", "opa.portstates.portstate",
10186 FT_UINT32
, BASE_HEX
, VALS(PortState
), 0x0000000F, NULL
, HFILL
}
10188 { &hf_opa_PortStates_LinkWidthDowngradeTxActive
, {
10189 "LinkWidthDowngrade TxActive", "opa.portstates.linkwidthdowngradetxactive",
10190 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
10192 { &hf_opa_PortStates_LinkWidthDowngradeRxActive
, {
10193 "LinkWidthDowngrade RxActive", "opa.portstates.linkwidthdowngraderxactive",
10194 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_linkwidth
), 0x0, NULL
, HFILL
}
10201 { &hf_opa_P_KeyTable
, {
10202 "P_Key Table", "opa.p_keytable",
10203 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10205 { &hf_opa_P_KeyTable_MembershipType
, {
10206 "Membership Type", "opa.p_keytable.membershiptype",
10207 FT_BOOLEAN
, 16, TFS(&tfs_PKeyMembershipType
), 0x8000, NULL
, HFILL
}
10209 { &hf_opa_P_KeyTable_P_KeyBase
, {
10210 "P_Key Base", "opa.p_keytable.p_keybase",
10211 FT_UINT16
, BASE_HEX
, NULL
, 0x7FFF, NULL
, HFILL
}
10214 /**************************
10215 * SLtoSC Mapping Table *
10216 **************************/
10218 { &hf_opa_SLtoSCMappingTable
, {
10219 "SL to SC Mapping Table", "opa.sltoscmappingtable",
10220 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10222 { &hf_opa_SLtoSCMappingTable_SLtoSC_HighBits
, {
10223 "Reserved (3 bits)", "opa.sltoscmappingtable.sltoschighbits",
10224 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
10226 { &hf_opa_SLtoSCMappingTable_SLtoSC_LowBits
, {
10227 "SC", "opa.sltoscmappingtable.sltosclowbits",
10228 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
10231 /**************************
10232 * SCtoSC Mapping Table *
10233 **************************/
10235 { &hf_opa_SCtoSCMappingTable
, {
10236 "SC to SC Mapping Table", "opa.sctoscmappingtable",
10237 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10239 { &hf_opa_SCtoSCMappingTable_SCtoSC_HighBits
, {
10240 "Reserved (3 bits)", "opa.sctoscmappingtable.sctoschighbits",
10241 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
10243 { &hf_opa_SCtoSCMappingTable_SCtoSC_LowBits
, {
10244 "SC", "opa.sctoscmappingtable.sctosclowbits",
10245 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
10248 /**************************
10249 * SCtoSL Mapping Table *
10250 **************************/
10252 { &hf_opa_SCtoSLMappingTable
, {
10253 "SC to SL Mapping Table", "opa.sctoslmappingtable",
10254 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10256 { &hf_opa_SCtoSLMappingTable_SCtoSL_HighBits
, {
10257 "Reserved (3 bits)", "opa.sctoslmappingtable.sctoslhighbits",
10258 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
10260 { &hf_opa_SCtoSLMappingTable_SCtoSL_LowBits
, {
10261 "SL", "opa.sctoslmappingtable.sctosllowbits",
10262 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
10265 /**************************
10266 * SCtoVLx Mapping Table *
10267 **************************/
10269 { &hf_opa_SCtoVLxMappingTable
, {
10270 "SC to VLx Mapping Table", "opa.sctovlxmappingtable",
10271 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10273 { &hf_opa_SCtoVLxMappingTable_SCtoVLx_HighBits
, {
10274 "Reserved (3 bits)", "opa.sctovlxmappingtable.sctovlxhighbits",
10275 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
10277 { &hf_opa_SCtoVLxMappingTable_SCtoVLx_LowBits
, {
10278 "VL", "opa.sctovlxmappingtable.sctovlxlowbits",
10279 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
10282 /**************************
10283 * VLArbitrationTable *
10284 **************************/
10285 { &hf_opa_VLArbitrationTable
, {
10286 "VL Arbitration Table", "opa.vlarbitrationtable",
10287 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10289 { &hf_opa_VLArbitrationTable_reserved
, {
10290 "Reserved (3 bits)", "opa.vlarbitrationtable.reserved",
10291 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
10293 { &hf_opa_VLArbitrationTable_VL
, {
10294 "VL", "opa.vlarbitrationtable.vl",
10295 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
10297 { &hf_opa_VLArbitrationTable_Weight
, {
10298 "Weight", "opa.vlarbitrationtable.weight",
10299 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10301 { &hf_opa_VLArbitrationTable_Matrix
, {
10302 "Element", "opa.vlarbitrationtable.matrix",
10303 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10306 /*************************
10307 * LinearForwardingTable *
10308 *************************/
10310 { &hf_opa_LinearForwardingTable
, {
10311 "Linear Forwarding Table", "opa.linearforwardingtable",
10312 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10314 { &hf_opa_LinearForwardingTable_Port
, {
10315 "Port", "opa.linearforwardingtable.port",
10316 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10319 /****************************
10320 * MulticastForwardingTable *
10321 ****************************/
10323 { &hf_opa_MulticastForwardingTable
, {
10324 "Multicast Forwarding Table", "opa.multicastforwardingtable",
10325 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10327 { &hf_opa_MulticastForwardingTable_PortMask
, {
10328 "Port Mask", "opa.multicastforwardingtable.portmask",
10329 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10332 /****************************
10333 * PortGroupForwardingTable *
10334 ****************************/
10336 { &hf_opa_PortGroupForwardingTable
, {
10337 "Port Group Forwarding Table", "opa.portgroupforwardingtable",
10338 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10340 { &hf_opa_PortGroupForwardingTable_Port
, {
10341 "Port", "opa.portgroupforwardingtable.port",
10342 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10345 /******************
10347 ******************/
10349 { &hf_opa_PortGroupTable
, {
10350 "Port Group Table", "opa.portgrouptable",
10351 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10353 { &hf_opa_PortGroupTable_PortMask
, {
10354 "Port Mask", "opa.portgrouptable.portmask",
10355 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10362 { &hf_opa_SMInfo
, {
10363 "SM Info", "opa.sminfo",
10364 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10366 { &hf_opa_SMInfo_GUID
, {
10367 "GUID", "opa.sminfo.guid",
10368 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10370 { &hf_opa_SMInfo_SM_Key
, {
10371 "SM_Key", "opa.sminfo.sm_key",
10372 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10374 { &hf_opa_SMInfo_ActCount
, {
10375 "ActCount", "opa.sminfo.actcount",
10376 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10378 { &hf_opa_SMInfo_ElapsedTime
, {
10379 "ElapsedTime", "opa.sminfo.elapsedtime",
10380 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10382 { &hf_opa_SMInfo_Priority
, {
10383 "Priority", "opa.sminfo.priority",
10384 FT_UINT16
, BASE_HEX
, NULL
, 0xF000, NULL
, HFILL
}
10386 { &hf_opa_SMInfo_ElevatedPriority
, {
10387 "ElevatedPriority", "opa.sminfo.elevatedpriority",
10388 FT_UINT16
, BASE_HEX
, NULL
, 0x0F00, NULL
, HFILL
}
10390 { &hf_opa_SMInfo_InitialPriority
, {
10391 "InitialPriority", "opa.sminfo.initialpriority",
10392 FT_UINT16
, BASE_HEX
, NULL
, 0x00F0, NULL
, HFILL
}
10394 { &hf_opa_SMInfo_SMState
, {
10395 "SMState", "opa.sminfo.smstate",
10396 FT_UINT16
, BASE_HEX
, NULL
, 0x000F, NULL
, HFILL
}
10403 { &hf_opa_LedInfo
, {
10404 "Led Info", "opa.ledinfo",
10405 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10407 { &hf_opa_LedInfo_LedMask
, {
10408 "LedMask", "opa.ledinfo.ledmask",
10409 FT_BOOLEAN
, 32, NULL
, 0x80000000, NULL
, HFILL
}
10411 { &hf_opa_LedInfo_reserved
, {
10412 "Reserved (31 bits)", "opa.ledinfo.reserved",
10413 FT_UINT32
, BASE_HEX
, NULL
, 0x7FFFFFFF, NULL
, HFILL
}
10420 { &hf_opa_CableInfo
, {
10421 "Cable Info", "opa.cableinfo",
10422 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10424 { &hf_opa_CableInfo_Data
, {
10425 "Data", "opa.cableinfo.data",
10426 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10428 { &hf_opa_CableInfo_DataStream
, {
10429 "Data", "opa.cableinfo.datastream",
10430 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10437 { &hf_opa_Aggregate
, {
10438 "Aggregate", "opa.aggregate",
10439 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10441 { &hf_opa_Aggregate_AttributeID
, {
10442 "Attribute ID", "opa.aggregate.attrid",
10443 FT_UINT16
, BASE_HEX
, VALS(SUBM_Attributes
), 0x0, NULL
, HFILL
}
10445 { &hf_opa_Aggregate_Error
, {
10446 "Error", "opa.aggregate.error",
10447 FT_BOOLEAN
, 16, NULL
, 0x8000, NULL
, HFILL
}
10449 { &hf_opa_Aggregate_RequestLength
, {
10450 "Request Length", "opa.aggregate.requestlength",
10451 FT_UINT16
, BASE_DEC
, NULL
, 0x007F, NULL
, HFILL
}
10454 /*********************
10455 * BufferControlTable *
10456 **********************/
10458 { &hf_opa_BufferControlTable
, {
10459 "Buffer Control Table", "opa.buffercontroltable",
10460 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10462 { &hf_opa_BufferControlTable_TxOverallSharedLimit
, {
10463 "Tx Overall Shared Limit", "opa.buffercontroltable.txoverallsharedlimit",
10464 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10466 { &hf_opa_BufferControlTable_TxDedicatedLimit
, {
10467 "Tx Dedicated Limit", "opa.buffercontroltable.txdedicatedlimit",
10468 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10470 { &hf_opa_BufferControlTable_TxSharedLimit
, {
10471 "Tx Shared Limit", "opa.buffercontroltable.txsharedlimit",
10472 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10474 /*******************
10475 * FabricInfoRecord *
10476 ********************/
10478 { &hf_opa_FabricInfoRecord
, {
10479 "Fabric Info Record", "opa.fabricinforecord",
10480 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10482 { &hf_opa_FabricInfoRecord_NumHFIs
, {
10483 "Num HFIs", "opa.fabricinforecord.numhfis",
10484 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10486 { &hf_opa_FabricInfoRecord_NumSwitches
, {
10487 "Num Switches", "opa.fabricinforecord.numswitches",
10488 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10490 { &hf_opa_FabricInfoRecord_NumInternalHFILinks
, {
10491 "Num Internal HFI Links", "opa.fabricinforecord.numinternalhfilinks",
10492 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10494 { &hf_opa_FabricInfoRecord_NumExternalHFILinks
, {
10495 "Num External HFI Links", "opa.fabricinforecord.numexternalhfilinks",
10496 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10498 { &hf_opa_FabricInfoRecord_NumInternalISLs
, {
10499 "Num Internal ISLs", "opa.fabricinforecord.numinternalisls",
10500 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10502 { &hf_opa_FabricInfoRecord_NumExternalISLs
, {
10503 "Num External ISLs", "opa.fabricinforecord.numexternalisls",
10504 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10506 { &hf_opa_FabricInfoRecord_NumDegradedHFILinks
, {
10507 "Num Degraded HFI Links", "opa.fabricinforecord.numdegradedhfilinks",
10508 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10510 { &hf_opa_FabricInfoRecord_NumDegradedISLs
, {
10511 "Num Degraded ISLs", "opa.fabricinforecord.numdegradedisls",
10512 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10514 { &hf_opa_FabricInfoRecord_NumOmittedHFILinks
, {
10515 "Num Omitted HFI Links", "opa.fabricinforecord.numomittedhfilinks",
10516 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10518 { &hf_opa_FabricInfoRecord_NumOmittedISLs
, {
10519 "Num Omitted ISLs", "opa.fabricinforecord.numomittedisls",
10520 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10522 { &hf_opa_FabricInfoRecord_Reserved
, {
10523 "Reserved (92 Bytes)", "opa.fabricinforecord.reserved",
10524 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10529 ******************/
10531 { &hf_opa_CongestionInfo
, {
10532 "Congestion Info", "opa.congestioninfo",
10533 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10535 { &hf_opa_CongestionInfo_CongestionInfo
, {
10536 "Congestion Info", "opa.congestioninfo.congestioninfo",
10537 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10539 { &hf_opa_CongestionInfo_ControlTableCap
, {
10540 "Control Table Cap", "opa.congestioninfo.controltablecap",
10541 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10543 { &hf_opa_CongestionInfo_CongestionLogLength
, {
10544 "Congestion Log Length", "opa.congestioninfo.congestionloglength",
10545 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10548 /***********************
10549 * SwitchCongestionLog *
10550 ***********************/
10552 { &hf_opa_SwitchCongestionLog
, {
10553 "Switch Congestion Log", "opa.switchcongestionlog",
10554 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10556 { &hf_opa_SwitchCongestionLog_LogType
, {
10557 "Log Type", "opa.switchcongestionlog.logtype",
10558 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10560 { &hf_opa_SwitchCongestionLog_CongestionFlags
, {
10561 "Congestion Flags", "opa.switchcongestionlog.congestionflags",
10562 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10564 { &hf_opa_SwitchCongestionLog_LogEventsCounter
, {
10565 "Log Events Counter", "opa.switchcongestionlog.logeventscounter",
10566 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10568 { &hf_opa_SwitchCongestionLog_CurrentTimeStamp
, {
10569 "Current Time Stamp", "opa.switchcongestionlog.currenttimestamp",
10570 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10572 { &hf_opa_SwitchCongestionLog_PortMap
, {
10573 "Port Map", "opa.switchcongestionlog.portmap",
10574 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
10576 { &hf_opa_SwitchCongestionLog_SLID
, {
10577 "SLID", "opa.switchcongestionlog.slid",
10578 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10580 { &hf_opa_SwitchCongestionLog_DLID
, {
10581 "DLID", "opa.switchcongestionlog.dlid",
10582 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10584 { &hf_opa_SwitchCongestionLog_SC
, {
10585 "SC", "opa.switchcongestionlog.sc",
10586 FT_UINT8
, BASE_HEX
, NULL
, 0xF8, NULL
, HFILL
}
10588 { &hf_opa_SwitchCongestionLog_reserved
, {
10589 "Reserved (3 bits)", "opa.switchcongestionlog.reserved",
10590 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
10592 { &hf_opa_SwitchCongestionLog_TimeStamp
, {
10593 "Time Stamp", "opa.switchcongestionlog.timestamp",
10594 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10597 /***************************
10598 * SwitchCongestionSetting *
10599 ***************************/
10601 { &hf_opa_SwitchCongestionSetting
, {
10602 "Switch Congestion Setting", "opa.switchcongestionsetting",
10603 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10605 { &hf_opa_SwitchCongestionSetting_Control_Map
, {
10606 "Control Map", "opa.switchcongestionsetting.controlmap",
10607 FT_UINT32
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_swcongestionsetting_controlmap
), 0x0, NULL
, HFILL
}
10609 { &hf_opa_SwitchCongestionSetting_Victim_Mask
, {
10610 "Victim Mask", "opa.switchcongestionsetting.victimmask",
10611 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
10613 { &hf_opa_SwitchCongestionSetting_Credit_Mask
, {
10614 "Credit Mask", "opa.switchcongestionsetting.creditmask",
10615 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
10617 { &hf_opa_SwitchCongestionSetting_Threshold
, {
10618 "Threshold", "opa.switchcongestionsetting.threshold",
10619 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
10621 { &hf_opa_SwitchCongestionSetting_reserved1
, {
10622 "Reserved (4 bits)", "opa.switchcongestionsetting.reserved1",
10623 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
10625 { &hf_opa_SwitchCongestionSetting_Packet_Size
, {
10626 "Packet Size", "opa.switchcongestionsetting.packetsize",
10627 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10629 { &hf_opa_SwitchCongestionSetting_CS_Threshold
, {
10630 "CS Threshold", "opa.switchcongestionsetting.csthreshold",
10631 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
10633 { &hf_opa_SwitchCongestionSetting_reserved2
, {
10634 "Reserved (4 bits)", "opa.switchcongestionsetting.reserved2",
10635 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
10637 { &hf_opa_SwitchCongestionSetting_CS_ReturnDelay
, {
10638 "CS ReturnDelay", "opa.switchcongestionsetting.csreturndelay",
10639 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10641 { &hf_opa_SwitchCongestionSetting_Marking_Rate
, {
10642 "Marking Rate", "opa.switchcongestionsetting.markingrate",
10643 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10646 /*******************************
10647 * SwitchPortCongestionSetting *
10648 *******************************/
10650 { &hf_opa_SwitchPortCongestionSetting
, {
10651 "Switch Port Congestion Setting", "opa.switchportcongestionsetting",
10652 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10654 { &hf_opa_SwitchPortCongestionSetting_Valid
, {
10655 "Valid", "opa.switchportcongestionsetting.valid",
10656 FT_BOOLEAN
, 8, TFS(&tfs_valid_invalid
), 0x80, NULL
, HFILL
}
10658 { &hf_opa_SwitchPortCongestionSetting_Control_Type
, {
10659 "Control Type", "opa.switchportcongestionsetting.controltype",
10660 FT_BOOLEAN
, 8, TFS(&tfs_SwPortCongSetting_CtrlType
), 0x40, NULL
, HFILL
}
10662 { &hf_opa_SwitchPortCongestionSetting_reserved
, {
10663 "Reserved (2 bits)", "opa.switchportcongestionsetting.reserved",
10664 FT_UINT8
, BASE_HEX
, NULL
, 0x30, NULL
, HFILL
}
10666 { &hf_opa_SwitchPortCongestionSetting_Threshold
, {
10667 "Threshold", "opa.switchportcongestionsetting.threshold",
10668 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
10670 { &hf_opa_SwitchPortCongestionSetting_Packet_Size
, {
10671 "Packet Size", "opa.switchportcongestionsetting.packetsize",
10672 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10674 { &hf_opa_SwitchPortCongestionSetting_Marking_Rate
, {
10675 "Marking Rate", "opa.switchportcongestionsetting.markingrate",
10676 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10679 /********************
10680 * HFICongestionLog *
10681 ********************/
10683 { &hf_opa_HFICongestionLog
, {
10684 "HFI Congestion Log", "opa.hficongestionlog",
10685 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10687 { &hf_opa_HFICongestionLog_LogType
, {
10688 "Log Type", "opa.hficongestionsetting.logtype",
10689 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10691 { &hf_opa_HFICongestionLog_CongestionFlags
, {
10692 "Congestion Flags", "opa.hficongestionsetting.congestionflags",
10693 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10695 { &hf_opa_HFICongestionLog_ThresholdEventCounter
, {
10696 "Threshold Event Counter", "opa.hficongestionsetting.thresholdeventcounter",
10697 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10699 { &hf_opa_HFICongestionLog_CurrentTimeStamp
, {
10700 "Current Time Stamp", "opa.hficongestionsetting.currenttimestamp",
10701 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10703 { &hf_opa_HFICongestionLog_ThresholdCongestionEventMap
, {
10704 "Threshold Congestion Event Map", "opa.hficongestionsetting.thresholdcongestioneventmap",
10705 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10707 { &hf_opa_HFICongestionLog_Local_QP_CN_Entry
, {
10708 "Local QP CN Entry", "opa.hficongestionsetting.localqpcnentry",
10709 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10711 { &hf_opa_HFICongestionLog_Remote_QP_Number_CN_Entry
, {
10712 "Remote QP Number CN Entry", "opa.hficongestionsetting.remoteqpnumbercnentry",
10713 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10715 { &hf_opa_HFICongestionLog_SL_CN_Entry
, {
10716 "Threshold Congestion Event Map", "opa.hficongestionsetting.thresholdcongestioneventmap",
10717 FT_UINT8
, BASE_HEX
, NULL
, 0xF8, NULL
, HFILL
}
10719 { &hf_opa_HFICongestionLog_Service_Type_CN_Entry
, {
10720 "Service Type CN Entry", "opa.hficongestionsetting.servicetypecnentry",
10721 FT_UINT8
, BASE_HEX
, NULL
, 0x0E, NULL
, HFILL
}
10723 { &hf_opa_HFICongestionLog_Remote_LID_CN_Entry
, {
10724 "LID CN Entry", "opa.hficongestionsetting.lidcnentry",
10725 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10727 { &hf_opa_HFICongestionLog_TimeStamp_CN_Entry
, {
10728 "TimeStamp CN Entry", "opa.hficongestionsetting.timestampcnentry",
10729 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10732 /************************
10733 * HFICongestionSetting *
10734 ************************/
10736 { &hf_opa_HFICongestionSetting
, {
10737 "HFI Congestion Setting", "opa.hficongestionsetting",
10738 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10740 { &hf_opa_HFICongestionSetting_Control_Map
, {
10741 "Control Map", "opa.hficongestionsetting.controlmap",
10742 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10744 { &hf_opa_HFICongestionSetting_Port_Control
, {
10745 "Port Control", "opa.hficongestionsetting.portcontrol",
10746 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10748 { &hf_opa_HFICongestionSetting_CCTI_Increase
, {
10749 "CCTI Increase", "opa.hficongestionsetting.cctiincrease",
10750 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10752 { &hf_opa_HFICongestionSetting_CCTI_Timer
, {
10753 "CCTI Timer", "opa.hficongestionsetting.cctitimer",
10754 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10756 { &hf_opa_HFICongestionSetting_TriggerThreshold
, {
10757 "Trigger Threshold", "opa.hficongestionsetting.triggerthreshold",
10758 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10760 { &hf_opa_HFICongestionSetting_CCTI_Min
, {
10761 "CCTI Min", "opa.hficongestionsetting.cctimin",
10762 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10765 /*****************************
10766 * HFICongestionControlTable *
10767 *****************************/
10769 { &hf_opa_HFICongestionControlTable
, {
10770 "HFI Congestion Control Table", "opa.hficongestioncontroltable",
10771 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10773 { &hf_opa_HFICongestionControlTable_CCTI_Limit
, {
10774 "CCTI Limit", "opa.hficongestioncontroltable.cctilimit",
10775 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10777 { &hf_opa_HFICongestionControlTable_CCT_Shift
, {
10778 "CCT Shift", "opa.hficongestioncontroltable.cctshift",
10779 FT_UINT16
, BASE_HEX
, NULL
, 0xC000, NULL
, HFILL
}
10781 { &hf_opa_HFICongestionControlTable_CCT_Multiplier
, {
10782 "CCT Multiplier", "opa.hficongestioncontroltable.cctmultiplier",
10783 FT_UINT16
, BASE_HEX
, NULL
, 0x3FFF, NULL
, HFILL
}
10787 { &hf_opa_PortInfoRecord_LinkDownReason_NeighborLinkDownReason
, {
10788 "Neighbor Link Down Reason", "opa.portinforecord.linkdownreason.neighborlinkdownreason",
10789 FT_UINT8
, BASE_HEX
, VALS(LinkDownReason
), 0x0, NULL
, HFILL
}
10791 { &hf_opa_PortInfoRecord_LinkDownReason_LinkDownReason
, {
10792 "Link Down Reason", "opa.portinforecord.linkdownreason.linkdownreason",
10793 FT_UINT8
, BASE_HEX
, VALS(LinkDownReason
), 0x0, NULL
, HFILL
}
10795 { &hf_opa_PortInfoRecord_LinkDownReason_Timestamp
, {
10796 "Time Stamp", "opa.portinforecord.linkdownreason.timestamp",
10797 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10800 /* InformInfoRecord */
10802 { &hf_opa_InformInfo
, {
10803 "Inform Info", "opa.informinfo",
10804 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10806 { &hf_opa_InformInfo_GID
, {
10807 "GID", "opa.informinfo.gid",
10808 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10810 { &hf_opa_InformInfo_LIDRangeBegin
, {
10811 "LID Range Begin", "opa.informinfo.lidrangebegin",
10812 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10814 { &hf_opa_InformInfo_LIDRangeEnd
, {
10815 "LID Range End", "opa.informinfo.lidrangeend",
10816 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10818 { &hf_opa_InformInfo_IsGeneric
, {
10819 "Is Generic", "opa.informinfo.isgeneric",
10820 FT_BOOLEAN
, 8, NULL
, 0x01, NULL
, HFILL
}
10822 { &hf_opa_InformInfo_Subscribe
, {
10823 "Subscribe", "opa.informinfo.subscribe",
10824 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10826 { &hf_opa_InformInfo_Type
, {
10827 "Type", "opa.informinfo.type",
10828 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10830 { &hf_opa_InformInfo_TrapNumber
, {
10831 "Trap Number", "opa.informinfo.trapnumber",
10832 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10834 { &hf_opa_InformInfo_DeviceID
, {
10835 "Device ID", "opa.informinfo.deviceid",
10836 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10838 { &hf_opa_InformInfo_QPN
, {
10839 "QPN", "opa.informinfo.qpn",
10840 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10842 { &hf_opa_InformInfo_reserved
, {
10843 "Reserved (3 bits)", "opa.informinfo.reserved",
10844 FT_UINT8
, BASE_HEX
, NULL
, 0xE0, NULL
, HFILL
}
10846 { &hf_opa_InformInfo_RespTimeValue
, {
10847 "Resp Time Value", "opa.informinfo.resptimevalue",
10848 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
10850 { &hf_opa_InformInfo_ProducerType
, {
10851 "Producer Type", "opa.informinfo.producertype",
10852 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10854 { &hf_opa_InformInfo_VendorID
, {
10855 "Vendor ID", "opa.informinfo.vendorid",
10856 FT_UINT24
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10860 { &hf_opa_LinkRecord
, {
10861 "Link Record", "opa.linkrecord",
10862 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10864 { &hf_opa_LinkRecord_ToPort
, {
10865 "To Port", "opa.linkrecord.toport",
10866 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10868 { &hf_opa_LinkRecord_ToLID
, {
10869 "To LID", "opa.linkrecord.tolid",
10870 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10873 /* ServiceRecord */
10874 { &hf_opa_ServiceRecord
, {
10875 "Service Record", "opa.servicerecord",
10876 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10878 { &hf_opa_ServiceRecord_ServiceLease
, {
10879 "ServiceLease", "opa.servicerecord.servicelease",
10880 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10882 { &hf_opa_ServiceRecord_ServiceKey
, {
10883 "ServiceKey", "opa.servicerecord.servicekey",
10884 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
10886 { &hf_opa_ServiceRecord_ServiceName
, {
10887 "ServiceName", "opa.servicerecord.servicename",
10888 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10890 { &hf_opa_ServiceRecord_ServiceData
, {
10891 "ServiceData", "opa.servicerecord.servicedata",
10892 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
10895 /* ServiceAssociationRecord */
10896 { &hf_opa_ServiceAssociationRecord_ServiceKey
, {
10897 "ServiceKey", "opa.serviceassociationrecord.servicekey",
10898 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
10900 { &hf_opa_ServiceAssociationRecord_ServiceName
, {
10901 "ServiceName", "opa.serviceassociationrecord.servicename",
10902 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10908 { &hf_opa_PathRecord
, {
10909 "Path Record", "opa.pathrecord",
10910 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10912 { &hf_opa_PathRecord_DGID
, {
10913 "DGID", "opa.pathrecord.dgid",
10914 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10916 { &hf_opa_PathRecord_SGID
, {
10917 "SGID", "opa.pathrecord.sgid",
10918 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
10920 { &hf_opa_PathRecord_DLID
, {
10921 "DLID", "opa.pathrecord.dlid",
10922 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10924 { &hf_opa_PathRecord_SLID
, {
10925 "SLID", "opa.pathrecord.slid",
10926 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10928 { &hf_opa_PathRecord_RawTraffic
, {
10929 "Raw Traffic", "opa.pathrecord.rawtraffic",
10930 FT_UINT32
, BASE_HEX
, NULL
, 0x80000000, NULL
, HFILL
}
10932 { &hf_opa_PathRecord_reserved
, {
10933 "Reserved (3 bits)", "opa.pathrecord.reserved",
10934 FT_UINT32
, BASE_HEX
, NULL
, 0x70000000, NULL
, HFILL
}
10936 { &hf_opa_PathRecord_FlowLabel
, {
10937 "Flow Label", "opa.pathrecord.flowlabel",
10938 FT_UINT32
, BASE_HEX
, NULL
, 0x0FFFFF00, NULL
, HFILL
}
10940 { &hf_opa_PathRecord_HopLimit
, {
10941 "Hop Limit", "opa.pathrecord.hoplimit",
10942 FT_UINT32
, BASE_HEX
, NULL
, 0x000000FF, NULL
, HFILL
}
10944 { &hf_opa_PathRecord_TClass
, {
10945 "T Class", "opa.pathrecord.tclass",
10946 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10948 { &hf_opa_PathRecord_Reversible
, {
10949 "Reversible", "opa.pathrecord.reversible",
10950 FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}
10952 { &hf_opa_PathRecord_NumbPath
, {
10953 "Numb Path", "opa.pathrecord.numbpath",
10954 FT_UINT8
, BASE_HEX
, NULL
, 0x7F, NULL
, HFILL
}
10956 { &hf_opa_PathRecord_P_Key
, {
10957 "P_Key", "opa.pathrecord.p_key",
10958 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
10960 { &hf_opa_PathRecord_QosType
, {
10961 "Qos Type", "opa.pathrecord.qostype",
10962 FT_UINT16
, BASE_HEX
, NULL
, 0xC000, NULL
, HFILL
}
10964 { &hf_opa_PathRecord_reserved2
, {
10965 "Reserved (2 bits)", "opa.pathrecord.reserved2",
10966 FT_UINT16
, BASE_HEX
, NULL
, 0x3000, NULL
, HFILL
}
10968 { &hf_opa_PathRecord_QosPriority
, {
10969 "Qos Priority", "opa.pathrecord.qospriority",
10970 FT_UINT16
, BASE_HEX
, NULL
, 0x0FF0, NULL
, HFILL
}
10972 { &hf_opa_PathRecord_SL
, {
10973 "SL", "opa.pathrecord.sl",
10974 FT_UINT16
, BASE_HEX
, NULL
, 0x000F, NULL
, HFILL
}
10976 { &hf_opa_PathRecord_MTUSelector
, {
10977 "MTU Selector", "opa.pathrecord.mtuselector",
10978 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
10980 { &hf_opa_PathRecord_MTU
, {
10981 "MTU", "opa.pathrecord.mtu",
10982 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x3F, NULL
, HFILL
}
10984 { &hf_opa_PathRecord_RateSelector
, {
10985 "Rate Selector", "opa.pathrecord.rateselector",
10986 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
10988 { &hf_opa_PathRecord_Rate
, {
10989 "Rate", "opa.pathrecord.rate",
10990 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
10992 { &hf_opa_PathRecord_PacketLifeTimeSelector
, {
10993 "Packet Life Time Selector", "opa.pathrecord.packetlifetimeselector",
10994 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
10996 { &hf_opa_PathRecord_PacketLifeTime
, {
10997 "Packet Life Time", "opa.pathrecord.packetlifetime",
10998 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
11000 { &hf_opa_PathRecord_Preference
, {
11001 "Preference", "opa.pathrecord.preference",
11002 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11005 /******************
11007 ******************/
11009 { &hf_opa_MCMemberRecord
, {
11010 "MC Member Record", "opa.mcmemberrecord",
11011 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11013 { &hf_opa_MCMemberRecord_Q_Key
, {
11014 "Q_Key", "opa.mcmemberrecord.q_key",
11015 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11017 { &hf_opa_MCMemberRecord_MLID
, {
11018 "MLID", "opa.mcmemberrecord.mlid",
11019 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11021 { &hf_opa_MCMemberRecord_MTUSelector
, {
11022 "MTU Selector", "opa.mcmemberrecord.mtuselector",
11023 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
11025 { &hf_opa_MCMemberRecord_MTU
, {
11026 "MTU", "opa.mcmemberrecord.mtu",
11027 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x3F, NULL
, HFILL
}
11029 { &hf_opa_MCMemberRecord_TClass
, {
11030 "T Class", "opa.mcmemberrecord.tclass",
11031 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11033 { &hf_opa_MCMemberRecord_P_Key
, {
11034 "P_Key", "opa.mcmemberrecord.p_key",
11035 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11037 { &hf_opa_MCMemberRecord_RateSelector
, {
11038 "Rate Selector", "opa.mcmemberrecord.rateselector",
11039 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
11041 { &hf_opa_MCMemberRecord_Rate
, {
11042 "Rate", "opa.mcmemberrecord.rate",
11043 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
11045 { &hf_opa_MCMemberRecord_PacketLifeTimeSelector
, {
11046 "Packet Life Time Selector", "opa.mcmemberrecord.packetlifetimeselector",
11047 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
11049 { &hf_opa_MCMemberRecord_PacketLifeTime
, {
11050 "Packet Life Time", "opa.mcmemberrecord.packetlifetime",
11051 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
11053 { &hf_opa_MCMemberRecord_SL
, {
11054 "SL", "opa.mcmemberrecord.sl",
11055 FT_UINT32
, BASE_HEX
, NULL
, 0xF8000000, NULL
, HFILL
}
11057 { &hf_opa_MCMemberRecord_reserved
, {
11058 "Reserved (19 bits)", "opa.mcmemberrecord.reserved",
11059 FT_UINT32
, BASE_HEX
, NULL
, 0x07FFFF00, NULL
, HFILL
}
11061 { &hf_opa_MCMemberRecord_HopLimit
, {
11062 "Hop Limit", "opa.mcmemberrecord.hoplimit",
11063 FT_UINT32
, BASE_HEX
, NULL
, 0x000000FF, NULL
, HFILL
}
11065 { &hf_opa_MCMemberRecord_Scope
, {
11066 "Scope", "opa.mcmemberrecord.scope",
11067 FT_UINT8
, BASE_HEX
, NULL
, 0xF0, NULL
, HFILL
}
11069 { &hf_opa_MCMemberRecord_reserved2
, {
11070 "Reserved (1 bit)", "opa.mcmemberrecord.reserved2",
11071 FT_UINT8
, BASE_HEX
, NULL
, 0x08, NULL
, HFILL
}
11073 { &hf_opa_MCMemberRecord_JoinSendOnlyMember
, {
11074 "Join Send Only Member", "opa.mcmemberrecord.joinsendonlymember",
11075 FT_UINT8
, BASE_HEX
, NULL
, 0x04, NULL
, HFILL
}
11077 { &hf_opa_MCMemberRecord_JoinNonMember
, {
11078 "Join Non Member", "opa.mcmemberrecord.joinnonmember",
11079 FT_UINT8
, BASE_HEX
, NULL
, 0x04, NULL
, HFILL
}
11081 { &hf_opa_MCMemberRecord_JoinFullMember
, {
11082 "Join Full Member", "opa.mcmemberrecord.joinfullmember",
11083 FT_UINT8
, BASE_HEX
, NULL
, 0x04, NULL
, HFILL
}
11085 { &hf_opa_MCMemberRecord_ProxyJoin
, {
11086 "Proxy Join", "opa.mcmemberrecord.proxyjoin",
11087 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
11089 { &hf_opa_MCMemberRecord_reserved3
, {
11090 "Reserved (7 bits)", "opa.mcmemberrecord.reserved3",
11091 FT_UINT8
, BASE_HEX
, NULL
, 0x7F, NULL
, HFILL
}
11095 { &hf_opa_TraceRecord
, {
11096 "Trace Record", "opa.tracerecord",
11097 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11099 { &hf_opa_TraceRecord_IDGeneration
, {
11100 "ID Generation", "opa.tracerecord.idgeneration",
11101 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11103 { &hf_opa_TraceRecord_NodeType
, {
11104 "Node Type", "opa.tracerecord.nodetype",
11105 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11107 { &hf_opa_TraceRecord_NodeID
, {
11108 "Node ID", "opa.tracerecord.nodeid",
11109 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11111 { &hf_opa_TraceRecord_ChassisID
, {
11112 "Chassis ID", "opa.tracerecord.chassisid",
11113 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11115 { &hf_opa_TraceRecord_EntryPortID
, {
11116 "Entry Port ID", "opa.tracerecord.entryportid",
11117 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11119 { &hf_opa_TraceRecord_ExitPortID
, {
11120 "Exit Port ID", "opa.tracerecord.exitportid",
11121 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11123 { &hf_opa_TraceRecord_EntryPort
, {
11124 "Entry Port", "opa.tracerecord.entryport",
11125 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11127 { &hf_opa_TraceRecord_ExitPort
, {
11128 "Exit Port", "opa.tracerecord.exitport",
11129 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11132 /*******************
11133 * MultiPathRecord *
11134 *******************/
11136 { &hf_opa_MultiPathRecord
, {
11137 "Multi Path Record", "opa.multipathrecord",
11138 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11140 { &hf_opa_MultiPathRecord_reserved
, {
11141 "Reserved (4 bits)", "opa.multipathrecord.reserved",
11142 FT_UINT32
, BASE_HEX
, NULL
, 0xF0000000, NULL
, HFILL
}
11144 { &hf_opa_MultiPathRecord_FlowLabel
, {
11145 "Flow Label", "opa.multipathrecord.flowlabel",
11146 FT_UINT32
, BASE_HEX
, NULL
, 0x0FFFFF00, NULL
, HFILL
}
11148 { &hf_opa_MultiPathRecord_HopLimit
, {
11149 "Hop Limit", "opa.multipathrecord.hoplimit",
11150 FT_UINT32
, BASE_HEX
, NULL
, 0x000000FF, NULL
, HFILL
}
11152 { &hf_opa_MultiPathRecord_TClass
, {
11153 "T Class", "opa.multipathrecord.tclass",
11154 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11156 { &hf_opa_MultiPathRecord_Reversible
, {
11157 "Reversible", "opa.multipathrecord.reversible",
11158 FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}
11160 { &hf_opa_MultiPathRecord_NumbPath
, {
11161 "Numb Path", "opa.multipathrecord.numbpath",
11162 FT_UINT8
, BASE_HEX
, NULL
, 0x7F, NULL
, HFILL
}
11164 { &hf_opa_MultiPathRecord_P_Key
, {
11165 "P_Key", "opa.multipathrecord.p_key",
11166 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11168 { &hf_opa_MultiPathRecord_QoSType
, {
11169 "QoS Type", "opa.multipathrecord.qostype",
11170 FT_UINT16
, BASE_HEX
, NULL
, 0xC000, NULL
, HFILL
}
11172 { &hf_opa_MultiPathRecord_QoSPriority
, {
11173 "QoS Priority", "opa.multipathrecord.qospriority",
11174 FT_UINT16
, BASE_HEX
, NULL
, 0x3FC0, NULL
, HFILL
}
11176 { &hf_opa_MultiPathRecord_reserved2
, {
11177 "Reserved (1 bit)", "opa.multipathrecord.reserved2",
11178 FT_UINT16
, BASE_HEX
, NULL
, 0x0020, NULL
, HFILL
}
11180 { &hf_opa_MultiPathRecord_SL
, {
11181 "SL", "opa.multipathrecord.sl",
11182 FT_UINT16
, BASE_HEX
, NULL
, 0x001F, NULL
, HFILL
}
11184 { &hf_opa_MultiPathRecord_MTUSelector
, {
11185 "MTU Selector", "opa.multipathrecord.mtuselector",
11186 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
11188 { &hf_opa_MultiPathRecord_MTU
, {
11189 "MTU", "opa.multipathrecord.mtu",
11190 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x3F, NULL
, HFILL
}
11192 { &hf_opa_MultiPathRecord_RateSelector
, {
11193 "Rate Selector", "opa.multipathrecord.rateselector",
11194 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
11196 { &hf_opa_MultiPathRecord_Rate
, {
11197 "Rate", "opa.multipathrecord.rate",
11198 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
11200 { &hf_opa_MultiPathRecord_PacketLifeTimeSelector
, {
11201 "Packet Life Time Selector", "opa.multipathrecord.packetlifetimeselector",
11202 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
11204 { &hf_opa_MultiPathRecord_PacketLifeTime
, {
11205 "Packet Life Time", "opa.multipathrecord.packetlifetime",
11206 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
11208 { &hf_opa_MultiPathRecord_IndependenceSelector
, {
11209 "Independence Selector", "opa.multipathrecord.independenceselector",
11210 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
11212 { &hf_opa_MultiPathRecord_SGIDScope
, {
11213 "SGID Scope", "opa.multipathrecord.sgidscope",
11214 FT_UINT8
, BASE_HEX
, NULL
, 0x38, NULL
, HFILL
}
11216 { &hf_opa_MultiPathRecord_DGIDScope
, {
11217 "DGID Scope", "opa.multipathrecord.dgidscope",
11218 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
11220 { &hf_opa_MultiPathRecord_SGIDCount
, {
11221 "SGID Count", "opa.multipathrecord.sgidcount",
11222 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11224 { &hf_opa_MultiPathRecord_DGIDCount
, {
11225 "DGID Count", "opa.multipathrecord.dgidcount",
11226 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11228 { &hf_opa_MultiPathRecord_SGID
, {
11229 "Source GID", "opa.multipathrecord.sgid",
11230 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11232 { &hf_opa_MultiPathRecord_DGID
, {
11233 "Dest GID", "opa.multipathrecord.dgid",
11234 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11236 { &hf_opa_MultiPathRecord_L2_8B
, {
11237 "8B Support", "opa.multipathrecord.l2_8b",
11238 FT_BOOLEAN
, 8, NULL
, 0x80, NULL
, HFILL
}
11240 { &hf_opa_MultiPathRecord_L2_10B
, {
11241 "10B Support", "opa.multipathrecord.l2_10b",
11242 FT_BOOLEAN
, 8, NULL
, 0x40, NULL
, HFILL
}
11244 { &hf_opa_MultiPathRecord_L2_9B
, {
11245 "9B Support", "opa.multipathrecord.l2_9b",
11246 FT_BOOLEAN
, 8, NULL
, 0x20, NULL
, HFILL
}
11248 { &hf_opa_MultiPathRecord_L2_16B
, {
11249 "16B Support", "opa.multipathrecord.l2_16b",
11250 FT_BOOLEAN
, 8, NULL
, 0x10, NULL
, HFILL
}
11252 { &hf_opa_MultiPathRecord_reserved3
, {
11253 "Reserved (4 bits)", "opa.multipathrecord.reserved3",
11254 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
11258 { &hf_opa_MultiPathRecord_ServiceID
, {
11259 "Service ID", "opa.multipathrecord.serviceid",
11260 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11262 { &hf_opa_MultiPathRecord_SubnetPrefix
, {
11263 "SubnetPrefix", "opa.multipathrecord.subnetprefix",
11264 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11266 { &hf_opa_MultiPathRecord_SGUIDScope
, {
11267 "SGUIDScope", "opa.multipathrecord.sguidscope",
11268 FT_UINT8
, BASE_HEX
, NULL
, 0x38, NULL
, HFILL
}
11270 { &hf_opa_MultiPathRecord_DGUIDScope
, {
11271 "DGUIDScope", "opa.multipathrecord.dguidscope",
11272 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
11274 { &hf_opa_MultiPathRecord_SGUIDCount
, {
11275 "SGUIDCount", "opa.multipathrecord.sguidcount",
11276 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11278 { &hf_opa_MultiPathRecord_DGUIDCount
, {
11279 "DGUIDCount", "opa.multipathrecord.dguidcount",
11280 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11282 { &hf_opa_MultiPathRecord_SGUID
, {
11283 "Source GUID", "opa.multipathrecord.sguid",
11284 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11286 { &hf_opa_MultiPathRecord_DGUID
, {
11287 "Dest GUID", "opa.multipathrecord.dguid",
11288 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11291 { &hf_opa_MultiPathRecord_SLIDCount
, {
11292 "SLIDCount", "opa.multipathrecord.slidcount",
11293 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11295 { &hf_opa_MultiPathRecord_DLIDCount
, {
11296 "DLIDCount", "opa.multipathrecord.dlidcount",
11297 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11299 { &hf_opa_MultiPathRecord_SLID
, {
11300 "Source LID", "opa.multipathrecord.slid",
11301 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11303 { &hf_opa_MultiPathRecord_DLID
, {
11304 "Dest LID", "opa.multipathrecord.dlid",
11305 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11308 /*******************
11309 * CableInfoRecord *
11310 *******************/
11312 { &hf_opa_CableInfoRecord
, {
11313 "Cable Info Record", "opa.cableinforecord",
11314 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11316 { &hf_opa_CableInfoRecord_Lid
, {
11317 "LID", "opa.cableinforecord.lid",
11318 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11320 { &hf_opa_CableInfoRecord_Port
, {
11321 "Port", "opa.cableinforecord.port",
11322 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11324 { &hf_opa_CableInfoRecord_Length
, {
11325 "Length", "opa.cableinforecord.length",
11326 FT_UINT8
, BASE_DEC
, NULL
, 0xFE, NULL
, HFILL
}
11328 { &hf_opa_CableInfoRecord_reserved
, {
11329 "Reserved (1 bit)", "opa.cableinforecord.reserved",
11330 FT_UINT8
, BASE_HEX
, NULL
, 0x01, NULL
, HFILL
}
11332 { &hf_opa_CableInfoRecord_Address
, {
11333 "Address", "opa.cableinforecord.address",
11334 FT_UINT16
, BASE_HEX
, NULL
, 0xFFF0, NULL
, HFILL
}
11336 { &hf_opa_CableInfoRecord_PortType
, {
11337 "PortType", "opa.cableinforecord.porttype",
11338 FT_UINT16
, BASE_HEX
, VALS(PortType
), 0x000F, NULL
, HFILL
}
11340 { &hf_opa_CableInfoRecord_Data
, {
11341 "Data", "opa.cableinforecord.data",
11342 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
11349 { &hf_opa_PortStatus
, {
11350 "Port Status", "opa.pm.portstatus",
11351 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11353 { &hf_opa_PortStatus_PortNumber
, {
11354 "Port Number", "opa.pm.portstatus.portnumber",
11355 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11357 { &hf_opa_PortStatus_VLSelectMask
, {
11358 "VL Select Mask", "opa.pm.portstatus.vlselectmask",
11359 FT_UINT32
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_32b_mask
), 0x0, NULL
, HFILL
}
11361 { &hf_opa_PortStatus_PortXmitData
, {
11362 "PortXmitData", "opa.pm.portstatus.portxmitdata",
11363 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11365 { &hf_opa_PortStatus_PortRcvData
, {
11366 "PortRcvData", "opa.pm.portstatus.portrcvdata",
11367 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11369 { &hf_opa_PortStatus_PortXmitPkts
, {
11370 "PortXmitPkts", "opa.pm.portstatus.portxmitpkts",
11371 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11373 { &hf_opa_PortStatus_PortRcvPkts
, {
11374 "PortRcvPkts", "opa.pm.portstatus.portrcvpkts",
11375 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11377 { &hf_opa_PortStatus_PortMulticastXmitPkts
, {
11378 "PortMulticastXmitPkts", "opa.pm.portstatus.portmulticastxmitpkts",
11379 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11381 { &hf_opa_PortStatus_PortMulticastRcvPkts
, {
11382 "PortMulticastRcvPkts", "opa.pm.portstatus.portmulticastrcvpkts",
11383 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11385 { &hf_opa_PortStatus_PortXmitWait
, {
11386 "PortXmitWait", "opa.pm.portstatus.portxmitwait",
11387 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11389 { &hf_opa_PortStatus_SwPortCongestion
, {
11390 "SwPortCongestion", "opa.pm.portstatus.swportcongestion",
11391 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11393 { &hf_opa_PortStatus_PortRcvFECN
, {
11394 "PortRcvFECN", "opa.pm.portstatus.portrecvfecn",
11395 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11397 { &hf_opa_PortStatus_PortRcvBECN
, {
11398 "PortRcvBECN", "opa.pm.portstatus.portrecvbecn",
11399 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11401 { &hf_opa_PortStatus_PortXmitTimeCong
, {
11402 "PortXmitTimeCong", "opa.pm.portstatus.portxmittimecong",
11403 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11405 { &hf_opa_PortStatus_PortXmitWastedBW
, {
11406 "PortXmitWastedBW", "opa.pm.portstatus.portxmitwastedbw",
11407 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11409 { &hf_opa_PortStatus_PortXmitWaitData
, {
11410 "PortXmitWaitData", "opa.pm.portstatus.portxmitwaitdata",
11411 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11413 { &hf_opa_PortStatus_PortRcvBubble
, {
11414 "PortRcvBubble", "opa.pm.portstatus.portrcvbubble",
11415 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11417 { &hf_opa_PortStatus_PortMarkFECN
, {
11418 "PortMarkFECN", "opa.pm.portstatus.portmarkfecn",
11419 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11421 { &hf_opa_PortStatus_PortRcvConstraintErrors
, {
11422 "PortRcvConstraintErrors", "opa.pm.portstatus.portrcvconstrainterrors",
11423 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11425 { &hf_opa_PortStatus_PortRcvSwitchRelayErrors
, {
11426 "PortRcvSwitchRelayErrors", "opa.pm.portstatus.portrcvswitchrelayerrors",
11427 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11429 { &hf_opa_PortStatus_PortXmitDiscards
, {
11430 "PortXmitDiscards", "opa.pm.portstatus.portxmitdiscards",
11431 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11433 { &hf_opa_PortStatus_PortXmitConstraintErrors
, {
11434 "PortXmitConstraintErrors", "opa.pm.portstatus.portxmitconstrainterrors",
11435 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11437 { &hf_opa_PortStatus_PortRcvRemotePhysicalErrors
, {
11438 "PortRcvRemotePhysicalErrors", "opa.pm.portstatus.portrcvremotephysicalerrors",
11439 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11441 { &hf_opa_PortStatus_LocalLinkIntegrityErrors
, {
11442 "LocalLinkIntegrityErrors", "opa.pm.portstatus.locallinkintegrityerrors",
11443 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11445 { &hf_opa_PortStatus_PortRcvErrors
, {
11446 "PortRcvErrors", "opa.pm.portstatus.portrcverrors",
11447 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11449 { &hf_opa_PortStatus_ExcessiveBufferOverruns
, {
11450 "ExcessiveBufferOverruns", "opa.pm.portstatus.excessivebufferoverruns",
11451 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11453 { &hf_opa_PortStatus_FMConfigErrors
, {
11454 "FMConfigErrors", "opa.pm.portstatus.fmconfigerrors",
11455 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11457 { &hf_opa_PortStatus_LinkErrorRecovery
, {
11458 "LinkErrorRecovery", "opa.pm.portstatus.linkerrorrecovery",
11459 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11461 { &hf_opa_PortStatus_LinkDowned
, {
11462 "LinkDowned", "opa.pm.portstatus.linkdowned",
11463 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11465 { &hf_opa_PortStatus_UncorrectableErrors
, {
11466 "UncorrectableErrors", "opa.pm.portstatus.uncorrectableerrors",
11467 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11469 { &hf_opa_PortStatus_reserved
, {
11470 "Reserved", "opa.pm.portstatus.reserved",
11471 FT_UINT8
, BASE_DEC
, NULL
, 0xF8, NULL
, HFILL
}
11473 { &hf_opa_PortStatus_LinkQualityIndicator
, {
11474 "LinkQualityIndicator", "opa.pm.portstatus.linkqualityindicator",
11475 FT_UINT8
, BASE_DEC
, VALS(LinkQualityIndicator
), 0x07, NULL
, HFILL
}
11477 { &hf_opa_PortStatus_PortVLXmitData
, {
11478 "PortVLXmitData", "opa.pm.portstatus.vl.xmitdata",
11479 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11481 { &hf_opa_PortStatus_PortVLRcvData
, {
11482 "PortVLRcvData", "opa.pm.portstatus.vl.rcvdata",
11483 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11485 { &hf_opa_PortStatus_PortVLXmitPkts
, {
11486 "PortVLXmitPkts", "opa.pm.portstatus.vl.xmitpkts",
11487 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11489 { &hf_opa_PortStatus_PortVLRcvPkts
, {
11490 "PortVLRcvPkts", "opa.pm.portstatus.vl.rcvpkts",
11491 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11493 { &hf_opa_PortStatus_PortVLXmitWait
, {
11494 "PortVLXmitWait", "opa.pm.portstatus.vl.xmitwait",
11495 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11497 { &hf_opa_PortStatus_SwPortVLCongestion
, {
11498 "SwPortVLCongestion", "opa.pm.portstatus.vl.swcongestion",
11499 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11501 { &hf_opa_PortStatus_PortVLRcvFECN
, {
11502 "PortVLRcvFECN", "opa.pm.portstatus.vl.rcvfecn",
11503 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11505 { &hf_opa_PortStatus_PortVLRcvBECN
, {
11506 "PortVLRcvBECN", "opa.pm.portstatus.vl.rcvbecn",
11507 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11509 { &hf_opa_PortStatus_PortVLXmitTimeCong
, {
11510 "PortVLXmitTimeCong", "opa.pm.portstatus.vl.xmittimecong",
11511 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11513 { &hf_opa_PortStatus_PortVLXmitWastedBW
, {
11514 "PortVLXmitWastedBW", "opa.pm.portstatus.vl.xmitwastedbw",
11515 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11517 { &hf_opa_PortStatus_PortVLXmitWaitData
, {
11518 "PortVLXmitWaitData", "opa.pm.portstatus.vl.xmitwaitdata",
11519 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11521 { &hf_opa_PortStatus_PortVLRcvBubble
, {
11522 "PortVLRcvBubble", "opa.pm.portstatus.vl.rcvbubble",
11523 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11525 { &hf_opa_PortStatus_PortVLMarkFECN
, {
11526 "PortVLMarkFECN", "opa.pm.portstatus.vl.markfecn",
11527 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11529 { &hf_opa_PortStatus_PortVLXmitDiscards
, {
11530 "PortVLXmitDiscards", "opa.pm.portstatus.vl.xmitdiscards",
11531 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11534 /*******************
11535 * ClearPortStatus *
11536 *******************/
11538 { &hf_opa_ClearPortStatus
, {
11539 "Clear Port Status", "opa.pm.clearportstatus",
11540 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11542 { &hf_opa_ClearPortStatus_PortSelectMask
, {
11543 "Port Select Mask", "opa.pm.clearportstatus.portselectmask",
11544 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11546 { &hf_opa_ClearPortStatus_CounterSelectMask
, {
11547 "CounterSelectMask", "opa.pm.clearportstatus.counterselectmask",
11548 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11550 { &hf_opa_ClearPortStatus_PortXmitData
, {
11551 "PortXmitData", "opa.pm.clearportstatus.portxmitdata",
11552 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x80000000, NULL
, HFILL
}
11554 { &hf_opa_ClearPortStatus_PortRcvData
, {
11555 "PortRcvData", "opa.pm.clearportstatus.portrcvdata",
11556 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x40000000, NULL
, HFILL
}
11558 { &hf_opa_ClearPortStatus_PortXmitPkts
, {
11559 "PortXmitPkts", "opa.pm.clearportstatus.portxmitpkts",
11560 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x20000000, NULL
, HFILL
}
11562 { &hf_opa_ClearPortStatus_PortRcvPkts
, {
11563 "PortRcvPkts", "opa.pm.clearportstatus.portrcvpkts",
11564 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x10000000, NULL
, HFILL
}
11566 { &hf_opa_ClearPortStatus_PortMulticastXmitPkts
, {
11567 "PortMulticastXmitPkts", "opa.pm.clearportstatus.portmulticastxmitpkts",
11568 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x08000000, NULL
, HFILL
}
11570 { &hf_opa_ClearPortStatus_PortMulticastRcvPkts
, {
11571 "PortMulticastRcvPkts", "opa.pm.clearportstatus.portmulticastrcvpkts",
11572 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x04000000, NULL
, HFILL
}
11574 { &hf_opa_ClearPortStatus_PortXmitWait
, {
11575 "PortXmitWait", "opa.pm.clearportstatus.portxmitwait",
11576 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x02000000, NULL
, HFILL
}
11578 { &hf_opa_ClearPortStatus_SwPortCongestion
, {
11579 "SwPortCongestion", "opa.pm.clearportstatus.swportcongestion",
11580 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x01000000, NULL
, HFILL
}
11582 { &hf_opa_ClearPortStatus_PortRcvFECN
, {
11583 "PortRcvFECN", "opa.pm.clearportstatus.portrecvfecn",
11584 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00800000, NULL
, HFILL
}
11586 { &hf_opa_ClearPortStatus_PortRcvBECN
, {
11587 "PortRcvBECN", "opa.pm.clearportstatus.portrecvbecn",
11588 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00400000, NULL
, HFILL
}
11590 { &hf_opa_ClearPortStatus_PortXmitTimeCong
, {
11591 "PortXmitTimeCong", "opa.pm.clearportstatus.portxmittimecong",
11592 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00200000, NULL
, HFILL
}
11594 { &hf_opa_ClearPortStatus_PortXmitWastedBW
, {
11595 "PortXmitWastedBW", "opa.pm.clearportstatus.portxmitwastedbw",
11596 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00100000, NULL
, HFILL
}
11598 { &hf_opa_ClearPortStatus_PortXmitWaitData
, {
11599 "PortXmitWaitData", "opa.pm.clearportstatus.portxmitwaitdata",
11600 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00080000, NULL
, HFILL
}
11602 { &hf_opa_ClearPortStatus_PortRcvBubble
, {
11603 "PortRcvBubble", "opa.pm.clearportstatus.portrcvbubble",
11604 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00040000, NULL
, HFILL
}
11606 { &hf_opa_ClearPortStatus_PortMarkFECN
, {
11607 "PortMarkFECN", "opa.pm.clearportstatus.portmarkfecn",
11608 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00020000, NULL
, HFILL
}
11610 { &hf_opa_ClearPortStatus_PortRcvConstraintErrors
, {
11611 "PortRcvConstraintErrors", "opa.pm.clearportstatus.portrcvconstrainterrors",
11612 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00010000, NULL
, HFILL
}
11614 { &hf_opa_ClearPortStatus_PortRcvSwitchRelayErrors
, {
11615 "PortRcvSwitchRelayErrors", "opa.pm.clearportstatus.portrcvswitchrelayerrors",
11616 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00008000, NULL
, HFILL
}
11618 { &hf_opa_ClearPortStatus_PortXmitDiscards
, {
11619 "PortXmitDiscards", "opa.pm.clearportstatus.portxmitdiscards",
11620 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00004000, NULL
, HFILL
}
11622 { &hf_opa_ClearPortStatus_PortXmitConstraintErrors
, {
11623 "PortXmitConstraintErrors", "opa.pm.clearportstatus.portxmitconstrainterrors",
11624 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00002000, NULL
, HFILL
}
11626 { &hf_opa_ClearPortStatus_PortRcvRemotePhysicalErrors
, {
11627 "PortRcvRemotePhysicalErrors", "opa.pm.clearportstatus.portrcvremotephysicalerrors",
11628 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00001000, NULL
, HFILL
}
11630 { &hf_opa_ClearPortStatus_LocalLinkIntegrityErrors
, {
11631 "LocalLinkIntegrityErrors", "opa.pm.clearportstatus.locallinkintegrityerrors",
11632 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000800, NULL
, HFILL
}
11634 { &hf_opa_ClearPortStatus_PortRcvErrors
, {
11635 "PortRcvErrors", "opa.pm.clearportstatus.portrcverrors",
11636 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000400, NULL
, HFILL
}
11638 { &hf_opa_ClearPortStatus_ExcessiveBufferOverruns
, {
11639 "ExcessiveBufferOverruns", "opa.pm.clearportstatus.excessivebufferoverruns",
11640 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000200, NULL
, HFILL
}
11642 { &hf_opa_ClearPortStatus_FMConfigErrors
, {
11643 "FMConfigErrors", "opa.pm.clearportstatus.fmconfigerrors",
11644 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000100, NULL
, HFILL
}
11646 { &hf_opa_ClearPortStatus_LinkErrorRecovery
, {
11647 "LinkErrorRecovery", "opa.pm.clearportstatus.linkerrorrecovery",
11648 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000080, NULL
, HFILL
}
11650 { &hf_opa_ClearPortStatus_LinkDowned
, {
11651 "LinkDowned", "opa.pm.clearportstatus.linkdowned",
11652 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000040, NULL
, HFILL
}
11654 { &hf_opa_ClearPortStatus_UncorrectableErrors
, {
11655 "UncorrectableErrors", "opa.pm.clearportstatus.uncorrectableerrors",
11656 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000020, NULL
, HFILL
}
11658 { &hf_opa_ClearPortStatus_reserved
, {
11659 "Reserved (5 bits)", "opa.pm.clearportstatus.reserved",
11660 FT_UINT32
, BASE_DEC
, NULL
, 0x0000001F, NULL
, HFILL
}
11663 /* DataPortCounters */
11664 { &hf_opa_DataPortCounters
, {
11665 "Data Port Counters", "opa.pm.dataportcounters",
11666 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11668 { &hf_opa_DataPortCounters_PortSelectMask
, {
11669 "Port Select Mask", "opa.pm.dataportcounters.portselectmask",
11670 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11672 { &hf_opa_DataPortCounters_VLSelectMask
, {
11673 "VL Select Mask", "opa.pm.dataportcounters.vlselectmask",
11674 FT_UINT32
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_32b_mask
), 0x0, NULL
, HFILL
}
11676 { &hf_opa_DataPortCounters_resolution_reserved
, {
11677 "Reserved (24 bits)", "opa.pm.dataportcounters.reserved",
11678 FT_UINT32
, BASE_HEX
, NULL
, 0xFFFFFF00, NULL
, HFILL
}
11680 { &hf_opa_DataPortCounters_LocalLinkIntegrityResolution
, {
11681 "Local Link Integrity Resolution", "opa.pm.dataportcounters.locallinkintegrityresolution",
11682 FT_UINT32
, BASE_DEC
, NULL
, 0x000000F0, NULL
, HFILL
}
11684 { &hf_opa_DataPortCounters_LinkErrorRecoveryResolution
, {
11685 "Link Error Recovery Resolution", "opa.pm.dataportcounters.linkerrorrecoveryresolution",
11686 FT_UINT32
, BASE_DEC
, NULL
, 0x0000000F, NULL
, HFILL
}
11688 { &hf_opa_DataPortCounters_PortNumber
, {
11689 "PortNumber", "opa.pm.dataportcounters.portnumber",
11690 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11692 { &hf_opa_DataPortCounters_lqi_reserved
, {
11693 "Reserved (29 bits)", "opa.pm.dataportcounters.reserved",
11694 FT_UINT32
, BASE_DEC
, NULL
, 0xFFFFFFF8, NULL
, HFILL
}
11696 { &hf_opa_DataPortCounters_LinkQualityIndicator
, {
11697 "LinkQualityIndicator", "opa.pm.dataportcounters.linkqualityindicator",
11698 FT_UINT32
, BASE_DEC
, VALS(LinkQualityIndicator
), 0x00000007, NULL
, HFILL
}
11700 { &hf_opa_DataPortCounters_PortXmitData
, {
11701 "PortXmitData", "opa.pm.dataportcounters.portxmitdata",
11702 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11704 { &hf_opa_DataPortCounters_PortRcvData
, {
11705 "PortRcvData", "opa.pm.dataportcounters.portrcvdata",
11706 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11708 { &hf_opa_DataPortCounters_PortXmitPkts
, {
11709 "PortXmitPkts", "opa.pm.dataportcounters.portxmitpkts",
11710 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11712 { &hf_opa_DataPortCounters_PortRcvPkts
, {
11713 "PortRcvPkts", "opa.pm.dataportcounters.portrcvpkts",
11714 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11716 { &hf_opa_DataPortCounters_PortMulticastXmitPkts
, {
11717 "PortMulticastXmitPkts", "opa.pm.dataportcounters.portmulticastxmitpkts",
11718 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11720 { &hf_opa_DataPortCounters_PortMulticastRcvPkts
, {
11721 "PortMulticastRcvPkts", "opa.pm.dataportcounters.portmulticastrcvpkts",
11722 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11724 { &hf_opa_DataPortCounters_PortXmitWait
, {
11725 "PortXmitWait", "opa.pm.dataportcounters.portxmitwait",
11726 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11728 { &hf_opa_DataPortCounters_SwPortCongestion
, {
11729 "SwPortCongestion", "opa.pm.dataportcounters.swportcongestion",
11730 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11732 { &hf_opa_DataPortCounters_PortRcvFECN
, {
11733 "PortRcvFECN", "opa.pm.dataportcounters.portrecvfecn",
11734 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11736 { &hf_opa_DataPortCounters_PortRcvBECN
, {
11737 "PortRcvBECN", "opa.pm.dataportcounters.portrecvbecn",
11738 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11740 { &hf_opa_DataPortCounters_PortXmitTimeCong
, {
11741 "PortXmitTimeCong", "opa.pm.dataportcounters.portxmittimecong",
11742 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11744 { &hf_opa_DataPortCounters_PortXmitWastedBW
, {
11745 "PortXmitWastedBW", "opa.pm.dataportcounters.portxmitwastedbw",
11746 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11748 { &hf_opa_DataPortCounters_PortXmitWaitData
, {
11749 "PortXmitWaitData", "opa.pm.dataportcounters.portxmitwaitdata",
11750 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11752 { &hf_opa_DataPortCounters_PortRcvBubble
, {
11753 "PortRcvBubble", "opa.pm.dataportcounters.portrcvbubble",
11754 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11756 { &hf_opa_DataPortCounters_PortMarkFECN
, {
11757 "PortMarkFECN", "opa.pm.dataportcounters.portmarkfecn",
11758 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11760 { &hf_opa_DataPortCounters_PortErrorCounterSummary
, {
11761 "PortErrorCounterSummary", "opa.pm.dataportcounters.porterrorcountersummary",
11762 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11764 { &hf_opa_DataPortCounters_PortVLXmitData
, {
11765 "PortVLXmitData", "opa.pm.dataportcounters.vl.xmitdata",
11766 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11768 { &hf_opa_DataPortCounters_PortVLRcvData
, {
11769 "PortVLRcvData", "opa.pm.dataportcounters.vl.rcvdata",
11770 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11772 { &hf_opa_DataPortCounters_PortVLXmitPkts
, {
11773 "PortVLXmitPkts", "opa.pm.dataportcounters.vl.xmitpkts",
11774 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11776 { &hf_opa_DataPortCounters_PortVLRcvPkts
, {
11777 "PortVLRcvPkts", "opa.pm.dataportcounters.vl.rcvpkts",
11778 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11780 { &hf_opa_DataPortCounters_PortVLXmitWait
, {
11781 "PortVLXmitWait", "opa.pm.dataportcounters.vl.xmitwait",
11782 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11784 { &hf_opa_DataPortCounters_SwPortVLCongestion
, {
11785 "SwPortVLCongestion", "opa.pm.dataportcounters.vl.swcongestion",
11786 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11788 { &hf_opa_DataPortCounters_PortVLRcvFECN
, {
11789 "PortVLRcvFECN", "opa.pm.dataportcounters.vl.rcvfecn",
11790 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11792 { &hf_opa_DataPortCounters_PortVLRcvBECN
, {
11793 "PortVLRcvBECN", "opa.pm.dataportcounters.vl.rcvbecn",
11794 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11796 { &hf_opa_DataPortCounters_PortVLXmitTimeCong
, {
11797 "PortVLXmitTimeCong", "opa.pm.dataportcounters.vl.xmittimecong",
11798 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11800 { &hf_opa_DataPortCounters_PortVLXmitWastedBW
, {
11801 "PortVLXmitWastedBW", "opa.pm.dataportcounters.vl.xmitwastedbw",
11802 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11804 { &hf_opa_DataPortCounters_PortVLXmitWaitData
, {
11805 "PortVLXmitWaitData", "opa.pm.dataportcounters.vl.xmitwaitdata",
11806 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11808 { &hf_opa_DataPortCounters_PortVLRcvBubble
, {
11809 "PortVLRcvBubble", "opa.pm.dataportcounters.vl.rcvbubble",
11810 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11812 { &hf_opa_DataPortCounters_PortVLMarkFECN
, {
11813 "PortVLMarkFECN", "opa.pm.dataportcounters.vl.markfecn",
11814 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11817 /* ErrorPortCounters */
11818 { &hf_opa_ErrorPortCounters
, {
11819 "Error Port Counters", "opa.pm.errorportcounters",
11820 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11822 { &hf_opa_ErrorPortCounters_PortSelectMask
, {
11823 "Port Select Mask", "opa.pm.errorportcounters.portselectmask",
11824 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11826 { &hf_opa_ErrorPortCounters_VLSelectMask
, {
11827 "VL Select Mask", "opa.pm.errorportcounters.vlselectmask",
11828 FT_UINT32
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_32b_mask
), 0x0, NULL
, HFILL
}
11830 { &hf_opa_ErrorPortCounters_PortNumber
, {
11831 "PortNumber", "opa.pm.errorportcounters.portnumber",
11832 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11834 { &hf_opa_ErrorPortCounters_PortRcvConstraintErrors
, {
11835 "PortRcvConstraintErrors", "opa.pm.errorportcounters.portrcvconstrainterrors",
11836 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11838 { &hf_opa_ErrorPortCounters_PortRcvSwitchRelayErrors
, {
11839 "PortRcvSwitchRelayErrors", "opa.pm.errorportcounters.portrcvswitchrelayerrors",
11840 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11842 { &hf_opa_ErrorPortCounters_PortXmitDiscards
, {
11843 "PortXmitDiscards", "opa.pm.errorportcounters.portxmitdiscards",
11844 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11846 { &hf_opa_ErrorPortCounters_PortXmitConstraintErrors
, {
11847 "PortXmitConstraintErrors", "opa.pm.errorportcounters.portxmitconstrainterrors",
11848 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11850 { &hf_opa_ErrorPortCounters_PortRcvRemotePhysicalErrors
, {
11851 "PortRcvRemotePhysicalErrors", "opa.pm.errorportcounters.portrcvremotephysicalerrors",
11852 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11854 { &hf_opa_ErrorPortCounters_LocalLinkIntegrityErrors
, {
11855 "LocalLinkIntegrityErrors", "opa.pm.errorportcounters.locallinkintegrityerrors",
11856 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11858 { &hf_opa_ErrorPortCounters_PortRcvErrors
, {
11859 "PortRcvErrors", "opa.pm.errorportcounters.portrcverrors",
11860 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11862 { &hf_opa_ErrorPortCounters_ExcessiveBufferOverruns
, {
11863 "ExcessiveBufferOverruns", "opa.pm.errorportcounters.excessivebufferoverruns",
11864 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11866 { &hf_opa_ErrorPortCounters_FMConfigErrors
, {
11867 "FMConfigErrors", "opa.pm.errorportcounters.fmconfigerrors",
11868 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11870 { &hf_opa_ErrorPortCounters_LinkErrorRecovery
, {
11871 "LinkErrorRecovery", "opa.pm.errorportcounters.linkerrorrecovery",
11872 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11874 { &hf_opa_ErrorPortCounters_LinkDowned
, {
11875 "LinkDowned", "opa.pm.errorportcounters.linkdowned",
11876 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11878 { &hf_opa_ErrorPortCounters_UncorrectableErrors
, {
11879 "UncorrectableErrors", "opa.pm.errorportcounters.uncorrectableerrors",
11880 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11882 { &hf_opa_ErrorPortCounters_PortVLXmitDiscards
, {
11883 "PortVLXmitDiscards", "opa.pm.errorportcounters.portvlxmitdiscards",
11884 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
11887 /* ErrorPortInfo */
11888 { &hf_opa_ErrorPortInfo
, {
11889 "Error Port Info", "opa.pm.errorportinfo",
11890 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11892 { &hf_opa_ErrorPortInfo_PortSelectMask
, {
11893 "Port Select Mask", "opa.pm.errorportinfo.portselectmask",
11894 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
11896 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvErrorInfo
, {
11897 "Port Rcv Error Info", "opa.pm.errorportinfo.errorinfoselectmask.portrcverrorinfo",
11898 FT_BOOLEAN
, 32, NULL
, 0x80000000, NULL
, HFILL
}
11900 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_ExcessiveBufferOverrunInfo
, {
11901 "ExcessiveBufferOverrunInfo", "opa.pm.errorportinfo.errorinfoselectmask.excessivebufferoverruninfo",
11902 FT_BOOLEAN
, 32, NULL
, 0x40000000, NULL
, HFILL
}
11904 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortXmitConstraintErrorInfo
, {
11905 "PortXmitConstraintErrorInfo", "opa.pm.errorportinfo.errorinfoselectmask.portxmitconstrainterrorinfo",
11906 FT_BOOLEAN
, 32, NULL
, 0x20000000, NULL
, HFILL
}
11908 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvConstraintErrorInfo
, {
11909 "PortRcvConstraintErrorInfo", "opa.pm.errorportinfo.errorinfoselectmask.portrcvconstrainterrorinfo",
11910 FT_BOOLEAN
, 32, NULL
, 0x10000000, NULL
, HFILL
}
11912 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_PortRcvSwitchRelayErrorInfo
, {
11913 "PortRcvSwitchRelayErrorInfo", "opa.pm.errorportinfo.errorinfoselectmask.portrcvswitchrelayerrorinfo",
11914 FT_BOOLEAN
, 32, NULL
, 0x08000000, NULL
, HFILL
}
11916 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_UncorrectableErrorInfo
, {
11917 "UncorrectableErrorInfo", "opa.pm.errorportinfo.errorinfoselectmask.uncorrectableerrorinfo",
11918 FT_BOOLEAN
, 32, NULL
, 0x04000000, NULL
, HFILL
}
11920 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_FMConfigErrorInfo
, {
11921 "Fmconfigerrorinfo", "opa.pm.errorportinfo.errorinfoselectmask.fmconfigerrorinfo",
11922 FT_BOOLEAN
, 32, NULL
, 0x02000000, NULL
, HFILL
}
11924 { &hf_opa_ErrorPortInfo_ErrorInfoSelectMask_reserved
, {
11925 "Reserved (25 bits)", "opa.pm.errorportinfo.errorinfoselectmask.reserved",
11926 FT_UINT32
, BASE_HEX
, NULL
, 0x01FFFFFF, NULL
, HFILL
}
11928 { &hf_opa_ErrorPortInfo_PortNumber
, {
11929 "Port Number", "opa.pm.errorportinfo.Portnumber",
11930 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11932 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_Status
, {
11933 "Status", "opa.pm.errorportinfo.portrcverrorinfo.status",
11934 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
11936 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved
, {
11937 "Reserved", "opa.pm.errorportinfo.portrcverrorinfo.reserved",
11938 FT_UINT8
, BASE_HEX
, NULL
, 0x70, NULL
, HFILL
}
11940 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_ErrorCode
, {
11941 "ErrorCode", "opa.pm.errorportinfo.portrcverrorinfo.errorcode",
11942 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
11944 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketFlit1
, {
11945 "PacketFlit1", "opa.pm.errorportinfo.portrcverrorinfo.packetflit1",
11946 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11948 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketFlit2
, {
11949 "PacketFlit2", "opa.pm.errorportinfo.portrcverrorinfo.packetflit2",
11950 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11952 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_Flit1Bits
, {
11953 "Flit1Bits", "opa.pm.errorportinfo.portrcverrorinfo.flit1bits",
11954 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
11956 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_Flit2Bits
, {
11957 "Flit2Bits", "opa.pm.errorportinfo.portrcverrorinfo.flit2bits",
11958 FT_UINT8
, BASE_HEX
, NULL
, 0x40, NULL
, HFILL
}
11960 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved2
, {
11961 "Reserved (4 bits)", "opa.pm.errorportinfo.portrcverrorinfo.reserved2",
11962 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
11964 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_PacketBytes
, {
11965 "PacketBytes", "opa.pm.errorportinfo.portrcverrorinfo.packetbytes",
11966 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
11968 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_FlitBits
, {
11969 "FlitBits", "opa.pm.errorportinfo.portrcverrorinfo.flitbits",
11970 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
11972 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved3
, {
11973 "Reserved (6 bits)", "opa.pm.errorportinfo.portrcverrorinfo.reserved3",
11974 FT_UINT8
, BASE_HEX
, NULL
, 0x7F, NULL
, HFILL
}
11976 { &hf_opa_ErrorPortInfo_PortRcvErrorInfo_reserved4
, {
11977 "Reserved (17 bytes)", "opa.pm.errorportinfo.portrcverrorinfo.reserved4",
11978 FT_BYTES
, FT_NONE
, NULL
, 0x0, NULL
, HFILL
}
11980 { &hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_Status
, {
11981 "Status", "opa.pm.errorportinfo.excessivebufferoverrunerrorinfo.status",
11982 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
11984 { &hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_SC
, {
11985 "SC", "opa.pm.errorportinfo.excessivebufferoverrunerrorinfo.sc",
11986 FT_UINT8
, BASE_HEX
, NULL
, 0x7C, NULL
, HFILL
}
11988 { &hf_opa_ErrorPortInfo_ExcessiveBufferOverrunErrorInfo_reserved
, {
11989 "Reserved (2 bits)", "opa.pm.errorportinfo.ExcessiveBufferOverrunErrorInfo.Reserved",
11990 FT_UINT8
, BASE_HEX
, NULL
, 0x03, NULL
, HFILL
}
11992 { &hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_Status
, {
11993 "Status", "opa.pm.errorportinfo.portxmitconstrainterrorinfo.status",
11994 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
11996 { &hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_reserved
, {
11997 "Reserved (7 bits)", "opa.pm.errorportinfo.portxmitconstrainterrorinfo.reserved",
11998 FT_UINT8
, BASE_HEX
, NULL
, 0x7F, NULL
, HFILL
}
12000 { &hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_P_Key
, {
12001 "P_Key", "opa.pm.errorportinfo.portxmitconstrainterrorinfo.pkey",
12002 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12004 { &hf_opa_ErrorPortInfo_PortXmitConstraintErrorInfo_SLID
, {
12005 "SLID", "opa.pm.errorportinfo.portxmitconstrainterrorinfo.slid",
12006 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12008 { &hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_Status
, {
12009 "Status", "opa.pm.errorportinfo.portrcvconstrainterrorinfo.status",
12010 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
12012 { &hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_reserved
, {
12013 "Reserved (7 bits)", "opa.pm.errorportinfo.portrcvconstrainterrorinfo.reserved",
12014 FT_UINT8
, BASE_HEX
, NULL
, 0x7F, NULL
, HFILL
}
12016 { &hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_P_Key
, {
12017 "P_Key", "opa.pm.errorportinfo.portrcvconstrainterrorinfo.pkey",
12018 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12020 { &hf_opa_ErrorPortInfo_PortRcvConstraintErrorInfo_SLID
, {
12021 "SLID", "opa.pm.errorportinfo.portrcvconstrainterrorinfo.slid",
12022 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12024 { &hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_Status
, {
12025 "Status", "opa.pm.errorportinfo.portrcvswitchrelayerrorinfo.status",
12026 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
12028 { &hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_reserved
, {
12029 "Reserved (3 bits)", "opa.pm.errorportinfo.portrcvswitchrelayerrorinfo.reserved",
12030 FT_UINT8
, BASE_HEX
, NULL
, 0x70, NULL
, HFILL
}
12032 { &hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_ErrorCode
, {
12033 "ErrorCode", "opa.pm.errorportinfo.portrcvswitchrelayerrorinfo.errorcode",
12034 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
12036 { &hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_DLID
, {
12037 "DLID", "opa.pm.errorportinfo.portrcvswitchrelayerrorinfo.dlid",
12038 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12040 { &hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_EgressPortNum
, {
12041 "EgressPortNum", "opa.pm.errorportinfo.portrcvswitchrelayerrorinfo.egressportnum",
12042 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12044 { &hf_opa_ErrorPortInfo_PortRcvSwitchRelayErrorInfo_SC
, {
12045 "SC", "opa.pm.errorportinfo.portrcvswitchrelayerrorinfo.scorsl",
12046 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12048 { &hf_opa_ErrorPortInfo_UncorrectableErrorInfo_Status
, {
12049 "Status", "opa.pm.errorportinfo.uncorrectableerrorinfo.status",
12050 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
12052 { &hf_opa_ErrorPortInfo_UncorrectableErrorInfo_reserved
, {
12053 "Reserved (3 bits)", "opa.pm.errorportinfo.uncorrectableerrorinfo.reserved",
12054 FT_UINT8
, BASE_HEX
, NULL
, 0x70, NULL
, HFILL
}
12056 { &hf_opa_ErrorPortInfo_UncorrectableErrorInfo_ErrorCode
, {
12057 "ErrorCode", "opa.pm.errorportinfo.uncorrectableerrorinfo.errorcode",
12058 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
12060 { &hf_opa_ErrorPortInfo_FMConfigErrorInfo_Status
, {
12061 "Status", "opa.pm.errorportinfo.fmconfigerrorinfo.status",
12062 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
12064 { &hf_opa_ErrorPortInfo_FMConfigErrorInfo_reserved
, {
12065 "Reserved (3 bits)", "opa.pm.errorportinfo.fmconfigerrorinfo.reserved",
12066 FT_UINT8
, BASE_HEX
, NULL
, 0x70, NULL
, HFILL
}
12068 { &hf_opa_ErrorPortInfo_FMConfigErrorInfo_ErrorCode
, {
12069 "ErrorCode", "opa.pm.errorportinfo.fmconfigerrorinfo.errorcode",
12070 FT_UINT8
, BASE_HEX
, NULL
, 0x0F, NULL
, HFILL
}
12072 { &hf_opa_ErrorPortInfo_FMConfigErrorInfo_VL
, {
12073 "VL", "opa.pm.errorportinfo.fmconfigerrorinfo.vl",
12074 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12076 { &hf_opa_ErrorPortInfo_FMConfigErrorInfo_Distance
, {
12077 "Distance", "opa.pm.errorportinfo.fmconfigerrorinfo.distance",
12078 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12080 { &hf_opa_ErrorPortInfo_FMConfigErrorInfo_BadFlitBits
, {
12081 "BadFlitBits", "opa.pm.errorportinfo.fmconfigerrorinfo.badflitbits",
12082 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12084 { &hf_opa_ErrorPortInfo_FMConfigErrorInfo_SC
, {
12085 "SC", "opa.pm.errorportinfo.fmconfigerrorinfo.sc",
12086 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12090 { &hf_opa_ImageID_imageNumber
, {
12091 "imageNumber", "opa.pa.imageid.imagenumber",
12092 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12094 { &hf_opa_ImageID_imageOffset
, {
12095 "imageOffset", "opa.pa.imageid.imageoffset",
12096 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12100 { &hf_opa_GetGroupList
, {
12101 "Group List", "opa.pa.getgrouplist",
12102 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12104 { &hf_opa_GetGroupList_groupName
, {
12105 "Group Name", "opa.pa.getgrouplist.groupname",
12106 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12110 { &hf_opa_GetGroupInfo
, {
12111 "Group Info", "opa.pa.getgroupinfo",
12112 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12114 { &hf_opa_GetGroupInfo_groupName
, {
12115 "Group Name", "opa.pa.getgroupinfo.groupname",
12116 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12118 { &hf_opa_GetGroupInfo_numInternalPorts
, {
12119 "numInternalPorts", "opa.pa.getgroupinfo.numinternalports",
12120 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12122 { &hf_opa_GetGroupInfo_numExternalPorts
, {
12123 "numExternalPorts", "opa.pa.getgroupinfo.numexternalports",
12124 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12126 { &hf_opa_GetGroupInfo_totalMBps
, {
12127 "totalMBps", "opa.pa.getgroupinfo.totalmbps",
12128 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12130 { &hf_opa_GetGroupInfo_totalKPps
, {
12131 "totalKPps", "opa.pa.getgroupinfo.totalkpps",
12132 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12134 { &hf_opa_GetGroupInfo_avgMBps
, {
12135 "avgMBps", "opa.pa.getgroupinfo.avgmbps",
12136 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12138 { &hf_opa_GetGroupInfo_minMBps
, {
12139 "minMBps", "opa.pa.getgroupinfo.minmbps",
12140 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12142 { &hf_opa_GetGroupInfo_maxMBps
, {
12143 "maxMBps", "opa.pa.getgroupinfo.maxmbps",
12144 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12146 { &hf_opa_GetGroupInfo_numBWBuckets
, {
12147 "numBWBuckets", "opa.pa.getgroupinfo.numbwbuckets",
12148 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12150 { &hf_opa_GetGroupInfo_BWBuckets
, {
12151 "BWBuckets", "opa.pa.getgroupinfo.bwbuckets",
12152 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12154 { &hf_opa_GetGroupInfo_avgKPps
, {
12155 "avgKPps", "opa.pa.getgroupinfo.avgkpps",
12156 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12158 { &hf_opa_GetGroupInfo_minKPps
, {
12159 "minKPps", "opa.pa.getgroupinfo.minkpps",
12160 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12162 { &hf_opa_GetGroupInfo_maxKPps
, {
12163 "maxKPps", "opa.pa.getgroupinfo.maxkpps",
12164 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12166 { &hf_opa_GetGroupInfo_pmaFailedPorts
, {
12167 "pmaFailedPorts", "opa.pa.getgroupinfo.pmafailedports",
12168 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12170 { &hf_opa_GetGroupInfo_topoFailedPorts
, {
12171 "topoFailedPorts", "opa.pa.getgroupinfo.topofailedports",
12172 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12174 { &hf_opa_GetGroupInfo_integrityErrors
, {
12175 "integrityErrors", "opa.pa.getgroupinfo.integrityerrors",
12176 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12178 { &hf_opa_GetGroupInfo_congestionErrors
, {
12179 "congestionErrors", "opa.pa.getgroupinfo.congestionerrors",
12180 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12182 { &hf_opa_GetGroupInfo_smaCongestionErrors
, {
12183 "smaCongestionErrors", "opa.pa.getgroupinfo.smacongestionerrors",
12184 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12186 { &hf_opa_GetGroupInfo_bubbleErrors
, {
12187 "bubbleErrors", "opa.pa.getgroupinfo.bubbleerrors",
12188 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12190 { &hf_opa_GetGroupInfo_securityErrors
, {
12191 "securityErrors", "opa.pa.getgroupinfo.securityerrors",
12192 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12194 { &hf_opa_GetGroupInfo_routingErrors
, {
12195 "routingErrors", "opa.pa.getgroupinfo.routingerrors",
12196 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12198 { &hf_opa_GetGroupInfo_utilizationPct10
, {
12199 "utilizationPct10", "opa.pa.getgroupinfo.utilizationpct10",
12200 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_computed_pct10
), 0x0, NULL
, HFILL
}
12202 { &hf_opa_GetGroupInfo_discardsPct10
, {
12203 "discardsPct10", "opa.pa.getgroupinfo.discardspct10",
12204 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_computed_pct10
), 0x0, NULL
, HFILL
}
12206 { &hf_opa_GetGroupInfo_maxInternalRate
, {
12207 "maxInternalRate", "opa.pa.getgroupinfo.maxinternalrate",
12208 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0x0, NULL
, HFILL
}
12210 { &hf_opa_GetGroupInfo_minInternalRate
, {
12211 "minInternalRate", "opa.pa.getgroupinfo.mininternalrate",
12212 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0x0, NULL
, HFILL
}
12214 { &hf_opa_GetGroupInfo_maxExternalRate
, {
12215 "maxExternalRate", "opa.pa.getgroupinfo.maxexternalrate",
12216 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0x0, NULL
, HFILL
}
12218 { &hf_opa_GetGroupInfo_minExternalRate
, {
12219 "minExternalRate", "opa.pa.getgroupinfo.minexternalrate",
12220 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0x0, NULL
, HFILL
}
12222 { &hf_opa_GetGroupInfo_maxInternalMBps
, {
12223 "maxInternalMBps", "opa.pa.getgroupinfo.maxinternalmbps",
12224 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12226 { &hf_opa_GetGroupInfo_maxExternalMBps
, {
12227 "maxExternalMBps", "opa.pa.getgroupinfo.maxexternalmbps",
12228 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12231 /* GetGroupConfig */
12232 { &hf_opa_GetGroupConfig
, {
12233 "Group Config", "opa.pa.getgroupconfig",
12234 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12236 { &hf_opa_GetGroupConfig_groupName
, {
12237 "Group Name", "opa.pa.getgroupconfig.groupname",
12238 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12240 { &hf_opa_GetGroupConfig_Port_NodeGUID
, {
12241 "NodeGUID", "opa.pa.getgroupconfig.port.nodeguid",
12242 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12244 { &hf_opa_GetGroupConfig_Port_nodeDesc
, {
12245 "nodeDesc", "opa.pa.getgroupconfig.port.nodedesc",
12246 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12248 { &hf_opa_GetGroupConfig_Port_NodeLID
, {
12249 "NodeLID", "opa.pa.getgroupconfig.port.nodelid",
12250 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12252 { &hf_opa_GetGroupConfig_Port_PortNumber
, {
12253 "PortNumber", "opa.pa.getgroupconfig.port.portnumber",
12254 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12257 /* GetPortCounters */
12258 { &hf_opa_GetPortCounters
, {
12259 "Port Counters", "opa.pa.getportcounters",
12260 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12262 { &hf_opa_GetPortCounters_nodeLID
, {
12263 "nodeLID", "opa.pa.getportcounters.nodelid",
12264 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12266 { &hf_opa_GetPortCounters_PortNumber
, {
12267 "PortNumber", "opa.pa.getportcounters.portnumber",
12268 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12270 { &hf_opa_GetPortCounters_flags
, {
12271 "flags", "opa.pa.getportcounters.flags",
12272 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12274 { &hf_opa_GetPortCounters_PortXmitData
, {
12275 "PortXmitData", "opa.pa.getportcounters.portxmitdata",
12276 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12278 { &hf_opa_GetPortCounters_PortRcvData
, {
12279 "PortRcvData", "opa.pa.getportcounters.portrcvdata",
12280 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12282 { &hf_opa_GetPortCounters_PortXmitPkts
, {
12283 "PortXmitPkts", "opa.pa.getportcounters.portxmitpkts",
12284 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12286 { &hf_opa_GetPortCounters_PortRcvPkts
, {
12287 "PortRcvPkts", "opa.pa.getportcounters.portrcvpkts",
12288 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12290 { &hf_opa_GetPortCounters_PortMulticastXmitPkts
, {
12291 "PortMulticastXmitPkts", "opa.pa.getportcounters.portmulticastxmitpkts",
12292 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12294 { &hf_opa_GetPortCounters_PortMulticastRcvPkts
, {
12295 "PortMulticastRcvPkts", "opa.pa.getportcounters.portmulticastrcvpkts",
12296 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12298 { &hf_opa_GetPortCounters_LocalLinkIntegrityErrors
, {
12299 "LocalLinkIntegrityErrors", "opa.pa.getportcounters.locallinkintegrityerrors",
12300 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12302 { &hf_opa_GetPortCounters_FMConfigErrors
, {
12303 "FMConfigErrors", "opa.pa.getportcounters.fmconfigerrors",
12304 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12306 { &hf_opa_GetPortCounters_PortRcvErrors
, {
12307 "PortRcvErrors", "opa.pa.getportcounters.portrcverrors",
12308 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12310 { &hf_opa_GetPortCounters_ExcessiveBufferOverruns
, {
12311 "ExcessiveBufferOverruns", "opa.pa.getportcounters.excessivebufferoverruns",
12312 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12314 { &hf_opa_GetPortCounters_PortRcvConstraintErrors
, {
12315 "PortRcvConstraintErrors", "opa.pa.getportcounters.portrcvconstrainterrors",
12316 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12318 { &hf_opa_GetPortCounters_PortRcvSwitchRelayErrors
, {
12319 "PortRcvSwitchRelayErrors", "opa.pa.getportcounters.portrcvswitchrelayerrors",
12320 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12322 { &hf_opa_GetPortCounters_PortXmitDiscards
, {
12323 "PortXmitDiscards", "opa.pa.getportcounters.portxmitdiscards",
12324 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12326 { &hf_opa_GetPortCounters_PortXmitConstraintErrors
, {
12327 "PortXmitConstraintErrors", "opa.pa.getportcounters.portxmitconstrainterrors",
12328 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12330 { &hf_opa_GetPortCounters_PortRcvRemotePhysicalErrors
, {
12331 "PortRcvRemotePhysicalErrors", "opa.pa.getportcounters.portrcvremotephysicalerrors",
12332 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12334 { &hf_opa_GetPortCounters_SwPortCongestion
, {
12335 "SwPortCongestion", "opa.pa.getportcounters.swportcongestion",
12336 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12338 { &hf_opa_GetPortCounters_PortXmitWait
, {
12339 "PortXmitWait", "opa.pa.getportcounters.portxmitwait",
12340 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12342 { &hf_opa_GetPortCounters_PortRcvFECN
, {
12343 "PortRcvFECN", "opa.pa.getportcounters.portrcvfecn",
12344 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12346 { &hf_opa_GetPortCounters_PortRcvBECN
, {
12347 "PortRcvBECN", "opa.pa.getportcounters.portrcvbecn",
12348 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12350 { &hf_opa_GetPortCounters_PortXmitTimeCong
, {
12351 "PortXmitTimeCong", "opa.pa.getportcounters.portxmittimecong",
12352 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12354 { &hf_opa_GetPortCounters_PortXmitWastedBW
, {
12355 "PortXmitWastedBW", "opa.pa.getportcounters.portxmitwastedbw",
12356 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12358 { &hf_opa_GetPortCounters_PortXmitWaitData
, {
12359 "PortXmitWaitData", "opa.pa.getportcounters.portxmitwaitdata",
12360 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12362 { &hf_opa_GetPortCounters_PortRcvBubble
, {
12363 "PortRcvBubble", "opa.pa.getportcounters.portrcvbubble",
12364 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12366 { &hf_opa_GetPortCounters_PortMarkFECN
, {
12367 "PortMarkFECN", "opa.pa.getportcounters.portmarkfecn",
12368 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12370 { &hf_opa_GetPortCounters_LinkErrorRecovery
, {
12371 "LinkErrorRecovery", "opa.pa.getportcounters.linkerrorrecovery",
12372 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12374 { &hf_opa_GetPortCounters_LinkDowned
, {
12375 "LinkDowned", "opa.pa.getportcounters.linkdowned",
12376 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12378 { &hf_opa_GetPortCounters_UncorrectableErrors
, {
12379 "UncorrectableErrors", "opa.pa.getportcounters.uncorrectableerrors",
12380 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12382 { &hf_opa_GetPortCounters_NumLanesDown
, {
12383 "NumLanesDown", "opa.pa.getportcounters.numlanesdown",
12384 FT_UINT8
, BASE_DEC
, NULL
, 0xF0, NULL
, HFILL
}
12386 { &hf_opa_GetPortCounters_reserved
, {
12387 "Reserved", "opa.pa.getportcounters.reserved",
12388 FT_UINT8
, BASE_HEX
, NULL
, 0x08, NULL
, HFILL
}
12390 { &hf_opa_GetPortCounters_LinkQualityIndicator
, {
12391 "LinkQualityIndicator", "opa.pa.getportcounters.linkqualityindicator",
12392 FT_UINT8
, BASE_DEC
, VALS(LinkQualityIndicator
), 0x07, NULL
, HFILL
}
12395 /* ClearPortCounters */
12396 { &hf_opa_ClearPortCounters
, {
12397 "Clear User Port Counters", "opa.pa.clearportcounters",
12398 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12400 { &hf_opa_ClearPortCounters_nodeLID
, {
12401 "nodeLID", "opa.pa.clearportcounters.nodelid",
12402 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12404 { &hf_opa_ClearPortCounters_PortNumber
, {
12405 "PortNumber", "opa.pa.clearportcounters.portnumber",
12406 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12408 { &hf_opa_ClearPortCounters_CounterSelectMask
, {
12409 "CounterSelectMask", "opa.pa.clearportcounters.counterselectmask",
12410 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12412 { &hf_opa_ClearPortCounters_PortXmitData
, {
12413 "PortXmitData", "opa.pa.clearportcounters.portxmitdata",
12414 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x80000000, NULL
, HFILL
}
12416 { &hf_opa_ClearPortCounters_PortRcvData
, {
12417 "PortRcvData", "opa.pa.clearportcounters.portrcvdata",
12418 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x40000000, NULL
, HFILL
}
12420 { &hf_opa_ClearPortCounters_PortXmitPkts
, {
12421 "PortXmitPkts", "opa.pa.clearportcounters.portxmitpkts",
12422 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x20000000, NULL
, HFILL
}
12424 { &hf_opa_ClearPortCounters_PortRcvPkts
, {
12425 "PortRcvPkts", "opa.pa.clearportcounters.portrcvpkts",
12426 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x10000000, NULL
, HFILL
}
12428 { &hf_opa_ClearPortCounters_PortMulticastXmitPkts
, {
12429 "PortMulticastXmitPkts", "opa.pa.clearportcounters.portmulticastxmitpkts",
12430 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x08000000, NULL
, HFILL
}
12432 { &hf_opa_ClearPortCounters_PortMulticastRcvPkts
, {
12433 "PortMulticastRcvPkts", "opa.pa.clearportcounters.portmulticastrcvpkts",
12434 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x04000000, NULL
, HFILL
}
12436 { &hf_opa_ClearPortCounters_PortXmitWait
, {
12437 "PortXmitWait", "opa.pa.clearportcounters.portxmitwait",
12438 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x02000000, NULL
, HFILL
}
12440 { &hf_opa_ClearPortCounters_SwPortCongestion
, {
12441 "SwPortCongestion", "opa.pa.clearportcounters.swportcongestion",
12442 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x01000000, NULL
, HFILL
}
12444 { &hf_opa_ClearPortCounters_PortRcvFECN
, {
12445 "PortRcvFECN", "opa.pa.clearportcounters.portrecvfecn",
12446 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00800000, NULL
, HFILL
}
12448 { &hf_opa_ClearPortCounters_PortRcvBECN
, {
12449 "PortRcvBECN", "opa.pa.clearportcounters.portrecvbecn",
12450 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00400000, NULL
, HFILL
}
12452 { &hf_opa_ClearPortCounters_PortXmitTimeCong
, {
12453 "PortXmitTimeCong", "opa.pa.clearportcounters.portxmittimecong",
12454 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00200000, NULL
, HFILL
}
12456 { &hf_opa_ClearPortCounters_PortXmitWastedBW
, {
12457 "PortXmitWastedBW", "opa.pa.clearportcounters.portxmitwastedbw",
12458 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00100000, NULL
, HFILL
}
12460 { &hf_opa_ClearPortCounters_PortXmitWaitData
, {
12461 "PortXmitWaitData", "opa.pa.clearportcounters.portxmitwaitdata",
12462 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00080000, NULL
, HFILL
}
12464 { &hf_opa_ClearPortCounters_PortRcvBubble
, {
12465 "PortRcvBubble", "opa.pa.clearportcounters.portrcvbubble",
12466 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00040000, NULL
, HFILL
}
12468 { &hf_opa_ClearPortCounters_PortMarkFECN
, {
12469 "PortMarkFECN", "opa.pa.clearportcounters.portmarkfecn",
12470 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00020000, NULL
, HFILL
}
12472 { &hf_opa_ClearPortCounters_PortRcvConstraintErrors
, {
12473 "PortRcvConstraintErrors", "opa.pa.clearportcounters.portrcvconstrainterrors",
12474 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00010000, NULL
, HFILL
}
12476 { &hf_opa_ClearPortCounters_PortRcvSwitchRelayErrors
, {
12477 "PortRcvSwitchRelayErrors", "opa.pa.clearportcounters.portrcvswitchrelayerrors",
12478 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00008000, NULL
, HFILL
}
12480 { &hf_opa_ClearPortCounters_PortXmitDiscards
, {
12481 "PortXmitDiscards", "opa.pa.clearportcounters.portxmitdiscards",
12482 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00004000, NULL
, HFILL
}
12484 { &hf_opa_ClearPortCounters_PortXmitConstraintErrors
, {
12485 "PortXmitConstraintErrors", "opa.pa.clearportcounters.portxmitconstrainterrors",
12486 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00002000, NULL
, HFILL
}
12488 { &hf_opa_ClearPortCounters_PortRcvRemotePhysicalErrors
, {
12489 "PortRcvRemotePhysicalErrors", "opa.pa.clearportcounters.portrcvremotephysicalerrors",
12490 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00001000, NULL
, HFILL
}
12492 { &hf_opa_ClearPortCounters_LocalLinkIntegrityErrors
, {
12493 "LocalLinkIntegrityErrors", "opa.pa.clearportcounters.locallinkintegrityerrors",
12494 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000800, NULL
, HFILL
}
12496 { &hf_opa_ClearPortCounters_PortRcvErrors
, {
12497 "PortRcvErrors", "opa.pa.clearportcounters.portrcverrors",
12498 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000400, NULL
, HFILL
}
12500 { &hf_opa_ClearPortCounters_ExcessiveBufferOverruns
, {
12501 "ExcessiveBufferOverruns", "opa.pa.clearportcounters.excessivebufferoverruns",
12502 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000200, NULL
, HFILL
}
12504 { &hf_opa_ClearPortCounters_FMConfigErrors
, {
12505 "FMConfigErrors", "opa.pa.clearportcounters.fmconfigerrors",
12506 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000100, NULL
, HFILL
}
12508 { &hf_opa_ClearPortCounters_LinkErrorRecovery
, {
12509 "LinkErrorRecovery", "opa.pa.clearportcounters.linkerrorrecovery",
12510 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000080, NULL
, HFILL
}
12512 { &hf_opa_ClearPortCounters_LinkDowned
, {
12513 "LinkDowned", "opa.pa.clearportcounters.linkdowned",
12514 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000040, NULL
, HFILL
}
12516 { &hf_opa_ClearPortCounters_UncorrectableErrors
, {
12517 "UncorrectableErrors", "opa.pa.clearportcounters.uncorrectableerrors",
12518 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000020, NULL
, HFILL
}
12520 { &hf_opa_ClearPortCounters_reserved
, {
12521 "Reserved (5 bits)", "opa.pa.clearportcounters.reserved",
12522 FT_UINT32
, BASE_DEC
, NULL
, 0x0000001F, NULL
, HFILL
}
12525 /* ClearAllPortCounters */
12526 { &hf_opa_ClearAllPortCounters
, {
12527 "Clear All User Port Counters", "opa.pa.clearallportcounters",
12528 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12530 { &hf_opa_ClearAllPortCounters_CounterSelectMask
, {
12531 "CounterSelectMask", "opa.pa.clearallportcounters.counterselectmask",
12532 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12534 { &hf_opa_ClearAllPortCounters_PortXmitData
, {
12535 "PortXmitData", "opa.pa.clearallportcounters.portxmitdata",
12536 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x80000000, NULL
, HFILL
}
12538 { &hf_opa_ClearAllPortCounters_PortRcvData
, {
12539 "PortRcvData", "opa.pa.clearallportcounters.portrcvdata",
12540 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x40000000, NULL
, HFILL
}
12542 { &hf_opa_ClearAllPortCounters_PortXmitPkts
, {
12543 "PortXmitPkts", "opa.pa.clearallportcounters.portxmitpkts",
12544 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x20000000, NULL
, HFILL
}
12546 { &hf_opa_ClearAllPortCounters_PortRcvPkts
, {
12547 "PortRcvPkts", "opa.pa.clearallportcounters.portrcvpkts",
12548 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x10000000, NULL
, HFILL
}
12550 { &hf_opa_ClearAllPortCounters_PortMulticastXmitPkts
, {
12551 "PortMulticastXmitPkts", "opa.pa.clearallportcounters.portmulticastxmitpkts",
12552 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x08000000, NULL
, HFILL
}
12554 { &hf_opa_ClearAllPortCounters_PortMulticastRcvPkts
, {
12555 "PortMulticastRcvPkts", "opa.pa.clearallportcounters.portmulticastrcvpkts",
12556 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x04000000, NULL
, HFILL
}
12558 { &hf_opa_ClearAllPortCounters_PortXmitWait
, {
12559 "PortXmitWait", "opa.pa.clearallportcounters.portxmitwait",
12560 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x02000000, NULL
, HFILL
}
12562 { &hf_opa_ClearAllPortCounters_SwPortCongestion
, {
12563 "SwPortCongestion", "opa.pa.clearallportcounters.swportcongestion",
12564 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x01000000, NULL
, HFILL
}
12566 { &hf_opa_ClearAllPortCounters_PortRcvFECN
, {
12567 "PortRcvFECN", "opa.pa.clearallportcounters.portrecvfecn",
12568 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00800000, NULL
, HFILL
}
12570 { &hf_opa_ClearAllPortCounters_PortRcvBECN
, {
12571 "PortRcvBECN", "opa.pa.clearallportcounters.portrecvbecn",
12572 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00400000, NULL
, HFILL
}
12574 { &hf_opa_ClearAllPortCounters_PortXmitTimeCong
, {
12575 "PortXmitTimeCong", "opa.pa.clearallportcounters.portxmittimecong",
12576 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00200000, NULL
, HFILL
}
12578 { &hf_opa_ClearAllPortCounters_PortXmitWastedBW
, {
12579 "PortXmitWastedBW", "opa.pa.clearallportcounters.portxmitwastedbw",
12580 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00100000, NULL
, HFILL
}
12582 { &hf_opa_ClearAllPortCounters_PortXmitWaitData
, {
12583 "PortXmitWaitData", "opa.pa.clearallportcounters.portxmitwaitdata",
12584 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00080000, NULL
, HFILL
}
12586 { &hf_opa_ClearAllPortCounters_PortRcvBubble
, {
12587 "PortRcvBubble", "opa.pa.clearallportcounters.portrcvbubble",
12588 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00040000, NULL
, HFILL
}
12590 { &hf_opa_ClearAllPortCounters_PortMarkFECN
, {
12591 "PortMarkFECN", "opa.pa.clearallportcounters.portmarkfecn",
12592 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00020000, NULL
, HFILL
}
12594 { &hf_opa_ClearAllPortCounters_PortRcvConstraintErrors
, {
12595 "PortRcvConstraintErrors", "opa.pa.clearallportcounters.portrcvconstrainterrors",
12596 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00010000, NULL
, HFILL
}
12598 { &hf_opa_ClearAllPortCounters_PortRcvSwitchRelayErrors
, {
12599 "PortRcvSwitchRelayErrors", "opa.pa.clearallportcounters.portrcvswitchrelayerrors",
12600 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00008000, NULL
, HFILL
}
12602 { &hf_opa_ClearAllPortCounters_PortXmitDiscards
, {
12603 "PortXmitDiscards", "opa.pa.clearallportcounters.portxmitdiscards",
12604 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00004000, NULL
, HFILL
}
12606 { &hf_opa_ClearAllPortCounters_PortXmitConstraintErrors
, {
12607 "PortXmitConstraintErrors", "opa.pa.clearallportcounters.portxmitconstrainterrors",
12608 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00002000, NULL
, HFILL
}
12610 { &hf_opa_ClearAllPortCounters_PortRcvRemotePhysicalErrors
, {
12611 "PortRcvRemotePhysicalErrors", "opa.pa.clearallportcounters.portrcvremotephysicalerrors",
12612 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00001000, NULL
, HFILL
}
12614 { &hf_opa_ClearAllPortCounters_LocalLinkIntegrityErrors
, {
12615 "LocalLinkIntegrityErrors", "opa.pa.clearallportcounters.locallinkintegrityerrors",
12616 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000800, NULL
, HFILL
}
12618 { &hf_opa_ClearAllPortCounters_PortRcvErrors
, {
12619 "PortRcvErrors", "opa.pa.clearallportcounters.portrcverrors",
12620 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000400, NULL
, HFILL
}
12622 { &hf_opa_ClearAllPortCounters_ExcessiveBufferOverruns
, {
12623 "ExcessiveBufferOverruns", "opa.pa.clearallportcounters.excessivebufferoverruns",
12624 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000200, NULL
, HFILL
}
12626 { &hf_opa_ClearAllPortCounters_FMConfigErrors
, {
12627 "FMConfigErrors", "opa.pa.clearallportcounters.fmconfigerrors",
12628 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000100, NULL
, HFILL
}
12630 { &hf_opa_ClearAllPortCounters_LinkErrorRecovery
, {
12631 "LinkErrorRecovery", "opa.pa.clearallportcounters.linkerrorrecovery",
12632 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000080, NULL
, HFILL
}
12634 { &hf_opa_ClearAllPortCounters_LinkDowned
, {
12635 "LinkDowned", "opa.pa.clearallportcounters.linkdowned",
12636 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000040, NULL
, HFILL
}
12638 { &hf_opa_ClearAllPortCounters_UncorrectableErrors
, {
12639 "UncorrectableErrors", "opa.pa.clearallportcounters.uncorrectableerrors",
12640 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00000020, NULL
, HFILL
}
12642 { &hf_opa_ClearAllPortCounters_reserved
, {
12643 "Reserved (5 bits)", "opa.pa.clearallportcounters.reserved",
12644 FT_UINT32
, BASE_DEC
, NULL
, 0x0000001F, NULL
, HFILL
}
12648 { &hf_opa_PMConfig
, {
12649 "PM Config", "opa.pa.pmconfig",
12650 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12652 { &hf_opa_PMConfig_sweepInterval
, {
12653 "sweepInterval", "opa.pa.pmconfig.sweepinterval",
12654 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12656 { &hf_opa_PMConfig_maxClients
, {
12657 "maxClients", "opa.pa.pmconfig.maxclients",
12658 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12660 { &hf_opa_PMConfig_sizeHistory
, {
12661 "sizeHistory", "opa.pa.pmconfig.sizehistory",
12662 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12664 { &hf_opa_PMConfig_sizeFreeze
, {
12665 "sizeFreeze", "opa.pa.pmconfig.sizefreeze",
12666 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12668 { &hf_opa_PMConfig_lease
, {
12669 "lease", "opa.pa.pmconfig.lease",
12670 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12672 { &hf_opa_PMConfig_pmFlags
, {
12673 "pmFlags", "opa.pa.pmconfig.pmflags",
12674 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12676 { &hf_opa_PMConfig_PortXmitWait
, {
12677 "PortXmitWait", "opa.pa.pmconfig.portxmitwait",
12678 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12680 { &hf_opa_PMConfig_SwPortCongestion
, {
12681 "SwPortCongestion", "opa.pa.pmconfig.swportcongestion",
12682 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12684 { &hf_opa_PMConfig_PortRcvFECN
, {
12685 "PortRcvFECN", "opa.pa.pmconfig.portrcvfecn",
12686 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12688 { &hf_opa_PMConfig_PortRcvBECN
, {
12689 "PortRcvBECN", "opa.pa.pmconfig.portrcvbecn",
12690 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12692 { &hf_opa_PMConfig_PortXmitTimeCong
, {
12693 "PortXmitTimeCong", "opa.pa.pmconfig.portxmittimecong",
12694 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12696 { &hf_opa_PMConfig_PortMarkFECN
, {
12697 "PortMarkFECN", "opa.pa.pmconfig.portmarkfecn",
12698 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12700 { &hf_opa_PMConfig_integrityErrors
, {
12701 "integrityErrors", "opa.pa.pmconfig.integrityerrors",
12702 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12704 { &hf_opa_PMConfig_congestionErrors
, {
12705 "congestionErrors", "opa.pa.pmconfig.congestionerrors",
12706 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12708 { &hf_opa_PMConfig_bubbleErrors
, {
12709 "bubbleErrors", "opa.pa.pmconfig.bubbleerrors",
12710 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12712 { &hf_opa_PMConfig_smaCongestionErrors
, {
12713 "smaCongestionErrors", "opa.pa.pmconfig.smacongestionerrors",
12714 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12716 { &hf_opa_PMConfig_securityErrors
, {
12717 "securityErrors", "opa.pa.pmconfig.securityerrors",
12718 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12720 { &hf_opa_PMConfig_routingErrors
, {
12721 "routingErrors", "opa.pa.pmconfig.routingerrors",
12722 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12724 { &hf_opa_PMConfig_LocalLinkIntegrityErrors
, {
12725 "LocalLinkIntegrityErrors", "opa.pa.pmconfig.locallinkintegrityerrors",
12726 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12728 { &hf_opa_PMConfig_PortRcvErrors
, {
12729 "PortRcvErrors", "opa.pa.pmconfig.portrcverrors",
12730 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12732 { &hf_opa_PMConfig_ExcessiveBufferOverrunErrors
, {
12733 "ExcessiveBufferOverrunErrors", "opa.pa.pmconfig.excessivebufferoverrunerrors",
12734 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12736 { &hf_opa_PMConfig_LinkErrorRecovery
, {
12737 "LinkErrorRecovery", "opa.pa.pmconfig.linkerrorrecovery",
12738 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12740 { &hf_opa_PMConfig_LinkDowned
, {
12741 "LinkDowned", "opa.pa.pmconfig.linkdowned",
12742 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12744 { &hf_opa_PMConfig_UncorrectableErrors
, {
12745 "UncorrectableErrors", "opa.pa.pmconfig.uncorrectableerrors",
12746 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12748 { &hf_opa_PMConfig_FMConfigErrors
, {
12749 "FMConfigErrors", "opa.pa.pmconfig.fmconfigerrors",
12750 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12752 { &hf_opa_PMConfig_LinkQualityIndicator
, {
12753 "LinkQualityIndicator", "opa.pa.pmconfig.linkqualityindicator",
12754 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12756 { &hf_opa_PMConfig_LinkWidthDowngrade
, {
12757 "LinkWidthDowngrade", "opa.pa.pmconfig.linkwidthdowngrade",
12758 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12760 { &hf_opa_PMConfig_memoryFootprint
, {
12761 "memoryFootprint", "opa.pa.pmconfig.memoryfootprint",
12762 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12764 { &hf_opa_PMConfig_maxAttempts
, {
12765 "maxAttempts", "opa.pa.pmconfig.maxattempts",
12766 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12768 { &hf_opa_PMConfig_respTimeout
, {
12769 "respTimeout", "opa.pa.pmconfig.resptimeout",
12770 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12772 { &hf_opa_PMConfig_minRespTimeout
, {
12773 "minRespTimeout", "opa.pa.pmconfig.minresptimeout",
12774 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12776 { &hf_opa_PMConfig_maxParallelNodes
, {
12777 "maxParallelNodes", "opa.pa.pmconfig.maxparallelnodes",
12778 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12780 { &hf_opa_PMConfig_pmaBatchSize
, {
12781 "pmaBatchSize", "opa.pa.pmconfig.pmabatchsize",
12782 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12784 { &hf_opa_PMConfig_errorClear
, {
12785 "errorClear", "opa.pa.pmconfig.errorclear",
12786 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12789 /* MoveFreezeFrame */
12790 { &hf_opa_MoveFreezeFrame_old
, {
12791 "Old Image", "opa.pa.movefreezeframe.old",
12792 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12794 { &hf_opa_MoveFreezeFrame_new
, {
12795 "New Image", "opa.pa.movefreezeframe.new",
12796 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12799 /* GetFocusPorts */
12800 { &hf_opa_GetFocusPorts
, {
12801 "Focus Ports", "opa.pa.getfocusports",
12802 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12804 { &hf_opa_GetFocusPorts_groupName
, {
12805 "Group Name", "opa.pa.getfocusports.groupname",
12806 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12808 { &hf_opa_GetFocusPorts_select
, {
12809 "select", "opa.pa.getfocusports.select",
12810 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12812 { &hf_opa_GetFocusPorts_start
, {
12813 "start", "opa.pa.getfocusports.start",
12814 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12816 { &hf_opa_GetFocusPorts_range
, {
12817 "range", "opa.pa.getfocusports.range",
12818 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12820 { &hf_opa_GetFocusPorts_nodeLID
, {
12821 "nodeLID", "opa.pa.getfocusports.nodelid",
12822 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12824 { &hf_opa_GetFocusPorts_portNumber
, {
12825 "portNumber", "opa.pa.getfocusports.portnumber",
12826 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12828 { &hf_opa_GetFocusPorts_rate
, {
12829 "rate", "opa.pa.getfocusports.rate",
12830 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0x0, NULL
, HFILL
}
12832 { &hf_opa_GetFocusPorts_mtu
, {
12833 "mtu", "opa.pa.getfocusports.mtu",
12834 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x0, NULL
, HFILL
}
12836 { &hf_opa_GetFocusPorts_localFlags
, {
12837 "localFlags", "opa.pa.getfocusports.localflags",
12838 FT_UINT8
, BASE_DEC
, VALS(FocusPortFlags
), 0xF0, NULL
, HFILL
}
12840 { &hf_opa_GetFocusPorts_neighborFlags
, {
12841 "neighborFlags", "opa.pa.getfocusports.neighborflags",
12842 FT_UINT8
, BASE_DEC
, VALS(FocusPortFlags
), 0x0F, NULL
, HFILL
}
12844 { &hf_opa_GetFocusPorts_value
, {
12845 "value", "opa.pa.getfocusports.value",
12846 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12848 { &hf_opa_GetFocusPorts_nodeGUID
, {
12849 "nodeGUID", "opa.pa.getfocusports.nodeguid",
12850 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12852 { &hf_opa_GetFocusPorts_nodeDesc
, {
12853 "nodeDesc", "opa.pa.getfocusports.nodedesc",
12854 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12856 { &hf_opa_GetFocusPorts_neighborLid
, {
12857 "neighborLid", "opa.pa.getfocusports.neighborlid",
12858 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12860 { &hf_opa_GetFocusPorts_neighborPortNumber
, {
12861 "neighborPortNumber", "opa.pa.getfocusports.neighborportnumber",
12862 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12864 { &hf_opa_GetFocusPorts_neighborValue
, {
12865 "neighborValue", "opa.pa.getfocusports.neighborvalue",
12866 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12868 { &hf_opa_GetFocusPorts_neighborGuid
, {
12869 "neighborGuid", "opa.pa.getfocusports.neighborguid",
12870 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12872 { &hf_opa_GetFocusPorts_neighborNodeDesc
, {
12873 "neighborNodeDesc", "opa.pa.getfocusports.neighbornodedesc",
12874 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12878 { &hf_opa_GetImageInfo
, {
12879 "Image Info", "opa.pa.getimageinfo",
12880 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12882 { &hf_opa_GetImageInfo_sweepStart
, {
12883 "sweepStart", "opa.pa.getimageinfo.sweepstart",
12884 FT_ABSOLUTE_TIME
, ABSOLUTE_TIME_LOCAL
, NULL
, 0x0, NULL
, HFILL
}
12886 { &hf_opa_GetImageInfo_sweepDuration
, {
12887 "sweepDuration", "opa.pa.getimageinfo.sweepduration",
12888 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12890 { &hf_opa_GetImageInfo_numHFIPorts
, {
12891 "numHHIPorts", "opa.pa.getimageinfo.numhfiports",
12892 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12894 { &hf_opa_GetImageInfo_numSwitchNodes
, {
12895 "numSwitchNodes", "opa.pa.getimageinfo.numswitchnodes",
12896 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12898 { &hf_opa_GetImageInfo_numSwitchPorts
, {
12899 "numSwitchPorts", "opa.pa.getimageinfo.numswitchports",
12900 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12902 { &hf_opa_GetImageInfo_numLinks
, {
12903 "numLinks", "opa.pa.getimageinfo.numlinks",
12904 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12906 { &hf_opa_GetImageInfo_numSMs
, {
12907 "numSMs", "opa.pa.getimageinfo.numsms",
12908 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12910 { &hf_opa_GetImageInfo_numFailedNodes
, {
12911 "numFailedNodes", "opa.pa.getimageinfo.numfailednodes",
12912 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12914 { &hf_opa_GetImageInfo_numFailedPorts
, {
12915 "numFailedPorts", "opa.pa.getimageinfo.numfailedports",
12916 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12918 { &hf_opa_GetImageInfo_numSkippedNodes
, {
12919 "numSkippedNodes", "opa.pa.getimageinfo.numskippednodes",
12920 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12922 { &hf_opa_GetImageInfo_numSkippedPorts
, {
12923 "numSkippedPorts", "opa.pa.getimageinfo.numskippedports",
12924 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12926 { &hf_opa_GetImageInfo_numUnexpectedClearPorts
, {
12927 "numUnexpectedClearPorts", "opa.pa.getimageinfo.numunexpectedclearports",
12928 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12930 { &hf_opa_GetImageInfo_imageInterval
, {
12931 "imageInterval", "opa.pa.getimageinfo.imageinterval",
12932 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
12934 { &hf_opa_GetImageInfo_lid
, {
12935 "lid", "opa.pa.getimageinfo.sminfo.lid",
12936 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12938 { &hf_opa_GetImageInfo_state
, {
12939 "state", "opa.pa.getimageinfo.sminfo.state",
12940 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12942 { &hf_opa_GetImageInfo_priority
, {
12943 "priority", "opa.pa.getimageinfo.sminfo.priority",
12944 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12946 { &hf_opa_GetImageInfo_portNumber
, {
12947 "portNumber", "opa.pa.getimageinfo.sminfo.portnumber",
12948 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12950 { &hf_opa_GetImageInfo_smPortGuid
, {
12951 "portGUID", "opa.pa.getimageinfo.sminfo.portguid",
12952 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12954 { &hf_opa_GetImageInfo_smNodeDesc
, {
12955 "nodeDesc", "opa.pa.getimageinfo.sminfo.nodedesc",
12956 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12960 { &hf_opa_GetVFList
, {
12961 "Vf List", "opa.pa.getvflist",
12962 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12964 { &hf_opa_GetVFList_vfName
, {
12965 "VF Name", "opa.pa.getvflist.vfname",
12966 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12970 { &hf_opa_GetVFInfo
, {
12971 "VF Info", "opa.pa.getvfinfo",
12972 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12974 { &hf_opa_GetVFInfo_vfName
, {
12975 "VF Name", "opa.pa.getvfinfo.vfname",
12976 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
12978 { &hf_opa_GetVFInfo_numPorts
, {
12979 "numPorts", "opa.pa.getvfinfo.numports",
12980 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12982 { &hf_opa_GetVFInfo_totalMBps
, {
12983 "totalMBps", "opa.pa.getvfinfo.totalmbps",
12984 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12986 { &hf_opa_GetVFInfo_totalKPps
, {
12987 "totalKPps", "opa.pa.getvfinfo.totalkpps",
12988 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12990 { &hf_opa_GetVFInfo_avgMBps
, {
12991 "avgMBps", "opa.pa.getvfinfo.avgmbps",
12992 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12994 { &hf_opa_GetVFInfo_minMBps
, {
12995 "minMBps", "opa.pa.getvfinfo.minmbps",
12996 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
12998 { &hf_opa_GetVFInfo_maxMBps
, {
12999 "maxMBps", "opa.pa.getvfinfo.maxmbps",
13000 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13002 { &hf_opa_GetVFInfo_numBWBuckets
, {
13003 "numBWBuckets", "opa.pa.getvfinfo.numbwbuckets",
13004 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13006 { &hf_opa_GetVFInfo_BWBuckets
, {
13007 "BWBuckets", "opa.pa.getvfinfo.bwbuckets",
13008 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13010 { &hf_opa_GetVFInfo_avgKPps
, {
13011 "avgKPps", "opa.pa.getvfinfo.avgkpps",
13012 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13014 { &hf_opa_GetVFInfo_minKPps
, {
13015 "minKPps", "opa.pa.getvfinfo.minkpps",
13016 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13018 { &hf_opa_GetVFInfo_maxKPps
, {
13019 "maxKPps", "opa.pa.getvfinfo.maxkpps",
13020 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13022 { &hf_opa_GetVFInfo_pmaFailedPorts
, {
13023 "pmaFailedPorts", "opa.pa.getvfinfo.pmafailedports",
13024 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13026 { &hf_opa_GetVFInfo_topoFailedPorts
, {
13027 "topoFailedPorts", "opa.pa.getvfinfo.topofailedports",
13028 FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13030 { &hf_opa_GetVFInfo_integrityErrors
, {
13031 "integrityErrors", "opa.pa.getvfinfo.integrityerrors",
13032 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13034 { &hf_opa_GetVFInfo_congestionErrors
, {
13035 "congestionErrors", "opa.pa.getvfinfo.congestionerrors",
13036 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13038 { &hf_opa_GetVFInfo_smaCongestionErrors
, {
13039 "smaCongestionErrors", "opa.pa.getvfinfo.smacongestionerrors",
13040 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13042 { &hf_opa_GetVFInfo_bubbleErrors
, {
13043 "bubbleErrors", "opa.pa.getvfinfo.bubbleerrors",
13044 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13046 { &hf_opa_GetVFInfo_securityErrors
, {
13047 "securityErrors", "opa.pa.getvfinfo.securityerrors",
13048 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13050 { &hf_opa_GetVFInfo_routingErrors
, {
13051 "routingErrors", "opa.pa.getvfinfo.routingerrors",
13052 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13054 { &hf_opa_GetVFInfo_utilizationPct10
, {
13055 "utilizationPct10", "opa.pa.getvfinfo.utilizationpct10",
13056 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_computed_pct10
), 0x0, NULL
, HFILL
}
13058 { &hf_opa_GetVFInfo_discardsPct10
, {
13059 "discardsPct10", "opa.pa.getvfinfo.discardspct10",
13060 FT_UINT16
, BASE_CUSTOM
, CF_FUNC(cf_opa_mad_computed_pct10
), 0x0, NULL
, HFILL
}
13062 { &hf_opa_GetVFInfo_maxInternalRate
, {
13063 "maxInternalRate", "opa.pa.getvfinfo.maxinternalrate",
13064 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0x0, NULL
, HFILL
}
13066 { &hf_opa_GetVFInfo_minInternalRate
, {
13067 "minInternalRate", "opa.pa.getvfinfo.mininternalrate",
13068 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0x0, NULL
, HFILL
}
13070 { &hf_opa_GetVFInfo_maxInternalMBps
, {
13071 "maxInternalMBps", "opa.pa.getvfinfo.maxinternalmbps",
13072 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13076 { &hf_opa_GetVFConfig
, {
13077 "VF Config", "opa.pa.getvfconfig",
13078 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13080 { &hf_opa_GetVFConfig_vfName
, {
13081 "VF Name", "opa.pa.getvfconfig.vfname",
13082 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13084 { &hf_opa_GetVFConfig_Port_NodeGUID
, {
13085 "NodeGUID", "opa.pa.getvfconfig.port.nodeguid",
13086 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13088 { &hf_opa_GetVFConfig_Port_nodeDesc
, {
13089 "nodeDesc", "opa.pa.getvfconfig.port.nodedesc",
13090 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13092 { &hf_opa_GetVFConfig_Port_NodeLID
, {
13093 "NodeLID", "opa.pa.getvfconfig.port.nodelid",
13094 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13096 { &hf_opa_GetVFConfig_Port_PortNumber
, {
13097 "PortNumber", "opa.pa.getvfconfig.port.portnumber",
13098 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13101 /* GetVFPortCounters */
13102 { &hf_opa_GetVFPortCounters
, {
13103 "VF Port Counters", "opa.pa.getvfportcounters",
13104 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13106 { &hf_opa_GetVFPortCounters_vfName
, {
13107 "VF Name", "opa.pa.getvfportcounters.vfname",
13108 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13110 { &hf_opa_GetVFPortCounters_nodeLID
, {
13111 "nodeLID", "opa.pa.getvfportcounters.nodelid",
13112 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13114 { &hf_opa_GetVFPortCounters_PortNumber
, {
13115 "PortNumber", "opa.pa.getvfportcounters.portnumber",
13116 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13118 { &hf_opa_GetVFPortCounters_flags
, {
13119 "flags", "opa.pa.getvfportcounters.flags",
13120 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13122 { &hf_opa_GetVFPortCounters_PortVFXmitData
, {
13123 "PortVFXmitData", "opa.pa.getvfportcounters.portvfxmitdata",
13124 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13126 { &hf_opa_GetVFPortCounters_PortVFRcvData
, {
13127 "PortVFRcvData", "opa.pa.getvfportcounters.portvfrcvdata",
13128 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13130 { &hf_opa_GetVFPortCounters_PortVFXmitPkts
, {
13131 "PortVFXmitPkts", "opa.pa.getvfportcounters.portvfxmitpkts",
13132 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13134 { &hf_opa_GetVFPortCounters_PortVFRcvPkts
, {
13135 "PortVFRcvPkts", "opa.pa.getvfportcounters.portvfrcvpkts",
13136 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13138 { &hf_opa_GetVFPortCounters_PortVFXmitDiscards
, {
13139 "PortVFXmitDiscards", "opa.pa.getvfportcounters.portvfxmitdiscards",
13140 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13142 { &hf_opa_GetVFPortCounters_SwPortVFCongestion
, {
13143 "SwPortCongestion", "opa.pa.getvfportcounters.swportcongestion",
13144 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13146 { &hf_opa_GetVFPortCounters_PortVFXmitWait
, {
13147 "PortVFXmitWait", "opa.pa.getvfportcounters.portvfxmitwait",
13148 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13150 { &hf_opa_GetVFPortCounters_PortVFRcvFECN
, {
13151 "PortVFRcvFECN", "opa.pa.getvfportcounters.portvfrcvfecn",
13152 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13154 { &hf_opa_GetVFPortCounters_PortVFRcvBECN
, {
13155 "PortVFRcvBECN", "opa.pa.getvfportcounters.portvfrcvbecn",
13156 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13158 { &hf_opa_GetVFPortCounters_PortVFXmitTimeCong
, {
13159 "PortVFXmitTimeCong", "opa.pa.getvfportcounters.portvfxmittimecong",
13160 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13162 { &hf_opa_GetVFPortCounters_PortVFXmitWastedBW
, {
13163 "PortVFXmitWastedBW", "opa.pa.getvfportcounters.portvfxmitwastedbw",
13164 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13166 { &hf_opa_GetVFPortCounters_PortVFXmitWaitData
, {
13167 "PortVFXmitWaitData", "opa.pa.getvfportcounters.portvfxmitwaitdata",
13168 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13170 { &hf_opa_GetVFPortCounters_PortVFRcvBubble
, {
13171 "PortVFRcvBubble", "opa.pa.getvfportcounters.portvfrcvbubble",
13172 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13174 { &hf_opa_GetVFPortCounters_PortVFMarkFECN
, {
13175 "PortVFMarkFECN", "opa.pa.getvfportcounters.portvfmarkfecn",
13176 FT_UINT64
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}
13179 /* ClearVFPortCounters */
13180 { &hf_opa_ClearVFPortCounters
, {
13181 "Clear VF Port Counters", "opa.pa.clearvfportcounters",
13182 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13184 { &hf_opa_ClearVFPortCounters_vfName
, {
13185 "VF Name", "opa.pa.clearvfportcounters.vfname",
13186 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13188 { &hf_opa_ClearVFPortCounters_nodeLID
, {
13189 "nodeLID", "opa.pa.clearvfportcounters.nodelid",
13190 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13192 { &hf_opa_ClearVFPortCounters_PortNumber
, {
13193 "PortNumber", "opa.pa.clearvfportcounters.portnumber",
13194 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13196 { &hf_opa_ClearVFPortCounters_CounterSelectMask
, {
13197 "CounterSelectMask", "opa.pa.clearvfportcounters.counterselectmask",
13198 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13200 { &hf_opa_ClearVFPortCounters_PortVFXmitData
, {
13201 "PortVFXmitData", "opa.pa.clearvfportcounters.portvfxmitdata",
13202 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x80000000, NULL
, HFILL
}
13204 { &hf_opa_ClearVFPortCounters_PortVFRcvData
, {
13205 "PortVFRcvData", "opa.pa.clearvfportcounters.portvfrcvdata",
13206 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x40000000, NULL
, HFILL
}
13208 { &hf_opa_ClearVFPortCounters_PortVFXmitPkts
, {
13209 "PortVFXmitPkts", "opa.pa.clearvfportcounters.portvfxmitpkts",
13210 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x20000000, NULL
, HFILL
}
13212 { &hf_opa_ClearVFPortCounters_PortVFRcvPkts
, {
13213 "PortVFRcvPkts", "opa.pa.clearvfportcounters.portvfrcvpkts",
13214 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x10000000, NULL
, HFILL
}
13216 { &hf_opa_ClearVFPortCounters_PortVFXmitDiscards
, {
13217 "PortVFXmitDiscards", "opa.pa.clearvfportcounters.portvfxmitdiscards",
13218 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x08000000, NULL
, HFILL
}
13220 { &hf_opa_ClearVFPortCounters_SwPortVFCongestion
, {
13221 "SwPortVFCongestion", "opa.pa.clearvfportcounters.swportvfcongestion",
13222 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x04000000, NULL
, HFILL
}
13224 { &hf_opa_ClearVFPortCounters_PortVFXmitWait
, {
13225 "PortVFXmitWait", "opa.pa.clearvfportcounters.portvfxmitwait",
13226 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x02000000, NULL
, HFILL
}
13228 { &hf_opa_ClearVFPortCounters_PortVFRcvFECN
, {
13229 "PortVFRcvFECN", "opa.pa.clearvfportcounters.portvfrcvfecn",
13230 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x01000000, NULL
, HFILL
}
13232 { &hf_opa_ClearVFPortCounters_PortVFRcvBECN
, {
13233 "PortVFRcvBECN", "opa.pa.clearvfportcounters.portvfrcvbecn",
13234 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00800000, NULL
, HFILL
}
13236 { &hf_opa_ClearVFPortCounters_PortVFXmitTimeCong
, {
13237 "PortVFXmitTimeCong", "opa.pa.clearvfportcounters.portvfxmittimecong",
13238 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00400000, NULL
, HFILL
}
13240 { &hf_opa_ClearVFPortCounters_PortVFXmitWastedBW
, {
13241 "PortVFXmitWastedBW", "opa.pa.clearvfportcounters.portvfxmitwastedbw",
13242 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00200000, NULL
, HFILL
}
13244 { &hf_opa_ClearVFPortCounters_PortVFXmitWaitData
, {
13245 "PortVFXmitWaitData", "opa.pa.clearvfportcounters.portvfxmitwaitdata",
13246 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00100000, NULL
, HFILL
}
13248 { &hf_opa_ClearVFPortCounters_PortVFRcvBubble
, {
13249 "PortVFRcvBubble", "opa.pa.clearvfportcounters.portvfrcvbubble",
13250 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00080000, NULL
, HFILL
}
13252 { &hf_opa_ClearVFPortCounters_PortVFMarkFECN
, {
13253 "PortVFMarkFECN", "opa.pa.clearvfportcounters.portvfmarkfecn",
13254 FT_BOOLEAN
, 32, TFS(&tfs_clear_dont_clear
), 0x00040000, NULL
, HFILL
}
13256 { &hf_opa_ClearVFPortCounters_reserved
, {
13257 "Reserved", "opa.pa.clearvfportcounters.reserved",
13258 FT_UINT32
, BASE_HEX
, NULL
, 0x0003FFFF, NULL
, HFILL
}
13261 /* GetVFFocusPorts */
13262 { &hf_opa_GetVFFocusPorts
, {
13263 "VF Focus Ports", "opa.pa.getvffocusports",
13264 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13266 { &hf_opa_GetVFFocusPorts_vfName
, {
13267 "VF Name", "opa.pa.getvffocusports.vfname",
13268 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13270 { &hf_opa_GetVFFocusPorts_select
, {
13271 "select", "opa.pa.getvffocusports.select",
13272 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13274 { &hf_opa_GetVFFocusPorts_start
, {
13275 "start", "opa.pa.getvffocusports.start",
13276 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13278 { &hf_opa_GetVFFocusPorts_range
, {
13279 "range", "opa.pa.getvffocusports.range",
13280 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13282 { &hf_opa_GetVFFocusPorts_nodeLID
, {
13283 "nodeLID", "opa.pa.getvffocusports.nodelid",
13284 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13286 { &hf_opa_GetVFFocusPorts_portNumber
, {
13287 "portNumber", "opa.pa.getvffocusports.portnumber",
13288 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13290 { &hf_opa_GetVFFocusPorts_rate
, {
13291 "rate", "opa.pa.getvffocusports.rate",
13292 FT_UINT8
, BASE_HEX
, VALS(Rate
), 0xF8, NULL
, HFILL
}
13294 { &hf_opa_GetVFFocusPorts_mtu
, {
13295 "mtu", "opa.pa.getvffocusports.mtu",
13296 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x07, NULL
, HFILL
}
13298 { &hf_opa_GetVFFocusPorts_localFlags
, {
13299 "localFlags", "opa.pa.getvffocusports.localflags",
13300 FT_UINT8
, BASE_DEC
, VALS(FocusPortFlags
), 0xF0, NULL
, HFILL
}
13302 { &hf_opa_GetVFFocusPorts_neighborFlags
, {
13303 "neighborFlags", "opa.pa.getvffocusports.neighborflags",
13304 FT_UINT8
, BASE_DEC
, VALS(FocusPortFlags
), 0x0F, NULL
, HFILL
}
13306 { &hf_opa_GetVFFocusPorts_value
, {
13307 "value", "opa.pa.getvffocusports.value",
13308 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13310 { &hf_opa_GetVFFocusPorts_nodeGUID
, {
13311 "nodeGUID", "opa.pa.getvffocusports.nodeguid",
13312 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13314 { &hf_opa_GetVFFocusPorts_nodeDesc
, {
13315 "nodeDesc", "opa.pa.getvffocusports.nodedesc",
13316 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13318 { &hf_opa_GetVFFocusPorts_neighborLid
, {
13319 "neighborLid", "opa.pa.getvffocusports.neighborlid",
13320 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13322 { &hf_opa_GetVFFocusPorts_neighborPortNumber
, {
13323 "neighborPortNumber", "opa.pa.getvffocusports.neighborportnumber",
13324 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13326 { &hf_opa_GetVFFocusPorts_neighborValue
, {
13327 "neighborValue", "opa.pa.getvffocusports.neighborvalue",
13328 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13330 { &hf_opa_GetVFFocusPorts_neighborGuid
, {
13331 "neighborGuid", "opa.pa.getvffocusports.neighborguid",
13332 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13334 { &hf_opa_GetVFFocusPorts_neighborNodeDesc
, {
13335 "neighborNodeDesc", "opa.pa.getvffocusports.neighbornodedesc",
13336 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13340 { &hf_opa_VFInfoRecord
, {
13341 "VF Info Record", "opa.vfinforecorf",
13342 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13344 { &hf_opa_VFInfoRecord_vfIndex
, {
13345 "VF Index", "opa.vfinforecorf.vfindex",
13346 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13348 { &hf_opa_VFInfoRecord_pKey
, {
13349 "P Key", "opa.vfinforecord.pkey",
13350 FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13352 { &hf_opa_VFInfoRecord_vfName
, {
13353 "VF Name", "opa.vfinforecord.vfname",
13354 FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13356 { &hf_opa_VFInfoRecord_MGID
, {
13357 "M GID", "opa.vfinforecord.mgid",
13358 FT_IPv6
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13360 { &hf_opa_VFInfoRecord_SelectFlags
, {
13361 "Select Flags", "opa.vfinforecord.selectflags",
13362 FT_UINT8
, BASE_HEX
, NULL
, 0xC0, NULL
, HFILL
}
13364 { &hf_opa_VFInfoRecord_reserved
, {
13365 "Reserved (1 bit)", "opa.vfinforecord.reserved",
13366 FT_UINT8
, BASE_HEX
, NULL
, 0x20, NULL
, HFILL
}
13368 { &hf_opa_VFInfoRecord_SL
, {
13369 "SL", "opa.vfinforecord.sl",
13370 FT_UINT8
, BASE_HEX
, NULL
, 0x1F, NULL
, HFILL
}
13372 { &hf_opa_VFInfoRecord_MTUSpecified
, {
13373 "MTU Specified", "opa.vfinforecord.mtuspecified",
13374 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
13376 { &hf_opa_VFInfoRecord_reserved2
, {
13377 "Reserved (1 bit)", "opa.vfinforecord.reserved2",
13378 FT_UINT8
, BASE_HEX
, NULL
, 0x40, NULL
, HFILL
}
13380 { &hf_opa_VFInfoRecord_MTU
, {
13381 "MTU", "opa.vfinforecord.mtu",
13382 FT_UINT8
, BASE_HEX
, VALS(MTU
), 0x3F, NULL
, HFILL
}
13384 { &hf_opa_VFInfoRecord_RateSpecified
, {
13385 "Rate Specified", "opa.vfinforecord.ratespecified",
13386 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
13388 { &hf_opa_VFInfoRecord_reserved4
, {
13389 "Reserved (1 bit)", "opa.vfinforecord.reserved4",
13390 FT_UINT8
, BASE_HEX
, NULL
, 0x40, NULL
, HFILL
}
13392 { &hf_opa_VFInfoRecord_Rate
, {
13393 "Rate", "opa.vfinforecord.rate",
13394 FT_UINT8
, BASE_HEX
, NULL
, 0x3F, NULL
, HFILL
}
13396 { &hf_opa_VFInfoRecord_PktLifeSpecified
, {
13397 "Packet Life Time Specified", "opa.vfinforecord.pktlifespecified",
13398 FT_UINT8
, BASE_HEX
, NULL
, 0x80, NULL
, HFILL
}
13400 { &hf_opa_VFInfoRecord_reserved5
, {
13401 "Reserved (4 bits)", "opa.vfinforecord.reserved5",
13402 FT_UINT8
, BASE_HEX
, NULL
, 0x78, NULL
, HFILL
}
13404 { &hf_opa_VFInfoRecord_PktLifeTimeInc
, {
13405 "Packet Life Time", "opa.vfinforecord.pktlifetime",
13406 FT_UINT8
, BASE_HEX
, NULL
, 0x07, NULL
, HFILL
}
13408 { &hf_opa_VFInfoRecord_OptionFlags
, {
13409 "Option Flags", "opa.vfinforecord.optionflags",
13410 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13412 { &hf_opa_VFInfoRecord_BandwidthPercent
, {
13413 "Bandwidth Percent", "opa.vfinforecord.bandwidthpercent",
13414 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13416 { &hf_opa_VFInfoRecord_reserved6
, {
13417 "Reserved (7 bits)", "opa.vfinforecord.reserved6",
13418 FT_UINT8
, BASE_HEX
, NULL
, 0xFE, NULL
, HFILL
}
13420 { &hf_opa_VFInfoRecord_Priority
, {
13421 "Priority", "opa.vfinforecord.priority",
13422 FT_UINT8
, BASE_HEX
, NULL
, 0x01, NULL
, HFILL
}
13424 { &hf_opa_VFInfoRecord_RoutingSLs
, {
13425 "Routing SLs", "opa.vfinforecord.routingsls",
13426 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13428 { &hf_opa_VFInfoRecord_reserved7
, {
13429 "Reserved (24 Bytes)", "opa.vfinforecord.reserved7",
13430 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13432 /* QuarantinedNodeRecord */
13433 { &hf_opa_QuarantinedNodeRecord
, {
13434 "Quarantined Node Record", "opa.quarantinednoderecord",
13435 FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13437 { &hf_opa_QuarantinedNodeRecord_TrustedLid
, {
13438 "Trusted LID", "opa.quarantinednoderecord.trustedlid",
13439 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13441 { &hf_opa_QuarantinedNodeRecord_TrustedNodeGUID
, {
13442 "Trusted Node GUID", "opa.quarantinednoderecord.trustednodeguid",
13443 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13445 { &hf_opa_QuarantinedNodeRecord_TrustedPortNum
, {
13446 "Trusted Port Num", "opa.quarantinednoderecord.trustedportnum",
13447 FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13449 { &hf_opa_QuarantinedNodeRecord_TrustedNeighborNodeGUID
, {
13450 "Trusted Neighbor Node GUID", "opa.quarantinednoderecord.trustedneighbornodeguid",
13451 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13453 { &hf_opa_QuarantinedNodeRecord_QuarantineReasons
, {
13454 "Quarantine Reasons", "opa.quarantinednoderecord.quarantinereasons",
13455 FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13457 { &hf_opa_QuarantinedNodeRecord_ExpectedNodeDesc
, {
13458 "Expected Node Desc", "opa.quarantinednoderecord.expectednodedesc",
13459 FT_BYTES
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}
13461 { &hf_opa_QuarantinedNodeRecord_ExpectedNodeGUID
, {
13462 "Expected Node GUID", "opa.quarantinednoderecord.expectednodeguid",
13463 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13465 { &hf_opa_QuarantinedNodeRecord_ExpectedPortGUID
, {
13466 "Expected Port GUID", "opa.quarantinednoderecord.expectedportguid",
13467 FT_UINT64
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}
13471 static int *ett
[] = {
13480 &ett_mad_attributemod
,
13482 &ett_rmpp_fragment
,
13483 &ett_rmpp_fragments
,
13484 &ett_rmpp_sa_record
,
13488 &ett_datadetails_trap259datavalid
,
13490 &ett_classportinfo
,
13491 &ett_classportinfo_redirect
,
13492 &ett_classportinfo_trap
,
13494 &ett_nodedescription
,
13497 &ett_switchinfo_switchcapabilitymask
,
13500 &ett_portinfo_link
,
13501 &ett_portinfo_portmode
,
13502 &ett_portinfo_flitcontrol
,
13503 &ett_portinfo_porterroraction
,
13504 &ett_portinfo_neighbormtu
,
13505 &ett_portinfo_xmitq
,
13506 &ett_portinfo_capmask
,
13507 &ett_portinfo_capmask3
,
13510 &ett_pkeytable_block
,
13511 &ett_sltoscmapping
,
13512 &ett_sltoscmapping_block
,
13513 &ett_sctoscmapping
,
13514 &ett_sctoscmapping_block
,
13515 &ett_sctoslmapping
,
13516 &ett_sctoslmapping_block
,
13517 &ett_sctovlxmappingtable
,
13518 &ett_sctovlxmappingtable_block
,
13519 &ett_vlarbitrationtable
,
13520 &ett_vlarbitrationtable_port
,
13521 &ett_linearforwardingtable
,
13522 &ett_linearforwardingtable_block
,
13523 &ett_multicastforwardingtable
,
13524 &ett_multicastforwardingtable_block
,
13525 &ett_portgroupforwardingtable
,
13526 &ett_portgroupforwardingtable_block
,
13527 &ett_portgrouptable
,
13528 &ett_portgrouptable_block
,
13533 &ett_buffercontroltable
,
13534 &ett_congestioninfo
,
13535 &ett_switchcongestionlog
,
13536 &ett_switchcongestionlog_entry
,
13537 &ett_switchcongestionsetting
,
13538 &ett_switchportcongestionsetting
,
13539 &ett_switchportcongestionsetting_port
,
13540 &ett_hficongestionlog
,
13541 &ett_hficongestionlog_entry
,
13542 &ett_hficongestionsetting
,
13543 &ett_hficongestioncontroltable
,
13544 &ett_hficongestioncontroltable_block
,
13546 &ett_portinforecord_linkdownreason
,
13547 &ett_portinforecord_linkdownreason_entry
,
13548 &ett_scmappingrecord
,
13551 &ett_servicerecord
,
13553 &ett_pathrecord_dgid
,
13554 &ett_pathrecord_sgid
,
13555 &ett_mcmemberrecord
,
13557 &ett_multipathrecord_gid
,
13558 &ett_multipathrecord_guid
,
13559 &ett_multipathrecord_lid
,
13560 &ett_cableinforecord
,
13561 &ett_serviceassocrecord
,
13562 &ett_sctoslmappingtablerecord
,
13563 &ett_portgroupforwardingtablerecord
,
13565 &ett_quarantinednoderecord
,
13566 &ett_fabricinforecord
,
13569 &ett_portstatus_vl
,
13570 &ett_clearportstatus
,
13571 &ett_clearportstatus_counterselectmask
,
13572 &ett_dataportcounters
,
13573 &ett_dataportcounters_port
,
13574 &ett_dataportcounters_vl
,
13575 &ett_errorportcounters
,
13576 &ett_errorportcounters_port
,
13577 &ett_errorportinfo
,
13578 &ett_errorportinfoport
,
13579 &ett_errorportinfo_portrcverrorinfo
,
13580 &ett_errorportinfo_excessivebufferoverruninfo
,
13581 &ett_errorportinfo_portxmitconstrainterrorinfo
,
13582 &ett_errorportinfo_portrcvconstrainterrorinfo
,
13583 &ett_errorportinfo_portrcvswitchrelayerrorinfo
,
13584 &ett_errorportinfo_uncorrectableerrorinfo
,
13585 &ett_errorportinfo_fmconfigerrorinfo
,
13589 &ett_getgroupinfoutilstats
,
13590 &ett_getgroupinfoutilbuckets
,
13591 &ett_getgroupinfoerrorsummary
,
13592 &ett_getgroupinfoerrintegritybucket
,
13593 &ett_getgroupinfoerrcongestionbucket
,
13594 &ett_getgroupinfoerrsmacongestionbucket
,
13595 &ett_getgroupinfoerrbubblebucket
,
13596 &ett_getgroupinfoerrsecuritybucket
,
13597 &ett_getgroupinfoerrroutingbucket
,
13598 &ett_getportcounters
,
13599 &ett_clearportcounters
,
13600 &ett_clearportcounters_counterselectmask
,
13601 &ett_clearallportcounters
,
13602 &ett_clearallportcounters_counterselectmask
,
13604 &ett_getgroupconfig
,
13605 &ett_getgroupconfigport
,
13606 &ett_movefreezeframeold
,
13607 &ett_movefreezeframenew
,
13608 &ett_getfocusports
,
13609 &ett_getfocusportsport
,
13611 &ett_getimageinfosm
,
13614 &ett_getvfinfoutilstats
,
13615 &ett_getvfinfoutilbuckets
,
13616 &ett_getvfinfoerrorsummary
,
13617 &ett_getvfinfoerrintegritybucket
,
13618 &ett_getvfinfoerrcongestionbucket
,
13619 &ett_getvfinfoerrsmacongestionbucket
,
13620 &ett_getvfinfoerrbubblebucket
,
13621 &ett_getvfinfoerrsecuritybucket
,
13622 &ett_getvfinfoerrroutingbucket
,
13624 &ett_getvfconfigport
,
13625 &ett_getvffocusports
,
13626 &ett_getvffocusportsport
,
13627 &ett_getvfportcounters
,
13628 &ett_clearvfportcounters
,
13629 &ett_clearvfportcounters_counterselectmask
13632 static ei_register_info ei
[] = {
13633 { &ei_opa_mad_error
, {
13634 "opa.mad.error", PI_RESPONSE_CODE
, PI_WARN
,
13635 "MAD Status Error", EXPFILL
}
13637 { &ei_opa_mad_no_attribute_dissector
, {
13638 "opa.mad.noattributedissector", PI_UNDECODED
, PI_NOTE
,
13639 "Attribute Dissector Not Implemented", EXPFILL
}
13641 { &ei_opa_mad_attribute_modifier_error_nonzero
, {
13642 "opa.mad.attributemodifiererrornonzero", PI_PROTOCOL
, PI_WARN
,
13643 "Attribute Modifier is unexpectedly Non-zero", EXPFILL
}
13645 { &ei_opa_rmpp_undecoded
, {
13646 "opa.rmpp.undecoded", PI_UNDECODED
, PI_NOTE
,
13647 "RMPP Records Undecoded", EXPFILL
}
13649 { &ei_opa_aggregate_error
, {
13650 "opa.aggregate.error.exp", PI_RESPONSE_CODE
, PI_WARN
,
13651 "Aggregate Error", EXPFILL
}
13655 proto_opa_mad
= proto_register_protocol("Intel Omni-Path MAD", "OPA MAD", "opa.mad");
13656 opa_mad_handle
= register_dissector("opa.mad", dissect_opa_mad
, proto_opa_mad
);
13658 proto_register_field_array(proto_opa_mad
, hf
, array_length(hf
));
13659 proto_register_subtree_array(ett
, array_length(ett
));
13661 expert_opa_mad
= expert_register_protocol(proto_opa_mad
);
13662 expert_register_field_array(expert_opa_mad
, ei
, array_length(ei
));
13664 range_convert_str(wmem_epan_scope(), &global_mad_vendor_class
, OPA_VENDOR_RANGE_STR
, 0xFF);
13665 range_convert_str(wmem_epan_scope(), &global_mad_vendor_rmpp_class
, OPA_VENDOR_RMPP_RANGE_STR
, 0xFF);
13666 range_convert_str(wmem_epan_scope(), &global_mad_application_class
, OPA_APPLICATION_RANGE_STR
, 0xFF);
13667 range_convert_str(wmem_epan_scope(), &global_mad_reserved_class
, OPA_RESERVED_RANGE_STR
, 0xFF);
13668 range_convert_str(wmem_epan_scope(), &global_mad_opa_class
, OPA_MGMTCLASS_RANGE_STR
, 0xFF);
13670 opa_mad_module
= prefs_register_protocol(proto_opa_mad
, NULL
);
13671 prefs_register_bool_preference(opa_mad_module
, "parse_mad_error",
13672 "Enable Parsing of Mad Payload on Mad Status Error",
13673 "Attempt to parse mad payload even when MAD.Status is non-zero",
13674 &pref_parse_on_mad_status_error
);
13675 prefs_register_bool_preference(opa_mad_module
, "reassemble_rmpp",
13676 "Enable Reassembly of RMPP packets",
13677 "Attempt to reassemble the mad payload of RMPP segments",
13678 &pref_attempt_rmpp_defragment
);
13680 register_init_routine(opa_mad_init
);
13681 register_cleanup_routine(opa_mad_cleanup
);
13684 void proto_reg_handoff_opa_mad(void)
13686 ethertype_dissector_table
= find_dissector_table("ethertype");
13690 * Editor modelines - https://www.wireshark.org/tools/modelines.html
13693 * c-basic-offset: 4
13695 * indent-tabs-mode: nil
13698 * vi: set shiftwidth=4 tabstop=8 expandtab:
13699 * :indentSize=4:tabSize=8:noTabs=true: