Skip to content

Commit

Permalink
[SCSI] FC Pass Thru support
Browse files Browse the repository at this point in the history
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.

[[email protected]: update for new block API]
Signed-off-by: James Smart <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
  • Loading branch information
James Smart authored and James Bottomley committed Jun 12, 2009
1 parent e349792 commit 9e4f5e2
Show file tree
Hide file tree
Showing 8 changed files with 1,016 additions and 5 deletions.
14 changes: 12 additions & 2 deletions Documentation/scsi/scsi_fc_transport.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
SCSI FC Tansport
=============================================

Date: 4/12/2007
Date: 11/18/2008
Kernel Revisions for features:
rports : <<TBS>>
vports : 2.6.22 (? TBD)
vports : 2.6.22
bsg support : 2.6.30 (?TBD?)


Introduction
Expand All @@ -15,6 +16,7 @@ The FC transport can be found at:
drivers/scsi/scsi_transport_fc.c
include/scsi/scsi_transport_fc.h
include/scsi/scsi_netlink_fc.h
include/scsi/scsi_bsg_fc.h

This file is found at Documentation/scsi/scsi_fc_transport.txt

Expand Down Expand Up @@ -472,6 +474,14 @@ int
fc_vport_terminate(struct fc_vport *vport)


FC BSG support (CT & ELS passthru, and more)
========================================================================
<< To Be Supplied >>





Credits
=======
The following people have contributed to this document:
Expand Down
5 changes: 5 additions & 0 deletions Documentation/scsi/scsi_mid_low_api.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1271,6 +1271,11 @@ of interest:
hostdata[0] - area reserved for LLD at end of struct Scsi_Host. Size
is set by the second argument (named 'xtr_bytes') to
scsi_host_alloc() or scsi_register().
vendor_id - a unique value that identifies the vendor supplying
the LLD for the Scsi_Host. Used most often in validating
vendor-specific message requests. Value consists of an
identifier type and a vendor-specific value.
See scsi_netlink.h for a description of valid formats.

The scsi_host structure is defined in include/scsi/scsi_host.h

Expand Down
Loading

0 comments on commit 9e4f5e2

Please sign in to comment.