blob: 591ae8297c778a6547b4ec052b723b5765e57b5c [file] [log] [blame]
Summary of changes between versions 2.1.0 and 3.0
-------------------------------------------------
- Update to kernels up to 3.3
- Bug fixes and other improvements
Summary of changes between versions 2.0.0 and 2.1.0
---------------------------------------------------
- Update to kernels up to 3.0
- Significant Task Management commands handling improvements and fixes
- Assigning CPU affinity to RD/WR threads added
- Other minor fixes and improvements
Summary of changes in iSCSI-SCST between versions 1.0.1 and 1.0.2
-----------------------------------------------------------------
- Support bidirectional transfers added
- Connection and session reinstatements fixes
- Fixes in handling of initiators.allow and initiators.deny files
- Sync with the latest IET
- Other minor fixes and cleanups
Summary of changes in iSCSI-SCST between versions 1.0.0 and 1.0.1
-----------------------------------------------------------------
- Support for variable length CDB added
- Sending and receiving padding bytes as well as sesnse data
reimplemented to make it more reliable
- Support for SCSI Async. Event Notifications added
- Sessions and connections reinstatement reimplemented to be conforming
to iSCSI RFC
- iscsi-scst-adm fixed
- Removed artificial limitation of sg_tablesize. It isn't needed,
because the regular iSCSI negotiated MaxRecvDataSegmentLength-related
facilities do all the job pretty well.
- Merge with IET r170-211:
* Update MaxConnections documentation
* Remove isns config description from man page
* Check return values of chdir(), ftruncate() and write(), because
recent versions of the glibc insist on the return value being
checked by introducing __attribute__((warn_unused_result)) to these
functions.
* Fix snprintf use in isns.c
* Take \0-termination into account when passing strings to
isns_tlv_set() to solve incompatibility with MS iSNS 3.0 as IQN
length is multiple of 4
* Fix list corruption if SCST target registration fails
* Register the target port actually used instead of the default iSCSI port.
* Remove unused connection->pad
* Refactor cmnd_execute()
* Introduce min*/max*() and more list_* macros
* Multipart PDU support for discovery sessions
* Add support for Reject PDUs and make use of them in appropriate places.
* Ignore SIGPIPE in iscsi-scstd
* Allow removal of kernel target objects if the user space object does not exist
* Use netlink_socket_release() to clean up netlink sockets correctly
(taking care of namespaces)
* More scalable proc seq_file implementation
* Segfault in ietd buffer overrun in dump_line
* Add iscsi-scst-adm support to display list of CHAP accounts and their data
* Fixed compilation on glibc 2.8
* Fix CHAP account handling bugs
* Fix bugs in multi PDU handling code
- Support for CentOS 5.2 added (Bart Van Assche)
- Fixed NOP-Out with payload handling
- Several minor iSCSI RFC violations fixed
- Update for kernels up to 2.6.29
- Zero-copy feature, introduced by put_page_callback patch made
kernel compile time configurable via
CONFIG_TCP_ZERO_COPY_TRANSFER_COMPLETION_NOTIFICATION option. If you
upgrade from earlier versions, see the corresponding "[CAUTION]"
e-mail in scst-devel mailing list about possible compatibility
problems.
- A lot of cleanups and minor fixes
Summary of changes in iSCSI-SCST since it was IET
-------------------------------------------------
- Commands processing flow changed to work with SCST. Significant
cleanup was done. Modules and config files were renamed to allow to
run with IET on the same host.
- In IET the iSCSI negotiation isn't fully iSCSI RFC confirmed: it doesn't
support ranges of values and, more important, violates RFC in case
when in the IET config file some value for some parameter is set and
a remote initiator doesn't initiate the negotiation for this
parameter or declare its value. According to RFC, in this case IET
shall use the RFC-specified default value, but it uses config file
specified one instead. Looks like the implementation confuses IET
config file default values and iSCSI RFC ones. The default values
handling was fixed. But support for ranges remains unfixed (see ToDo
file).
- All shutdown/restart problems (resource leaks, hangups, etc.), especially
under load, were fixed.
- Full duplex network IO implemented.
- Threading model reimplemented.
- Digests calculation made multi-threaded.
- TX data digest errors handling iSCSI RFC violation was fixed. Another one
(SNACK handling) remains unfixed.
- Ability to send data with sense in a single response added.
- Ability to handle initiators misbehavior a bit improved: several BUG()'s
were replaced by the proper handling. However, there is a plenty of work in
this area left, IET is known to have a lot of weaknesses here.
- Task management made more robust. Particularly, possible data
corruption scenarios were fixed.
- Implemented SN based iSCSI IO flow control
- Response data send timeout implemented: now if initiator doesn't
accept data for too long (30 sec), target closes connection
- A lot of other bugfixes and code cleanups.