26 Jul, 2011

1 commit

  • The Linux-iSCSI.org target module is a full featured in-kernel
    software implementation of iSCSI target mode (RFC-3720) for the
    current WIP mainline target v4.1 infrastructure code for the v3.1
    kernel. More information can be found here:

    http://linux-iscsi.org/wiki/ISCSI

    This includes support for:

    * RFC-3720 defined request / response state machines and support for
    all defined iSCSI operation codes from Section 10.2.1.2 using libiscsi
    include/scsi/iscsi_proto.h PDU definitions
    * Target v4.1 compatible control plane using the generic layout in
    target_core_fabric_configfs.c and fabric dependent attributes
    within /sys/kernel/config/target/iscsi/ subdirectories.
    * Target v4.1 compatible iSCSI statistics based on RFC-4544 (iSCSI MIBS)
    * Support for IPv6 and IPv4 network portals in M:N mapping to TPGs
    * iSCSI Error Recovery Hierarchy support
    * Per iSCSI connection RX/TX thread pair scheduling affinity
    * crc32c + crc32c_intel SSEv4 instruction offload support using libcrypto
    * CHAP Authentication support using libcrypto
    * Conversion to use internal SGl allocation with iscsit_alloc_buffs() ->
    transport_generic_map_mem_to_cmd()

    (nab: Fix iscsi_proto.h struct scsi_lun usage from linux-next in commit:
    iscsi: Use struct scsi_lun in iscsi structs instead of u8[8])
    (nab: Fix 32-bit compile warnings)

    Reviewed-by: Christoph Hellwig
    Reviewed-by: Andy Grover
    Acked-by: Roland Dreier
    Signed-off-by: Nicholas A. Bellinger

    Nicholas Bellinger
     

17 May, 2011

1 commit

  • 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
    Signed-off-by: Nicholas A. Bellinger
    Signed-off-by: Christoph Hellwig
    Signed-off-by: Yi Zou
    Signed-off-by: Kiran Patil

    Acked-by: Robert Love
    Signed-off-by: James Bottomley
    Signed-off-by: James Bottomley

    Kiran Patil
     

24 Mar, 2011

1 commit

  • This patch adds the TCM_Loop Linux/SCSI LLD fabric module for
    accessing TCM device backstores as locally accessable SCSI LUNs in
    virtual SAS, FC, and iSCSI Target ports using the generic fabric
    TransportID and Target Port WWN naming handlers from TCM's
    target_core_fabric_lib.c The TCM_Loop module uses the generic fabric
    configfs infratructure provided by target_core_fabric_configfs.c and
    adds a module dependent attribute for the creation/release of the
    virtual I_T Nexus connected the TCM_Loop Target and Initiator Ports.

    TCM_Loop can also be used with scsi-generic and BSG drivers so that
    STGT userspace fabric modules, QEMU-KVM and other hypervisor SCSI
    passthrough support can access TCM device backstore and control CDB
    emulation.

    For more information please see:

    http://linux-iscsi.org/wiki/Tcm_loop

    [jejb: fixed up checkpatch stuff]
    Signed-off-by: Nicholas A. Bellinger
    Reviewed-by: Christoph Hellwig
    Signed-off-by: James Bottomley

    Nicholas Bellinger
     

15 Jan, 2011

1 commit

  • LIO target is a full featured in-kernel target framework with the
    following feature set:

    High-performance, non-blocking, multithreaded architecture with SIMD
    support.

    Advanced SCSI feature set:

    * Persistent Reservations (PRs)
    * Asymmetric Logical Unit Assignment (ALUA)
    * Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
    * Full Error Recovery (ERL=0,1,2)
    * Active/active task migration and session continuation (ERL=2)
    * Thin LUN provisioning (UNMAP and WRITE_SAMExx)

    Multiprotocol target plugins

    Storage media independence:

    * Virtualization of all storage media; transparent mapping of IO to LUNs
    * No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
    * Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.

    Standards compliance:

    * Full compliance with IETF (RFC 3720)
    * Full implementation of SPC-4 PRs and ALUA

    Significant code cleanups done by Christoph Hellwig.

    [jejb: fix up for new block bdev exclusive interface. Minor fixes from
    Randy Dunlap and Dan Carpenter.]
    Signed-off-by: Nicholas A. Bellinger
    Signed-off-by: James Bottomley

    Nicholas Bellinger