[SCSI] libfc: A modular Fibre Channel library
authorRobert Love <robert.w.love@intel.com>
Tue, 9 Dec 2008 23:10:17 +0000 (15:10 -0800)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Mon, 29 Dec 2008 17:24:33 +0000 (11:24 -0600)
commit42e9a92fe6a9095bd68a379aaec7ad2be0337f7a
tree344f8d9f72a3d926d652632abb8d319f8e32343a
parentf032c2f7cdaae0e8907cd3b26426fc651dc5c275
[SCSI] libfc: A modular Fibre Channel library

libFC is composed of 4 blocks supported by an exchange manager
and a framing library. The upper 4 layers are fc_lport, fc_disc,
fc_rport and fc_fcp. A LLD that uses libfc could choose to
either use libfc's block, or using the transport template
defined in libfc.h, override one or more blocks with its own
implementation.

The EM (Exchange Manager) manages exhcanges/sequences for all
commands- ELS, CT and FCP.

The framing library frames ELS and CT commands.

The fc_lport block manages the library's representation of the
host's FC enabled ports.

The fc_disc block manages discovery of targets as well as
handling changes that occur in the FC fabric (via. RSCN events).

The fc_rport block manages the library's representation of other
entities in the FC fabric. Currently the library uses this block
for targets, its peer when in point-to-point mode and the
directory server, but can be extended for other entities if
needed.

The fc_fcp block interacts with the scsi-ml and handles all
I/O.

Signed-off-by: Robert Love <robert.w.love@intel.com>
[jejb: added include of delay.h to fix ppc64 compile prob spotted by sfr]
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
13 files changed:
drivers/scsi/Kconfig
drivers/scsi/Makefile
drivers/scsi/libfc/Makefile [new file with mode: 0644]
drivers/scsi/libfc/fc_disc.c [new file with mode: 0644]
drivers/scsi/libfc/fc_elsct.c [new file with mode: 0644]
drivers/scsi/libfc/fc_exch.c [new file with mode: 0644]
drivers/scsi/libfc/fc_fcp.c [new file with mode: 0644]
drivers/scsi/libfc/fc_frame.c [new file with mode: 0644]
drivers/scsi/libfc/fc_lport.c [new file with mode: 0644]
drivers/scsi/libfc/fc_rport.c [new file with mode: 0644]
include/scsi/fc_encode.h [new file with mode: 0644]
include/scsi/fc_frame.h [new file with mode: 0644]
include/scsi/libfc.h [new file with mode: 0644]