#include <epan/reassemble.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fclctl.h"
#include "packet-fcbls.h"
#define FC_FCTL_ABTS_MASK 0x000030
#define FC_FCTL_REL_OFFSET 0x000008
-/* Structure containing itl nexus data :
- * The itlq nexus is a structure containing data specific
- * for a initiator target lun combination.
- */
-typedef struct _itl_nexus_t {
-#define SCSI_CMDSET_DEFAULT 0x80
-#define SCSI_CMDSET_MASK 0x7f
- guint8 cmdset; /* This is a bitfield.
- * The MSB (0x80) represents whether
- * 0: the commandset is known from a INQ PDU
- * 1: is using the "default" from preferences.
- * The lower 7 bits represent the commandset used
- * for decoding commands on this itl nexus.
- * The field is initialized to 0xff == unknown.
- */
-} itl_nexus_t;
-
-/* Structure containing itlq nexus data :
- * The itlq nexus is a structure containing data specific
- * for a initiator target lun queue/commandid combination.
- */
-typedef struct _itlq_nexus_t {
- guint32 first_exchange_frame;
- guint32 last_exchange_frame;
- guint16 lun; /* initialized to 0xffff == unknown */
- guint16 scsi_opcode; /* initialized to 0xffff == unknown */
- guint16 flags;
- 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;
-
-
-#define SCSI_PDU_TYPE_CDB 1
-#define SCSI_PDU_TYPE_DATA 2
-#define SCSI_PDU_TYPE_RSP 4
-#define SCSI_PDU_TYPE_SNS 5
-typedef struct _scsi_task_data {
- int type;
- itlq_nexus_t *itlq;
- itl_nexus_t *itl;
-} scsi_task_data_t;
-
/* FC header structure */
#include <epan/packet.h>
#include <epan/etypes.h>
#include <epan/conversation.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcct.h"
#include <epan/emem.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcct.h"
#include "packet-fcdns.h"
#include <epan/emem.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcels.h"
#include <epan/emem.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcct.h"
#include "packet-fcfcs.h"
#include <epan/emem.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcct.h"
#include "packet-fcfzs.h"
#include <epan/emem.h>
#include <epan/etypes.h>
#include <epan/conversation.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fclctl.h"
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcp.h"
-#include "packet-scsi.h"
/* Initialize the protocol and registered fields */
static int proto_fcp = -1;
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcsb3.h"
#include <epan/packet.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
/* Message Codes */
#include <epan/emem.h>
#include <epan/conversation.h>
#include <epan/etypes.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-fcswils.h"
#include "packet-fcct.h"
#include <epan/packet.h>
#include <epan/etypes.h>
#include <epan/conversation.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-ipfc.h"
#include "packet-llc.h"
#include <epan/packet.h>
#include <epan/prefs.h>
#include <epan/conversation.h>
-#include "packet-fc.h"
#include "packet-scsi.h"
#include "epan/nstime.h"
#include <epan/emem.h>
#include <epan/ppptypes.h>
#include <epan/arcnet_pids.h>
#include <epan/conversation.h>
+#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-ip.h"
#include "packet-ipx.h"
#include <epan/emem.h>
#include "packet-rpc.h"
#include "packet-tcp.h"
-#include "packet-fc.h"
#include "packet-scsi.h"
#include "packet-frame.h"
#include <epan/prefs.h>
#include <epan/emem.h>
#include <epan/conversation.h>
#include <epan/tap.h>
-#include "packet-fc.h"
#include "packet-scsi.h"
+#include "packet-fc.h"
#include "packet-scsi-osd.h"
#include <epan/emem.h>
#include <epan/conversation.h>
#include <epan/tap.h>
-#include "packet-fc.h"
#include "packet-scsi.h"
+#include "packet-fc.h"
#include "packet-scsi-osd.h"
static int proto_scsi = -1;
#define __PACKET_SCSI_H_
+/* Structure containing itl nexus data :
+ * The itlq nexus is a structure containing data specific
+ * for a initiator target lun combination.
+ */
+typedef struct _itl_nexus_t {
+#define SCSI_CMDSET_DEFAULT 0x80
+#define SCSI_CMDSET_MASK 0x7f
+ guint8 cmdset; /* This is a bitfield.
+ * The MSB (0x80) represents whether
+ * 0: the commandset is known from a INQ PDU
+ * 1: is using the "default" from preferences.
+ * The lower 7 bits represent the commandset used
+ * for decoding commands on this itl nexus.
+ * The field is initialized to 0xff == unknown.
+ */
+} itl_nexus_t;
+
+/* Structure containing itlq nexus data :
+ * The itlq nexus is a structure containing data specific
+ * for a initiator target lun queue/commandid combination.
+ */
+typedef struct _itlq_nexus_t {
+ guint32 first_exchange_frame;
+ guint32 last_exchange_frame;
+ guint16 lun; /* initialized to 0xffff == unknown */
+ guint16 scsi_opcode; /* initialized to 0xffff == unknown */
+ guint16 flags;
+ 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;
+
+
+#define SCSI_PDU_TYPE_CDB 1
+#define SCSI_PDU_TYPE_DATA 2
+#define SCSI_PDU_TYPE_RSP 4
+#define SCSI_PDU_TYPE_SNS 5
+typedef struct _scsi_task_data {
+ int type;
+ itlq_nexus_t *itlq;
+ itl_nexus_t *itl;
+} scsi_task_data_t;
+
+
/* list of commands for each commandset */
typedef void (*scsi_dissector_t)(tvbuff_t *tvb, packet_info *pinfo,
proto_tree *tree, guint offset,
#include <epan/tap.h>
#include "../register.h"
#include "conversations_table.h"
+#include <epan/dissectors/packet-scsi.h>
#include <epan/dissectors/packet-fc.h>
#include <epan/tap.h>
#include <epan/conversation.h>
+#include <epan/dissectors/packet-scsi.h>
#include <epan/dissectors/packet-fc.h>
#include "../register.h"
#include "../timestats.h"
#include "../register.h"
#include "hostlist_table.h"
#include <epan/conversation.h>
+#include <epan/dissectors/packet-scsi.h>
#include <epan/dissectors/packet-fc.h>
#include "service_response_time_table.h"
#include "gtkglobals.h"
#include <epan/conversation.h>
-#include <epan/dissectors/packet-fc.h>
#include <epan/dissectors/packet-scsi.h>
+#include <epan/dissectors/packet-fc.h>
static GtkWidget *dlg=NULL;
#include <epan/dissectors/packet-eth.h>
#include <epan/dissectors/packet-sctp.h>
#include <epan/dissectors/packet-tr.h>
+#include <epan/dissectors/packet-scsi.h>
#include <epan/dissectors/packet-fc.h>
#include <epan/dissectors/packet-fddi.h>