[RFC-v2 00/12] iSCSI target v4.1.0-rc1 series for .39

Nicholas A. Bellinger
2011-03-14T12:04:26Z

From: Nicholas Bellinger <nab@linux-iscsi.org>

Greetings folks,

This is the second RFC series for the RisingTide Systems iSCSI target fabric
module compatible with mainline TCM v4 -> for-39 target infrastructure code.
The following commits been broken up into individual sections to make reviewing
easier for those fimilar with the iSCSI protocol. This series will be submitted
as a single commit following mainline convention for an initial merge as the .39
window opens later week.

At this point the code has been fully converted to use include/scsi/iscsi_proto.h
PDU struct request/response and flag/bit definitions, and the legacy internal
iscsi_protocol.h definitions have been removed from this series. There are
some minor PDU namespace changes and a SNACK PDU definition fix to mainline
include/scsi/iscsi_proto.h code, plus changing the handful of existing libiscsi
based LLDs currently using the libiscsi SCSI Command / Response PDU definitions.
These changes external to iSCSI target code have been included as patch #1.
(mnc and hare please review)

>From there patches #2 -> #12 should be self explanatory for iscsi-target from
individual high level commit messages. This series includes a number of
recent upstream improvements and cleanups to iscsi_target_mod.ko in
lio-core-2.6.git/lio-4.1, and includes iscsi_target_stat.c using the new
TCM v4 fabric dependent statistic groups. Also note that all legacy ProcFS
based code for iSCSI MIBs has been converted into ConfigFS based attributes
or otherwise removed for mainline. (hch, boaz and tomo-san please review)

Please note this code is intended to be applied against the latest 'for-39'
target series posed here:

[PATCH 00/21] target patches for .39 scsi-misc (v3)
http://marc.info/?l=linux-scsi&m=130010108521141&w=2

The changes from RFC-v1 -> RFC-v2 include:

*) Drop extra crc32c_intel libcrypto magic from iscsi_login_setup_crypto()
*) Fix padded login response payload breakage from initial iscsi_proto.h
conversion
*) Cleanups for iscsi_target_core.h and conversion a number of definitions
to enums and inline defs
*) Removal of '__' prefix around u32 and friends
*) Other miscellanous checkpatch.pl cleanups

The full RFC-v2 series with latest target 'for-39' code is available here:

git://git.kernel.org/pub/scm/linux/kernel/git/nab/scsi-post-merge-2.6.git for-39-iscsi-target-v2

Please add your comments folks, and I will plan to respin an updated merge
commit upon review.

Thanks!

Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>

Nicholas Bellinger (12):
iscsi: Resolve iscsi_proto.h naming conflicts with
drivers/target/iscsi
iscsi-target: Add primary iSCSI request/response state machine logic
iscsi-target: Add TCM v4 compatiable ConfigFS control plane
iscsi-target: Add configfs fabric dependent statistics
iscsi-target: Add TPG and Device logic
iscsi-target: Add iSCSI Login Negotiation and Parameter logic
iscsi-target: Add CHAP Authentication support using libcrypto
iscsi-target: Add Sequence/PDU list + DataIN response logic
iscsi-target: Add iSCSI Error Recovery Hierarchy support
iscsi-target: Add support for task management operations
iscsi-target: Add misc utility and debug logic
iscsi-target: Add Makefile/Kconfig and update TCM top level

