From 441c3f63b2d508910e1b18491899c3aa1b8b502a Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Thu, 8 Apr 2010 08:41:56 +0000 Subject: From Stephen Donnelly: InfiniBand Link Packet (flow control) dissector. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4656 svn path=/trunk/; revision=32425 --- epan/dissectors/packet-infiniband.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'epan/dissectors/packet-infiniband.h') diff --git a/epan/dissectors/packet-infiniband.h b/epan/dissectors/packet-infiniband.h index 5d4c819ce2..0d3f3b3a93 100644 --- a/epan/dissectors/packet-infiniband.h +++ b/epan/dissectors/packet-infiniband.h @@ -31,6 +31,7 @@ /* Wireshark ID */ static int proto_infiniband = -1; +static int proto_infiniband_link = -1; /* Variables to hold expansion values between packets */ /* static gint ett_infiniband = -1; */ @@ -84,6 +85,8 @@ static gint ett_tracerecord = -1; static gint ett_multipathrecord = -1; static gint ett_serviceassocrecord = -1; +static gint ett_link = -1; + /* Global ref to highest level tree should we find other protocols encapsulated in IB */ static proto_tree *top_tree = NULL; @@ -108,6 +111,7 @@ 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 void dissect_infiniband_link(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); @@ -932,6 +936,20 @@ static int hf_infiniband_Trap_DataValid = -1; static int hf_infiniband_Trap_PKEY = -1; static int hf_infiniband_Trap_SWLIDADDR = -1; +/* Infiniband Link */ +static int hf_infiniband_link_op = -1; +static int hf_infiniband_link_fctbs = -1; +static int hf_infiniband_link_vl = -1; +static int hf_infiniband_link_fccl = -1; +static int hf_infiniband_link_lpcrc = -1; + +/* Trap Type/Descriptions for dissection */ +static const value_string Operand_Description[]= { + { 0, " Normal Flow Control"}, + { 1, " Flow Control Init"}, + { 0, NULL} +}; + /* Trap Type/Descriptions for dissection */ static const value_string Trap_Description[]= { { 64, " (Informational) is now in service"}, -- cgit v1.2.1