diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-02-22 10:52:05 +0000 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-02-22 10:52:05 +0000 |
commit | 9fb248f1c0c2a6b6092f1902087787e2f1c8b298 (patch) | |
tree | b977229d5abc482c555560ce87e7e1fc26775e7e /epan/dissectors/packet-infiniband.h | |
parent | 03bbd18a0bfb50b3d3c3c313fa112c03fd823e75 (diff) | |
download | wireshark-9fb248f1c0c2a6b6092f1902087787e2f1c8b298.tar.gz wireshark-9fb248f1c0c2a6b6092f1902087787e2f1c8b298.tar.bz2 wireshark-9fb248f1c0c2a6b6092f1902087787e2f1c8b298.zip |
Incorporate plugin dissector into build in collection.
svn path=/trunk/; revision=27502
Diffstat (limited to 'epan/dissectors/packet-infiniband.h')
-rw-r--r-- | epan/dissectors/packet-infiniband.h | 2574 |
1 files changed, 2574 insertions, 0 deletions
diff --git a/epan/dissectors/packet-infiniband.h b/epan/dissectors/packet-infiniband.h new file mode 100644 index 0000000000..76c61d6140 --- /dev/null +++ b/epan/dissectors/packet-infiniband.h @@ -0,0 +1,2574 @@ +/* packet-infiniband.h + * Routines for Infiniband/ERF Dissection + * Copyright 2008 Endace Technology Limited + * + * $Id$ + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ +#ifndef __PACKET_INFINIBAND_H_ +#define __PACKET_INFINIBAND_H_ + +#define PROTO_TAG_INFINIBAND "Infiniband" + +#include <epan/etypes.h> + +/* Wireshark ID */ +static int proto_infiniband = -1; + +/* Variables to hold expansion values between packets */ +static gint ett_infiniband = -1; +static gint ett_all_headers = -1; +static gint ett_lrh = -1; +static gint ett_grh = -1; +static gint ett_bth = -1; +static gint ett_rwh = -1; +static gint ett_rawdata = -1; +static gint ett_rdeth = -1; +static gint ett_deth = -1; +static gint ett_reth = -1; +static gint ett_atomiceth = -1; +static gint ett_aeth = -1; +static gint ett_atomicacketh = -1; +static gint ett_immdt = -1; +static gint ett_ieth = -1; +static gint ett_payload = -1; +static gint ett_vendor = -1; +static gint ett_subn_lid_routed = -1; +static gint ett_subn_directed_route = -1; +static gint ett_subnadmin = -1; +static gint ett_mad = -1; +static gint ett_rmpp = -1; +static gint ett_subm_attribute = -1; +static gint ett_suba_attribute = -1; +static gint ett_datadetails = -1; +static gint ett_noticestraps = -1; +static gint ett_nodedesc = -1; +static gint ett_nodeinfo = -1; +static gint ett_switchinfo = -1; +static gint ett_guidinfo = -1; +static gint ett_portinfo = -1; +static gint ett_portinfo_capmask = -1; +static gint ett_pkeytable = -1; +static gint ett_sltovlmapping = -1; +static gint ett_vlarbitrationtable = -1; +static gint ett_linearforwardingtable = -1; +static gint ett_randomforwardingtable = -1; +static gint ett_multicastforwardingtable = -1; +static gint ett_sminfo = -1; +static gint ett_vendordiag = -1; +static gint ett_ledinfo = -1; +static gint ett_linkspeedwidthpairs = -1; +static gint ett_informinfo = -1; +static gint ett_linkrecord = -1; +static gint ett_servicerecord = -1; +static gint ett_pathrecord = -1; +static gint ett_mcmemberrecord = -1; +static gint ett_tracerecord = -1; +static gint ett_multipathrecord = -1; +static gint ett_serviceassocrecord = -1; + +/* Global ref to highest level tree should we find other protocols encapsulated in IB */ +static proto_tree *top_tree = NULL; + +/* MAD_Data +* Structure to hold information from the common MAD header. +* This is necessary because the MAD header contains information which significantly changes the dissection algorithm. */ +typedef struct { + guint8 managementClass; + guint8 classVersion; + guint8 method; + guint8 status; + guint16 classSpecific; + guint64 transactionID; + guint16 attributeID; + guint32 attributeModifier; + char data[232]; +} MAD_Data; + +/* Dissector Declarations */ +static dissector_handle_t ipv6_handle; +static dissector_handle_t data_handle; +static dissector_table_t ethertype_dissector_table; + +static void dissect_infiniband(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +static gint32 find_next_header_sequence(guint32 OpCode); +static gboolean contains(guint32 value, guint32* arr, int length); +static void dissect_general_info(tvbuff_t *tvb, gint offset, packet_info *pinfo); + +/* Parsing Methods for specific IB headers. */ + +static void parse_VENDOR(proto_tree *, tvbuff_t *, gint *); +static void parse_PAYLOAD(proto_tree *, packet_info *, tvbuff_t *, gint *, gint length, guint8 virtualLane); +static void parse_IETH(proto_tree *, tvbuff_t *, gint *); +static void parse_IMMDT(proto_tree *, tvbuff_t *, gint *offset); +static void parse_ATOMICACKETH(proto_tree *, tvbuff_t *, gint *offset); +static void parse_AETH(proto_tree *, tvbuff_t *, gint *offset); +static void parse_ATOMICETH(proto_tree *, tvbuff_t *, gint *offset); +static void parse_RETH(proto_tree *, tvbuff_t *, gint *offset); +static void parse_DETH(proto_tree *, tvbuff_t *, gint *offset); +static void parse_RDETH(proto_tree *, tvbuff_t *, gint *offset); +static void parse_IPvSix(proto_tree *, tvbuff_t *, gint *offset, packet_info *); +static void parse_RWH(proto_tree *, tvbuff_t *, gint *offset, packet_info *); + +static void parse_SUBN_LID_ROUTED(proto_tree *, packet_info *, tvbuff_t *, gint *offset); +static void parse_SUBN_DIRECTED_ROUTE(proto_tree *, packet_info *, tvbuff_t *, gint *offset); +static void parse_SUBNADMN(proto_tree *, packet_info *, tvbuff_t *, gint *offset); +static void parse_PERF(proto_tree *, tvbuff_t *, gint *offset); +static void parse_BM(proto_tree *, tvbuff_t *, gint *offset); +static void parse_DEV_MGT(proto_tree *, tvbuff_t *, gint *offset); +static void parse_COM_MGT(proto_tree *, tvbuff_t *, gint *offset); +static void parse_SNMP(proto_tree *, tvbuff_t *, gint *offset); +static void parse_VENDOR_MANAGEMENT(proto_tree *, tvbuff_t *, gint *offset); +static void parse_APPLICATION_MANAGEMENT(proto_tree *, tvbuff_t *, gint *offset); +static void parse_RESERVED_MANAGEMENT(proto_tree *, tvbuff_t *, gint *offset); + +static gboolean parse_MAD_Common(proto_tree*, tvbuff_t*, gint *offset, MAD_Data*); +static gboolean parse_RMPP(proto_tree* , tvbuff_t* , gint *offset); +static void label_SUBM_Method(proto_item*, MAD_Data*, packet_info*); +static void label_SUBM_Attribute(proto_item*, MAD_Data*, packet_info*); +static void label_SUBA_Method(proto_item*, MAD_Data*, packet_info*); +static void label_SUBA_Attribute(proto_item*, MAD_Data*, packet_info*); + +/* Class Attribute Parsing Routines */ +static gboolean parse_SUBM_Attribute(proto_tree*, tvbuff_t*, gint *offset, MAD_Data*); +static gboolean parse_SUBA_Attribute(proto_tree*, tvbuff_t*, gint *offset, MAD_Data*); + +/* These methods parse individual attributes +* Naming convention FunctionHandle = "parse_" + [Attribute Name]; +* Where [Attribute Name] is the attribute identifier from chapter 14 of the IB Specification +* Subnet Management */ +static void parse_NoticesAndTraps(proto_tree*, tvbuff_t*, gint *offset); +static void parse_NodeDescription(proto_tree*, tvbuff_t*, gint *offset); +static void parse_NodeInfo(proto_tree*, tvbuff_t*, gint *offset); +static void parse_SwitchInfo(proto_tree*, tvbuff_t*, gint *offset); +static void parse_GUIDInfo(proto_tree*, tvbuff_t*, gint *offset); +static void parse_PortInfo(proto_tree*, tvbuff_t*, gint *offset); +static void parse_P_KeyTable(proto_tree*, tvbuff_t*, gint *offset); +static void parse_SLtoVLMappingTable(proto_tree*, tvbuff_t*, gint *offset); +static void parse_VLArbitrationTable(proto_tree*, tvbuff_t*, gint *offset); +static void parse_LinearForwardingTable(proto_tree*, tvbuff_t*, gint *offset); +static void parse_RandomForwardingTable(proto_tree*, tvbuff_t*, gint *offset); +static void parse_MulticastForwardingTable(proto_tree*, tvbuff_t*, gint *offset); +static void parse_SMInfo(proto_tree*, tvbuff_t*, gint *offset); +static void parse_VendorDiag(proto_tree*, tvbuff_t*, gint *offset); +static void parse_LedInfo(proto_tree*, tvbuff_t*, gint *offset); +static void parse_LinkSpeedWidthPairsTable(proto_tree*, tvbuff_t*, gint *offset); + +/* Subnet Administration */ +static void parse_InformInfo(proto_tree*, tvbuff_t*, gint *offset); +static void parse_LinkRecord(proto_tree*, tvbuff_t*, gint *offset); +static void parse_ServiceRecord(proto_tree*, tvbuff_t*, gint *offset); +static void parse_PathRecord(proto_tree*, tvbuff_t*, gint *offset); +static void parse_MCMemberRecord(proto_tree*, tvbuff_t*, gint *offset); +static void parse_TraceRecord(proto_tree*, tvbuff_t*, gint *offset); +static void parse_MultiPathRecord(proto_tree*, tvbuff_t*, gint *offset); +static void parse_ServiceAssociationRecord(proto_tree*, tvbuff_t*, gint *offset); + +/* Subnet Administration */ +static void parse_RID(proto_tree*, tvbuff_t*, gint *offset, MAD_Data*); + +/* SM Methods */ +static const value_string SUBM_Methods[] = { + { 0x01, "SubnGet("}, + { 0x02, "SubnSet("}, + { 0x81, "SubnGetResp("}, + { 0x05, "SubnTrap("}, + { 0x07, "SubnTrapResp("}, + { 0, NULL} +}; +/* SM Attributes */ +static const value_string SUBM_Attributes[] = { + { 0x0001, "Attribute (ClassPortInfo)"}, + { 0x0002, "Attribute (Notice)"}, + { 0x0003, "Attribute (InformInfo)"}, + { 0x0010, "Attribute (NodeDescription)"}, + { 0x0011, "Attribute (NodeInfo)"}, + { 0x0012, "Attribute (SwitchInfo)"}, + { 0x0014, "Attribute (GUIDInfo)"}, + { 0x0015, "Attribute (PortInfo)"}, + { 0x0016, "Attribute (P_KeyTable)"}, + { 0x0017, "Attribute (SLtoVLMapptingTable)"}, + { 0x0018, "Attribute (VLArbitrationTable)"}, + { 0x0019, "Attribute (LinearForwardingTable)"}, + { 0x001A, "Attribute (RandomForwardingTable)"}, + { 0x001B, "Attribute (MulticastForwardingTable)"}, + { 0x001C, "Attribute (LinkSpeedWidthPairsTable)"}, + { 0x0020, "Attribute (SMInfo)"}, + { 0x0030, "Attribute (VendorDiag)"}, + { 0x0031, "Attribute (LedInfo)"}, + { 0, NULL} +}; + +/* SA Methods */ +static const value_string SUBA_Methods[] = { + { 0x01, "SubnAdmGet("}, + { 0x81, "SubnAdmGetResp("}, + { 0x02, "SubnAdmSet("}, + { 0x06, "SubnAdmReport("}, + { 0x86, "SubnAdmReportResp("}, + { 0x12, "SubnAdmGetTable("}, + { 0x92, "SubnAdmGetTableResp("}, + { 0x13, "SubnAdmGetTraceTable("}, + { 0x14, "SubnAdmGetMulti("}, + { 0x94, "SubnAdmGetMultiResp("}, + { 0x15, "SubnAdmDelete("}, + { 0x95, "SubnAdmDeleteResp("}, + { 0, NULL} +}; +/* SA Attributes */ +static const value_string SUBA_Attributes[] = { + { 0x0001, "Attribute (ClassPortInfo)"}, + { 0x0002, "Attribute (Notice)"}, + { 0x0003, "Attribute (InformInfo)"}, + { 0x0011, "Attribute (NodeRecord)"}, + { 0x0012, "Attribute (PortInfoRecord)"}, + { 0x0013, "Attribute (SLtoVLMappingTableRecord)"}, + { 0x0014, "Attribute (SwitchInfoRecord)"}, + { 0x0015, "Attribute (LinearForwardingTableRecord)"}, + { 0x0016, "Attribute (RandomForwardingTableRecord)"}, + { 0x0017, "Attribute (MulticastForwardingTableRecord)"}, + { 0x0018, "Attribute (SMInfoRecord)"}, + { 0x0019, "Attribute (LinkSpeedWidthPairsTableRecord)"}, + { 0x00F3, "Attribute (InformInfoRecord)"}, + { 0x0020, "Attribute (LinkRecord)"}, + { 0x0030, "Attribute (GuidInfoRecord)"}, + { 0x0031, "Attribute (ServiceRecord)"}, + { 0x0033, "Attribute (P_KeyTableRecord)"}, + { 0x0035, "Attribute (PathRecord)"}, + { 0x0036, "Attribute (VLArbitrationTableRecord)"}, + { 0x0038, "Attribute (MCMembersRecord)"}, + { 0x0039, "Attribute (TraceRecord)"}, + { 0x003A, "Attribute (MultiPathRecord)"}, + { 0x003B, "Attribute (ServiceAssociationRecord)"}, + { 0, NULL} +}; + + +/* RMPP Types */ +#define RMPP_ILLEGAL 0 +#define RMPP_DATA 1 +#define RMPP_ACK 2 +#define RMPP_STOP 3 +#define RMPP_ABORT 4 + +static const value_string RMPP_Packet_Types[] = { + { RMPP_ILLEGAL, " Illegal RMPP Type (0)! " }, + { RMPP_DATA, "RMPP (DATA)" }, + { RMPP_ACK, "RMPP (ACK)" }, + { RMPP_STOP, "RMPP (STOP)" }, + { RMPP_ABORT, "RMPP (ABORT)" }, + { 0, NULL} +}; + +static const value_string RMPP_Flags[] = { + { 3, " (Transmission Sequence - First Packet)"}, + { 5, " (Transmission Sequence - Last Packet)"}, + { 1, " (Transmission Sequence) " }, + { 0, NULL} +}; + +static const value_string RMPP_Status[]= { + { 0, " (Normal)"}, + { 1, " (Resources Exhausted)"}, + { 118, " (Total Time Too Long)"}, + { 119, " (Inconsistent Last and PayloadLength)"}, + { 120, " (Inconsistent First and Segment Number)"}, + { 121, " (Bad RMPPType)"}, + { 122, " (NewWindowLast Too Small)"}, + { 123, " (SegmentNumber Too Big)"}, + { 124, " (Illegal Status)"}, + { 125, " (Unsupported Version)"}, + { 126, " (Too Many Retries)"}, + { 127, " (Unspecified - Unknown Error Code on ABORT)"}, + { 0, NULL} +}; + +static const value_string DiagCode[]= { + {0x0000, "Function Ready"}, + {0x0001, "Performing Self Test"}, + {0x0002, "Initializing"}, + {0x0003, "Soft Error - Function has non-fatal error"}, + {0x0004, "Hard Error - Function has fatal error"}, + { 0, NULL} +}; +static const value_string LinkWidthEnabled[]= { + {0x0000, "No State Change"}, + {0x0001, "1x"}, + {0x0002, "4x"}, + {0x0003, "1x or 4x"}, + {0x0004, "8x"}, + {0x0005, "1x or 8x"}, + {0x0006, "4x or 8x"}, + {0x0007, "1x or 4x or 8x"}, + {0x0008, "12x"}, + {0x0009, "1x or 12x"}, + {0x000A, "4x or 12x"}, + {0x000B, "1x or 4x or 12x"}, + {0x000C, "8x or 12x"}, + {0x000D, "1x or 8x or 12x"}, + {0x000E, "4x or 8x or 12x"}, + {0x000E, "1x or 4x or 8x or 12x"}, + {0x00FF, "Set to LinkWidthSupported Value - Response contains actual LinkWidthSupported"}, + { 0, NULL} +}; + +static const value_string LinkWidthSupported[]= { + {0x0001, "1x"}, + {0x0003, "1x or 4x"}, + {0x0007, "1x or 4x or 8x"}, + {0x000B, "1x or 4x or 12x"}, + {0x000F, "1x or 4x or 8x or 12x"}, + { 0, NULL} +}; +static const value_string LinkWidthActive[]= { + {0x0001, "1x"}, + {0x0002, "4x"}, + {0x0004, "8x"}, + {0x0008, "12x"}, + { 0, NULL} +}; +static const value_string LinkSpeedSupported[]= { + {0x0001, "2.5 Gbps"}, + {0x0003, "2.5 or 5.0 Gbps"}, + {0x0005, "2.5 or 10.0 Gbps"}, + {0x0007, "2.5 or 5.0 or 10.0 Gbps"}, + { 0, NULL} +}; +static const value_string PortState[]= { + {0x0000, "No State Change"}, + {0x0001, "Down (includes failed links)"}, + {0x0002, "Initialized"}, + {0x0003, "Armed"}, + {0x0004, "Active"}, + { 0, NULL} +}; +static const value_string PortPhysicalState[]= { + {0x0000, "No State Change"}, + {0x0001, "Sleep"}, + {0x0002, "Polling"}, + {0x0003, "Disabled"}, + {0x0004, "PortConfigurationTraining"}, + {0x0005, "LinkUp"}, + {0x0006, "LinkErrorRecovery"}, + {0x0007, "Phy Test"}, + { 0, NULL} +}; +static const value_string LinkDownDefaultState[]= { + {0x0000, "No State Change"}, + {0x0001, "Sleep"}, + {0x0002, "Polling"}, + { 0, NULL} +}; +static const value_string LinkSpeedActive[]= { + {0x0001, "2.5 Gbps"}, + {0x0002, "5.0 Gbps"}, + {0x0004, "10.0 Gbps"}, + { 0, NULL} +}; +static const value_string LinkSpeedEnabled[]= { + {0x0000, "No State Change"}, + {0x0001, "2.5 Gbps"}, + {0x0003, "2.5 or 5.0 Gbps"}, + {0x0005, "2.5 or 10.0 Gbps"}, + {0x0007, "2.5 or 5.0 or 10.0 Gbps"}, + {0x000F, "Set to LinkSpeedSupported value - response contains actual LinkSpeedSupported"}, + { 0, NULL} +}; +static const value_string NeighborMTU[]= { + {0x0001, "256"}, + {0x0002, "512"}, + {0x0003, "1024"}, + {0x0004, "2048"}, + {0x0005, "4096"}, + { 0, NULL} +}; +static const value_string VLCap[]= { + {0x0001, "VL0"}, + {0x0002, "VL0, VL1"}, + {0x0003, "VL0 - VL3"}, + {0x0004, "VL0 - VL7"}, + {0x0005, "VL0 - VL14"}, + { 0, NULL} +}; +static const value_string MTUCap[]= { + {0x0001, "256"}, + {0x0002, "512"}, + {0x0003, "1024"}, + {0x0004, "2048"}, + {0x0005, "4096"}, + { 0, NULL} +}; +static const value_string OperationalVLs[]= { + {0x0000, "No State Change"}, + {0x0001, "VL0"}, + {0x0002, "VL0, VL1"}, + {0x0003, "VL0 - VL3"}, + {0x0004, "VL0 - VL7"}, + {0x0005, "VL0 - VL14"}, + { 0, NULL} +}; + +/* Local Route Header (LRH) */ +static int hf_infiniband_LRH = -1; +static int hf_infiniband_virtual_lane = -1; +static int hf_infiniband_link_version = -1; +static int hf_infiniband_service_level = -1; +static int hf_infiniband_reserved2 = -1; +static int hf_infiniband_link_next_header = -1; +static int hf_infiniband_destination_local_id = -1; +static int hf_infiniband_reserved5 = -1; +static int hf_infiniband_packet_length = -1; +static int hf_infiniband_source_local_id = -1; +/* Global Route Header (GRH) */ +static int hf_infiniband_GRH = -1; +static int hf_infiniband_ip_version = -1; +static int hf_infiniband_traffic_class = -1; +static int hf_infiniband_flow_label = -1; +static int hf_infiniband_payload_length = -1; +static int hf_infiniband_next_header = -1; +static int hf_infiniband_hop_limit = -1; +static int hf_infiniband_source_gid = -1; +static int hf_infiniband_destination_gid = -1; +/* Base Transport Header (BTH) */ +static int hf_infiniband_BTH = -1; +static int hf_infiniband_opcode = -1; +static int hf_infiniband_solicited_event = -1; +static int hf_infiniband_migreq = -1; +static int hf_infiniband_pad_count = -1; +static int hf_infiniband_transport_header_version = -1; +static int hf_infiniband_partition_key = -1; +static int hf_infiniband_reserved8 = -1; +static int hf_infiniband_destination_qp = -1; +static int hf_infiniband_acknowledge_request = -1; +static int hf_infiniband_reserved7 = -1; +static int hf_infiniband_packet_sequence_number = -1; +/* Raw Header (RWH) */ +static int hf_infiniband_RWH = -1; +static int hf_infiniband_reserved16_RWH = -1; +static int hf_infiniband_etype = -1; +/* Reliable Datagram Extended Transport Header (RDETH) */ +static int hf_infiniband_RDETH = -1; +static int hf_infiniband_reserved8_RDETH = -1; +static int hf_infiniband_ee_context = -1; +/* Datagram Extended Transport Header (DETH) */ +static int hf_infiniband_DETH = -1; +static int hf_infiniband_queue_key = -1; +static int hf_infiniband_reserved8_DETH = -1; +static int hf_infiniband_source_qp = -1; +/* RDMA Extended Transport Header (RETH) */ +static int hf_infiniband_RETH = -1; +static int hf_infiniband_virtual_address = -1; +static int hf_infiniband_remote_key = -1; +static int hf_infiniband_dma_length = -1; +/* Atomic Extended Transport Header (AtomicETH) */ +static int hf_infiniband_AtomicETH = -1; +static int hf_infiniband_virtual_address_AtomicETH = -1; +static int hf_infiniband_remote_key_AtomicETH = -1; +static int hf_infiniband_swap_or_add_data = -1; +static int hf_infiniband_compare_data = -1; +/* ACK Extended Transport Header (AETH) */ +static int hf_infiniband_AETH = -1; +static int hf_infiniband_syndrome = -1; +static int hf_infiniband_message_sequence_number = -1; +/* Atomic ACK Extended Transport Header (AtomicAckETH) */ +static int hf_infiniband_AtomicAckETH = -1; +static int hf_infiniband_original_remote_data = -1; +/* Immediate Extended Transport Header (ImmDt) */ +static int hf_infiniband_IMMDT = -1; +/* Invalidate Extended Transport Header (IETH) */ +static int hf_infiniband_IETH = -1; +/* Payload */ +static int hf_infiniband_payload = -1; +static int hf_infiniband_invariant_crc = -1; +static int hf_infiniband_variant_crc = -1; +/* Unknown or Vendor Specific */ +static int hf_infiniband_raw_data = -1; +static int hf_infiniband_vendor = -1; +/* MAD Base Header */ +static int hf_infiniband_MAD = -1; +static int hf_infiniband_base_version = -1; +static int hf_infiniband_mgmt_class = -1; +static int hf_infiniband_class_version = -1; +static int hf_infiniband_reserved1 = -1; +static int hf_infiniband_method = -1; +static int hf_infiniband_status = -1; +static int hf_infiniband_class_specific = -1; +static int hf_infiniband_transaction_id = -1; +static int hf_infiniband_attribute_id = -1; +static int hf_infiniband_reserved16 = -1; +static int hf_infiniband_attribute_modifier = -1; +static int hf_infiniband_data = -1; +/* RMPP Header */ +static int hf_infiniband_RMPP = -1; +static int hf_infiniband_rmpp_version = -1; +static int hf_infiniband_rmpp_type = -1; +static int hf_infiniband_r_resp_time = -1; +static int hf_infiniband_rmpp_flags = -1; +static int hf_infiniband_rmpp_status = -1; +static int hf_infiniband_rmpp_data1 = -1; +static int hf_infiniband_rmpp_data2 = -1; +/* RMPP Data */ +static int hf_infiniband_RMPP_DATA = -1; +static int hf_infiniband_segment_number = -1; +static int hf_infiniband_payload_length32 = -1; +static int hf_infiniband_transferred_data = -1; +/* RMPP ACK */ +static int hf_infiniband_new_window_last = -1; +static int hf_infiniband_reserved220 = -1; +/* RMPP ABORT and STOP */ +static int hf_infiniband_reserved32 = -1; +static int hf_infiniband_optional_extended_error_data = -1; +/* SMP Data LID Routed */ +static int hf_infiniband_SMP_LID = -1; +static int hf_infiniband_m_key = -1; +static int hf_infiniband_smp_data = -1; +static int hf_infiniband_reserved1024 = -1; +static int hf_infiniband_reserved256 = -1; +/* SMP Data Directed Route */ +static int hf_infiniband_SMP_DIRECTED = -1; +static int hf_infiniband_smp_status = -1; +static int hf_infiniband_hop_pointer = -1; +static int hf_infiniband_hop_count = -1; +static int hf_infiniband_dr_slid = -1; +static int hf_infiniband_dr_dlid = -1; +static int hf_infiniband_reserved28 = -1; +static int hf_infiniband_d = -1; +static int hf_infiniband_initial_path = -1; +static int hf_infiniband_return_path = -1; +/* SA MAD Header */ +static int hf_infiniband_SA = -1; +static int hf_infiniband_sm_key = -1; +static int hf_infiniband_attribute_offset = -1; +static int hf_infiniband_component_mask = -1; +static int hf_infiniband_subnet_admin_data = -1; + +/* Attributes +* Additional Structures for individuala attribute decoding. +* Since they are not headers the naming convention is slightly modified +* Convention: hf_infiniband_[attribute name]_[field] +* This was not entirely necessary but I felt the previous convention +* did not provide adequate readability for the granularity of attribute/attribute fields. */ + +/* NodeDescription */ +static int hf_infiniband_NodeDescription_NodeString = -1; +/* NodeInfo */ +static int hf_infiniband_NodeInfo_BaseVersion = -1; +static int hf_infiniband_NodeInfo_ClassVersion = -1; +static int hf_infiniband_NodeInfo_NodeType = -1; +static int hf_infiniband_NodeInfo_NumPorts = -1; +static int hf_infiniband_NodeInfo_SystemImageGUID = -1; +static int hf_infiniband_NodeInfo_NodeGUID = -1; +static int hf_infiniband_NodeInfo_PortGUID = -1; +static int hf_infiniband_NodeInfo_PartitionCap = -1; +static int hf_infiniband_NodeInfo_DeviceID = -1; +static int hf_infiniband_NodeInfo_Revision = -1; +static int hf_infiniband_NodeInfo_LocalPortNum = -1; +static int hf_infiniband_NodeInfo_VendorID = -1; +/* SwitchInfo */ +static int hf_infiniband_SwitchInfo_LinearFDBCap = -1; +static int hf_infiniband_SwitchInfo_RandomFDBCap = -1; +static int hf_infiniband_SwitchInfo_MulticastFDBCap = -1; +static int hf_infiniband_SwitchInfo_LinearFDBTop = -1; +static int hf_infiniband_SwitchInfo_DefaultPort = -1; +static int hf_infiniband_SwitchInfo_DefaultMulticastPrimaryPort = -1; +static int hf_infiniband_SwitchInfo_DefaultMulticastNotPrimaryPort = -1; +static int hf_infiniband_SwitchInfo_LifeTimeValue = -1; +static int hf_infiniband_SwitchInfo_PortStateChange = -1; +static int hf_infiniband_SwitchInfo_OptimizedSLtoVLMappingProgramming = -1; +static int hf_infiniband_SwitchInfo_LIDsPerPort = -1; +static int hf_infiniband_SwitchInfo_PartitionEnforcementCap = -1; +static int hf_infiniband_SwitchInfo_InboundEnforcementCap = -1; +static int hf_infiniband_SwitchInfo_OutboundEnforcementCap = -1; +static int hf_infiniband_SwitchInfo_FilterRawInboundCap = -1; +static int hf_infiniband_SwitchInfo_FilterRawOutboundCap = -1; +static int hf_infiniband_SwitchInfo_EnhancedPortZero = -1; +/* GUIDInfo */ +static int hf_infiniband_GUIDInfo_GUIDBlock = -1; +static int hf_infiniband_GUIDInfo_GUID = -1; +/* PortInfo */ +static int hf_infiniband_PortInfo_GidPrefix = -1; +static int hf_infiniband_PortInfo_LID = -1; +static int hf_infiniband_PortInfo_MasterSMLID = -1; +static int hf_infiniband_PortInfo_CapabilityMask = -1; + +/* Capability Mask Flags */ +static int hf_infiniband_PortInfo_CapabilityMask_SM; +static int hf_infiniband_PortInfo_CapabilityMask_NoticeSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_TrapSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_OptionalPDSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_AutomaticMigrationSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_SLMappingSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_MKeyNVRAM = -1; +static int hf_infiniband_PortInfo_CapabilityMask_PKeyNVRAM = -1; +static int hf_infiniband_PortInfo_CapabilityMask_LEDInfoSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_SMdisabled = -1; +static int hf_infiniband_PortInfo_CapabilityMask_SystemImageGUIDSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_PKeySwitchExternalPortTrapSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_CommunicationsManagementSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_SNMPTunnelingSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_ReinitSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_DeviceManagementSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_VendorClassSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_DRNoticeSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_CapabilityMaskNoticeSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_BootManagementSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_LinkRoundTripLatencySupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_ClientRegistrationSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_OtherLocalChangesNoticeSupported = -1; +static int hf_infiniband_PortInfo_CapabilityMask_LinkSpeedWIdthPairsTableSupported = -1; +/* End Capability Mask Flags */ + + +static int hf_infiniband_PortInfo_DiagCode = -1; +static int hf_infiniband_PortInfo_M_KeyLeasePeriod = -1; +static int hf_infiniband_PortInfo_LocalPortNum = -1; +static int hf_infiniband_PortInfo_LinkWidthEnabled = -1; +static int hf_infiniband_PortInfo_LinkWidthSupported = -1; +static int hf_infiniband_PortInfo_LinkWidthActive = -1; +static int hf_infiniband_PortInfo_LinkSpeedSupported = -1; +static int hf_infiniband_PortInfo_PortState = -1; +static int hf_infiniband_PortInfo_PortPhysicalState = -1; +static int hf_infiniband_PortInfo_LinkDownDefaultState = -1; +static int hf_infiniband_PortInfo_M_KeyProtectBits = -1; +static int hf_infiniband_PortInfo_LMC = -1; +static int hf_infiniband_PortInfo_LinkSpeedActive = -1; +static int hf_infiniband_PortInfo_LinkSpeedEnabled = -1; +static int hf_infiniband_PortInfo_NeighborMTU = -1; +static int hf_infiniband_PortInfo_MasterSMSL = -1; +static int hf_infiniband_PortInfo_VLCap = -1; +static int hf_infiniband_PortInfo_M_Key = -1; +static int hf_infiniband_PortInfo_InitType = -1; +static int hf_infiniband_PortInfo_VLHighLimit = -1; +static int hf_infiniband_PortInfo_VLArbitrationHighCap = -1; +static int hf_infiniband_PortInfo_VLArbitrationLowCap = -1; +static int hf_infiniband_PortInfo_InitTypeReply = -1; +static int hf_infiniband_PortInfo_MTUCap = -1; +static int hf_infiniband_PortInfo_VLStallCount = -1; +static int hf_infiniband_PortInfo_HOQLife = -1; +static int hf_infiniband_PortInfo_OperationalVLs = -1; +static int hf_infiniband_PortInfo_PartitionEnforcementInbound = -1; +static int hf_infiniband_PortInfo_PartitionEnforcementOutbound = -1; +static int hf_infiniband_PortInfo_FilterRawInbound = -1; +static int hf_infiniband_PortInfo_FilterRawOutbound = -1; +static int hf_infiniband_PortInfo_M_KeyViolations = -1; +static int hf_infiniband_PortInfo_P_KeyViolations = -1; +static int hf_infiniband_PortInfo_Q_KeyViolations = -1; +static int hf_infiniband_PortInfo_GUIDCap = -1; +static int hf_infiniband_PortInfo_ClientReregister = -1; +static int hf_infiniband_PortInfo_SubnetTimeOut = -1; +static int hf_infiniband_PortInfo_RespTimeValue = -1; +static int hf_infiniband_PortInfo_LocalPhyErrors = -1; +static int hf_infiniband_PortInfo_OverrunErrors = -1; +static int hf_infiniband_PortInfo_MaxCreditHint = -1; +static int hf_infiniband_PortInfo_LinkRoundTripLatency = -1; + +/* P_KeyTable */ +static int hf_infiniband_P_KeyTable_P_KeyTableBlock = -1; +static int hf_infiniband_P_KeyTable_MembershipType = -1; +static int hf_infiniband_P_KeyTable_P_KeyBase = -1; + +/* SLtoVLMappingTable */ +static int hf_infiniband_SLtoVLMappingTable_SLtoVL_HighBits = -1; +static int hf_infiniband_SLtoVLMappingTable_SLtoVL_LowBits = -1; + +/* VLArbitrationTable */ +static int hf_infiniband_VLArbitrationTable_VLWeightPairs = -1; +static int hf_infiniband_VLArbitrationTable_VL = -1; +static int hf_infiniband_VLArbitrationTable_Weight = -1; + +/* LinearForwardingTable */ +static int hf_infiniband_LinearForwardingTable_LinearForwardingTableBlock = -1; +static int hf_infiniband_LinearForwardingTable_Port = -1; + +/* RandomForwardingTable */ +static int hf_infiniband_RandomForwardingTable_RandomForwardingTableBlock = -1; +static int hf_infiniband_RandomForwardingTable_LID = -1; +static int hf_infiniband_RandomForwardingTable_Valid = -1; +static int hf_infiniband_RandomForwardingTable_LMC = -1; +static int hf_infiniband_RandomForwardingTable_Port = -1; + +/* MulticastForwardingTable */ +static int hf_infiniband_MulticastForwardingTable_MulticastForwardingTableBlock = -1; +static int hf_infiniband_MulticastForwardingTable_PortMask = -1; + +/* SMInfo */ +static int hf_infiniband_SMInfo_GUID = -1; +static int hf_infiniband_SMInfo_SM_Key = -1; +static int hf_infiniband_SMInfo_ActCount = -1; +static int hf_infiniband_SMInfo_Priority = -1; +static int hf_infiniband_SMInfo_SMState = -1; + +/* VendorDiag */ +static int hf_infiniband_VendorDiag_NextIndex = -1; +static int hf_infiniband_VendorDiag_DiagData = -1; + +/* LedInfo */ +static int hf_infiniband_LedInfo_LedMask = -1; + +/* LinkSpeedWidthPairsTable */ +static int hf_infiniband_LinkSpeedWidthPairsTable_NumTables = -1; +static int hf_infiniband_LinkSpeedWidthPairsTable_PortMask = -1; +static int hf_infiniband_LinkSpeedWidthPairsTable_SpeedTwoFive = -1; +static int hf_infiniband_LinkSpeedWidthPairsTable_SpeedFive = -1; +static int hf_infiniband_LinkSpeedWidthPairsTable_SpeedTen = -1; + +/* Attributes for Subnet Administration. +* Mostly we have "Records" here which are just structures of SM attributes. +* There are some unique attributes though that we will want to have a structure for. */ + +/* NodeRecord */ +/* PortInfoRecord */ +/* SLtoVLMappingTableRecord */ +/* SwitchInfoRecord */ +/* LinearForwardingTableRecord */ +/* RandomForwardingTableRecord */ +/* MulticastForwardingTableRecord */ +/* VLArbitrationTableRecord */ + +static int hf_infiniband_SA_LID = -1; +static int hf_infiniband_SA_EndportLID = -1; +static int hf_infiniband_SA_PortNum = -1; +static int hf_infiniband_SA_InputPortNum = -1; +static int hf_infiniband_SA_OutputPortNum = -1; +static int hf_infiniband_SA_BlockNum_EightBit = -1; +static int hf_infiniband_SA_BlockNum_NineBit = -1; +static int hf_infiniband_SA_BlockNum_SixteenBit = -1; +static int hf_infiniband_SA_Position = -1; +static int hf_infiniband_SA_Index = -1; + +/* InformInfoRecord */ +static int hf_infiniband_InformInfoRecord_SubscriberGID = -1; +static int hf_infiniband_InformInfoRecord_Enum = -1; + +/* InformInfo */ +static int hf_infiniband_InformInfo_GID = -1; +static int hf_infiniband_InformInfo_LIDRangeBegin = -1; +static int hf_infiniband_InformInfo_LIDRangeEnd = -1; +static int hf_infiniband_InformInfo_IsGeneric = -1; +static int hf_infiniband_InformInfo_Subscribe = -1; +static int hf_infiniband_InformInfo_Type = -1; +static int hf_infiniband_InformInfo_TrapNumberDeviceID = -1; +static int hf_infiniband_InformInfo_QPN = -1; +static int hf_infiniband_InformInfo_RespTimeValue = -1; +static int hf_infiniband_InformInfo_ProducerTypeVendorID = -1; + +/* LinkRecord */ +static int hf_infiniband_LinkRecord_FromLID = -1; +static int hf_infiniband_LinkRecord_FromPort = -1; +static int hf_infiniband_LinkRecord_ToPort = -1; +static int hf_infiniband_LinkRecord_ToLID = -1; + +/* ServiceRecord */ +static int hf_infiniband_ServiceRecord_ServiceID = -1; +static int hf_infiniband_ServiceRecord_ServiceGID = -1; +static int hf_infiniband_ServiceRecord_ServiceP_Key = -1; +static int hf_infiniband_ServiceRecord_ServiceLease = -1; +static int hf_infiniband_ServiceRecord_ServiceKey = -1; +static int hf_infiniband_ServiceRecord_ServiceName = -1; +static int hf_infiniband_ServiceRecord_ServiceData = -1; + +/* ServiceAssociationRecord */ +static int hf_infiniband_ServiceAssociationRecord_ServiceKey = -1; +static int hf_infiniband_ServiceAssociationRecord_ServiceName = -1; + +/* PathRecord */ +static int hf_infiniband_PathRecord_DGID = -1; +static int hf_infiniband_PathRecord_SGID = -1; +static int hf_infiniband_PathRecord_DLID = -1; +static int hf_infiniband_PathRecord_SLID = -1; +static int hf_infiniband_PathRecord_RawTraffic = -1; +static int hf_infiniband_PathRecord_FlowLabel = -1; +static int hf_infiniband_PathRecord_HopLimit = -1; +static int hf_infiniband_PathRecord_TClass = -1; +static int hf_infiniband_PathRecord_Reversible = -1; +static int hf_infiniband_PathRecord_NumbPath = -1; +static int hf_infiniband_PathRecord_P_Key = -1; +static int hf_infiniband_PathRecord_SL = -1; +static int hf_infiniband_PathRecord_MTUSelector = -1; +static int hf_infiniband_PathRecord_MTU = -1; +static int hf_infiniband_PathRecord_RateSelector = -1; +static int hf_infiniband_PathRecord_Rate = -1; +static int hf_infiniband_PathRecord_PacketLifeTimeSelector = -1; +static int hf_infiniband_PathRecord_PacketLifeTime = -1; +static int hf_infiniband_PathRecord_Preference = -1; + +/* MCMemberRecord */ +static int hf_infiniband_MCMemberRecord_MGID = -1; +static int hf_infiniband_MCMemberRecord_PortGID = -1; +static int hf_infiniband_MCMemberRecord_Q_Key = -1; +static int hf_infiniband_MCMemberRecord_MLID = -1; +static int hf_infiniband_MCMemberRecord_MTUSelector = -1; +static int hf_infiniband_MCMemberRecord_MTU = -1; +static int hf_infiniband_MCMemberRecord_TClass = -1; +static int hf_infiniband_MCMemberRecord_P_Key = -1; +static int hf_infiniband_MCMemberRecord_RateSelector = -1; +static int hf_infiniband_MCMemberRecord_Rate = -1; +static int hf_infiniband_MCMemberRecord_PacketLifeTimeSelector = -1; +static int hf_infiniband_MCMemberRecord_PacketLifeTime = -1; +static int hf_infiniband_MCMemberRecord_SL = -1; +static int hf_infiniband_MCMemberRecord_FlowLabel = -1; +static int hf_infiniband_MCMemberRecord_HopLimit = -1; +static int hf_infiniband_MCMemberRecord_Scope = -1; +static int hf_infiniband_MCMemberRecord_JoinState = -1; +static int hf_infiniband_MCMemberRecord_ProxyJoin = -1; + +/* TraceRecord */ +static int hf_infiniband_TraceRecord_GIDPrefix = -1; +static int hf_infiniband_TraceRecord_IDGeneration = -1; +static int hf_infiniband_TraceRecord_NodeType = -1; +static int hf_infiniband_TraceRecord_NodeID = -1; +static int hf_infiniband_TraceRecord_ChassisID = -1; +static int hf_infiniband_TraceRecord_EntryPortID = -1; +static int hf_infiniband_TraceRecord_ExitPortID = -1; +static int hf_infiniband_TraceRecord_EntryPort = -1; +static int hf_infiniband_TraceRecord_ExitPort = -1; + +/* MultiPathRecord */ +static int hf_infiniband_MultiPathRecord_RawTraffic = -1; +static int hf_infiniband_MultiPathRecord_FlowLabel = -1; +static int hf_infiniband_MultiPathRecord_HopLimit = -1; +static int hf_infiniband_MultiPathRecord_TClass = -1; +static int hf_infiniband_MultiPathRecord_Reversible = -1; +static int hf_infiniband_MultiPathRecord_NumbPath = -1; +static int hf_infiniband_MultiPathRecord_P_Key = -1; +static int hf_infiniband_MultiPathRecord_SL = -1; +static int hf_infiniband_MultiPathRecord_MTUSelector = -1; +static int hf_infiniband_MultiPathRecord_MTU = -1; +static int hf_infiniband_MultiPathRecord_RateSelector = -1; +static int hf_infiniband_MultiPathRecord_Rate = -1; +static int hf_infiniband_MultiPathRecord_PacketLifeTimeSelector = -1; +static int hf_infiniband_MultiPathRecord_PacketLifeTime = -1; +static int hf_infiniband_MultiPathRecord_IndependenceSelector = -1; +static int hf_infiniband_MultiPathRecord_GIDScope = -1; +static int hf_infiniband_MultiPathRecord_SGIDCount = -1; +static int hf_infiniband_MultiPathRecord_DGIDCount = -1; +static int hf_infiniband_MultiPathRecord_SDGID = -1; + +/* Notice */ +static int hf_infiniband_Notice_IsGeneric = -1; +static int hf_infiniband_Notice_Type = -1; +static int hf_infiniband_Notice_ProducerTypeVendorID = -1; +static int hf_infiniband_Notice_TrapNumberDeviceID = -1; +static int hf_infiniband_Notice_IssuerLID = -1; +static int hf_infiniband_Notice_NoticeToggle = -1; +static int hf_infiniband_Notice_NoticeCount = -1; +static int hf_infiniband_Notice_DataDetails = -1; +static int hf_infiniband_Notice_IssuerGID = -1; +static int hf_infiniband_Notice_ClassTrapSpecificData = -1; + +/* Notice DataDetails and ClassTrapSpecific Data for certain traps +* Note that traps reuse many fields, so they are only declared once under the first trap that they appear. +* There is no need to redeclare them for specific Traps (as with other SA Attributes) because they are uniform between Traps. */ + +/* Parse DataDetails for a given Trap */ +static void parse_NoticeDataDetails(proto_tree*, tvbuff_t*, gint *offset, guint16 trapNumber); + +/* Traps 64,65,66,67 */ +static int hf_infiniband_Trap_GIDADDR = -1; + +/* Traps 68,69 */ +/* DataDetails */ +static int hf_infiniband_Trap_COMP_MASK = -1; +static int hf_infiniband_Trap_WAIT_FOR_REPATH = -1; +/* ClassTrapSpecificData */ +static int hf_infiniband_Trap_PATH_REC = -1; + +/* Trap 128 */ +static int hf_infiniband_Trap_LIDADDR = -1; + +/* Trap 129, 130, 131 */ +static int hf_infiniband_Trap_PORTNO = -1; + +/* Trap 144 */ +static int hf_infiniband_Trap_OtherLocalChanges = -1; +static int hf_infiniband_Trap_CAPABILITYMASK = -1; +static int hf_infiniband_Trap_LinkSpeecEnabledChange = -1; +static int hf_infiniband_Trap_LinkWidthEnabledChange = -1; +static int hf_infiniband_Trap_NodeDescriptionChange = -1; + +/* Trap 145 */ +static int hf_infiniband_Trap_SYSTEMIMAGEGUID = -1; + +/* Trap 256 */ +static int hf_infiniband_Trap_DRSLID = -1; +static int hf_infiniband_Trap_METHOD = -1; +static int hf_infiniband_Trap_ATTRIBUTEID = -1; +static int hf_infiniband_Trap_ATTRIBUTEMODIFIER = -1; +static int hf_infiniband_Trap_MKEY = -1; +static int hf_infiniband_Trap_DRNotice = -1; +static int hf_infiniband_Trap_DRPathTruncated = -1; +static int hf_infiniband_Trap_DRHopCount = -1; +static int hf_infiniband_Trap_DRNoticeReturnPath = -1; + +/* Trap 257, 258 */ +static int hf_infiniband_Trap_LIDADDR1 = -1; +static int hf_infiniband_Trap_LIDADDR2 = -1; +static int hf_infiniband_Trap_KEY = -1; +static int hf_infiniband_Trap_SL = -1; +static int hf_infiniband_Trap_QP1 = -1; +static int hf_infiniband_Trap_QP2 = -1; +static int hf_infiniband_Trap_GIDADDR1 = -1; +static int hf_infiniband_Trap_GIDADDR2 = -1; + +/* Trap 259 */ +static int hf_infiniband_Trap_DataValid = -1; +static int hf_infiniband_Trap_PKEY = -1; +static int hf_infiniband_Trap_SWLIDADDR = -1; + +/* Trap Type/Descriptions for dissection */ +static const value_string Trap_Description[]= { + { 64, " (Informational) <GIDADDR> is now in service"}, + { 65, " (Informational) <GIDADDR> is out of service"}, + { 66, " (Informational) New Multicast Group with multicast address <GIDADDR> is now created"}, + { 67, " (Informational) Multicast Group with multicast address <GIDADDR> is now deleted"}, + { 68, " (Informational) Paths indicated by <PATH_REC> and <COMP_MASK> are no longer valid"}, + { 69, " (Informational) Paths indicated by <PATH_REC> and <COMP_MASK> have been recomputed"}, + { 128, " (Urgent) Link State of at least one port of switch at <LIDADDR> has changed"}, + { 129, " (Urgent) Local Link Integrity threshold reached at <LIDADDR><PORTNO>"}, + { 130, " (Urgent) Excessive Buffer OVerrun threshold reached at <LIDADDR><PORTNO>"}, + { 131, " (Urgent) Flow Control Update watchdog timer expired at <LIDADDR><PORTNO>"}, + { 144, " (Informational) CapMask, NodeDesc, LinkWidthEnabled or LinkSpeedEnabled at <LIDADDR> has been modified"}, + { 145, " (Informational) SystemImageGUID at <LIDADDR> has been modified. New value is <SYSTEMIMAGEGUID>"}, + { 256, " (Security) Bad M_Key, <M_KEY> from <LIDADDR> attempted <METHOD> with <ATTRIBUTEID> and <ATTRIBUTEMODIFIER>"}, + { 257, " (Security) Bad P_Key, <KEY> from <LIDADDR1><GIDADDR1><QP1> to <LIDADDR2><GIDADDR2><QP2> on <SL>"}, + { 258, " (Security) Bad Q_Key, <KEY> from <LIDADDR1><GIDADDR1><QP1> to <LIDADDR2><GIDADDR2><QP2> on <SL>"}, + { 259, " (Security) Bad P_Key, <KEY> from <LIDADDR1><GIDADDR1><QP1> to <LIDADDR2><GIDADDR2><QP2> on <SL> at switch <LIDADDR><PORTNO>"}, + { 0, NULL} +}; + + + + +/* MAD Management Classes +* Classes from the Common MAD Header +* +* Management Class Name Class Description +* ------------------------------------------------------------------------------------------------------------ */ +#define SUBN_LID_ROUTED 0x01 /* Subnet Management LID Route */ +#define SUBN_DIRECTED_ROUTE 0x81 /* Subnet Management Directed Route */ +#define SUBNADMN 0x03 /* Subnet Administration */ +#define PERF 0x04 /* Performance Management */ +#define BM 0x05 /* Baseboard Management (Tunneling of IB-ML commands through the IBA subnet) */ +#define DEV_MGT 0x06 /* Device Management */ +#define COM_MGT 0x07 /* Communications Management */ +#define SNMP 0x08 /* SNMP Tunneling (tunneling of the SNMP protocol through the IBA fabric) */ +#define VENDOR_1_START 0x09 /* Start of first Vendor Specific Range */ +#define VENDOR_1_END 0x0F /* End of first Vendor Specific Range */ +#define VENDOR_2_START 0x30 /* Start of second Vendor Specific Range */ +#define VENDOR_2_END 0x4F /* End of the second Vendor Specific Range */ +#define APPLICATION_START 0x10 /* Start of Application Specific Range */ +#define APPLICATION_END 0x2F /* End of Application Specific Range */ + +/* Link Next Header Values */ +#define IBA_GLOBAL 3 +#define IBA_LOCAL 2 +#define IP_NON_IBA 1 +#define RAW 0 + +/* OpCodeValues +* Code Bits [7-5] Connection Type +* [4-0] Message Type + +* Reliable Connection (RC) +* [7-5] = 000 */ +#define RC_SEND_FIRST 0 /*0x00000000 */ +#define RC_SEND_MIDDLE 1 /*0x00000001 */ +#define RC_SEND_LAST 2 /*0x00000010 */ +#define RC_SEND_LAST_IMM 3 /*0x00000011 */ +#define RC_SEND_ONLY 4 /*0x00000100 */ +#define RC_SEND_ONLY_IMM 5 /*0x00000101 */ +#define RC_RDMA_WRITE_FIRST 6 /*0x00000110 */ +#define RC_RDMA_WRITE_MIDDLE 7 /*0x00000111 */ +#define RC_RDMA_WRITE_LAST 8 /*0x00001000 */ +#define RC_RDMA_WRITE_LAST_IMM 9 /*0x00001001 */ +#define RC_RDMA_WRITE_ONLY 10 /*0x00001010 */ +#define RC_RDMA_WRITE_ONLY_IMM 11 /*0x00001011 */ +#define RC_RDMA_READ_REQUEST 12 /*0x00001100 */ +#define RC_RDMA_READ_RESPONSE_FIRST 13 /*0x00001101 */ +#define RC_RDMA_READ_RESPONSE_MIDDLE 14 /*0x00001110 */ +#define RC_RDMA_READ_RESPONSE_LAST 15 /*0x00001111 */ +#define RC_RDMA_READ_RESPONSE_ONLY 16 /*0x00010000 */ +#define RC_ACKNOWLEDGE 17 /*0x00010001 */ +#define RC_ATOMIC_ACKNOWLEDGE 18 /*0x00010010 */ +#define RC_CMP_SWAP 19 /*0x00010011 */ +#define RC_FETCH_ADD 20 /*0x00010100 */ +#define RC_SEND_LAST_INVAL 22 /*0x00010110 */ +#define RC_SEND_ONLY_INVAL 23 /*0x00010111 */ + +/* Reliable Datagram (RD) +* [7-5] = 010 */ +#define RD_SEND_FIRST 64 /*0x01000000 */ +#define RD_SEND_MIDDLE 65 /*0x01000001 */ +#define RD_SEND_LAST 66 /*0x01000010 */ +#define RD_SEND_LAST_IMM 67 /*0x01000011 */ +#define RD_SEND_ONLY 68 /*0x01000100 */ +#define RD_SEND_ONLY_IMM 69 /*0x01000101 */ +#define RD_RDMA_WRITE_FIRST 70 /*0x01000110 */ +#define RD_RDMA_WRITE_MIDDLE 71 /*0x01000111 */ +#define RD_RDMA_WRITE_LAST 72 /*0x01001000 */ +#define RD_RDMA_WRITE_LAST_IMM 73 /*0x01001001 */ +#define RD_RDMA_WRITE_ONLY 74 /*0x01001010 */ +#define RD_RDMA_WRITE_ONLY_IMM 75 /*0x01001011 */ +#define RD_RDMA_READ_REQUEST 76 /*0x01001100 */ +#define RD_RDMA_READ_RESPONSE_FIRST 77 /*0x01001101 */ +#define RD_RDMA_READ_RESPONSE_MIDDLE 78 /*0x01001110 */ +#define RD_RDMA_READ_RESPONSE_LAST 79 /*0x01001111 */ +#define RD_RDMA_READ_RESPONSE_ONLY 80 /*0x01010000 */ +#define RD_ACKNOWLEDGE 81 /*0x01010001 */ +#define RD_ATOMIC_ACKNOWLEDGE 82 /*0x01010010 */ +#define RD_CMP_SWAP 83 /*0x01010011 */ +#define RD_FETCH_ADD 84 /*0x01010100 */ +#define RD_RESYNC 85 /*0x01010101 */ + +/* Unreliable Datagram (UD) +* [7-5] = 011 */ +#define UD_SEND_ONLY 100 /*0x01100100 */ +#define UD_SEND_ONLY_IMM 101 /*0x01100101 */ + +/* Unreliable Connection (UC) +* [7-5] = 001 */ +#define UC_SEND_FIRST 32 /*0x00100000 */ +#define UC_SEND_MIDDLE 33 /*0x00100001 */ +#define UC_SEND_LAST 34 /*0x00100010 */ +#define UC_SEND_LAST_IMM 35 /*0x00100011 */ +#define UC_SEND_ONLY 36 /*0x00100100 */ +#define UC_SEND_ONLY_IMM 37 /*0x00100101 */ +#define UC_RDMA_WRITE_FIRST 38 /*0x00100110 */ +#define UC_RDMA_WRITE_MIDDLE 39 /*0x00100111 */ +#define UC_RDMA_WRITE_LAST 40 /*0x00101000 */ +#define UC_RDMA_WRITE_LAST_IMM 41 /*0x00101001 */ +#define UC_RDMA_WRITE_ONLY 42 /*0x00101010 */ +#define UC_RDMA_WRITE_ONLY_IMM 43 /*0x00101011 */ + +static value_string OpCodeMap[] = +{ + { RC_SEND_FIRST, "RC Send First " }, + { RC_SEND_MIDDLE, "RC Send Middle "}, + { RC_SEND_LAST, "RC Send Last " }, + { RC_SEND_LAST_IMM, "RC Send Last Immediate "}, + { RC_SEND_ONLY, "RC Send Only "}, + { RC_SEND_ONLY_IMM, "RC Send Only Immediate "}, + { RC_RDMA_WRITE_FIRST, "RC RDMA Write First " }, + { RC_RDMA_WRITE_MIDDLE, "RC RDMA Write Middle "}, + { RC_RDMA_WRITE_LAST, "RC RDMA Write Last "}, + { RC_RDMA_WRITE_LAST_IMM, "RC RDMA Write Last Immediate " }, + { RC_RDMA_WRITE_ONLY, "RC RDMA Write Only " }, + { RC_RDMA_WRITE_ONLY_IMM, "RC RDMA Write Only Immediate "}, + { RC_RDMA_READ_REQUEST, "RC RDMA Read Request " }, + { RC_RDMA_READ_RESPONSE_FIRST, "RC RDMA Read Response First " }, + { RC_RDMA_READ_RESPONSE_MIDDLE, "RC RDMA Read Response Middle "}, + { RC_RDMA_READ_RESPONSE_LAST, "RC RDMA Read Response Last " }, + { RC_RDMA_READ_RESPONSE_ONLY, "RC RDMA Read Response Only "}, + { RC_ACKNOWLEDGE, "RC Acknowledge " }, + { RC_ATOMIC_ACKNOWLEDGE, "RC Atomic Acknowledge " }, + { RC_CMP_SWAP, "RC Compare Swap " }, + { RC_FETCH_ADD, "RC Fetch Add "}, + { RC_SEND_LAST_INVAL, "RC Send Last Invalidate "}, + { RC_SEND_ONLY_INVAL, "RC Send Only Invalidate " }, + + + { RD_SEND_FIRST, "RD Send First "}, + { RD_SEND_MIDDLE,"RD Send Middle " }, + { RD_SEND_LAST, "RD Send Last "}, + { RD_SEND_LAST_IMM, "RD Last Immediate " }, + { RD_SEND_ONLY,"RD Send Only "}, + { RD_SEND_ONLY_IMM,"RD Send Only Immediate "}, + { RD_RDMA_WRITE_FIRST,"RD RDMA Write First "}, + { RD_RDMA_WRITE_MIDDLE, "RD RDMA Write Middle "}, + { RD_RDMA_WRITE_LAST,"RD RDMA Write Last "}, + { RD_RDMA_WRITE_LAST_IMM,"RD RDMA Write Last Immediate "}, + { RD_RDMA_WRITE_ONLY,"RD RDMA Write Only "}, + { RD_RDMA_WRITE_ONLY_IMM,"RD RDMA Write Only Immediate "}, + { RD_RDMA_READ_REQUEST,"RD RDMA Read Request "}, + { RD_RDMA_READ_RESPONSE_FIRST,"RD RDMA Read Response First "}, + { RD_RDMA_READ_RESPONSE_MIDDLE,"RD RDMA Read Response Middle "}, + { RD_RDMA_READ_RESPONSE_LAST,"RD RDMA Read Response Last "}, + { RD_RDMA_READ_RESPONSE_ONLY,"RD RDMA Read Response Only "}, + { RD_ACKNOWLEDGE,"RD Acknowledge "}, + { RD_ATOMIC_ACKNOWLEDGE,"RD Atomic Acknowledge "}, + { RD_CMP_SWAP,"RD Compare Swap "}, + { RD_FETCH_ADD, "RD Fetch Add "}, + { RD_RESYNC,"RD RESYNC "}, + + + { UD_SEND_ONLY, "UD Send Only "}, + { UD_SEND_ONLY_IMM, "UD Send Only Immediate "}, + + + { UC_SEND_FIRST,"UC Send First "}, + { UC_SEND_MIDDLE,"UC Send Middle "}, + { UC_SEND_LAST,"UC Send Last "}, + { UC_SEND_LAST_IMM,"UC Send Last Immediate "}, + { UC_SEND_ONLY,"UC Send Only "}, + { UC_SEND_ONLY_IMM,"UC Send Only Immediate "}, + { UC_RDMA_WRITE_FIRST,"UC RDMA Write First"}, + { UC_RDMA_WRITE_MIDDLE,"Unreliable Connection RDMA Write Middle "}, + { UC_RDMA_WRITE_LAST,"UC RDMA Write Last "}, + { UC_RDMA_WRITE_LAST_IMM,"UC RDMA Write Last Immediate "}, + { UC_RDMA_WRITE_ONLY,"UC RDMA Write Only "}, + { UC_RDMA_WRITE_ONLY_IMM,"UC RDMA Write Only Immediate "}, + { 0, NULL} + +}; + + + +/* Header Ordering Based on OPCODES +* These are simply an enumeration of the possible header combinations defined by the IB Spec. +* These enumerations +* #DEFINE [HEADER_ORDER] [ENUM] +* __________________________________ */ +#define RDETH_DETH_PAYLD 0 +/* __________________________________ */ +#define RDETH_DETH_RETH_PAYLD 1 +/* __________________________________ */ +#define RDETH_DETH_IMMDT_PAYLD 2 +/* __________________________________ */ +#define RDETH_DETH_RETH_IMMDT_PAYLD 3 +/* __________________________________ */ +#define RDETH_DETH_RETH 4 +/* __________________________________ */ +#define RDETH_AETH_PAYLD 5 +/* __________________________________ */ +#define RDETH_PAYLD 6 +/* __________________________________ */ +#define RDETH_AETH 7 +/* __________________________________ */ +#define RDETH_AETH_ATOMICACKETH 8 +/* __________________________________ */ +#define RDETH_DETH_ATOMICETH 9 +/* ___________________________________ */ +#define RDETH_DETH 10 +/* ___________________________________ */ +#define DETH_PAYLD 11 +/* ___________________________________ */ +#define DETH_IMMDT_PAYLD 12 +/* ___________________________________ */ +#define PAYLD 13 +/* ___________________________________ */ +#define IMMDT_PAYLD 14 +/* ___________________________________ */ +#define RETH_PAYLD 15 +/* ___________________________________ */ +#define RETH_IMMDT_PAYLD 16 +/* ___________________________________ */ +#define RETH 17 +/* ___________________________________ */ +#define AETH_PAYLD 18 +/* ___________________________________ */ +#define AETH 19 +/* ___________________________________ */ +#define AETH_ATOMICACKETH 20 +/* ___________________________________ */ +#define ATOMICETH 21 +/* ___________________________________ */ +#define IETH_PAYLD 22 +/* ___________________________________ */ + + +/* Array of all availavle OpCodes to make matching a bit easier. +* The OpCodes dictate the header sequence following in the packet. +* These arrays tell the dissector which headers must be decoded for the given OpCode. */ +static guint32 opCode_RDETH_DETH_ATOMICETH[] = { + RD_CMP_SWAP, + RD_FETCH_ADD +}; +static guint32 opCode_IETH_PAYLD[] = { + RC_SEND_LAST_INVAL, + RC_SEND_ONLY_INVAL +}; +static guint32 opCode_ATOMICETH[] = { + RC_CMP_SWAP, + RC_FETCH_ADD +}; +static guint32 opCode_RDETH_DETH_RETH_PAYLD[] = { + RD_RDMA_WRITE_FIRST, + RD_RDMA_WRITE_ONLY +}; +static guint32 opCode_RETH_IMMDT_PAYLD[] = { + RC_RDMA_WRITE_ONLY_IMM, + UC_RDMA_WRITE_ONLY_IMM +}; +static guint32 opCode_RDETH_DETH_IMMDT_PAYLD[] = { + RD_SEND_LAST_IMM, + RD_SEND_ONLY_IMM, + RD_RDMA_WRITE_LAST_IMM +}; + +static guint32 opCode_RDETH_AETH_PAYLD[] = { + RD_RDMA_READ_RESPONSE_FIRST, + RD_RDMA_READ_RESPONSE_LAST, + RD_RDMA_READ_RESPONSE_ONLY +}; +static guint32 opCode_AETH_PAYLD[] = { + RC_RDMA_READ_RESPONSE_FIRST, + RC_RDMA_READ_RESPONSE_LAST, + RC_RDMA_READ_RESPONSE_ONLY +}; +static guint32 opCode_RETH_PAYLD[] = { + RC_RDMA_WRITE_FIRST, + RC_RDMA_WRITE_ONLY, + UC_RDMA_WRITE_FIRST, + UC_RDMA_WRITE_ONLY +}; + +static guint32 opCode_RDETH_DETH_PAYLD[] = { + RD_SEND_FIRST, + RD_SEND_MIDDLE, + RD_SEND_LAST, + RD_SEND_ONLY, + RD_RDMA_WRITE_MIDDLE, + RD_RDMA_WRITE_LAST +}; + +static guint32 opCode_IMMDT_PAYLD[] = { + RC_SEND_LAST_IMM, + RC_SEND_ONLY_IMM, + RC_RDMA_WRITE_LAST_IMM, + UC_SEND_LAST_IMM, + UC_SEND_ONLY_IMM, + UC_RDMA_WRITE_LAST_IMM +}; + +static guint32 opCode_PAYLD[] = { + RC_SEND_FIRST, + RC_SEND_MIDDLE, + RC_SEND_LAST, + RC_SEND_ONLY, + RC_RDMA_WRITE_MIDDLE, + RC_RDMA_WRITE_LAST, + RC_RDMA_READ_RESPONSE_MIDDLE, + UC_SEND_FIRST, + UC_SEND_MIDDLE, + UC_SEND_LAST, + UC_SEND_ONLY, + UC_RDMA_WRITE_MIDDLE, + UC_RDMA_WRITE_LAST +}; + +/* It is not necessary to create arrays for these OpCodes since they indicate only one further header. +* We can just decode it directly + +* static guint32 opCode_DETH_IMMDT_PAYLD[] = { +* UD_SEND_ONLY_IMM +* }; +* static guint32 opCode_DETH_PAYLD[] = { +* UD_SEND_ONLY +* }; +* static guint32 opCode_RDETH_DETH[] = { +* RD_RESYNC +* }; +* static guint32 opCode_RDETH_DETH_RETH[] = { +* RD_RDMA_READ_REQUEST +* }; +* static guint32 opCode_RDETH_DETH_RETH_IMMDT_PAYLD[] = { +* RD_RDMA_WRITE_ONLY_IMM +* }; +* static guint32 opCode_RDETH_AETH_ATOMICACKETH[] = { +* RD_ATOMIC_ACKNOWLEDGE +* }; +* static guint32 opCode_RDETH_AETH[] = { +* RD_ACKNOWLEDGE +* }; +* static guint32 opCode_RDETH_PAYLD[] = { +* RD_RDMA_READ_RESPONSE_MIDDLE +* }; +* static guint32 opCode_AETH_ATOMICACKETH[] = { +* RC_ATOMIC_ACKNOWLEDGE +* }; +* static guint32 opCode_RETH[] = { +* RC_RDMA_READ_REQUEST +* }; +* static guint32 opCode_AETH[] = { +* RC_ACKNOWLEDGE +* }; */ + + +/* Field dissector structures. +* For reserved fields, reservedX denotes the reserved field is X bits in length. +* e.g. reserved2 is a reserved field 2 bits in length. +* The third parameter is a filter string associated for this field. +* So for instance, to filter packets for a given virtual lane, +* The filter (infiniband.LRH.vl == 3) or something similar would be used. */ + +static hf_register_info hf[] = { + + /* Local Route Header (LRH) */ + {&hf_infiniband_LRH, + {"Local Route Header", "infiniband.lrh", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_virtual_lane, + {"Virtual Lane", "infiniband.lrh.vl", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_link_version, + {"Link Version", "infiniband.lrh.lver", FT_UINT8, BASE_DEC, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_service_level, + {"Service Level", "infiniband.lrh.sl", FT_UINT8, BASE_DEC, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_reserved2, + {"Reserved (2 bits)", "infiniband.lrh.reserved2", FT_UINT8, BASE_DEC, NULL, 0x0C, NULL, HFILL} + }, + {&hf_infiniband_link_next_header, + {"Link Next Header", "infiniband.lrh.lnh", FT_UINT8, BASE_HEX, NULL, 0x03, NULL, HFILL} + }, + {&hf_infiniband_destination_local_id, + {"Destination Local ID", "infiniband.lrh.dlid", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved5, + {"Reserved (5 bits)", "infiniband.lrh.reserved5", FT_UINT16, BASE_DEC, NULL, 0xF800, NULL, HFILL} + }, + {&hf_infiniband_packet_length, + {"Packet Length", "infiniband.lrh.pktlen", FT_UINT16, BASE_DEC, NULL, 0x07FF, NULL, HFILL} + }, + {&hf_infiniband_source_local_id, + {"Source Local ID", "infiniband.lrh.slid", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* Global Route Header (GRH) */ + {&hf_infiniband_GRH, + {"Global Route Header", "infiniband.grh", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ip_version, + {"IP Version", "infiniband.grh.ipver", FT_UINT8, BASE_DEC, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_traffic_class, + {"Traffic Class", "infiniband.grh.tclass", FT_UINT16, BASE_DEC, NULL, 0x0FF0, NULL, HFILL} + }, + {&hf_infiniband_flow_label, + {"Flow Label", "infiniband.grh.flowlabel", FT_UINT32, BASE_DEC, NULL, 0x000FFFFF, NULL, HFILL} + }, + {&hf_infiniband_payload_length, + {"Payload Length", "infiniband.grh.paylen", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_next_header, + {"Next Header", "infiniband.grh.nxthdr", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_hop_limit, + {"Hop Limit", "infiniband.grh.hoplmt", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_source_gid, + {"Source GID", "infiniband.grh.sgid", FT_IPv6, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_destination_gid, + {"Destination GID", "infiniband.grh.dgid", FT_IPv6, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* Base Transport Header (BTH) */ + {&hf_infiniband_BTH, + {"Base Transport Header", "infiniband.bth", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_opcode, + {"Opcode", "infiniband.bth.opcode", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_solicited_event, + {"Solicited Event", "infiniband.bth.se", FT_BOOLEAN, BASE_DEC, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_migreq, + {"MigReq", "infiniband.bth.m", FT_BOOLEAN, BASE_DEC, NULL, 0x40, NULL, HFILL} + }, + {&hf_infiniband_pad_count, + {"Pad Count", "infiniband.bth.padcnt", FT_UINT8, BASE_DEC, NULL, 0x30, NULL, HFILL} + }, + {&hf_infiniband_transport_header_version, + {"Header Version", "infiniband.bth.tver", FT_UINT8, BASE_DEC, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_partition_key, + {"Partition Key", "infiniband.bth.p_key", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved8, + {"Reserved (8 bits)", "infiniband.bth.reserved8", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_destination_qp, + {"Destination Queue Pair", "infiniband.bth.destqp", FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_acknowledge_request, + {"Acknowledge Request", "infiniband.bth.a", FT_BOOLEAN, BASE_DEC, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_reserved7, + {"Reserved (7 bits)", "infiniband.bth.reserved7", FT_UINT8, BASE_DEC, NULL, 0x7F, NULL, HFILL} + }, + {&hf_infiniband_packet_sequence_number, + {"Packet Sequence Number", "infiniband.bth.psn", FT_UINT24, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* Raw Header (RWH) */ + {&hf_infiniband_RWH, + {"Raw Header", "infiniband.rwh", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved16_RWH, + {"Reserved (16 bits)", "infiniband.rwh.reserved", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_etype, + {"Ethertype", "infiniband.rwh.etype", FT_UINT16, BASE_HEX, NULL /*VALS(etype_vals)*/, 0x0, "Type", HFILL } + }, + + /* Reliable Datagram Extended Transport Header (RDETH) */ + {&hf_infiniband_RDETH, + {"Reliable Datagram Extended Transport Header", "infiniband.rdeth", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved8_RDETH, + {"Reserved (8 bits)", "infiniband.rdeth.reserved8", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ee_context, + {"E2E Context", "infiniband.rdeth.eecnxt", FT_UINT24, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* Datagram Extended Transport Header (DETH) */ + {&hf_infiniband_DETH, + {"Datagram Extended Transport Header", "infiniband.deth", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_queue_key, + {"Queue Key", "infiniband.deth.q_key", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved8_DETH, + {"Reserved (8 bits)", "infiniband.deth.reserved8", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_source_qp, + {"Source Queue Pair", "infiniband.deth.srcqp", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* RDMA Extended Transport Header (RETH) */ + {&hf_infiniband_RETH, + {"RDMA Extended Transport Header", "infiniband.reth", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_virtual_address, + {"Virtual Address", "infiniband.reth.va", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_remote_key, + {"Remote Key", "infiniband.reth.r_key", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_dma_length, + {"DMA Length", "infiniband.reth.dmalen", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* Atomic Extended Transport Header (AtomicETH) */ + {&hf_infiniband_AtomicETH, + {"Atomic Extended Transport Header", "infiniband.atomiceth", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_virtual_address_AtomicETH, + {"Virtual Address", "infiniband.atomiceth.va", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_remote_key_AtomicETH, + {"Remote Key", "infiniband.atomiceth.r_key", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_swap_or_add_data, + {"Swap (Or Add) Data", "infiniband.atomiceth.swapdt", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_compare_data, + {"Compare Data", "infiniband.atomiceth.cmpdt", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* ACK Extended Transport Header (AETH) */ + {&hf_infiniband_AETH, + {"ACK Extended Transport Header", "infiniband.aeth", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_syndrome, + {"Syndrome", "infiniband.aeth.syndrome", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_message_sequence_number, + {"Message Sequence Number", "infiniband.aeth.msn", FT_UINT24, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + + /* Atomic ACK Extended Transport Header (AtomicAckETH) */ + {&hf_infiniband_AtomicAckETH, + {"Atomic ACK Extended Transport Header", "infiniband.atomicacketh", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_original_remote_data, + {"Original Remote Data", "infiniband.atomicacketh.origremdt", FT_UINT64, BASE_DEC, NULL, 0x0, NULL, HFILL} + }, + /* Immediate Extended Transport Header (ImmDT) */ + {&hf_infiniband_IMMDT, + {"Immediate Data", "infiniband.immdt", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + + /* Invalidate Extended Transport Header (IETH) */ + {&hf_infiniband_IETH, + {"RKey", "infiniband.ieth", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + + /* Payload */ + {&hf_infiniband_payload, + {"Payload", "infiniband.payload", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_invariant_crc, + {"Invariant CRC", "infiniband.invariant.crc", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_variant_crc, + {"Variant CRC", "infiniband.variant.crc", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_raw_data, + {"Raw Data", "infiniband.rawdata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* Unknown or Vendor Specific */ + {&hf_infiniband_vendor, + {"Unknown/Vendor Specific Data", "infiniband.vendor", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + + /* MAD Base Header */ + {&hf_infiniband_MAD, + {"MAD (Management Datagram) Common Header", "infiniband.mad", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_base_version, + {"Base Version", "infiniband.mad.baseversion", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_mgmt_class, + {"Management Class", "infiniband.mad.mgmtclass", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_class_version, + {"Class Version", "infiniband.mad.classversion", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved1, + {"Reserved", "infiniband.mad.reserved1", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_method, + {"Method", "infiniband.mad.method", FT_UINT8, BASE_HEX, NULL, 0x7F, NULL, HFILL} + }, + {&hf_infiniband_status, + {"Status", "infiniband.mad.status", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_class_specific, + {"Class Specific", "infiniband.mad.classspecific", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_transaction_id, + {"Transaction ID", "infiniband.mad.transactionid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_attribute_id, + {"Attribute ID", "infiniband.mad.attributeid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved16, + {"Reserved", "infiniband.mad.reserved16", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_attribute_modifier, + {"Attribute Modifier", "infiniband.mad.attributemodifier", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_data, + {"MAD Data Payload", "infiniband.mad.data", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* RMPP Header */ + {&hf_infiniband_RMPP, + {"RMPP (Reliable Multi-Packet Transaction Protocol)", "infiniband.rmpp", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_rmpp_version, + {"RMPP Type", "infiniband.rmpp.rmppversion", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_rmpp_type, + {"RMPP Type", "infiniband.rmpp.rmpptype", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_r_resp_time, + {"R Resp Time", "infiniband.rmpp.rresptime", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_rmpp_flags, + {"RMPP Flags", "infiniband.rmpp.rmppflags", FT_UINT8, BASE_HEX, VALS(RMPP_Flags), 0x0F, NULL, HFILL} + }, + {&hf_infiniband_rmpp_status, + {"RMPP Status", "infiniband.rmpp.rmppstatus", FT_UINT8, BASE_HEX, VALS(RMPP_Status), 0x0, NULL, HFILL} + }, + {&hf_infiniband_rmpp_data1, + {"RMPP Data 1", "infiniband.rmpp.data1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_rmpp_data2, + {"RMPP Data 2", "infiniband.rmpp.data2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* RMPP Data */ + {&hf_infiniband_RMPP_DATA, + {"RMPP Data (Reliable Multi-Packet Transaction Protocol)", "infiniband.rmpp.data", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_segment_number, + {"Segment Number", "infiniband.rmpp.segmentnumber", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_payload_length32, + {"Payload Length", "infiniband.rmpp.payloadlength", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_transferred_data, + {"Transferred Data", "infiniband.rmpp.transferreddata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* RMPP ACK */ + {&hf_infiniband_new_window_last, + {"New Window Last", "infiniband.rmpp.newwindowlast", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved220, + {"Segment Number", "infiniband.rmpp.reserved220", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* RMPP ABORT/STOP */ + {&hf_infiniband_optional_extended_error_data, + {"Optional Extended Error Data", "infiniband.rmpp.extendederrordata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* SMP Data (LID Routed) */ + {&hf_infiniband_SMP_LID, + {"Subnet Management Packet (LID Routed)", "infiniband.smplid", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_m_key, + {"M_Key", "infiniband.smplid.mkey", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_smp_data, + {"SMP Data", "infiniband.smplid.smpdata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved1024, + {"Reserved (1024 bits)", "infiniband.smplid.reserved1024", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved256, + {"Reserved (256 bits)", "infiniband.smplid.reserved256", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* SMP Data Directed Route */ + {&hf_infiniband_SMP_DIRECTED, + {"Subnet Management Packet (Directed Route)", "infiniband.smpdirected", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_smp_status, + {"Status", "infiniband.smpdirected.smpstatus", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_hop_pointer, + {"Hop Pointer", "infiniband.smpdirected.hoppointer", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_hop_count, + {"Hop Count", "infiniband.smpdirected.hopcount", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_dr_slid, + {"DrSLID", "infiniband.smpdirected.drslid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_dr_dlid, + {"DrDLID", "infiniband.smpdirected.drdlid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_reserved28, + {"Reserved (224 bits)", "infiniband.smpdirected.reserved28", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_d, + {"D (Direction Bit)", "infiniband.smpdirected.d", FT_UINT64, BASE_HEX, NULL, 0x8000, NULL, HFILL} + }, + {&hf_infiniband_initial_path, + {"Initial Path", "infiniband.smpdirected.initialpath", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_return_path, + {"Return Path", "infiniband.smpdirected.returnpath", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* SA MAD Header */ + {&hf_infiniband_SA, + {"SA Packet (Subnet Administration)", "infiniband.sa.drdlid", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_sm_key, + {"SM_Key (Verification Key)", "infiniband.sa.smkey", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_attribute_offset, + {"Attribute Offset", "infiniband.sa.attributeoffset", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_component_mask, + {"Component Mask", "infiniband.sa.componentmask", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_subnet_admin_data, + {"Subnet Admin Data", "infiniband.sa.subnetadmindata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* NodeDescription */ + {&hf_infiniband_NodeDescription_NodeString, + {"NodeString", "infiniband.nodedescription.nodestring", FT_STRING, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* NodeInfo */ + {&hf_infiniband_NodeInfo_BaseVersion, + {"BaseVersion", "infiniband.nodeinfo.baseversion", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_ClassVersion, + {"ClassVersion", "infiniband.nodeinfo.classversion", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_NodeType, + {"NodeType", "infiniband.nodeinfo.nodetype", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_NumPorts, + {"NumPorts", "infiniband.nodeinfo.numports", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_SystemImageGUID, + {"SystemImageGUID", "infiniband.nodeinfo.systemimageguid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_NodeGUID, + {"NodeGUID", "infiniband.nodeinfo.nodeguid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_PortGUID, + {"PortGUID", "infiniband.nodeinfo.portguid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_PartitionCap, + {"PartitionCap", "infiniband.nodeinfo.partitioncap", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_DeviceID, + {"DeviceID", "infiniband.nodeinfo.deviceid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_Revision, + {"Revision", "infiniband.nodeinfo.revision", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_LocalPortNum, + {"LocalPortNum", "infiniband.nodeinfo.localportnum", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_NodeInfo_VendorID, + {"VendorID", "infiniband.nodeinfo.vendorid", FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* SwitchInfo */ + {&hf_infiniband_SwitchInfo_LinearFDBCap, + {"LinearFDBCap", "infiniband.switchinfo.linearfdbcap", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_RandomFDBCap, + {"RandomFDBCap", "infiniband.switchinfo.randomfdbcap", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_MulticastFDBCap, + {"MulticastFDBCap", "infiniband.switchinfo.multicastfdbcap", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_LinearFDBTop, + {"LinearFDBTop", "infiniband.switchinfo.linearfdbtop", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_DefaultPort, + {"DefaultPort", "infiniband.switchinfo.defaultport", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_DefaultMulticastPrimaryPort, + {"DefaultMulticastPrimaryPort", "infiniband.switchinfo.defaultmulticastprimaryport", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_DefaultMulticastNotPrimaryPort, + {"DefaultMulticastNotPrimaryPort", "infiniband.switchinfo.defaultmulticastnotprimaryport", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_LifeTimeValue, + {"LifeTimeValue", "infiniband.switchinfo.lifetimevalue", FT_UINT8, BASE_HEX, NULL, 0xF8, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_PortStateChange, + {"PortStateChange", "infiniband.switchinfo.portstatechange", FT_UINT8, BASE_HEX, NULL, 0x04, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_OptimizedSLtoVLMappingProgramming, + {"OptimizedSLtoVLMappingProgramming", "infiniband.switchinfo.optimizedsltovlmappingprogramming", FT_UINT8, BASE_HEX, NULL, 0x03, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_LIDsPerPort, + {"LIDsPerPort", "infiniband.switchinfo.lidsperport", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_PartitionEnforcementCap, + {"PartitionEnforcementCap", "infiniband.switchinfo.partitionenforcementcap", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_InboundEnforcementCap, + {"InboundEnforcementCap", "infiniband.switchinfo.inboundenforcementcap", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_OutboundEnforcementCap, + {"OutboundEnforcementCap", "infiniband.switchinfo.outboundenforcementcap", FT_UINT8, BASE_HEX, NULL, 0x40, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_FilterRawInboundCap, + {"FilterRawInboundCap", "infiniband.switchinfo.filterrawinboundcap", FT_UINT8, BASE_HEX, NULL, 0x20, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_FilterRawOutboundCap, + {"FilterRawOutboundCap", "infiniband.switchinfo.filterrawoutboundcap", FT_UINT8, BASE_HEX, NULL, 0x10, NULL, HFILL} + }, + {&hf_infiniband_SwitchInfo_EnhancedPortZero, + {"EnhancedPortZero", "infiniband.switchinfo.enhancedportzero", FT_UINT8, BASE_HEX, NULL, 0x08, NULL, HFILL} + }, + /* GUIDInfo */ + {&hf_infiniband_GUIDInfo_GUIDBlock, + {"GUIDBlock", "infiniband.switchinfo.guidblock", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_GUIDInfo_GUID, + {"GUID", "infiniband.switchinfo.guid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* PortInfo */ + {&hf_infiniband_PortInfo_M_Key, + {"M_Key", "infiniband.portinfo.m_key", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_GidPrefix, + {"GidPrefix", "infiniband.portinfo.guid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LID, + {"LID", "infiniband.portinfo.lid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_MasterSMLID, + {"MasterSMLID", "infiniband.portinfo.mastersmlid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask, + {"CapabilityMask", "infiniband.portinfo.capabilitymask", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + + /* Capability Mask Flags */ + {&hf_infiniband_PortInfo_CapabilityMask_SM, + {"SM", "infiniband.portinfo.capabilitymask.issm", FT_UINT32, BASE_HEX, NULL, 0x0000002, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_NoticeSupported, + {"NoticeSupported", "infiniband.portinfo.capabilitymask.noticesupported", FT_UINT32, BASE_HEX, NULL, 0x0000004, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_TrapSupported, + {"TrapSupported", "infiniband.portinfo.capabilitymask.trapsupported", FT_UINT32, BASE_HEX, NULL, 0x0000008, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_OptionalPDSupported, + {"OptionalPDSupported", "infiniband.portinfo.capabilitymask.optionalpdsupported", FT_UINT32, BASE_HEX, NULL, 0x0000010, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_AutomaticMigrationSupported, + {"AutomaticMigrationSupported", "infiniband.portinfo.capabilitymask.automaticmigrationsupported", FT_UINT32, BASE_HEX, NULL, 0x0000020, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_SLMappingSupported, + {"SLMappingSupported", "infiniband.portinfo.capabilitymask.slmappingsupported", FT_UINT32, BASE_HEX, NULL, 0x0000040, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_MKeyNVRAM, + {"MKeyNVRAM", "infiniband.portinfo.capabilitymask.mkeynvram", FT_UINT32, BASE_HEX, NULL, 0x0000080, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_PKeyNVRAM, + {"PKeyNVRAM", "infiniband.portinfo.capabilitymask.pkeynvram", FT_UINT32, BASE_HEX, NULL, 0x0000100, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_LEDInfoSupported, + {"LEDInfoSupported", "infiniband.portinfo.capabilitymask.ledinfosupported", FT_UINT32, BASE_HEX, NULL, 0x0000200, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_SMdisabled, + {"SMdisabled", "infiniband.portinfo.capabilitymask.smdisabled", FT_UINT32, BASE_HEX, NULL, 0x0000400, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_SystemImageGUIDSupported, + {"SystemImageGUIDSupported", "infiniband.portinfo.capabilitymask.systemimageguidsupported", FT_UINT32, BASE_HEX, NULL, 0x0000800, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_PKeySwitchExternalPortTrapSupported, + {"PKeySwitchExternalPortTrapSupported", "infiniband.portinfo.capabilitymask.pkeyswitchexternalporttrapsupported", FT_UINT32, BASE_HEX, NULL, 0x0001000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_CommunicationsManagementSupported, + {"CommunicationsManagementSupported", "infiniband.portinfo.capabilitymask.communicationsmanagementsupported", FT_UINT32, BASE_HEX, NULL, 0x0010000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_SNMPTunnelingSupported, + {"SNMPTunnelingSupported", "infiniband.portinfo.capabilitymask.snmptunnelingsupported", FT_UINT32, BASE_HEX, NULL, 0x0020000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_ReinitSupported, + {"ReinitSupported", "infiniband.portinfo.capabilitymask.reinitsupported", FT_UINT32, BASE_HEX, NULL, 0x0040000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_DeviceManagementSupported, + {"DeviceManagementSupported", "infiniband.portinfo.capabilitymask.devicemanagementsupported", FT_UINT32, BASE_HEX, NULL, 0x0080000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_VendorClassSupported, + {"VendorClassSupported", "infiniband.portinfo.capabilitymask.vendorclasssupported", FT_UINT32, BASE_HEX, NULL, 0x0100000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_DRNoticeSupported, + {"DRNoticeSupported", "infiniband.portinfo.capabilitymask.drnoticesupported", FT_UINT32, BASE_HEX, NULL, 0x0200000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_CapabilityMaskNoticeSupported, + {"CapabilityMaskNoticeSupported", "infiniband.portinfo.capabilitymask.capabilitymasknoticesupported", FT_UINT32, BASE_HEX, NULL, 0x0400000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_BootManagementSupported, + {"BootManagementSupported", "infiniband.portinfo.capabilitymask.bootmanagementsupported", FT_UINT32, BASE_HEX, NULL, 0x0800000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_LinkRoundTripLatencySupported, + {"LinkRoundTripLatencySupported", "infiniband.portinfo.capabilitymask.linkroundtriplatencysupported", FT_UINT32, BASE_HEX, NULL, 0x01000000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_ClientRegistrationSupported, + {"ClientRegistrationSupported", "infiniband.portinfo.capabilitymask.clientregistrationsupported", FT_UINT32, BASE_HEX, NULL, 0x02000000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_OtherLocalChangesNoticeSupported, + {"OtherLocalChangesNoticeSupported", "infiniband.portinfo.capabilitymask.otherlocalchangesnoticesupported", FT_UINT32, BASE_HEX, NULL, 0x04000000, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_CapabilityMask_LinkSpeedWIdthPairsTableSupported, + {"LinkSpeedWIdthPairsTableSupported", "infiniband.portinfo.capabilitymask.linkspeedwidthpairstablesupported", FT_UINT32, BASE_HEX, NULL, 0x08000000, NULL, HFILL} + }, + /* End Capability Mask Flags */ + + {&hf_infiniband_PortInfo_DiagCode, + {"DiagCode", "infiniband.portinfo.diagcode", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_M_KeyLeasePeriod, + {"M_KeyLeasePeriod", "infiniband.portinfo.m_keyleaseperiod", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LocalPortNum, + {"LocalPortNum", "infiniband.portinfo.localportnum", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkWidthEnabled, + {"LinkWidthEnabled", "infiniband.portinfo.linkwidthenabled", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkWidthSupported, + {"LinkWidthSupported", "infiniband.portinfo.linkwidthsupported", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkWidthActive, + {"LinkWidthActive", "infiniband.portinfo.linkwidthactive", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkSpeedSupported, + {"LinkSpeedSupported", "infiniband.portinfo.linkspeedsupported", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_PortState, + {"PortState", "infiniband.portinfo.portstate", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_PortPhysicalState, + {"PortPhysicalState", "infiniband.portinfo.portphysicalstate", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkDownDefaultState, + {"LinkDownDefaultState", "infiniband.portinfo.linkdowndefaultstate", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_M_KeyProtectBits, + {"M_KeyProtectBits", "infiniband.portinfo.m_keyprotectbits", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LMC, + {"LMC", "infiniband.portinfo.lmc", FT_UINT8, BASE_HEX, NULL, 0x07, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkSpeedActive, + {"LinkSpeedActive", "infiniband.portinfo.linkspeedactive", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkSpeedEnabled, + {"LinkSpeedEnabled", "infiniband.portinfo.linkspeedenabled", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_NeighborMTU, + {"NeighborMTU", "infiniband.portinfo.neighbormtu", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_MasterSMSL, + {"MasterSMSL", "infiniband.portinfo.mastersmsl", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_VLCap, + {"VLCap", "infiniband.portinfo.vlcap", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_InitType, + {"InitType", "infiniband.portinfo.inittype", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_VLHighLimit, + {"VLHighLimit", "infiniband.portinfo.vlhighlimit", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_VLArbitrationHighCap, + {"VLArbitrationHighCap", "infiniband.portinfo.vlarbitrationhighcap", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_VLArbitrationLowCap, + {"VLArbitrationLowCap", "infiniband.portinfo.vlarbitrationlowcap", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_InitTypeReply, + {"InitTypeReply", "infiniband.portinfo.inittypereply", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_MTUCap, + {"MTUCap", "infiniband.portinfo.mtucap", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_VLStallCount, + {"VLStallCount", "infiniband.portinfo.vlstallcount", FT_UINT8, BASE_HEX, NULL, 0xE0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_HOQLife, + {"HOQLife", "infiniband.portinfo.hoqlife", FT_UINT8, BASE_HEX, NULL, 0x1F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_OperationalVLs, + {"OperationalVLs", "infiniband.portinfo.operationalvls", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_PartitionEnforcementInbound, + {"PartitionEnforcementInbound", "infiniband.portinfo.partitionenforcementinbound", FT_UINT8, BASE_HEX, NULL, 0x08, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_PartitionEnforcementOutbound, + {"PartitionEnforcementOutbound", "infiniband.portinfo.partitionenforcementoutbound", FT_UINT8, BASE_HEX, NULL, 0x04, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_FilterRawInbound, + {"FilterRawInbound", "infiniband.portinfo.filterrawinbound", FT_UINT8, BASE_HEX, NULL, 0x02, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_FilterRawOutbound, + {"FilterRawOutbound", "infiniband.portinfo.filterrawoutbound", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_M_KeyViolations, + {"M_KeyViolations", "infiniband.portinfo.m_keyviolations", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_P_KeyViolations, + {"P_KeyViolations", "infiniband.portinfo.p_keyviolations", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_Q_KeyViolations, + {"Q_KeyViolations", "infiniband.portinfo.q_keyviolations", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_GUIDCap, + {"GUIDCap", "infiniband.portinfo.guidcap", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_ClientReregister, + {"ClientReregister", "infiniband.portinfo.clientreregister", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_SubnetTimeOut, + {"SubnetTimeOut", "infiniband.portinfo.subnettimeout", FT_UINT8, BASE_HEX, NULL, 0x1F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_RespTimeValue, + {"RespTimeValue", "infiniband.portinfo.resptimevalue", FT_UINT8, BASE_HEX, NULL, 0x1F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LocalPhyErrors, + {"LocalPhyErrors", "infiniband.portinfo.localphyerrors", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_OverrunErrors, + {"OverrunErrors", "infiniband.portinfo.overrunerrors", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_MaxCreditHint, + {"MaxCreditHint", "infiniband.portinfo.maxcredithint", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PortInfo_LinkRoundTripLatency, + {"LinkRoundTripLatency", "infiniband.portinfo.linkroundtriplatency", FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* P_KeyTable */ + {&hf_infiniband_P_KeyTable_P_KeyTableBlock, + {"P_KeyTableBlock", "infiniband.p_keytable.p_keytableblock", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_P_KeyTable_MembershipType, + {"MembershipType", "infiniband.p_keytable.membershiptype", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_P_KeyTable_P_KeyBase, + {"P_KeyBase", "infiniband.p_keytable.p_keybase", FT_UINT16, BASE_HEX, NULL, 0x7FFF, NULL, HFILL} + }, + /* SLtoVLMappingTable */ + {&hf_infiniband_SLtoVLMappingTable_SLtoVL_HighBits, + {"SL(x)toVL", "infiniband.sltovlmappingtable.sltovlhighbits", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_SLtoVLMappingTable_SLtoVL_LowBits, + {"SL(x)toVL", "infiniband.sltovlmappingtable.sltovllowbits", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + /* VLArbitrationTable */ + {&hf_infiniband_VLArbitrationTable_VLWeightPairs, + {"VLWeightPairs", "infiniband.vlarbitrationtable.vlweightpairs", FT_BYTES, BASE_HEX, NULL, 0x7FFF, NULL, HFILL} + }, + {&hf_infiniband_VLArbitrationTable_VL, + {"VL", "infiniband.vlarbitrationtable.vl", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_VLArbitrationTable_Weight, + {"Weight", "infiniband.vlarbitrationtable.weight", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* LinearForwardingTable */ + {&hf_infiniband_LinearForwardingTable_LinearForwardingTableBlock, + {"LinearForwardingTableBlock", "infiniband.linearforwardingtable.linearforwardingtableblock", FT_BYTES, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_LinearForwardingTable_Port, + {"Port", "infiniband.linearforwardingtable.port", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* RandomForwardingTable */ + {&hf_infiniband_RandomForwardingTable_RandomForwardingTableBlock, + {"RandomForwardingTableBlock", "infiniband.randomforwardingtable.randomforwardingtableblock", FT_BYTES, BASE_HEX, NULL, 0x7FFF, NULL, HFILL} + }, + {&hf_infiniband_RandomForwardingTable_LID, + {"LID", "infiniband.randomforwardingtable.lid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_RandomForwardingTable_Valid, + {"Valid", "infiniband.randomforwardingtable.valid", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_RandomForwardingTable_LMC, + {"LMC", "infiniband.randomforwardingtable.lmc", FT_UINT16, BASE_HEX, NULL, 0x70, NULL, HFILL} + }, + {&hf_infiniband_RandomForwardingTable_Port, + {"Port", "infiniband.randomforwardingtable.port", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* MulticastForwardingTable */ + {&hf_infiniband_MulticastForwardingTable_MulticastForwardingTableBlock , + {"MulticastForwardingTableBlock ", "infiniband.multicastforwardingtable.multicastforwardingtableblock", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MulticastForwardingTable_PortMask, + {"PortMask", "infiniband.multicastforwardingtable.portmask", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* SMInfo */ + {&hf_infiniband_SMInfo_GUID, + {"GUID", "infiniband.sminfo.guid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SMInfo_SM_Key, + {"SM_Key", "infiniband.sminfo.sm_key", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SMInfo_ActCount, + {"ActCount", "infiniband.sminfo.actcount", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SMInfo_Priority, + {"Priority", "infiniband.sminfo.priority", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_SMInfo_SMState, + {"SMState", "infiniband.sminfo.smstate", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + /* VendorDiag */ + {&hf_infiniband_VendorDiag_NextIndex, + {"NextIndex", "infiniband.vendordiag.nextindex", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_VendorDiag_DiagData, + {"DiagData", "infiniband.vendordiag.diagdata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* LedInfo */ + {&hf_infiniband_LedInfo_LedMask, + {"LedMask", "infiniband.ledinfo.ledmask", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + /* LinkSpeedWidthPairsTable */ + {&hf_infiniband_LinkSpeedWidthPairsTable_NumTables, + {"NumTables", "infiniband.linkspeedwidthpairstable.numtables", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_LinkSpeedWidthPairsTable_PortMask, + {"PortMask", "infiniband.linkspeedwidthpairstable.portmask", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_LinkSpeedWidthPairsTable_SpeedTwoFive, + {"Speed 2.5 Gbps", "infiniband.linkspeedwidthpairstable.speedtwofive", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_LinkSpeedWidthPairsTable_SpeedFive, + {"Speed 5 Gbps", "infiniband.linkspeedwidthpairstable.speedfive", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_LinkSpeedWidthPairsTable_SpeedTen, + {"Speed 10 Gbps", "infiniband.linkspeedwidthpairstable.speedten", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + /* NodeRecord */ + /* PortInfoRecord */ + /* SLtoVLMappingTableRecord */ + /* SwitchInfoRecord */ + /* LinearForwardingTableRecord */ + /* RandomForwardingTableRecord */ + /* MulticastForwardingTableRecord */ + /* VLArbitrationTableRecord */ + {&hf_infiniband_SA_LID, + {"LID", "infiniband.sa.lid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SA_EndportLID, + {"EndportLID", "infiniband.sa.endportlid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SA_PortNum, + {"PortNum", "infiniband.sa.portnum", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SA_InputPortNum , + {"InputPortNum ", "infiniband.sa.inputportnum", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SA_OutputPortNum, + {"OutputPortNum", "infiniband.sa.outputportnum", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SA_BlockNum_EightBit, + {"BlockNum_EightBit", "infiniband.sa.blocknum_eightbit", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SA_BlockNum_NineBit, + {"BlockNum_NineBit", "infiniband.sa.blocknum_ninebit", FT_UINT16, BASE_HEX, NULL, 0x01FF, NULL, HFILL} + }, + {&hf_infiniband_SA_BlockNum_SixteenBit, + {"BlockNum_SixteenBit", "infiniband.sa.blocknum_sixteenbit", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_SA_Position, + {"Position", "infiniband.sa.position", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_SA_Index, + {"Index", "infiniband.sa.index", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* InformInfoRecord */ + {&hf_infiniband_InformInfoRecord_SubscriberGID, + {"SubscriberGID", "infiniband.informinforecord.subscribergid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfoRecord_Enum, + {"Enum", "infiniband.informinforecord.enum", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* InformInfo */ + {&hf_infiniband_InformInfo_GID, + {"GID", "infiniband.informinfo.gid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_LIDRangeBegin, + {"LIDRangeBegin", "infiniband.informinfo.lidrangebegin", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_LIDRangeEnd, + {"LIDRangeEnd", "infiniband.informinfo.lidrangeend", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_IsGeneric, + {"IsGeneric", "infiniband.informinfo.isgeneric", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_Subscribe, + {"Subscribe", "infiniband.informinfo.subscribe", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_Type, + {"Type", "infiniband.informinfo.type", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_TrapNumberDeviceID, + {"TrapNumberDeviceID", "infiniband.informinfo.trapnumberdeviceid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_QPN, + {"QPN", "infiniband.informinfo.qpn", FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_RespTimeValue, + {"RespTimeValue", "infiniband.informinfo.resptimevalue", FT_UINT8, BASE_HEX, NULL, 0x1F, NULL, HFILL} + }, + {&hf_infiniband_InformInfo_ProducerTypeVendorID, + {"ProducerTypeVendorID", "infiniband.informinfo.producertypevendorid", FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* LinkRecord */ + {&hf_infiniband_LinkRecord_FromLID, + {"FromLID", "infiniband.linkrecord.fromlid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_LinkRecord_FromPort, + {"FromPort", "infiniband.linkrecord.fromport", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_LinkRecord_ToPort, + {"ToPort", "infiniband.linkrecord.toport", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_LinkRecord_ToLID, + {"ToLID", "infiniband.linkrecord.tolid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* ServiceRecord */ + {&hf_infiniband_ServiceRecord_ServiceID, + {"ServiceID", "infiniband.linkrecord.serviceid", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ServiceRecord_ServiceGID, + {"ServiceGID", "infiniband.linkrecord.servicegid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ServiceRecord_ServiceP_Key, + {"ServiceP_Key", "infiniband.linkrecord.servicep_key", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ServiceRecord_ServiceLease, + {"ServiceLease", "infiniband.linkrecord.servicelease", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ServiceRecord_ServiceKey, + {"ServiceKey", "infiniband.linkrecord.servicekey", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ServiceRecord_ServiceName, + {"ServiceName", "infiniband.linkrecord.servicename", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ServiceRecord_ServiceData, + {"ServiceData", "infiniband.linkrecord.servicedata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* ServiceAssociationRecord */ + {&hf_infiniband_ServiceAssociationRecord_ServiceKey, + {"ServiceKey", "infiniband.serviceassociationrecord.servicekey", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_ServiceAssociationRecord_ServiceName, + {"ServiceName", "infiniband.serviceassociationrecord.servicename", FT_STRING, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* PathRecord */ + {&hf_infiniband_PathRecord_DGID, + {"DGID", "infiniband.pathrecord.dgid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_SGID, + {"SGID", "infiniband.pathrecord.sgid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_DLID, + {"DLID", "infiniband.pathrecord.dlid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_SLID, + {"SLID", "infiniband.pathrecord.slid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_RawTraffic, + {"RawTraffic", "infiniband.pathrecord.rawtraffic", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_FlowLabel, + {"FlowLabel", "infiniband.pathrecord.flowlabel", FT_UINT24, BASE_HEX, NULL, 0xFFFFF0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_HopLimit, + {"HopLimit", "infiniband.pathrecord.hoplimit", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_TClass, + {"TClass", "infiniband.pathrecord.tclass", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_Reversible, + {"Reversible", "infiniband.pathrecord.reversible", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_NumbPath, + {"NumbPath", "infiniband.pathrecord.numbpath", FT_UINT8, BASE_HEX, NULL, 0x7F, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_P_Key, + {"P_Key", "infiniband.pathrecord.p_key", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_SL, + {"SL", "infiniband.pathrecord.sl", FT_UINT16, BASE_HEX, NULL, 0x000F, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_MTUSelector, + {"MTUSelector", "infiniband.pathrecord.mtuselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_MTU, + {"MTU", "infiniband.pathrecord.mtu", FT_UINT8, BASE_HEX, NULL, 0x3F, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_RateSelector, + {"RateSelector", "infiniband.pathrecord.rateselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_Rate, + {"Rate", "infiniband.pathrecord.rate", FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_PacketLifeTimeSelector, + {"PacketLifeTimeSelector", "infiniband.pathrecord.packetlifetimeselector", FT_UINT8, BASE_HEX, NULL, 0x03, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_PacketLifeTime, + {"PacketLifeTime", "infiniband.pathrecord.packetlifetime", FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL} + }, + {&hf_infiniband_PathRecord_Preference, + {"Preference", "infiniband.pathrecord.preference", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* MCMemberRecord */ + {&hf_infiniband_MCMemberRecord_MGID, + {"MGID", "infiniband.mcmemberrecord.mgid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_PortGID, + {"PortGID", "infiniband.mcmemberrecord.portgid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_Q_Key, + {"Q_Key", "infiniband.mcmemberrecord.q_key", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_MLID, + {"MLID", "infiniband.mcmemberrecord.mlid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_MTUSelector, + {"MTUSelector", "infiniband.mcmemberrecord.mtuselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_MTU, + {"MTU", "infiniband.mcmemberrecord.mtu", FT_UINT8, BASE_HEX, NULL, 0x3F, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_TClass, + {"TClass", "infiniband.mcmemberrecord.tclass", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_P_Key, + {"P_Key", "infiniband.mcmemberrecord.p_key", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_RateSelector, + {"RateSelector", "infiniband.mcmemberrecord.rateselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_Rate, + {"Rate", "infiniband.mcmemberrecord.rate", FT_UINT8, BASE_HEX, NULL, 0x3F, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_PacketLifeTimeSelector, + {"PacketLifeTimeSelector", "infiniband.mcmemberrecord.packetlifetimeselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_PacketLifeTime, + {"PacketLifeTime", "infiniband.mcmemberrecord.packetlifetime", FT_UINT8, BASE_HEX, NULL, 0x3F, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_SL, + {"SL", "infiniband.mcmemberrecord.sl", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_FlowLabel, + {"FlowLabel", "infiniband.mcmemberrecord.flowlabel", FT_UINT24, BASE_HEX, NULL, 0x0FFFFF, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_HopLimit, + {"HopLimit", "infiniband.mcmemberrecord.hoplimit", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_Scope, + {"Scope", "infiniband.mcmemberrecord.scope", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_JoinState, + {"JoinState", "infiniband.mcmemberrecord.joinstate", FT_UINT8, BASE_HEX, NULL, 0xF0, NULL, HFILL} + }, + {&hf_infiniband_MCMemberRecord_ProxyJoin, + {"ProxyJoin", "infiniband.mcmemberrecord.proxyjoin", FT_UINT8, BASE_HEX, NULL, 0x08, NULL, HFILL} + }, + /* MultiPathRecord */ + {&hf_infiniband_MultiPathRecord_RawTraffic, + {"RawTraffic", "infiniband.multipathrecord.rawtraffic", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_FlowLabel, + {"FlowLabel", "infiniband.multipathrecord.flowlabel", FT_UINT24, BASE_HEX, NULL, 0x0FFFFF, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_HopLimit, + {"HopLimit", "infiniband.multipathrecord.hoplimit", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_TClass, + {"TClass", "infiniband.multipathrecord.tclass", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_Reversible, + {"Reversible", "infiniband.multipathrecord.reversible", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_NumbPath, + {"NumbPath", "infiniband.multipathrecord.numbpath", FT_UINT8, BASE_HEX, NULL, 0x7F, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_P_Key, + {"P_Key", "infiniband.multipathrecord.p_key", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_SL, + {"SL", "infiniband.multipathrecord.sl", FT_UINT8, BASE_HEX, NULL, 0x0F, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_MTUSelector, + {"MTUSelector", "infiniband.multipathrecord.mtuselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_MTU, + {"MTU", "infiniband.multipathrecord.mtu", FT_UINT8, BASE_HEX, NULL, 0x3F, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_RateSelector, + {"RateSelector", "infiniband.multipathrecord.rateselector", FT_UINT8, BASE_HEX, NULL, 0x03, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_Rate, + {"Rate", "infiniband.multipathrecord.rate", FT_UINT8, BASE_HEX, NULL, 0xFC, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_PacketLifeTimeSelector, + {"PacketLifeTimeSelector", "infiniband.multipathrecord.packetlifetimeselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_PacketLifeTime, + {"PacketLifeTime", "infiniband.multipathrecord.packetlifetime", FT_UINT8, BASE_HEX, NULL, 0x3F, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_IndependenceSelector, + {"IndependenceSelector", "infiniband.multipathrecord.independenceselector", FT_UINT8, BASE_HEX, NULL, 0xC0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_GIDScope, + {"GIDScope", "infiniband.multipathrecord.gidscope", FT_UINT8, BASE_HEX, NULL, 0x3F, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_SGIDCount, + {"SGIDCount", "infiniband.multipathrecord.sgidcount", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_DGIDCount, + {"DGIDCount", "infiniband.multipathrecord.dgidcount", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_MultiPathRecord_SDGID, + {"SDGID", "infiniband.multipathrecord.sdgid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* Notice */ + {&hf_infiniband_Notice_IsGeneric, + {"IsGeneric", "infiniband.notice.isgeneric", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_Notice_Type, + {"Type", "infiniband.notice.type", FT_UINT8, BASE_HEX, NULL, 0x7F, NULL, HFILL} + }, + {&hf_infiniband_Notice_ProducerTypeVendorID, + {"ProducerTypeVendorID", "infiniband.notice.producertypevendorid", FT_UINT24, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_Notice_TrapNumberDeviceID, + {"TrapNumberDeviceID", "infiniband.notice.trapnumberdeviceid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_Notice_IssuerLID, + {"IssuerLID", "infiniband.notice.issuerlid", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_Notice_NoticeToggle, + {"NoticeToggle", "infiniband.notice.noticetoggle", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_Notice_NoticeCount, + {"NoticeCount", "infiniband.notice.noticecount", FT_UINT16, BASE_HEX, NULL, 0x7FFF, NULL, HFILL} + }, + {&hf_infiniband_Notice_DataDetails, + {"DataDetails", "infiniband.notice.datadetails", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_Notice_IssuerGID, + {"IssuerGID", "infiniband.notice.issuergid", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_Notice_ClassTrapSpecificData, + {"ClassTrapSpecificData", "infiniband.notice.classtrapspecificdata", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* Traps 64,65,66,67 */ + {&hf_infiniband_Trap_GIDADDR, + {"GIDADDR", "infiniband.trap.gidaddr", FT_IPv6, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* Traps 68,69 */ + {&hf_infiniband_Trap_COMP_MASK, + {"COMP_MASK", "infiniband.trap.comp_mask", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_Trap_WAIT_FOR_REPATH, + {"WAIT_FOR_REPATH", "infiniband.trap.wait_for_repath", FT_UINT8, BASE_HEX, NULL, 0x80, NULL, HFILL} + }, + {&hf_infiniband_Trap_PATH_REC, + {"PATH_REC", "infiniband.trap.path_rec", FT_BYTES, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* Trap 128 */ + {&hf_infiniband_Trap_LIDADDR, + {"LIDADDR", "infiniband.trap.lidaddr", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* Trap 129, 130, 131 */ + {&hf_infiniband_Trap_PORTNO, + {"PORTNO", "infiniband.trap.portno", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + /* Trap 144 */ + {&hf_infiniband_Trap_OtherLocalChanges, + {"OtherLocalChanges", "infiniband.trap.otherlocalchanges", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_CAPABILITYMASK, + {"CAPABILITYMASK", "infiniband.trap.capabilitymask", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL} + }, + {&hf_infiniband_Trap_LinkSpeecEnabledChange, + {"LinkSpeecEnabledChange", "infiniband.trap.linkspeecenabledchange", FT_UINT8, BASE_HEX, NULL, 0x04, NULL, HFILL} + }, + {&hf_infiniband_Trap_LinkWidthEnabledChange, + {"LinkWidthEnabledChange", "infiniband.trap.linkwidthenabledchange", FT_UINT8, BASE_HEX, NULL, 0x02, NULL, HFILL} + }, + {&hf_infiniband_Trap_NodeDescriptionChange, + {"NodeDescriptionChange", "infiniband.trap.nodedescriptionchange", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + /* Trap 145 */ + {&hf_infiniband_Trap_SYSTEMIMAGEGUID, + {"SYSTEMIMAGEGUID", "infiniband.trap.systemimageguid", FT_UINT64, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + /* Trap 256 */ + {&hf_infiniband_Trap_DRSLID, + {"DRSLID", "infiniband.trap.drslid", FT_UINT16, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_METHOD, + {"METHOD", "infiniband.trap.method", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_ATTRIBUTEID, + {"ATTRIBUTEID", "infiniband.trap.attributeid", FT_UINT16, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_ATTRIBUTEMODIFIER, + {"ATTRIBUTEMODIFIER", "infiniband.trap.attributemodifier", FT_UINT32, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_MKEY, + {"MKEY", "infiniband.trap.mkey", FT_UINT64, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_DRNotice, + {"DRNotice", "infiniband.trap.drnotice", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_DRPathTruncated, + {"DRPathTruncated", "infiniband.trap.drpathtruncated", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_DRHopCount, + {"DRHopCount", "infiniband.trap.drhopcount", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_DRNoticeReturnPath, + {"DRNoticeReturnPath", "infiniband.trap.drnoticereturnpath", FT_BYTES, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + /* Trap 257, 258 */ + {&hf_infiniband_Trap_LIDADDR1, + {"LIDADDR1", "infiniband.trap.lidaddr1", FT_UINT16, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_LIDADDR2, + {"LIDADDR2", "infiniband.trap.lidaddr2", FT_UINT16, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_KEY, + {"KEY", "infiniband.trap.key", FT_UINT32, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_SL, + {"SL", "infiniband.trap.sl", FT_UINT8, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_QP1, + {"QP1", "infiniband.trap.qp1", FT_UINT24, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_QP2, + {"QP2", "infiniband.trap.qp2", FT_UINT24, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_GIDADDR1, + {"GIDADDR1", "infiniband.trap.gidaddr1", FT_IPv6, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_GIDADDR2, + {"GIDADDR2", "infiniband.trap.gidaddr2", FT_IPv6, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + /* Trap 259 */ + {&hf_infiniband_Trap_DataValid, + {"DataValid", "infiniband.trap.datavalid", FT_IPv6, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_PKEY, + {"PKEY", "infiniband.trap.pkey", FT_IPv6, BASE_HEX, NULL, 0x01, NULL, HFILL} + }, + {&hf_infiniband_Trap_SWLIDADDR, + {"SWLIDADDR", "infiniband.trap.swlidaddr", FT_IPv6, BASE_HEX, NULL, 0x01, NULL, HFILL} + } +}; + +/* Array to hold expansion options between dissections */ +static gint *ett[] = { + &ett_infiniband, + &ett_all_headers, + &ett_lrh, + &ett_grh, + &ett_bth, + &ett_rwh, + &ett_rawdata, + &ett_rdeth, + &ett_deth, + &ett_reth, + &ett_atomiceth, + &ett_aeth, + &ett_atomicacketh, + &ett_immdt, + &ett_ieth, + &ett_payload, + &ett_vendor, + &ett_subn_lid_routed, + &ett_subn_directed_route, + &ett_subnadmin, + &ett_mad, + &ett_rmpp, + &ett_subm_attribute, + &ett_suba_attribute, + &ett_datadetails, + &ett_noticestraps, + &ett_nodedesc, + &ett_nodeinfo, + &ett_switchinfo, + &ett_guidinfo, + &ett_portinfo, + &ett_portinfo_capmask, + &ett_pkeytable, + &ett_sltovlmapping, + &ett_vlarbitrationtable, + &ett_linearforwardingtable, + &ett_randomforwardingtable, + &ett_multicastforwardingtable, + &ett_sminfo, + &ett_vendordiag, + &ett_ledinfo, + &ett_linkspeedwidthpairs, + &ett_informinfo, + &ett_linkrecord, + &ett_servicerecord, + &ett_pathrecord, + &ett_mcmemberrecord, + &ett_tracerecord, + &ett_multipathrecord, + &ett_serviceassocrecord +}; + + +#endif |