Wireshark-dev: [Wireshark-dev] A patch for SCSI dissection
From: Richard Sharpe <realrichardsharpe@xxxxxxxxx>
Date: Thu, 2 Dec 2010 18:30:51 -0800
Hi, I got sick of not being able to search on the parameter list in a PERSISTENT RESERVE OUT request so I hacked up a quick fix. It is below. It still requires some work, as I need to preserve the SERVICE ACTION between CDB processing and PAYLOAD processing ... so it is still a work in progress: --- wireshark-1.4.2/epan/dissectors/packet-scsi.c 2010-11-18 13:30:36.000000000 -0800 +++ wireshark-1.4.2-dev/epan/dissectors/packet-scsi.c 2010-12-02 18:22:55.000000000 -0800 @@ -125,6 +125,10 @@ static int hf_scsi_mmcpagecode static int hf_scsi_modesns_flags = -1; static int hf_scsi_persresvin_svcaction = -1; static int hf_scsi_persresvout_svcaction = -1; +static int hf_scsi_persresvout_reskey = -1; +static int hf_scsi_persresvout_sareskey = -1; +static int hf_scsi_persresvout_obsolete = -1; +static int hf_scsi_persresvout_control = -1; static int hf_scsi_persresv_scope = -1; static int hf_scsi_persresv_type = -1; static int hf_scsi_release_flags = -1; @@ -3942,6 +3946,23 @@ dissect_spc_persistentreserveout (tvbuff "Vendor Unique = %u, NACA = %u, Link = %u", flags & 0xC0, flags & 0x4, flags & 0x1); } + else if (isreq && !iscdb) { + /* + * To do this properly we need the svcaction passed between the above + * code and us ... TODO + */ + proto_tree_add_bytes (tree, hf_scsi_persresvout_reskey, tvb, offset, + 8, tvb_get_ptr(tvb, 0, 8)); + proto_tree_add_bytes (tree, hf_scsi_persresvout_sareskey, tvb, + offset +8, 8, tvb_get_ptr(tvb, offset + 8, 8)); + proto_tree_add_bytes (tree, hf_scsi_persresvout_obsolete, tvb, + offset + 16, 4, tvb_get_ptr(tvb, offset + 16, 4)); + flags = tvb_get_guint8 (tvb, offset + 20); + proto_tree_add_uint_format (tree, hf_scsi_persresvout_control, tvb, + offset + 20, 1, flags, + "SPEC_I_PT = %u, ALL_TG_PT = %u, APTPL = %u", + flags & 0x08, flags & 0x04, flags &0x01); + } else { } } @@ -5069,6 +5090,18 @@ proto_register_scsi (void) { &hf_scsi_persresv_type, {"Reservation Type", "scsi.persresv.type", FT_UINT8, BASE_HEX, VALS (scsi_persresv_type_val), 0x0F, NULL, HFILL}}, + { &hf_scsi_persresvout_reskey, + {"Reservation Key", "scsi.persresv.reskey", FT_BYTES, BASE_NONE, + NULL, 0x0, NULL, HFILL}}, + { &hf_scsi_persresvout_sareskey, + {"Service Action Reservation Key", "scsi.persresv.sareskey", FT_BYTES, + BASE_NONE, NULL, 0x0, NULL, HFILL}}, + { &hf_scsi_persresvout_obsolete, + {"Obsolete", "scsi.presresv.obs", FT_BYTES, BASE_NONE, NULL, 0x0, + NULL, HFILL}}, + { &hf_scsi_persresvout_control, + {"Control", "scsi.persresv.control", FT_UINT8, BASE_HEX, NULL, 0x0, + NULL, HFILL}}, { &hf_scsi_release_flags, {"Release Flags", "scsi.release.flags", FT_UINT8, BASE_HEX, NULL, 0x0, NULL, HFILL}}, -- Regards, Richard Sharpe
- Prev by Date: Re: [Wireshark-dev] command to generate ASN1 based dissector on WIndows
- Next by Date: Re: [Wireshark-dev] Modify default settings?
- Previous by thread: Re: [Wireshark-dev] command to generate ASN1 based dissector on WIndows
- Next by thread: Re: [Wireshark-dev] Modify default settings?
- Index(es):