aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-04-22 10:00:05 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2006-04-22 10:00:05 +0000
commit351b882cbbe4ca57d4de16a434bde2a1bd45ed92 (patch)
tree79ab7de73ce34dcbf3ee24d40f0a3caf38fa0afa
parent4e4e2f2406bda53e19be3897dcf0bac9fb0a852e (diff)
add the spc commands to the smc and ssc tables
svn path=/trunk/; revision=17955
-rw-r--r--epan/dissectors/packet-scsi.c120
1 files changed, 73 insertions, 47 deletions
diff --git a/epan/dissectors/packet-scsi.c b/epan/dissectors/packet-scsi.c
index 1a25bac06c..1d012f09cf 100644
--- a/epan/dissectors/packet-scsi.c
+++ b/epan/dissectors/packet-scsi.c
@@ -691,16 +691,33 @@ static const value_string scsi_smc2_val[] = {
{SCSI_SMC2_INITIALIZE_ELEMENT_STATUS , "Initialize Element Status"},
{SCSI_SMC2_INITIALIZE_ELEMENT_STATUS_RANGE, "Initialize Element Status With Range"},
{SCSI_SPC2_INQUIRY , "Inquiry"},
+ {SCSI_SPC2_LOGSELECT , "Log Select"},
+ {SCSI_SPC2_LOGSENSE , "Log Sense"},
+ {SCSI_SPC2_MODESELECT6 , "Mode Select(6)"},
+ {SCSI_SPC2_MODESELECT10 , "Mode Select(10)"},
+ {SCSI_SPC2_MODESENSE6 , "Mode Sense(6)"},
+ {SCSI_SPC2_MODESENSE10 , "Mode Sense(10)"},
{SCSI_SMC2_MOVE_MEDIUM , "Move Medium"},
{SCSI_SMC2_MOVE_MEDIUM_ATTACHED , "Move Medium Attached"},
+ {SCSI_SPC2_PERSRESVIN , "Persistent Reserve In"},
+ {SCSI_SPC2_PERSRESVOUT , "Persistent Reserve Out"},
{SCSI_SMC2_POSITION_TO_ELEMENT , "Position To Element"},
+ {SCSI_SPC2_PREVMEDREMOVAL , "Prevent/Allow Medium Removal"},
{SCSI_SMC2_READ_ATTRIBUTE , "Read Attribute"},
{SCSI_SMC2_READ_ELEMENT_STATUS , "Read Element Status"},
{SCSI_SMC2_READ_ELEMENT_STATUS_ATTACHED , "Read Element Status Attached"},
+ {SCSI_SPC2_RELEASE6 , "Release(6)"},
+ {SCSI_SPC2_RELEASE10 , "Release(10)"},
+ {SCSI_SPC2_REPORTLUNS , "Report LUNs"},
+ {SCSI_SPC2_REQSENSE , "Request Sense"},
{SCSI_SMC2_REQUEST_VOLUME_ELEMENT_ADDRESS , "Request Volume Element Address"},
+ {SCSI_SPC2_RESERVE6 , "Reserve(6)"},
+ {SCSI_SPC2_RESERVE10 , "Reserve(10)"},
{SCSI_SMC2_SEND_VOLUME_TAG , "Send Volume Tag"},
- {SCSI_SPC2_TESTUNITRDY , "Test Unit Ready"},
+ {SCSI_SPC2_SENDDIAG , "Send Diagnostic"},
+ {SCSI_SPC2_TESTUNITRDY , "Test Unit Ready"},
{SCSI_SMC2_WRITE_ATTRIBUTE , "Write Attribute"},
+ {SCSI_SPC2_WRITEBUFFER , "Write Buffer"},
{0, NULL},
};
@@ -731,42 +748,51 @@ static const value_string scsi_smc2_val[] = {
#define SCSI_SSC2_LOCATE_16 0x92
#define SCSI_SSC2_ERASE_16 0x93
-/* For commands from SPC we have automatic fallback, for all
- * commands not in SSC and not from SPC we must add them to this
- * value string for proper prettyprinting.
- */
static const value_string scsi_ssc2_val[] = {
+ {SCSI_SSC2_ERASE_6 , "Erase(6)"},
{SCSI_SSC2_ERASE_16 , "Erase(16)"},
+ {SCSI_SPC2_EXTCOPY , "Extended Copy"},
{SCSI_SSC2_FORMAT_MEDIUM , "Format Medium"},
{SCSI_SPC2_INQUIRY , "Inquiry"},
{SCSI_SSC2_LOAD_UNLOAD , "Load Unload"},
+ {SCSI_SSC2_LOCATE_10 , "Locate(10)"},
{SCSI_SSC2_LOCATE_16 , "Locate(16)"},
+ {SCSI_SPC2_LOGSELECT , "Log Select"},
+ {SCSI_SPC2_LOGSENSE , "Log Sense"},
+ {SCSI_SPC2_MODESELECT6 , "Mode Select(6)"},
+ {SCSI_SPC2_MODESELECT10 , "Mode Select(10)"},
+ {SCSI_SPC2_MODESENSE6 , "Mode Sense(6)"},
+ {SCSI_SPC2_MODESENSE10 , "Mode Sense(10)"},
+ {SCSI_SMC2_MOVE_MEDIUM , "Move Medium"},
+ {SCSI_SMC2_MOVE_MEDIUM_ATTACHED , "Move Medium Attached"},
+ {SCSI_SPC2_PERSRESVIN , "Persistent Reserve In"},
+ {SCSI_SPC2_PERSRESVOUT , "Persistent Reserve Out"},
+ {SCSI_SPC2_PREVMEDREMOVAL , "Prevent/Allow Medium Removal"},
+ {SCSI_SSC2_READ6 , "Read(6)"},
{SCSI_SSC2_READ_16 , "Read(16)"},
{SCSI_SSC2_READ_BLOCK_LIMITS , "Read Block Limits"},
+ {SCSI_SMC2_READ_ELEMENT_STATUS , "Read Element Status"},
+ {SCSI_SMC2_READ_ELEMENT_STATUS_ATTACHED, "Read Element Status Attached"},
{SCSI_SSC2_READ_POSITION , "Read Position"},
+ {SCSI_SSC2_READ_REVERSE_6 , "Read Reverse(6)"},
{SCSI_SSC2_READ_REVERSE_16 , "Read Reverse(16)"},
{SCSI_SSC2_RECOVER_BUFFERED_DATA , "Recover Buffered Data"},
{SCSI_SSC2_REPORT_DENSITY_SUPPORT , "Report Density Support"},
+ {SCSI_SPC2_REPORTLUNS , "Report LUNs"},
+ {SCSI_SPC2_REQSENSE , "Request Sense"},
{SCSI_SSC2_REWIND , "Rewind"},
+ {SCSI_SPC2_SENDDIAG , "Send Diagnostic"},
{SCSI_SSC2_SET_CAPACITY , "Set Capacity"},
- {SCSI_SSC2_SPACE_16 , "Space(16)"},
- {SCSI_SSC2_VERIFY_16 , "Verify(16)"},
- {SCSI_SSC2_WRITE_16 , "Write(16)"},
- {SCSI_SSC2_WRITE_FILEMARKS_16 , "Write Filemarks(16)"},
- {SCSI_SSC2_ERASE_6 , "Erase(6)"},
- {SCSI_SSC2_LOCATE_10 , "Locate(10)"},
- {SCSI_SSC2_LOCATE_16 , "Locate(16)"},
- {SCSI_SSC2_READ6 , "Read(6)"},
- {SCSI_SSC2_READ_REVERSE_6 , "Read Reverse(6)"},
{SCSI_SSC2_SPACE_6 , "Space(6)"},
+ {SCSI_SSC2_SPACE_16 , "Space(16)"},
{SCSI_SPC2_TESTUNITRDY , "Test Unit Ready"},
{SCSI_SSC2_VERIFY_6 , "Verify(6)"},
+ {SCSI_SSC2_VERIFY_16 , "Verify(16)"},
{SCSI_SSC2_WRITE6 , "Write(6)"},
+ {SCSI_SSC2_WRITE_16 , "Write(16)"},
+ {SCSI_SPC2_WRITEBUFFER , "Write Buffer"},
+ {SCSI_SSC2_WRITE_FILEMARKS_16 , "Write Filemarks(16)"},
{SCSI_SSC2_WRITE_FILEMARKS_6 , "Write Filemarks(6)"},
- {SCSI_SMC2_MOVE_MEDIUM , "Move Medium"},
- {SCSI_SMC2_MOVE_MEDIUM_ATTACHED , "Move Medium Attached"},
- {SCSI_SMC2_READ_ELEMENT_STATUS , "Read Element Status"},
- {SCSI_SMC2_READ_ELEMENT_STATUS_ATTACHED, "Read Element Status Attached"},
{0, NULL},
};
@@ -6870,7 +6896,7 @@ static scsi_cdb_table_t ssc[256] = {
/*SPC 0x00*/{dissect_spc3_testunitready},
/*SSC 0x01*/{dissect_ssc2_rewind},
/*SSC 0x02*/{NULL},
-/*SSC 0x03*/{NULL},
+/*SPC 0x03*/{dissect_spc3_requestsense},
/*SSC 0x04*/{dissect_ssc2_formatmedium},
/*SSC 0x05*/{dissect_ssc2_readblocklimits},
/*SSC 0x06*/{NULL},
@@ -6888,15 +6914,15 @@ static scsi_cdb_table_t ssc[256] = {
/*SPC 0x12*/{dissect_spc3_inquiry},
/*SSC 0x13*/{NULL},
/*SSC 0x14*/{NULL},
-/*SSC 0x15*/{NULL},
+/*SPC 0x15*/{dissect_spc3_modeselect6},
/*SSC 0x16*/{NULL},
/*SSC 0x17*/{NULL},
/*SSC 0x18*/{NULL},
/*SSC 0x19*/{dissect_ssc2_erase6},
-/*SSC 0x1a*/{NULL},
+/*SPC 0x1a*/{dissect_spc3_modesense6},
/*SSC 0x1b*/{dissect_ssc2_loadunload},
/*SSC 0x1c*/{NULL},
-/*SSC 0x1d*/{NULL},
+/*SPC 0x1d*/{dissect_spc3_senddiagnostic},
/*SSC 0x1e*/{dissect_spc3_preventallowmediaremoval},
/*SSC 0x1f*/{NULL},
/*SSC 0x20*/{NULL},
@@ -6926,7 +6952,7 @@ static scsi_cdb_table_t ssc[256] = {
/*SSC 0x38*/{NULL},
/*SSC 0x39*/{NULL},
/*SSC 0x3a*/{NULL},
-/*SSC 0x3b*/{NULL},
+/*SPC 0x3b*/{dissect_spc3_writebuffer},
/*SSC 0x3c*/{NULL},
/*SSC 0x3d*/{NULL},
/*SSC 0x3e*/{NULL},
@@ -6943,8 +6969,8 @@ static scsi_cdb_table_t ssc[256] = {
/*SSC 0x49*/{NULL},
/*SSC 0x4a*/{NULL},
/*SSC 0x4b*/{NULL},
-/*SSC 0x4c*/{NULL},
-/*SSC 0x4d*/{NULL},
+/*SPC 0x4c*/{dissect_spc3_logselect},
+/*SPC 0x4d*/{dissect_spc3_logsense},
/*SSC 0x4e*/{NULL},
/*SSC 0x4f*/{NULL},
/*SSC 0x50*/{NULL},
@@ -6952,17 +6978,17 @@ static scsi_cdb_table_t ssc[256] = {
/*SSC 0x52*/{NULL},
/*SSC 0x53*/{NULL},
/*SSC 0x54*/{NULL},
-/*SSC 0x55*/{NULL},
+/*SPC 0x55*/{dissect_spc3_modeselect10},
/*SSC 0x56*/{NULL},
/*SSC 0x57*/{NULL},
/*SSC 0x58*/{NULL},
/*SSC 0x59*/{NULL},
-/*SSC 0x5a*/{NULL},
+/*SPC 0x5a*/{dissect_spc3_modesense10},
/*SSC 0x5b*/{NULL},
/*SSC 0x5c*/{NULL},
/*SSC 0x5d*/{NULL},
-/*SSC 0x5e*/{NULL},
-/*SSC 0x5f*/{NULL},
+/*SPC 0x5e*/{dissect_spc3_persistentreservein},
+/*SPC 0x5f*/{dissect_spc3_persistentreserveout},
/*SSC 0x60*/{NULL},
/*SSC 0x61*/{NULL},
/*SSC 0x62*/{NULL},
@@ -6998,7 +7024,7 @@ static scsi_cdb_table_t ssc[256] = {
/*SSC 0x80*/{NULL},
/*SSC 0x81*/{NULL},
/*SSC 0x82*/{NULL},
-/*SSC 0x83*/{NULL},
+/*SPC 0x83*/{dissect_spc3_extcopy},
/*SSC 0x84*/{NULL},
/*SSC 0x85*/{NULL},
/*SSC 0x86*/{NULL},
@@ -7027,7 +7053,7 @@ static scsi_cdb_table_t ssc[256] = {
/*SSC 0x9d*/{NULL},
/*SSC 0x9e*/{NULL},
/*SSC 0x9f*/{NULL},
-/*SSC 0xa0*/{NULL},
+/*SPC 0xa0*/{dissect_spc3_reportluns},
/*SSC 0xa1*/{NULL},
/*SSC 0xa2*/{NULL},
/*SSC 0xa3*/{NULL},
@@ -7129,7 +7155,7 @@ static scsi_cdb_table_t smc[256] = {
/*SPC 0x00*/{dissect_spc3_testunitready},
/*SMC 0x01*/{NULL},
/*SMC 0x02*/{NULL},
-/*SMC 0x03*/{NULL},
+/*SPC 0x03*/{dissect_spc3_requestsense},
/*SMC 0x04*/{NULL},
/*SMC 0x05*/{NULL},
/*SMC 0x06*/{NULL},
@@ -7147,15 +7173,15 @@ static scsi_cdb_table_t smc[256] = {
/*SPC 0x12*/{dissect_spc3_inquiry},
/*SMC 0x13*/{NULL},
/*SMC 0x14*/{NULL},
-/*SMC 0x15*/{NULL},
-/*SMC 0x16*/{NULL},
-/*SMC 0x17*/{NULL},
+/*SPC 0x15*/{dissect_spc3_modeselect6},
+/*SPC 0x16*/{dissect_spc2_reserve6},
+/*SPC 0x17*/{dissect_spc2_release6},
/*SMC 0x18*/{NULL},
/*SMC 0x19*/{NULL},
-/*SMC 0x1a*/{NULL},
+/*SPC 0x1a*/{dissect_spc3_modesense6},
/*SMC 0x1b*/{NULL},
/*SMC 0x1c*/{NULL},
-/*SMC 0x1d*/{NULL},
+/*SPC 0x1d*/{dissect_spc3_senddiagnostic},
/*SMC 0x1e*/{dissect_spc3_preventallowmediaremoval},
/*SMC 0x1f*/{NULL},
/*SMC 0x20*/{NULL},
@@ -7185,7 +7211,7 @@ static scsi_cdb_table_t smc[256] = {
/*SMC 0x38*/{NULL},
/*SMC 0x39*/{NULL},
/*SMC 0x3a*/{NULL},
-/*SMC 0x3b*/{NULL},
+/*SPC 0x3b*/{dissect_spc3_writebuffer},
/*SMC 0x3c*/{NULL},
/*SMC 0x3d*/{NULL},
/*SMC 0x3e*/{NULL},
@@ -7202,8 +7228,8 @@ static scsi_cdb_table_t smc[256] = {
/*SMC 0x49*/{NULL},
/*SMC 0x4a*/{NULL},
/*SMC 0x4b*/{NULL},
-/*SMC 0x4c*/{NULL},
-/*SMC 0x4d*/{NULL},
+/*SPC 0x4c*/{dissect_spc3_logselect},
+/*SPC 0x4d*/{dissect_spc3_logsense},
/*SMC 0x4e*/{NULL},
/*SMC 0x4f*/{NULL},
/*SMC 0x50*/{NULL},
@@ -7211,17 +7237,17 @@ static scsi_cdb_table_t smc[256] = {
/*SMC 0x52*/{NULL},
/*SMC 0x53*/{NULL},
/*SMC 0x54*/{NULL},
-/*SMC 0x55*/{NULL},
-/*SMC 0x56*/{NULL},
-/*SMC 0x57*/{NULL},
+/*SPC 0x55*/{dissect_spc3_modeselect10},
+/*SPC 0x56*/{dissect_spc2_reserve10},
+/*SPC 0x57*/{dissect_spc2_release10},
/*SMC 0x58*/{NULL},
/*SMC 0x59*/{NULL},
-/*SMC 0x5a*/{NULL},
+/*SPC 0x5a*/{dissect_spc3_modesense10},
/*SMC 0x5b*/{NULL},
/*SMC 0x5c*/{NULL},
/*SMC 0x5d*/{NULL},
-/*SMC 0x5e*/{NULL},
-/*SMC 0x5f*/{NULL},
+/*SPC 0x5e*/{dissect_spc3_persistentreservein},
+/*SPC 0x5f*/{dissect_spc3_persistentreserveout},
/*SMC 0x60*/{NULL},
/*SMC 0x61*/{NULL},
/*SMC 0x62*/{NULL},
@@ -7286,7 +7312,7 @@ static scsi_cdb_table_t smc[256] = {
/*SMC 0x9d*/{NULL},
/*SMC 0x9e*/{NULL},
/*SMC 0x9f*/{NULL},
-/*SMC 0xa0*/{NULL},
+/*SPC 0xa0*/{dissect_spc3_reportluns},
/*SMC 0xa1*/{NULL},
/*SMC 0xa2*/{NULL},
/*SMC 0xa3*/{NULL},