break the SCSI SBC commandset out into its own dissector

svn path=/trunk/; revision=20000
This commit is contained in:
Ronnie Sahlberg 2006-11-27 11:00:06 +00:00
parent 34cf894ed2
commit 3dca5cbed9
8 changed files with 1239 additions and 1101 deletions

View File

@ -594,6 +594,7 @@ DISSECTOR_SRC = \
packet-scsi.c \
packet-scsi-mmc.c \
packet-scsi-osd.c \
packet-scsi-sbc.c \
packet-scsi-smc.c \
packet-scsi-ssc.c \
packet-sctp.c \
@ -947,6 +948,7 @@ DISSECTOR_INCLUDES = \
packet-scsi.h \
packet-scsi-mmc.h \
packet-scsi-osd.h \
packet-scsi-sbc.h \
packet-scsi-smc.h \
packet-scsi-ssc.h \
packet-sctp.h \

View File

@ -38,6 +38,7 @@
#include "packet-scsi.h"
#include "packet-fc.h"
#include "packet-scsi-mmc.h"
#include "packet-scsi-sbc.h"
static int proto_scsi_mmc = -1;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,94 @@
/* packet-scsi-sbc.h
* Dissector for the SCSI SBC commandset
* Extracted from packet-scsi.h
*
* Dinesh G Dutt (ddutt@cisco.com)
* Ronnie sahlberg 2006
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 2002 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __PACKET_SCSI_SBC_H_
#define __PACKET_SCSI_SBC_H_
/* SBC Commands */
#define SCSI_SBC2_FORMATUNIT 0x04
#define SCSI_SBC2_LOCKUNLKCACHE10 0x36
#define SCSI_SBC2_LOCKUNLKCACHE16 0x92
#define SCSI_SBC2_PREFETCH10 0x34
#define SCSI_SBC2_PREFETCH16 0x90
#define SCSI_SBC2_READ6 0x08
#define SCSI_SBC2_READ10 0x28
#define SCSI_SBC2_READ12 0xA8
#define SCSI_SBC2_READ16 0x88
#define SCSI_SBC2_READCAPACITY10 0x25
#define SCSI_SBC2_SERVICEACTIONIN16 0x9E
#define SCSI_SBC2_READDEFDATA10 0x37
#define SCSI_SBC2_READDEFDATA12 0xB7
#define SCSI_SBC2_READLONG 0x3E
#define SCSI_SBC2_REASSIGNBLKS 0x07
#define SCSI_SBC2_REBUILD16 0x81
#define SCSI_SBC2_REBUILD32 0x7F
#define SCSI_SBC2_REGENERATE16 0x82
#define SCSI_SBC2_REGENERATE32 0x7F
#define SCSI_SBC2_SEEK10 0x2B
#define SCSI_SBC2_SETLIMITS10 0x33
#define SCSI_SBC2_SETLIMITS12 0xB3
#define SCSI_SBC2_STARTSTOPUNIT 0x1B
#define SCSI_SBC2_SYNCCACHE10 0x35
#define SCSI_SBC2_SYNCCACHE16 0x91
#define SCSI_SBC2_VERIFY10 0x2F
#define SCSI_SBC2_VERIFY12 0xAF
#define SCSI_SBC2_VERIFY16 0x8F
#define SCSI_SBC2_WRITE6 0x0A
#define SCSI_SBC2_WRITE10 0x2A
#define SCSI_SBC2_WRITE12 0xAA
#define SCSI_SBC2_WRITE16 0x8A
#define SCSI_SBC2_WRITENVERIFY10 0x2E
#define SCSI_SBC2_WRITENVERIFY12 0xAE
#define SCSI_SBC2_WRITENVERIFY16 0x8E
#define SCSI_SBC2_WRITELONG 0x3F
#define SCSI_SBC2_WRITESAME10 0x41
#define SCSI_SBC2_WRITESAME16 0x93
#define SCSI_SBC2_XDREAD10 0x52
#define SCSI_SBC2_XDREAD32 0x7F
#define SCSI_SBC2_XDWRITE10 0x50
#define SCSI_SBC2_XDWRITE32 0x7F
#define SCSI_SBC2_XDWRITEREAD10 0x53
#define SCSI_SBC2_XDWRITEREAD32 0x7F
#define SCSI_SBC2_XDWRITEEXTD16 0x80
#define SCSI_SBC2_XDWRITEEXTD32 0x7F
#define SCSI_SBC2_XPWRITE10 0x51
#define SCSI_SBC2_XPWRITE32 0x7F
void dissect_sbc2_startstopunit (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq _U_, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_sbc2_readwrite12 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_sbc2_readwrite10 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_sbc2_readcapacity10 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
extern int hf_scsi_sbc_opcode;
extern scsi_cdb_table_t scsi_sbc_table[256];
WS_VAR_IMPORT const value_string scsi_sbc_vals[];
#endif

File diff suppressed because it is too large Load Diff

View File

@ -134,7 +134,6 @@ typedef struct _scsi_cdb_table_t {
#define SCSI_SPC2_RESERVE10 0x56
#define SCSI_SPC2_SENDDIAG 0x1D
#define SCSI_SPC2_SETDEVICEID 0xA4
#define SCSI_SBC2_STARTSTOPUNIT 0x1B
#define SCSI_SPC2_TESTUNITRDY 0x00
#define SCSI_SPC2_WRITEBUFFER 0x3B
#define SCSI_SPC2_VARLENCDB 0x7F
@ -151,11 +150,7 @@ void dissect_spc3_persistentreserveout(tvbuff_t *tvb, packet_info *pinfo _U_, pr
void dissect_spc3_reportluns(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_spc3_testunitready (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_spc3_requestsense (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_sbc2_startstopunit (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq _U_, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_spc3_preventallowmediaremoval (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_sbc2_readwrite12 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_sbc2_readwrite10 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_sbc2_readcapacity10 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_spc3_writebuffer (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb _U_, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_spc2_reserve6 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
void dissect_spc2_release6 (tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, guint offset, gboolean isreq, gboolean iscdb, guint payload_len _U_, scsi_task_data_t *cdata _U_);
@ -213,7 +208,6 @@ void dissect_scsi_payload (tvbuff_t *, packet_info *, proto_tree *,
guint32 relative_offset);
void dissect_scsi_snsinfo (tvbuff_t *, packet_info *, proto_tree *, guint, guint, itlq_nexus_t *, itl_nexus_t *);
WS_VAR_IMPORT const value_string scsi_sbc2_vals[];
WS_VAR_IMPORT const value_string scsi_mmc_vals[];
extern int hf_scsi_control;

View File

@ -650,7 +650,7 @@ rtp_payload_type_vals DATA
rtp_payload_type_short_vals DATA
scsi_mmc_vals DATA
scsi_smc_vals DATA
scsi_sbc2_vals DATA
scsi_sbc_vals DATA
scsi_ssc_vals DATA
scsi_osd_vals DATA
set_actual_length

View File

@ -52,6 +52,7 @@
#include <epan/conversation.h>
#include <epan/dissectors/packet-scsi.h>
#include <epan/dissectors/packet-fc.h>
#include <epan/dissectors/packet-scsi-sbc.h>
#include <epan/dissectors/packet-scsi-ssc.h>
#include <epan/dissectors/packet-scsi-smc.h>
#include <epan/dissectors/packet-scsi-osd.h>
@ -206,7 +207,7 @@ gtk_scsistat_init(const char *optarg, void* userdata _U_)
switch(program){
case SCSI_DEV_SBC:
rs->prog="SBC (disk)";
rs->cdbnames=scsi_sbc2_vals;
rs->cdbnames=scsi_sbc_vals;
hf_name="scsi.sbc.opcode";
break;
case SCSI_DEV_SSC: