Wireshark-bugs: [Wireshark-bugs] [Bug 9929] New: Infiniband dissector does not show the payload
Bug ID |
9929
|
Summary |
Infiniband dissector does not show the payload
|
Classification |
Unclassified
|
Product |
Wireshark
|
Version |
Git
|
Hardware |
All
|
OS |
All
|
Status |
UNCONFIRMED
|
Severity |
Major
|
Priority |
Low
|
Component |
Dissection engine (libwireshark)
|
Assignee |
bugzilla-admin@wireshark.org
|
Reporter |
netshark@ameissnet.com
|
Created attachment 12660 [details]
IB packets with payload
Build Information:
TShark 1.11.3 (wireshark-1.11.3-rc1-2129-gf57aaf4-dirty from master)
Copyright 1998-2014 Gerald Combs <gerald@wireshark.org> and contributors.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with GLib 2.38.2, with libpcap, with libz 1.2.8, with POSIX
capabilities (Linux), with libnl 3, with SMI 0.4.8, with c-ares 1.9.1, with Lua
5.1, without Python, with GnuTLS 2.12.23, with Gcrypt 1.5.3, with MIT Kerberos,
without GeoIP.
Running on Linux 3.10.25-gentoo, with locale en_US.UTF-8, with libpcap version
1.3.0, with libz 1.2.8.
Intel(R) Xeon(R) CPU W3565 @ 3.20GHz
Built using gcc 4.7.3.
--
In trying to look at some IB captures, I noticed that any payload data included
was never displayed in the packet details (tree) pane. It obviously appears in
the bytes pane - but nothing in the details pane. This is with both 1.10.6 and
the latest git master.
I did some poking around and debugging, and it appears that the "data"
dissector is always called with a NULL tree.
Now, I'm not that familiar with IB. However, I was able to get the payload data
displayed by making a change in epan/dissectors/packet-infiniband.c, in
dissect_infiniband_common(), changing
/* Get the parent tree from the ERF dissector. We don't want to nest under
ERF */
if (tree && tree->parent)
{
/* Set the normal tree outside of ERF */
tree = tree->parent;
/* Set a global reference for nested protocols */
top_tree = tree;
}
to
/* Get the parent tree from the ERF dissector. We don't want to nest under
ERF */
if (tree && tree->parent)
{
/* Set the normal tree outside of ERF */
tree = tree->parent;
/* Set a global reference for nested protocols */
top_tree = tree;
}
else
{
top_tree = tree;
}
Debugging showed that tree->parent was always NULL. Making this change caused
the Data to be displayed at the same tree level as Frame, Extensible Record
Format, and Infiniband. Not sure this is correct, since the data is actually
within the Infiniband subtree (following the AETH header, but before the
Invariant CRC).
In order to correctly parse the attached capture file, the Infiniband
preference "Attempt to identify and parse encapsulated IBA payloads" should be
unchecked.
You are receiving this mail because:
- You are watching all bug changes.