Commit Graph

50 Commits

Author SHA1 Message Date
Peter Lieven
0639c7e9ab LD_ISCSI add write
the write command is limited in the sense that file offset and
count bytes must be multiple of the targets blocksize. for most
copy/dd etc. operations this is sufficient to work.
2012-11-03 18:08:12 +01:00
Peter Lieven
2e413a3c9f LD_ISCSI add pread 2012-11-03 17:48:31 +01:00
Peter Lieven
d2894e4634 LD_ISCSI add lseek 2012-11-03 17:36:29 +01:00
Peter Lieven
0bf8b38808 LD_ISCSI fix segfault on reconnect
iscsi_reconnect calls dup2 which is intercepted in ld_iscsi. Fix this by
calling the real dup2 in this case.
2012-11-03 11:09:20 +01:00
Peter Lieven
fbfa6bca61 ISCSI-READCAPACITY16 fix missing free of scsi_task 2012-11-03 10:58:35 +01:00
Peter Lieven
83ac22abbb Fix memleaks in iscsi-ls, iscsi-inq & iscsi-readcapacity16 2012-10-27 16:18:50 +02:00
Peter Lieven
2df2f4f12e ISCSI_READCAPACITY16 add switch to print only target size 2012-10-26 08:39:37 +02:00
Ronnie Sahlberg
1132e4f941 ISCSI_READCAPACITY16 : Update the output to show all fields in the returned data
not just the total size of the device.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2012-10-25 19:24:09 -07:00
Peter Lieven
2427926327 ISCSI-READCAPACITY16 modified copyright notice 2012-10-23 17:17:53 +02:00
Peter Lieven
fec061ac68 Add iscsi-readcapacity16 binary
This patch adds a small binary to read the size of an iscsi target. The value
is returned on stdout.
2012-10-23 15:59:28 +02:00
Peter Lieven
56b1e27980 LD_ISCSI fix whitespace 2012-10-23 10:59:07 +02:00
Peter Lieven
afc963c312 LD_ISCSI: cache last result of get_lba_status
get_lba_status returns provisioning for a range of blocks starting
from given lba. Especially for sequential reads its likely that
the next block read is already covered by the last result.

In case there is write support added to ld_iscsi there needs
to be an invalidation code for the cache.
2012-10-21 20:29:39 +02:00
Peter Lieven
bfac1f85a3 LD_SCSI: Introduce get_lba_status in read()
For large continous reads I may be benifical to check if the blocks
that are going to be read are allocated. If they are not allocated
they do not need to be read which massivly speeds up the read.

This behaviour is optional and can be turned on with environment
variable LD_ISCSI_GET_LBA_STATUS=1
2012-10-21 09:24:19 +02:00
Peter Lieven
08bfabcd36 LD_ISCSI: Use readcapacity16 instead of readcapacity10
This allows for handling volumes larger than 2TB
2012-10-21 08:35:55 +02:00
Peter Lieven
8a3e312f06 LD_ISCSI: Fail open with O_NONBLOCK
Non-Blocking I/O is supported nowhere in the code. We should fail
until we have support for it.
2012-10-21 08:24:24 +02:00
Peter Lieven
bca635c75d LD_ISCSI: storage file mode for further usage 2012-10-21 08:22:17 +02:00
Peter Lieven
54d8aa0ab6 LD_ISCSI: use read16 instead of read10
Use READ16 to support for large volumes. READ16 takes a 64bit LBA offset instead
of 32bit.
2012-10-21 08:17:40 +02:00
Peter Lieven
86fa62558e LD_ISCSI: add debugging support 2012-10-21 08:13:16 +02:00
Peter Lieven
4cb845477d Add debugging framework
This patch adds a user configurable debug level. For testing
it includes connection info and reporting errors.
2012-10-18 10:36:26 +02:00
Jon Grimm
365f6ddf10 ld_iscsi: add xstat64, lxstat64, fsxstat64, open64 2012-09-14 12:41:11 -05:00
Jon Grimm
a434a90d64 ld_iscsi: minor, use value already calculated in 'lba' local var in call to readcapacity 2012-09-14 12:27:37 -05:00
Jon Grimm
74496e36fd ld_iscsi: don't try to read beyond last lba 2012-09-14 12:22:07 -05:00
Jon Grimm
eb90ab98c1 ld_iscsi: return block size for stat and friends 2012-09-14 12:02:05 -05:00
Jon Grimm
60a96e0ebf off by one error for calculating num_blocks 2012-09-14 11:19:09 -05:00
Ronnie Sahlberg
116af01156 TYPO: Change periperal_device_type to just device_type
but leave the old name as a define for backward compatibility
2012-09-03 09:45:59 -07:00
Ronnie Sahlberg
7b3c04a43c Use a better iqn name for ld_iscsi.so 2012-08-17 14:50:40 +10:00
Ronnie Sahlberg
b7f342906f Change to proper default IQN names for the iscsi-ls/-inq utilities
Change the default iqn name for the utilities to
iqn.2007-10.com.github:sahlberg:libiscsi:iscsi-ls/-inq
2012-08-10 10:17:47 +10:00
Ronnie Sahlberg
213918a2f3 LS --SHOW-LUNS Dont treat NOT_READY/MEDIUM_NOT_PRESENT as an error
Detect this sensecode and just print (No media) for that LUN
2012-07-10 16:50:16 +10:00
Ronnie Sahlberg
d5f646099d READ10/WRITE10: Change these functions to sue the same signatures as the other READ/WRITE
Harmonize the signatures for READ10/WRITE10 to match the ones for READ12/16 and WRITE12/16

