Skip to content

Commit

Permalink
[SCSI] libfc: A modular Fibre Channel library
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Robert Love authored and James Bottomley committed Dec 29, 2008
1 parent f032c2f commit 42e9a92
Show file tree
Hide file tree
Showing 13 changed files with 9,509 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/scsi/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -603,6 +603,12 @@ config SCSI_FLASHPOINT
substantial, so users of MultiMaster Host Adapters may not
wish to include it.

config LIBFC
tristate "LibFC module"
depends on SCSI && SCSI_FC_ATTRS
---help---
Fibre Channel library module

config SCSI_DMX3191D
tristate "DMX3191D SCSI support"
depends on PCI && SCSI
Expand Down
1 change: 1 addition & 0 deletions drivers/scsi/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ obj-$(CONFIG_SCSI_SAS_LIBSAS) += libsas/
obj-$(CONFIG_SCSI_SRP_ATTRS) += scsi_transport_srp.o
obj-$(CONFIG_SCSI_DH) += device_handler/

obj-$(CONFIG_LIBFC) += libfc/
obj-$(CONFIG_ISCSI_TCP) += libiscsi.o libiscsi_tcp.o iscsi_tcp.o
obj-$(CONFIG_INFINIBAND_ISER) += libiscsi.o
obj-$(CONFIG_SCSI_A4000T) += 53c700.o a4000t.o
Expand Down
12 changes: 12 additions & 0 deletions drivers/scsi/libfc/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# $Id: Makefile

obj-$(CONFIG_LIBFC) += libfc.o

libfc-objs := \
fc_disc.o \
fc_exch.o \
fc_elsct.o \
fc_frame.o \
fc_lport.o \
fc_rport.o \
fc_fcp.o
Loading

0 comments on commit 42e9a92

Please sign in to comment.