aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-erf.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2010-04-08 08:41:56 +0000
committerAnders Broman <anders.broman@ericsson.com>2010-04-08 08:41:56 +0000
commit441c3f63b2d508910e1b18491899c3aa1b8b502a (patch)
tree192d37a16a5d2ff3201652933f499eb9d841ad4a /epan/dissectors/packet-erf.c
parent9a76e5fafbdc33f7b960a634d007450dd18d0ade (diff)
From Stephen Donnelly:
InfiniBand Link Packet (flow control) dissector. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4656 svn path=/trunk/; revision=32425
Diffstat (limited to 'epan/dissectors/packet-erf.c')
-rw-r--r--epan/dissectors/packet-erf.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/epan/dissectors/packet-erf.c b/epan/dissectors/packet-erf.c
index 9a272fc032..b2e82a4c7c 100644
--- a/epan/dissectors/packet-erf.c
+++ b/epan/dissectors/packet-erf.c
@@ -188,6 +188,7 @@ static dissector_handle_t ipv4_handle;
static dissector_handle_t ipv6_handle;
static dissector_handle_t infiniband_handle;
+static dissector_handle_t infiniband_link_handle;
typedef enum {
ERF_HDLC_CHDLC = 0,
@@ -330,6 +331,7 @@ static const value_string erf_type_vals[] = {
{ ERF_TYPE_IPV4, "IPV4"},
{ ERF_TYPE_IPV6, "IPV6"},
{ ERF_TYPE_RAW_LINK, "RAW_LINK"},
+ { ERF_TYPE_INFINIBAND_LINK, "INFINIBAND_LINK"},
{0, NULL}
};
@@ -901,6 +903,13 @@ dissect_erf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
call_dissector(data_handle, tvb, pinfo, erf_tree);
break;
+ case ERF_TYPE_INFINIBAND_LINK:
+ if (infiniband_link_handle)
+ call_dissector(infiniband_link_handle, tvb, pinfo, erf_tree);
+ else
+ call_dissector(data_handle, tvb, pinfo, erf_tree);
+ break;
+
case ERF_TYPE_LEGACY:
case ERF_TYPE_IP_COUNTER:
case ERF_TYPE_TCP_FLOW_COUNTER:
@@ -1322,10 +1331,10 @@ proto_reg_handoff_erf(void)
/* Get handle for IP dissectors) */
ipv4_handle = find_dissector("ip");
ipv6_handle = find_dissector("ipv6");
-
/* Get handle for Infiniband dissector */
infiniband_handle = find_dissector("infiniband");
+ infiniband_link_handle = find_dissector("infiniband_link");
/* Get handles for serial line protocols */
chdlc_handle = find_dissector("chdlc");