aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-scsi.h
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-10-11 11:32:56 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-10-11 11:32:56 +0000
commit145d7a0577c0a4c292a75e90e5512d22a412ec53 (patch)
tree9c924e5bed1ebefb7904948da28fdc9747332c61 /epan/dissectors/packet-scsi.h
parent494e873eb07eb366f9dcac28ef6dc8ea9315369f (diff)
add a task_flags bitmap and two lengths (data and bidirectional data)
so that the two scsi transports FCP and ISCSI can provide the expected data transfer lengths to SCSI to allow SCSI reassembly. NDMP does not really need these hints since for NDMP (and also iscsi-lite) there is conceptually always both data in and data out phases and there is never any fragmentation. svn path=/trunk/; revision=19493
Diffstat (limited to 'epan/dissectors/packet-scsi.h')
-rw-r--r--epan/dissectors/packet-scsi.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/epan/dissectors/packet-scsi.h b/epan/dissectors/packet-scsi.h
index 41b82f696d..0f8306c927 100644
--- a/epan/dissectors/packet-scsi.h
+++ b/epan/dissectors/packet-scsi.h
@@ -53,10 +53,32 @@ typedef struct _itlq_nexus_t {
guint16 lun; /* initialized to 0xffff == unknown */
guint16 scsi_opcode; /* initialized to 0xffff == unknown */
guint16 flags;
+
+#define SCSI_DATA_READ 0x0001
+#define SCSI_DATA_WRITE 0x0002
+ guint16 task_flags; /* Flags set by the transport for this
+ * scsi task.
+ *
+ * If there is no data being transferred both flags
+ * are 0 and both data lengths below are undefined.
+ *
+ * If one of the flags are set the amount of
+ * data being transferred is held in data_length
+ * and bidir_data_length is undefined.
+ *
+ * If both flags are set (a bidirectional transfer)
+ * data_length specifies the amount of DATA-OUT and
+ * bidir_data_length specifies the amount of DATA-IN
+ */
+ guint32 data_length;
+ guint32 bidir_data_length;
+
guint32 alloc_len; /* we need to track alloc_len between the CDB and
* the DATA pdus for some opcodes.
*/
nstime_t fc_time;
+
+
void *extra_data; /* extra data that that is task specific */
} itlq_nexus_t;