drivers/infiniband/ulp/iser/iser_initiator.c | 2 +-
drivers/scsi/be2iscsi/be_main.h | 4 +-
drivers/scsi/bnx2i/bnx2i_hwi.c | 8 +-
drivers/scsi/bnx2i/bnx2i_iscsi.c | 2 +-
drivers/scsi/libiscsi.c | 6 +-
drivers/target/Kconfig | 1 +
drivers/target/Makefile | 1 +
drivers/target/iscsi/Kconfig | 17 +
drivers/target/iscsi/Makefile | 20 +
drivers/target/iscsi/iscsi_auth_chap.c | 502 ++
drivers/target/iscsi/iscsi_auth_chap.h | 33 +
drivers/target/iscsi/iscsi_debug.h | 113 +
drivers/target/iscsi/iscsi_parameters.c | 2054 ++++++++
drivers/target/iscsi/iscsi_parameters.h | 271 +
drivers/target/iscsi/iscsi_seq_and_pdu_list.c | 712 +++
drivers/target/iscsi/iscsi_seq_and_pdu_list.h | 88 +
drivers/target/iscsi/iscsi_target.c | 5844 +++++++++++++++++++++
drivers/target/iscsi/iscsi_target.h | 49 +
drivers/target/iscsi/iscsi_target_configfs.c | 1610 ++++++
drivers/target/iscsi/iscsi_target_configfs.h | 9 +
drivers/target/iscsi/iscsi_target_core.h | 962 ++++
drivers/target/iscsi/iscsi_target_datain_values.c | 549 ++
drivers/target/iscsi/iscsi_target_datain_values.h | 15 +
drivers/target/iscsi/iscsi_target_device.c | 128 +
drivers/target/iscsi/iscsi_target_device.h | 9 +
drivers/target/iscsi/iscsi_target_erl0.c | 1085 ++++
drivers/target/iscsi/iscsi_target_erl0.h | 19 +
drivers/target/iscsi/iscsi_target_erl1.c | 1381 +++++
drivers/target/iscsi/iscsi_target_erl1.h | 35 +
drivers/target/iscsi/iscsi_target_erl2.c | 534 ++
drivers/target/iscsi/iscsi_target_erl2.h | 20 +
drivers/target/iscsi/iscsi_target_login.c | 1381 +++++
drivers/target/iscsi/iscsi_target_login.h | 14 +
drivers/target/iscsi/iscsi_target_nego.c | 1113 ++++
drivers/target/iscsi/iscsi_target_nego.h | 19 +
drivers/target/iscsi/iscsi_target_nodeattrib.c | 300 ++
drivers/target/iscsi/iscsi_target_nodeattrib.h | 14 +
drivers/target/iscsi/iscsi_target_stat.c | 955 ++++
drivers/target/iscsi/iscsi_target_stat.h | 79 +
drivers/target/iscsi/iscsi_target_tmr.c | 908 ++++
drivers/target/iscsi/iscsi_target_tmr.h | 16 +
drivers/target/iscsi/iscsi_target_tpg.c | 1165 ++++
drivers/target/iscsi/iscsi_target_tpg.h | 70 +
drivers/target/iscsi/iscsi_target_util.c | 2852 ++++++++++
drivers/target/iscsi/iscsi_target_util.h | 128 +
drivers/target/iscsi/iscsi_thread_queue.c | 635 +++
drivers/target/iscsi/iscsi_thread_queue.h | 102 +
include/scsi/iscsi_proto.h | 30 +-
48 files changed, 25845 insertions(+), 19 deletions(-)
create mode 100644 drivers/target/iscsi/Kconfig
create mode 100644 drivers/target/iscsi/Makefile
create mode 100644 drivers/target/iscsi/iscsi_auth_chap.c
create mode 100644 drivers/target/iscsi/iscsi_auth_chap.h
create mode 100644 drivers/target/iscsi/iscsi_debug.h
create mode 100644 drivers/target/iscsi/iscsi_parameters.c
create mode 100644 drivers/target/iscsi/iscsi_parameters.h
create mode 100644 drivers/target/iscsi/iscsi_seq_and_pdu_list.c
create mode 100644 drivers/target/iscsi/iscsi_seq_and_pdu_list.h
create mode 100644 drivers/target/iscsi/iscsi_target.c
create mode 100644 drivers/target/iscsi/iscsi_target.h
create mode 100644 drivers/target/iscsi/iscsi_target_configfs.c
create mode 100644 drivers/target/iscsi/iscsi_target_configfs.h
create mode 100644 drivers/target/iscsi/iscsi_target_core.h
create mode 100644 drivers/target/iscsi/iscsi_target_datain_values.c
create mode 100644 drivers/target/iscsi/iscsi_target_datain_values.h
create mode 100644 drivers/target/iscsi/iscsi_target_device.c
create mode 100644 drivers/target/iscsi/iscsi_target_device.h
create mode 100644 drivers/target/iscsi/iscsi_target_erl0.c
create mode 100644 drivers/target/iscsi/iscsi_target_erl0.h
create mode 100644 drivers/target/iscsi/iscsi_target_erl1.c
create mode 100644 drivers/target/iscsi/iscsi_target_erl1.h
create mode 100644 drivers/target/iscsi/iscsi_target_erl2.c
create mode 100644 drivers/target/iscsi/iscsi_target_erl2.h
create mode 100644 drivers/target/iscsi/iscsi_target_login.c
create mode 100644 drivers/target/iscsi/iscsi_target_login.h
create mode 100644 drivers/target/iscsi/iscsi_target_nego.c
create mode 100644 drivers/target/iscsi/iscsi_target_nego.h
create mode 100644 drivers/target/iscsi/iscsi_target_nodeattrib.c
create mode 100644 drivers/target/iscsi/iscsi_target_nodeattrib.h
create mode 100644 drivers/target/iscsi/iscsi_target_stat.c
create mode 100644 drivers/target/iscsi/iscsi_target_stat.h
create mode 100644 drivers/target/iscsi/iscsi_target_tmr.c
create mode 100644 drivers/target/iscsi/iscsi_target_tmr.h
create mode 100644 drivers/target/iscsi/iscsi_target_tpg.c
create mode 100644 drivers/target/iscsi/iscsi_target_tpg.h
create mode 100644 drivers/target/iscsi/iscsi_target_util.c
create mode 100644 drivers/target/iscsi/iscsi_target_util.h
create mode 100644 drivers/target/iscsi/iscsi_thread_queue.c
create mode 100644 drivers/target/iscsi/iscsi_thread_queue.h

--
1.7.4.1