http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2048
Summary: Enhancements to IPMI dissector
Product: Wireshark
Version: SVN
Platform: PC
OS/Version: Linux
Status: NEW
Severity: Enhancement
Priority: Low
Component: Wireshark
AssignedTo: wireshark-bugs@xxxxxxxxxxxxx
ReportedBy: avn@xxxxxxxxxxx
Build Information:
wireshark 0.99.8 (SVN Rev 23671)
Copyright 1998-2007 Gerald Combs <gerald@xxxxxxxxxxxxx> 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 with GTK+ 2.12.1, with GLib 2.14.3, with libpcap 0.9.7, with libz
1.2.3, without libpcre, without SMI, without ADNS, without Lua, with GnuTLS
1.6.3, with Gcrypt 1.2.4, with MIT Kerberos, without PortAudio, without
AirPcap.
NOTE: this build doesn't support the "matches" operator for Wireshark filter
syntax.
Running on Linux 2.6.23.1-49.fc8, with libpcap version 0.9.7.
Built using gcc 4.1.2 20070925 (Red Hat 4.1.2-33).
--
I would like to submit the enhancements to IPMI dissection code in
Wireshark. The patch against revision 23671 is attached to this bug;
what follows is a description of changes made:
Generic changes:
- IPMI session wrapper dissection has been separated from the dissection of
IPMI itself. This will allow for possible dissection of captures directly
from IPMB (as the IPMB messages lack the IPMI session wrapper).
- New function for dissecting bitmasks, proto_tree_add_bitmask_text(), has
been introduced. This function allows for greater flexibility in bitfield
dissection.
- Introduced new BASE_ modifier, BASE_CUSTOM, which allows for callback
function to be specified in hf->strings. Some functions commonly used
in IPMI are introduced to epan/dissectors/packet-ipmi.c; however, some
of these format functions (ipmi_fmt_udpport, ipmi_fmt_percent) may be
useful in other dissectors as well. Using BASE_CUSTOM is especially handy
when dissecting a bitmask using proto_tree_add_bitmask*() routines, where
one can't use proto_tree_add_*_format_value.
- Merged the fill_label_{uint,int,bitfield} with their fill_label_enumerated*
counterparts. The code in these functions is almost the same, and adding a
3rd variant for BASE_CUSTOM would be weird.
- Fixed proto_tree_add_*_format_value() functions when applied to a bitfield,
it now adds the usual bitfield blurb (like ".... 0010 = ") before the name
of the field. As it is described in the doc/README.developer, it should
only differ from proto_tree_add_item() in the way how the value is
formatted, and proto_tree_add_item() adds such blurb. The only dissector
that used such functions (namely, proto_tree_add_uint_format_value) is
packet-bvlc.c; and in doing so, it specified a bitmask of 0xffff for
an FT_UINT16 field. Obviously, such bitmask can be replaced with 0 instead.
IPMI changes:
- Implemented request-response matching for IPMI sessions. This makes easy
serves two purposes: first, it allows for easy location of response to a
certain request and vice versa. Second, it allows for dissection of
responses where response format depends on the request data.
- IPMI dissector can now dissect much broader set of commands.
- Command-specific completion codes are now handled.
- The dissector is able to parse IPMI commands embedded into other IPMI
commands (for now, only Send Message; Get Message and Forward Message
can be implemented later). Such embedded commands also matched with
responses to them.
--
Configure bugmail: http://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.