Home | History | Annotate | Download | only in iscsi
History log of /src/sys/dev/iscsi/iscsi_text.c
RevisionDateAuthorComments
 1.15  08-Feb-2024  andvar s/should't/shouldn't/ and s/mistmatch/mismatch/ in comments.
 1.14  25-Nov-2023  mlelstv Adapt to bignum representation of target.
Fix negotiation for mutual authentication.
Prepare for more CHAP types.
Fix crashes for invalid socket descriptors passed to kernel.
Protect usecount with connection mutex, avoids race on connection close.
Minor cosmetics.
 1.13  21-Apr-2019  maya branches: 1.13.28;
wether -> whether
 1.12  21-Apr-2019  mlelstv Replace build option to enable hex encoded bignum parameters with a sysctl.
 1.11  03-Dec-2017  christos branches: 1.11.4;
- add a prefix to struct members (but not the ioctl ones because they affect
the API)
- use consistent variable names.
 1.10  29-May-2016  mlelstv Several improvements to the ISCSI driver.

- Enable debug messages but set log level to be quiet. Provide a
system (hw.iscsi.debug) to set the log level at run time.
- Replace old tsleep/wakeup synchronization with mutexes and condvars.
- Defer actions from callouts (basically timeouts) to the cleanup thread.
- Protect lists and unique ids with mutexes. protect connection usecount
by using atomic operations.
- Assert kernel lock when calling into scsipi and network code.
- Use this to make send/receive/cleanup threads MPSAFE.

- Fix handling of out-of-CCB/out-of-PDU conditions against the scsipi layer.
- Bump number of PDUs to 128 to avoid virtually all out-of-PDU conditions

- Make use of softc structure for attach/detach operations.
- Track open file handles to prevent detach when busy.

- Move some global variables to make them static.

- Fix 'Overlapping Commands Attempted' error by marking commands as
simply ordered (ATTR_SIMPLE) like FreeBSD.
 1.9  30-May-2015  joerg Remove ISCSI_TEST_MODE and corresponding dev/iscsi_test.h header.
 1.8  15-May-2015  joerg Drop conditional support for writing large numbers as hex.
 1.7  28-Mar-2014  christos branches: 1.7.6;
avoid buffer overflow
 1.6  12-Aug-2012  mlelstv branches: 1.6.2; 1.6.4;
Don't use common variables, also prefix global variables to avoid
namespace pollution.
 1.5  24-Jun-2012  mlelstv Add more debugging, fix filehandle usage, login negotiation and session
shutdown.
Add #ifdef'd code to send negotiation parameters in hex instead of base64,
so it works against older Linux targets.
 1.4  09-Jun-2012  mlelstv Close file descriptor passed into the kernel on success.
Fix locking of file handle. More cleanup on error paths.
Keep track of CCBs, so they cannot be used after a session ends.
Handle CCB timeouts even when the connection is terminated.
Compute firstdata, firstimmed correctly.
 1.3  17-Dec-2011  tls branches: 1.3.2;

Separate /dev/random pseudodevice implemenation from kernel entropy pool
implementation. Rewrite pseudodevice code to use cprng_strong(9).

The new pseudodevice is cloning, so each caller gets bits from a stream
generated with its own key. Users of /dev/urandom get their generators
keyed on a "best effort" basis -- the kernel will rekey generators
whenever the entropy pool hits the high water mark -- while users of
/dev/random get their generators rekeyed every time key-length bits
are output.

The underlying cprng_strong API can use AES-256 or AES-128, but we use
AES-128 because of concerns about related-key attacks on AES-256. This
improves performance (and reduces entropy pool depletion) significantly
for users of /dev/urandom but does cause users of /dev/random to rekey
twice as often.

Also fixes various bugs (including some missing locking and a reseed-counter
overflow in the CTR_DRBG code) found while testing this.

