Wireshark-dev: [Wireshark-dev] [PATCH] Fix IPMI Completion Codes
From: Flavio Leitner <flavio.leitner@xxxxxxxxx>
Date: Thu, 24 May 2007 20:15:04 -0300
(please, keep myself on CC as I'm not subscribed) Hi, The IPMI Completion Codes in range 80-BEh are command-specific so it must consider the command before translate it. The Get Session Challenge completion code response is implemented according with IPMIv2_0rev1_0.pdf, page 306, table 22-20. (patch attached) -- Flávio
[PATCH]: Fix IPMI Completion Code translation. The IPMI Completion Codes in range 80-BEh are command-specific so it must consider the command before translate it. The Get Session Challenge completion code response is implemented according with IPMIv2_0rev1_0.pdf, page 306, table 22-20. Signed-of-by Flavio Leitner <flavio.leitner@xxxxxxxxx> Index: wireshark-0.99.5/epan/dissectors/packet-ipmi.c =================================================================== --- wireshark-0.99.5.orig/epan/dissectors/packet-ipmi.c +++ wireshark-0.99.5/epan/dissectors/packet-ipmi.c @@ -569,6 +569,13 @@ static const true_false_string ipmi_payl "Payload is unencrypted" }; +/* IPMIv2_0rev1_0.pdf, page 306, table 22-20 */ +static const value_string ipmi_chccode_vals[] = { + { 0x81, "Invalid user name" }, + { 0x82, "Null user name (User 1) not enabled" }, + { 0x00, NULL }, +}; + static const value_string ipmi_ccode_vals[] = { { 0x00, "Command completed normally" }, /* added by lane */ @@ -3970,6 +3977,23 @@ get_netfn_cmd_text(guint8 netfn, guint8 } } +static const char * +get_ccode_cmd_text(guint8 cmd, guint8 ccode) +{ + + /* command-specific codes 80-BEh */ + if (ccode >= 0x80 && ccode <= 0xBE) { + switch (cmd) { + /* Get Session Challenge */ + case 0x39: + return val_to_str(ccode, ipmi_chccode_vals, + "Unknown (0x%02x)"); + } + } + + return val_to_str(ccode, ipmi_ccode_vals, "Unknown (0x%02x)"); +} + static void dissect_ipmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -4053,7 +4077,7 @@ dissect_ipmi(tvbuff_t *tvb, packet_info col_add_fstr(pinfo->cinfo, COL_INFO, "%s, %s: %s", get_netfn_cmd_text(netfn, cmd), val_to_str(netfn, ipmi_netfn_vals, "Unknown (0x%02x)"), - val_to_str(ccode, ipmi_ccode_vals, "Unknown (0x%02x)")); + get_ccode_cmd_text(cmd, ccode)); else col_add_fstr(pinfo->cinfo, COL_INFO, "%s, %s", get_netfn_cmd_text(netfn, cmd), @@ -4251,8 +4275,9 @@ dissect_ipmi(tvbuff_t *tvb, packet_info /* completion code */ if (tree && response) { - proto_tree_add_item(ipmi_tree, hf_ipmi_msg_ccode, - tvb, offset++, 1, TRUE); + proto_tree_add_text(ipmi_tree, tvb, offset++, 1, + "Completion Code: %s (0x%02x)", + get_ccode_cmd_text(cmd, ccode), ccode); }
- Prev by Date: [Wireshark-dev] proposed change for packet-ssl-utils.h
- Next by Date: [Wireshark-dev] PCI Compliance Question
- Previous by thread: [Wireshark-dev] Flex --header-file option?
- Next by thread: Re: [Wireshark-dev] [PATCH] Fix IPMI Completion Codes
- Index(es):