3699d92a4d
This is a comprehensive patch for FC-FC4 provider. tcm_fc is a FC-FC4 provider which glues target core (TCM) with Fiber channel library (libfc). tcm_fc uses existing FC4 provider hooks from Fiber channel library. This Fiber channel library is used by FCoE (transport - FC over Ethernet) protocol driver as well. Combination of modules such as Fiber channel library, tcm_fc, TCM target core, and FCoE protocol driver enables functional FCoE target. This patch includes initial commit for tcm_fc plus additional enhancement, bug fixes. This tcm_fc module essentially contains 3 entry points such as "prli", "prlo", "recv". When process login request (ELS_PRLI) request is received, Fiber channel library (libfc) module calls passive providers (FC-FC4, tcm_fc) (if any registered) "prli" function. Likewise when LOGO request is received, "prlo" function of passive provider is invoked by libfc. For all other request (e.g. any read/write, task management, LUN inquiry commands), "recv" function of passiver provider is invoked by libfc. Those passive providers "prli, prlo, recv" functions interact with TCM target core for requested operation. This module was primarily developed by "Joe Eykholt" and there were significant contributions from the people listed under signed-off. Signed-off-by: Joe Eykholt <jeykholt@cisco.com> Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Yi Zou <yi.zou@intel.com> Signed-off-by: Kiran Patil <kiran.patil@intel.com> Acked-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <jbottomley@parallels.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
35 lines
1 KiB
Text
35 lines
1 KiB
Text
|
|
menuconfig TARGET_CORE
|
|
tristate "Generic Target Core Mod (TCM) and ConfigFS Infrastructure"
|
|
depends on SCSI && BLOCK
|
|
select CONFIGFS_FS
|
|
default n
|
|
help
|
|
Say Y or M here to enable the TCM Storage Engine and ConfigFS enabled
|
|
control path for target_core_mod. This includes built-in TCM RAMDISK
|
|
subsystem logic for virtual LUN 0 access
|
|
|
|
if TARGET_CORE
|
|
|
|
config TCM_IBLOCK
|
|
tristate "TCM/IBLOCK Subsystem Plugin for Linux/BLOCK"
|
|
help
|
|
Say Y here to enable the TCM/IBLOCK subsystem plugin for non-buffered
|
|
access to Linux/Block devices using BIO
|
|
|
|
config TCM_FILEIO
|
|
tristate "TCM/FILEIO Subsystem Plugin for Linux/VFS"
|
|
help
|
|
Say Y here to enable the TCM/FILEIO subsystem plugin for buffered
|
|
access to Linux/VFS struct file or struct block_device
|
|
|
|
config TCM_PSCSI
|
|
tristate "TCM/pSCSI Subsystem Plugin for Linux/SCSI"
|
|
help
|
|
Say Y here to enable the TCM/pSCSI subsystem plugin for non-buffered
|
|
passthrough access to Linux/SCSI device
|
|
|
|
source "drivers/target/loopback/Kconfig"
|
|
source "drivers/target/tcm_fc/Kconfig"
|
|
|
|
endif
|