From ecd4373418379fef190646d7dc914521e845fa41 Mon Sep 17 00:00:00 2001 From: Martin Kaiser Date: Sun, 28 Feb 2016 14:43:44 +0100 Subject: [PATCH] usb: resolve some subclasse codes of interface class misc Change-Id: I597fa87248caf77b3622065bc4dbdaa66cee809a Reviewed-on: https://code.wireshark.org/review/14222 Reviewed-by: Martin Kaiser --- epan/dissectors/packet-usb.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c index b67de7a346..8b993a49ee 100644 --- a/epan/dissectors/packet-usb.c +++ b/epan/dissectors/packet-usb.c @@ -188,6 +188,7 @@ static int hf_usb_bInterfaceClass = -1; static int hf_usb_bInterfaceSubClass = -1; static int hf_usb_bInterfaceSubClass_cdc = -1; static int hf_usb_bInterfaceSubClass_hid = -1; +static int hf_usb_bInterfaceSubClass_misc = -1; static int hf_usb_bInterfaceSubClass_app = -1; static int hf_usb_bInterfaceProtocol = -1; static int hf_usb_bInterfaceProtocol_cdc = -1; @@ -1213,6 +1214,16 @@ static const value_string usb_hid_boot_protocol_vals[] = { }; static value_string_ext usb_hid_boot_protocol_vals_ext = VALUE_STRING_EXT_INIT(usb_hid_boot_protocol_vals); +static const value_string usb_misc_subclass_vals[] = { + {0x03, "Cable Based Association Framework"}, + {0x04, "RNDIS"}, + {0x05, "USB3 Vision"}, + {0x06, "Stream Transport Efficient Protocol"}, + {0, NULL} +}; +static value_string_ext usb_misc_subclass_vals_ext = VALUE_STRING_EXT_INIT(usb_misc_subclass_vals); + + static const value_string usb_app_subclass_vals[] = { {0x01, "Device Firmware Upgrade"}, {0x02, "IRDA Bridge"}, @@ -1946,6 +1957,9 @@ dissect_usb_interface_descriptor(packet_info *pinfo, proto_tree *parent_tree, case IF_CLASS_HID: proto_tree_add_item(tree, hf_usb_bInterfaceSubClass_hid, tvb, offset, 1, ENC_LITTLE_ENDIAN); break; + case IF_CLASS_MISCELLANEOUS: + proto_tree_add_item(tree, hf_usb_bInterfaceSubClass_misc, tvb, offset, 1, ENC_LITTLE_ENDIAN); + break; case IF_CLASS_APPLICATION_SPECIFIC: proto_tree_add_item(tree, hf_usb_bInterfaceSubClass_app, tvb, offset, 1, ENC_LITTLE_ENDIAN); break; @@ -4959,6 +4973,11 @@ proto_register_usb(void) FT_UINT8, BASE_HEX | BASE_EXT_STRING, &usb_hid_subclass_vals_ext, 0x0, NULL, HFILL }}, + { &hf_usb_bInterfaceSubClass_misc, + { "bInterfaceProtocol", "usb.bInterfaceSubClass", + FT_UINT8, BASE_HEX | BASE_EXT_STRING, &usb_misc_subclass_vals_ext, 0x0, + NULL, HFILL }}, + { &hf_usb_bInterfaceSubClass_app, { "bInterfaceProtocol", "usb.bInterfaceSubClass", FT_UINT8, BASE_HEX | BASE_EXT_STRING, &usb_app_subclass_vals_ext, 0x0,