This breaks the API/ABI so this forces the next version of the library to bump the major version to 2.0

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2012-06-05 19:20:02 +10:00
Ronnie Sahlberg
d71a9d4f95 Add support for BLOCK LIMITS VPD page
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2012-04-20 17:57:40 +10:00
Ronnie Sahlberg
422bc32ce8 Add support for INQUIRY LOGICAL_BLOCK_PROVISIONING page
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
2012-04-19 20:09:14 +10:00
Ronnie Sahlberg
50594830bd Task Management. When we abort a task or a task set, or reset the lun or target
we must also cancel all active tasks.
This will trigger all affected tasks to have their callback invoked with
SCSI_STATUS_CANCELLED
2012-03-10 12:12:47 +11:00
Ronnie Sahlberg
3f44347dae fix compiler warning 2012-03-10 12:09:21 +11:00
Ronnie Sahlberg
ed1d957ec9 fix a compiler warning 2012-03-10 12:02:01 +11:00
Ronnie Sahlberg
c2da7c9680 Update the licence texts 2012-03-05 13:50:10 +11:00
Paolo Bonzini
d1f2f854da ld_iscsi: use constructor attribute
This is cleaner, and libtool otherwise complains.
2011-10-28 15:54:03 +02:00
Ronnie Sahlberg
52b7ae3152 LD_PRELOAD: add dup2 support so we can use it with dd 2011-02-13 07:36:26 +11:00
Ronnie Sahlberg
35821830d6 LD_ISCSI.SO LD_PRELOAD hack
ld_iscsi.so is a small LD_PRELOAD hack that can be used to make normal
unix utilities such as 'stat' and 'cat' become iSCSI 'aware' and fake
handling an iSCSI URL as a normal read-only file.

See README for examples.
2011-02-05 21:21:52 +11:00
Ronnie Sahlberg
7b5ff1095c Improve help/usage strings for iscsi-ls and iscsi-inq
For help output, also print the syntax for the iscsi url required.
2011-01-09 10:36:53 +11:00
Ronnie Sahlberg
b2c4bdcd43 iscsi-ls: Destroy the iscsi_url when exiting. 2011-01-09 09:51:26 +11:00
Ronnie Sahlberg
827cf9af05 iscsi-ls --show-luns: We need to remember the username/password used
during the initial discovery login so we can use it again when we do
the normal logins to do inquiry/readcapacity for --show-luns
2011-01-03 18:16:40 +11:00
Ronnie Sahlberg
9ddce8dc24 Replace bzero() with memset() 2011-01-03 15:35:36 +11:00
Ronnie Sahlberg
77f1440b65 iscsi-ls: Use the helper function to parse the Portal URL
and add support for CHAP authentication during the discovery login.
2011-01-03 15:28:44 +11:00
Ronnie Sahlberg
190ea92810 Rework error messages generated when login fails to not repeat the same
thing "Failed to login to target" several times as the error cascades
up through the layers of callbacks.
2011-01-02 12:12:30 +11:00
Ronnie Sahlberg
46199d2f59 Improve the parsing of iscsi URLs and validate the input.
Generate better error messages when a badly formed URL is given
and an error string that points to the field there is a problem with.
2010-12-31 09:44:14 +11:00
Ronnie Sahlberg
240e250b11 USERNAME / PASSWORD
When failing iscsi-ls due to a missing url, print the url syntax
in the error message before aborting
2010-12-25 12:04:29 +11:00
Ronnie Sahlberg
40abe849b0 CHAP
Add unidirectional chap support so we can authenticate to the target.

Make the login phase more "intelligent" so we can iterate over login
pdus until we have reached full feature phase

Add a new helper functions to parse a iscsi url and break it down
into elements in a structure

Update iscsi-inq to allow CHAP authentication
2010-12-22 22:23:55 +11:00
Ronnie Sahlberg
cf0ddbd0d9 URL PARSER
Add a function to parse a common iscsi://... URL so we dont have to re
implement the same code in every application
2010-12-22 18:40:46 +11:00
Ronnie Sahlberg
32b39f62bd Update iscsi-ls and iscsi-inq
to take the URLs in the form
iscsi://<host>[:<port>]
and
iscsi://<host>[:<port>]/<target-iqn>/<lun>

instead of specifying the values as --portal/--target/--lun
2010-12-05 08:57:10 +11:00
Ronnie Sahlberg
098bc5a9a7 Initial import of libiscsi 2010-12-05 08:24:57 +11:00