-
Notifications
You must be signed in to change notification settings - Fork 0
RichardSharpe/SCSITest
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
SCSITest is a software library that allows you to create SCSI tests. It currently layers on top of the libiscsi package. It is written in C++. It could also wrap other facilities, like SCSI passthrough on Linux or Windows. (SCSI Passthrough using sg devices on Linux. There are examples of how to do SCSI Passthrough on Windows out there.) libiscsi was written by Ronnie Sahlberg. The current structure is: Top Level README -- This document INSTALL -- Simple installation document TODO -- A list of things to possibly do Makefile -- a simple non-recursive Makefile patches -- Any patches that might be needed examples -- The location of example programs src -- The source iSCSI -- The iSCSI Transport. Other transports could be added SCSI -- The SCSI Classes. Currently implements: SCSIRequest -- Everything else derives from this class SCSITestUnitReady SCSIInquiry SCSIReportLuns SCSIReserve SCSIRelease SCSIPersistentReserveIn SCSIPersistentReserveOut SCSIRead SCSIReadCapacity So, you can see that there are plenty of SCSI requests yet to write, but most are easy. Also, a note on the use of boost::thread and the iSCSIBackground task. This is required if you plan on not sending requests on an iSCSI transport for long periods of time (in particular, longer than the target's NOP_IN timeout) because libiscis is syncrhrounous and does not get to handle NOP_IN requests until we call back into it. One reason you might not get a chance to call into libiscsi is that you have used ssh to shell into the system under test and shut the file system down to check its effect on the target and are waiting for that to complete. NOTE! You might need to apply the patch in patches to libiscsi until Ronnie Sahlberg has applied the changes I supplied him with. The following show what the simple_example.cpp program does: [(master): iSCSILibWrapper] $ ./examples/simple_example 10.200.3.116 Connecting to iqn.2011-07.com.example:testtarget1:10.200.3.116 Target "iqn.2008-09.com.scalecomputing:10.200.3.116.test" is at address "10.200.3.116:3260,1" Target "iqn.2008-09.com.scalecomputing:10.200.3.116.target2" is at address "10.200.3.116:3260,1" Target "iqn.2008-09.com.scalecomputing:10.200.3.116.target1" is at address "10.200.3.116:3260,1" Connecting to target iqn.2008-09.com.scalecomputing:10.200.3.116.target2 at address 10.200.3.116:3260,1 Sending REPORT LUNS request Number of LUNs reported: 2 About to issue TEST UNIT READY for lun 0 Received expected BUS RESET T10 Vendor ID for LUN 0 is "SCALE " Product ID for LUN 0 is "Storage Node" Product Rev for LUN 0 is "56 " Lun 0 supports VPD Page 0, checking page 0x80 LUN 0 Unit Serial Num is "dd979cf0" About to issue TEST UNIT READY for lun 1 Received expected BUS RESET T10 Vendor ID for LUN 1 is "SCALE " Product ID for LUN 1 is "Storage Node" Product Rev for LUN 1 is "56 " Lun 1 supports VPD Page 0, checking page 0x80 LUN 1 Unit Serial Num is "F573619C2BF78001" Logging out and disconnecting Test done!
About
A SCSI Testing Library layered on Ronnie Sahlberg's libiscsi
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published