Wireshark-bugs: [Wireshark-bugs] [Bug 2048] New: Enhancements to IPMI dissector

Date: Thu, 29 Nov 2007 13:52:59 +0000 (GMT)
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.