[SCSI] FC Pass Thru support
authorJames Smart <James.Smart@Emulex.Com>
Thu, 26 Mar 2009 17:33:19 +0000 (13:33 -0400)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Fri, 12 Jun 2009 19:20:05 +0000 (14:20 -0500)
commit9e4f5e29610162fd426366f3b29e3cc6e575b858
treeaad7fed6b70d87bc9aae10563fa1e71535b11de9
parente349792a385ed47390d156155b1a1e19af1bf163
[SCSI] FC Pass Thru support

Attached is the ELS/CT pass-thru patch for the FC Transport. The patch
creates a generic framework that lays on top of bsg and the SGIO v4 ioctl
in order to pass transaction requests to LLDD's.

The interface supports the following operations:
  On an fc_host basis:
    Request login to the specified N_Port_ID, creating an fc_rport.
    Request logout of the specified N_Port_ID, deleting an fc_rport
    Send ELS request to specified N_Port_ID w/o requiring a login, and
      wait for ELS response.
    Send CT request to specified N_Port_ID and wait for CT response.
      Login is required, but LLDD is allowed to manage login and decide
      whether it stays in place after the request is satisfied.
    Vendor-Unique request. Allows a LLDD-specific request to be passed
      to the LLDD, and the passing of a response back to the application.
  On an fc_rport basis:
    Send ELS request to nport and wait for ELS response.
    Send CT request to nport and wait for CT response.

The patch also exports several headers from include/scsi such that
they can be available to user-space applications:
  include/scsi/scsi.h
  include/scsi/scsi_netlink.h
  include/scsi/scsi_netlink_fc.h
  include/scsi/scsi_bsg_fc.h

For further information, refer to the last RFC:
http://marc.info/?l=linux-scsi&m=123436574018579&w=2

Note: Documentation is still spotty and will be added later.

[bharrosh@panasas.com: update for new block API]
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Documentation/scsi/scsi_fc_transport.txt
Documentation/scsi/scsi_mid_low_api.txt
drivers/scsi/scsi_transport_fc.c
include/Kbuild
include/scsi/Kbuild [new file with mode: 0644]
include/scsi/scsi_bsg_fc.h [new file with mode: 0644]
include/scsi/scsi_host.h
include/scsi/scsi_transport_fc.h