Subject: iSCSI - opcodes

From: [email-masked]
Date: Fri, 27 Apr 2001 08:37:36 +0300

Fellow iSCSI fans,

Some were incesed by the lak of a "direction bit" in the opcodes in draft
06.
Here is an attempt to a new list (having a bit for direction back - as the
LSB ).
To gain some reserved space I've curtailed the vendo-specific codes to 4 in
each direction.

Please comment,
Julo

1.1.1.1   Opcode

   The Opcode indicates what type of iSCSI PDU the header encapsulates.

   The Opcodes are divided into two categories: initiator opcodes and
   target opcodes. Initiator opcodes are in PDUs sent by the initiators
   (request PDUs), and target opcodes are in PDUs sent by the target
   (response PDUs).

   Initiators MUST NOT use target opcodes and targets MUST NOT use
   initiator opcodes.

   Valid initiator opcodes defined in this specification are:

      0x00 NOP-Out (from initiator to target)
      0x02 SCSI Command (encapsulates a SCSI Command Descriptor Block)
      0x04 SCSI Task Management Command
      0x06 Login Command
      0x08 Text Command
      0x0a SCSI Data-out (for WRITE operations)
      0x0c Logout Command
      0x10 SNACK Request

   Valid target opcodes are:

      0x01 NOP-In (from target to initiator)
      0x03 SCSI Response (contains SCSI status and possibly sense
      information or other response information)
      0x05 SCSI Task Management Response
      0x07 Login Response
      0x09 Text Response
      0x0b SCSI Data-in (for READ operations)
      0x0d Logout Response
      0x11 Ready To Transfer (R2T - sent by target to initiator when it is
      ready to receive data from initiator)
      0x13 Asynchronous Message (sent by target to initiator to indicate
      certain special conditions)
      0x2f Reject

   Initiator opcodes 0x38, 0x3a, 0x3c and 0x3e and target opcodes 0x39,
   0x3b, 0x3d and 0x3f are vendor specific codes.