SCSI dissector does not parse PERSISTENT RESERVE commands correctly. Bug 9012 (https...
authormmann <mmann@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 5 Aug 2013 15:55:10 +0000 (15:55 +0000)
committermmann <mmann@f5534014-38df-0310-8fa8-9805f1628bb7>
Mon, 5 Aug 2013 15:55:10 +0000 (15:55 +0000)
commit257df34eff395b2e34382e4606dc9a778c66bd28
tree39264a71ab1422aa9df990c042f4f2758cab20b8
parentf2688c43ca7a882346a94f7df52516cc2b8ffb47
SCSI dissector does not parse PERSISTENT RESERVE commands correctly.  Bug 9012 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9012).

From Bart Van Assche.

Changes:
- Add REGISTER AND MOVE and REPLACE LOST RESERVATION service actions.
- Decode the PARAMETER LIST LENGTH field correctly - this is a four
  byte field instead of a two byte field.
- For the REGISTER AND MOVE service action, add support for decoding
  the RELATIVE TARGET PORT IDENTIFIER, TRANSPORT ID LENGTH and
  TransportID fields.
- Fix parsing of the SERVICE ACTION field - this field is five bits
  wide instead of four.
- Move the definition of the "scsi.persresv.control.unreg" field just
  below the other REGISTER AND MOVE service action parameter list fields.

See also http://www.t10.org/cgi-bin/ac.pl?t=f&f=spc4r36h.pdf.

- Only display persistent reservation information in a PERSISTENT
  RESERVE IN response if the ALLOCATION LENGTH field in the request
  was not zero.
- Correct the offset of the (SPC-2) SCOPE-SPECIFIC ADDRESS field.
  This field starts at offset 16 and not at offset 8.
- Correct the offsets of the SCOPE and TYPE fields. These fields
  are both contained in the byte at offset 21.
- Correct the base of the TRANSPORTID LENGTH field from BASE_HEX
  into BASE_NONE since this is the base required by non-numeric types.

For more information, see also:
* http://www.t10.org/cgi-bin/ac.pl?t=f&f=spc4r36h.pdf
* http://www.t10.org/cgi-bin/ac.pl?t=f&f=spc2r20.pdf

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@51152 f5534014-38df-0310-8fa8-9805f1628bb7
AUTHORS
epan/dissectors/packet-scsi.c