diff options
| author | James Smart <James.Smart@Emulex.Com> | 2009-03-26 13:33:19 -0400 |
|---|---|---|
| committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2009-06-12 15:20:05 -0400 |
| commit | 9e4f5e29610162fd426366f3b29e3cc6e575b858 (patch) | |
| tree | aad7fed6b70d87bc9aae10563fa1e71535b11de9 /Documentation/scsi | |
| parent | e349792a385ed47390d156155b1a1e19af1bf163 (diff) | |
[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>
Diffstat (limited to 'Documentation/scsi')
| -rw-r--r-- | Documentation/scsi/scsi_fc_transport.txt | 14 | ||||
| -rw-r--r-- | Documentation/scsi/scsi_mid_low_api.txt | 5 |
2 files changed, 17 insertions, 2 deletions
diff --git a/Documentation/scsi/scsi_fc_transport.txt b/Documentation/scsi/scsi_fc_transport.txt index e5b071d46619..d7f181701dc2 100644 --- a/Documentation/scsi/scsi_fc_transport.txt +++ b/Documentation/scsi/scsi_fc_transport.txt | |||
| @@ -1,10 +1,11 @@ | |||
| 1 | SCSI FC Tansport | 1 | SCSI FC Tansport |
| 2 | ============================================= | 2 | ============================================= |
| 3 | 3 | ||
| 4 | Date: 4/12/2007 | 4 | Date: 11/18/2008 |
| 5 | Kernel Revisions for features: | 5 | Kernel Revisions for features: |
| 6 | rports : <<TBS>> | 6 | rports : <<TBS>> |
| 7 | vports : 2.6.22 (? TBD) | 7 | vports : 2.6.22 |
| 8 | bsg support : 2.6.30 (?TBD?) | ||
| 8 | 9 | ||
| 9 | 10 | ||
| 10 | Introduction | 11 | Introduction |
| @@ -15,6 +16,7 @@ The FC transport can be found at: | |||
| 15 | drivers/scsi/scsi_transport_fc.c | 16 | drivers/scsi/scsi_transport_fc.c |
| 16 | include/scsi/scsi_transport_fc.h | 17 | include/scsi/scsi_transport_fc.h |
| 17 | include/scsi/scsi_netlink_fc.h | 18 | include/scsi/scsi_netlink_fc.h |
| 19 | include/scsi/scsi_bsg_fc.h | ||
| 18 | 20 | ||
| 19 | This file is found at Documentation/scsi/scsi_fc_transport.txt | 21 | This file is found at Documentation/scsi/scsi_fc_transport.txt |
| 20 | 22 | ||
| @@ -472,6 +474,14 @@ int | |||
| 472 | fc_vport_terminate(struct fc_vport *vport) | 474 | fc_vport_terminate(struct fc_vport *vport) |
| 473 | 475 | ||
| 474 | 476 | ||
| 477 | FC BSG support (CT & ELS passthru, and more) | ||
| 478 | ======================================================================== | ||
| 479 | << To Be Supplied >> | ||
| 480 | |||
| 481 | |||
| 482 | |||
| 483 | |||
| 484 | |||
| 475 | Credits | 485 | Credits |
| 476 | ======= | 486 | ======= |
| 477 | The following people have contributed to this document: | 487 | The following people have contributed to this document: |
diff --git a/Documentation/scsi/scsi_mid_low_api.txt b/Documentation/scsi/scsi_mid_low_api.txt index a6d5354639b2..de67229251d8 100644 --- a/Documentation/scsi/scsi_mid_low_api.txt +++ b/Documentation/scsi/scsi_mid_low_api.txt | |||
| @@ -1271,6 +1271,11 @@ of interest: | |||
| 1271 | hostdata[0] - area reserved for LLD at end of struct Scsi_Host. Size | 1271 | hostdata[0] - area reserved for LLD at end of struct Scsi_Host. Size |
| 1272 | is set by the second argument (named 'xtr_bytes') to | 1272 | is set by the second argument (named 'xtr_bytes') to |
| 1273 | scsi_host_alloc() or scsi_register(). | 1273 | scsi_host_alloc() or scsi_register(). |
| 1274 | vendor_id - a unique value that identifies the vendor supplying | ||
| 1275 | the LLD for the Scsi_Host. Used most often in validating | ||
| 1276 | vendor-specific message requests. Value consists of an | ||
| 1277 | identifier type and a vendor-specific value. | ||
| 1278 | See scsi_netlink.h for a description of valid formats. | ||
| 1274 | 1279 | ||
| 1275 | The scsi_host structure is defined in include/scsi/scsi_host.h | 1280 | The scsi_host structure is defined in include/scsi/scsi_host.h |
| 1276 | 1281 | ||