For long reads, this generator is approximately 20 times as fast as the
old generator (dd with bs=64K yields 53MB/sec on 2Ghz Core2 instead of
2.5MB/sec) and also uses a separate mutex per instance so concurrency
is greatly improved. For reads of typical key sizes for modern
cryptosystems (16-32 bytes) performance is about the same as the old
code: a little better for 32 bytes, a little worse for 16 bytes.
 1.2  29-Nov-2011  tls branches: 1.2.2;
Remove rnd_extract_data from the public kernel API (it is for use by the
stream generators only). Clean up some related minor issues.
 1.1  23-Oct-2011  agc branches: 1.1.2;
Start to move the in-kernel iSCSI initiator, kindly contributed to the
NetBSD Foundation by Wasabi Systems, from

othersrc/external/bsd/iscsi/sys/dev/iscsi

to

src/sys/dev/iscsi
 1.1.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.2  30-Oct-2012  yamt sync with head
 1.1.2.1  17-Apr-2012  yamt sync with head
 1.2.2.1  18-Feb-2012  mrg merge to -current.
 1.3.2.1  03-Jul-2012  jdc Pull up revisions:
src/sys/dev/iscsi/iscsi_globals.h revisions 1.3,1.4
src/sys/dev/iscsi/iscsi_main.c revisions 1.4,1.5
src/sys/dev/iscsi/iscsi_text.c revisions 1.4,1.5
src/sys/dev/iscsi/iscsi_ioctl.c revisions 1.3,1.4
src/sys/dev/iscsi/iscsi_send.c revisions 1.3,1.4,1.5
src/sys/dev/iscsi/iscsi_utils.c revisions 1.2,1.3,1.4
src/sbin/iscsid/iscsid_discover.c revision 1.4
src/sys/dev/iscsi/iscsi_rcv.c revision 1.3
src/sbin/iscsictl/iscsic_driverif.c revisions 1.5,1.6
(requested by martin in ticket #357, with updates from mhitch and mlelstv).

avoid namespace pollution when debugging
don't panic when printing data for a dead (NULL) connection

Close file descriptor passed into the kernel on success.
Fix locking of file handle. More cleanup on error paths.
Keep track of CCBs, so they cannot be used after a session ends.
Handle CCB timeouts even when the connection is terminated.
Compute firstdata, firstimmed correctly.

assemble_login_parameters() has a strange error reporting convention:
errors are positive numbers, so <= 0 is good, not >= ...
This makes CHAP authenticated iscsi logins work.

use first successful connection to a ISNS server

Add more debugging, fix filehandle usage, login negotiation and session
shutdown.
Add #ifdef'd code to send negotiation parameters in hex instead of base64,
so it works against older Linux targets.

report luns returns a 32bit list length.

Make digests work also on big endian machines.

it's really 32bit
 1.6.4.1  18-May-2014  rmind sync with head
 1.6.2.2  03-Dec-2017  jdolecek update from HEAD
 1.6.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.6.2  09-Jul-2016  skrll Sync with HEAD
 1.7.6.1  06-Jun-2015  skrll Sync with HEAD
 1.11.4.1  10-Jun-2019  christos Sync with HEAD
 1.13.28.1  18-Dec-2023  martin Pull up following revision(s) (requested by mlelstv in ticket #505):

sys/dev/iscsi/iscsi_utils.c: revision 1.29
sys/dev/iscsi/iscsi.h: revision 1.5
sys/dev/iscsi/iscsi_ioctl.c: revision 1.34
sys/dev/iscsi/iscsi_globals.h: revision 1.28
sys/dev/iscsi/iscsi_text.c: revision 1.14
sys/dev/iscsi/iscsi_send.c: revision 1.40

Adapt to bignum representation of target.

Fix negotiation for mutual authentication.

Prepare for more CHAP types.

Fix crashes for invalid socket descriptors passed to kernel.

Protect usecount with connection mutex, avoids race on connection close.

Minor cosmetics.

RSS XML Feed