1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Transport classes</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="SCSI Interfaces Guide"><link rel="up" href="mid_layer.html" title="Chapter&#160;3.&#160;SCSI mid layer"><link rel="prev" href="re95.html" title=".//drivers/scsi/constants.c"><link rel="next" href="API-fc-get-event-number.html" title="fc_get_event_number"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Transport classes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re95.html">Prev</a>&#160;</td><th width="60%" align="center">Chapter&#160;3.&#160;SCSI mid layer</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-fc-get-event-number.html">Next</a></td></tr></table><hr></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Transport_classes"></a>Transport classes</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="Transport_classes.html#Fibre_Channel_transport">Fibre Channel transport</a></span></dt><dt><span class="sect2"><a href="Transport_classes.html#iSCSI_transport">iSCSI transport class</a></span></dt><dt><span class="sect2"><a href="Transport_classes.html#SAS_transport">Serial Attached SCSI (SAS) transport class</a></span></dt><dt><span class="sect2"><a href="Transport_classes.html#SATA_transport">SATA transport class</a></span></dt><dt><span class="sect2"><a href="Transport_classes.html#SPI_transport">Parallel SCSI (SPI) transport class</a></span></dt><dt><span class="sect2"><a href="Transport_classes.html#SRP_transport">SCSI RDMA (SRP) transport class</a></span></dt></dl></div><p>
2        Transport classes are service libraries for drivers in the SCSI
3        lower layer, which expose transport attributes in sysfs.
4      </p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="Fibre_Channel_transport"></a>Fibre Channel transport</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-fc-get-event-number.html"><span class="phrase">fc_get_event_number</span></a></span><span class="refpurpose"> &#8212; 
5  Obtain the next sequential FC event number
6 </span></dt><dt><span class="refentrytitle"><a href="API-fc-host-post-event.html"><span class="phrase">fc_host_post_event</span></a></span><span class="refpurpose"> &#8212; 
7     called to post an even on an fc_host.
8 </span></dt><dt><span class="refentrytitle"><a href="API-fc-host-post-vendor-event.html"><span class="phrase">fc_host_post_vendor_event</span></a></span><span class="refpurpose"> &#8212; 
9     called to post a vendor unique event on an fc_host
10 </span></dt><dt><span class="refentrytitle"><a href="API-fc-remove-host.html"><span class="phrase">fc_remove_host</span></a></span><span class="refpurpose"> &#8212; 
11     called to terminate any fc_transport-related elements for a scsi host.
12 </span></dt><dt><span class="refentrytitle"><a href="API-fc-remote-port-add.html"><span class="phrase">fc_remote_port_add</span></a></span><span class="refpurpose"> &#8212; 
13     notify fc transport of the existence of a remote FC port.
14 </span></dt><dt><span class="refentrytitle"><a href="API-fc-remote-port-delete.html"><span class="phrase">fc_remote_port_delete</span></a></span><span class="refpurpose"> &#8212; 
15     notifies the fc transport that a remote port is no longer in existence.
16 </span></dt><dt><span class="refentrytitle"><a href="API-fc-remote-port-rolechg.html"><span class="phrase">fc_remote_port_rolechg</span></a></span><span class="refpurpose"> &#8212; 
17     notifies the fc transport that the roles on a remote may have changed.
18 </span></dt><dt><span class="refentrytitle"><a href="API-fc-block-scsi-eh.html"><span class="phrase">fc_block_scsi_eh</span></a></span><span class="refpurpose"> &#8212; 
19     Block SCSI eh thread for blocked fc_rport
20 </span></dt><dt><span class="refentrytitle"><a href="API-fc-vport-create.html"><span class="phrase">fc_vport_create</span></a></span><span class="refpurpose"> &#8212; 
21     Admin App or LLDD requests creation of a vport
22 </span></dt><dt><span class="refentrytitle"><a href="API-fc-vport-terminate.html"><span class="phrase">fc_vport_terminate</span></a></span><span class="refpurpose"> &#8212; 
23     Admin App or LLDD requests termination of a vport
24 </span></dt></dl></div><p>
25          The file drivers/scsi/scsi_transport_fc.c defines transport attributes
26          for Fibre Channel.
27        </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="iSCSI_transport"></a>iSCSI transport class</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-iscsi-create-flashnode-sess.html"><span class="phrase">iscsi_create_flashnode_sess</span></a></span><span class="refpurpose"> &#8212; 
28  Add flashnode session entry in sysfs
29 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-create-flashnode-conn.html"><span class="phrase">iscsi_create_flashnode_conn</span></a></span><span class="refpurpose"> &#8212; 
30     Add flashnode conn entry in sysfs
31 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-is-flashnode-conn-dev.html"><span class="phrase">iscsi_is_flashnode_conn_dev</span></a></span><span class="refpurpose"> &#8212; 
32     verify passed device is to be flashnode conn
33 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-find-flashnode-sess.html"><span class="phrase">iscsi_find_flashnode_sess</span></a></span><span class="refpurpose"> &#8212; 
34     finds flashnode session entry
35 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-find-flashnode-conn.html"><span class="phrase">iscsi_find_flashnode_conn</span></a></span><span class="refpurpose"> &#8212; 
36     finds flashnode connection entry
37 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-destroy-flashnode-sess.html"><span class="phrase">iscsi_destroy_flashnode_sess</span></a></span><span class="refpurpose"> &#8212; 
38     destroy flashnode session entry
39 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-destroy-all-flashnode.html"><span class="phrase">iscsi_destroy_all_flashnode</span></a></span><span class="refpurpose"> &#8212; 
40     destroy all flashnode session entries
41 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-scan-finished.html"><span class="phrase">iscsi_scan_finished</span></a></span><span class="refpurpose"> &#8212; 
42     helper to report when running scans are done
43 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-block-scsi-eh.html"><span class="phrase">iscsi_block_scsi_eh</span></a></span><span class="refpurpose"> &#8212; 
44     block scsi eh until session state has transistioned
45 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-unblock-session.html"><span class="phrase">iscsi_unblock_session</span></a></span><span class="refpurpose"> &#8212; 
46     set a session as logged in and start IO.
47 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-create-session.html"><span class="phrase">iscsi_create_session</span></a></span><span class="refpurpose"> &#8212; 
48     create iscsi class session
49 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-destroy-session.html"><span class="phrase">iscsi_destroy_session</span></a></span><span class="refpurpose"> &#8212; 
50     destroy iscsi session
51 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-create-conn.html"><span class="phrase">iscsi_create_conn</span></a></span><span class="refpurpose"> &#8212; 
52     create iscsi class connection
53 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-destroy-conn.html"><span class="phrase">iscsi_destroy_conn</span></a></span><span class="refpurpose"> &#8212; 
54     destroy iscsi class connection
55 </span></dt><dt><span class="refentrytitle"><a href="API-iscsi-session-event.html"><span class="phrase">iscsi_session_event</span></a></span><span class="refpurpose"> &#8212; 
56     send session destr. completion event
57 </span></dt></dl></div><p>
58          The file drivers/scsi/scsi_transport_iscsi.c defines transport
59          attributes for the iSCSI class, which sends SCSI packets over TCP/IP
60          connections.
61        </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="SAS_transport"></a>Serial Attached SCSI (SAS) transport class</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-sas-remove-children.html"><span class="phrase">sas_remove_children</span></a></span><span class="refpurpose"> &#8212; 
62  tear down a devices SAS data structures
63 </span></dt><dt><span class="refentrytitle"><a href="API-sas-remove-host.html"><span class="phrase">sas_remove_host</span></a></span><span class="refpurpose"> &#8212; 
64     tear down a Scsi_Host's SAS data structures
65 </span></dt><dt><span class="refentrytitle"><a href="API-sas-tlr-supported.html"><span class="phrase">sas_tlr_supported</span></a></span><span class="refpurpose"> &#8212; 
66     checking TLR bit in vpd 0x90
67 </span></dt><dt><span class="refentrytitle"><a href="API-sas-disable-tlr.html"><span class="phrase">sas_disable_tlr</span></a></span><span class="refpurpose"> &#8212; 
68     setting TLR flags
69 </span></dt><dt><span class="refentrytitle"><a href="API-sas-enable-tlr.html"><span class="phrase">sas_enable_tlr</span></a></span><span class="refpurpose"> &#8212; 
70     setting TLR flags
71 </span></dt><dt><span class="refentrytitle"><a href="API-sas-phy-alloc.html"><span class="phrase">sas_phy_alloc</span></a></span><span class="refpurpose"> &#8212; 
72     allocates and initialize a SAS PHY structure
73 </span></dt><dt><span class="refentrytitle"><a href="API-sas-phy-add.html"><span class="phrase">sas_phy_add</span></a></span><span class="refpurpose"> &#8212; 
74     add a SAS PHY to the device hierarchy
75 </span></dt><dt><span class="refentrytitle"><a href="API-sas-phy-free.html"><span class="phrase">sas_phy_free</span></a></span><span class="refpurpose"> &#8212; 
76     free a SAS PHY
77 </span></dt><dt><span class="refentrytitle"><a href="API-sas-phy-delete.html"><span class="phrase">sas_phy_delete</span></a></span><span class="refpurpose"> &#8212; 
78     remove SAS PHY
79 </span></dt><dt><span class="refentrytitle"><a href="API-scsi-is-sas-phy.html"><span class="phrase">scsi_is_sas_phy</span></a></span><span class="refpurpose"> &#8212; 
80     check if a struct device represents a SAS PHY
81 </span></dt><dt><span class="refentrytitle"><a href="API-sas-port-add.html"><span class="phrase">sas_port_add</span></a></span><span class="refpurpose"> &#8212; 
82     add a SAS port to the device hierarchy
83 </span></dt><dt><span class="refentrytitle"><a href="API-sas-port-free.html"><span class="phrase">sas_port_free</span></a></span><span class="refpurpose"> &#8212; 
84     free a SAS PORT
85 </span></dt><dt><span class="refentrytitle"><a href="API-sas-port-delete.html"><span class="phrase">sas_port_delete</span></a></span><span class="refpurpose"> &#8212; 
86     remove SAS PORT
87 </span></dt><dt><span class="refentrytitle"><a href="API-scsi-is-sas-port.html"><span class="phrase">scsi_is_sas_port</span></a></span><span class="refpurpose"> &#8212; 
88     check if a struct device represents a SAS port
89 </span></dt><dt><span class="refentrytitle"><a href="API-sas-port-get-phy.html"><span class="phrase">sas_port_get_phy</span></a></span><span class="refpurpose"> &#8212; 
90     try to take a reference on a port member
91 </span></dt><dt><span class="refentrytitle"><a href="API-sas-port-add-phy.html"><span class="phrase">sas_port_add_phy</span></a></span><span class="refpurpose"> &#8212; 
92     add another phy to a port to form a wide port
93 </span></dt><dt><span class="refentrytitle"><a href="API-sas-port-delete-phy.html"><span class="phrase">sas_port_delete_phy</span></a></span><span class="refpurpose"> &#8212; 
94     remove a phy from a port or wide port
95 </span></dt><dt><span class="refentrytitle"><a href="API-sas-end-device-alloc.html"><span class="phrase">sas_end_device_alloc</span></a></span><span class="refpurpose"> &#8212; 
96     allocate an rphy for an end device
97 </span></dt><dt><span class="refentrytitle"><a href="API-sas-expander-alloc.html"><span class="phrase">sas_expander_alloc</span></a></span><span class="refpurpose"> &#8212; 
98     allocate an rphy for an end device
99 </span></dt><dt><span class="refentrytitle"><a href="API-sas-rphy-add.html"><span class="phrase">sas_rphy_add</span></a></span><span class="refpurpose"> &#8212; 
100     add a SAS remote PHY to the device hierarchy
101 </span></dt><dt><span class="refentrytitle"><a href="API-sas-rphy-free.html"><span class="phrase">sas_rphy_free</span></a></span><span class="refpurpose"> &#8212; 
102     free a SAS remote PHY
103 </span></dt><dt><span class="refentrytitle"><a href="API-sas-rphy-delete.html"><span class="phrase">sas_rphy_delete</span></a></span><span class="refpurpose"> &#8212; 
104     remove and free SAS remote PHY
105 </span></dt><dt><span class="refentrytitle"><a href="API-sas-rphy-unlink.html"><span class="phrase">sas_rphy_unlink</span></a></span><span class="refpurpose"> &#8212; 
106     unlink SAS remote PHY
107 </span></dt><dt><span class="refentrytitle"><a href="API-sas-rphy-remove.html"><span class="phrase">sas_rphy_remove</span></a></span><span class="refpurpose"> &#8212; 
108     remove SAS remote PHY
109 </span></dt><dt><span class="refentrytitle"><a href="API-scsi-is-sas-rphy.html"><span class="phrase">scsi_is_sas_rphy</span></a></span><span class="refpurpose"> &#8212; 
110     check if a struct device represents a SAS remote PHY
111 </span></dt><dt><span class="refentrytitle"><a href="API-sas-attach-transport.html"><span class="phrase">sas_attach_transport</span></a></span><span class="refpurpose"> &#8212; 
112     instantiate SAS transport template
113 </span></dt><dt><span class="refentrytitle"><a href="API-sas-release-transport.html"><span class="phrase">sas_release_transport</span></a></span><span class="refpurpose"> &#8212; 
114     release SAS transport template instance
115 </span></dt></dl></div><p>
116          The file drivers/scsi/scsi_transport_sas.c defines transport
117          attributes for Serial Attached SCSI, a variant of SATA aimed at
118          large high-end systems.
119        </p><p>
120          The SAS transport class contains common code to deal with SAS HBAs,
121          an aproximated representation of SAS topologies in the driver model,
122          and various sysfs attributes to expose these topologies and management
123          interfaces to userspace.
124        </p><p>
125          In addition to the basic SCSI core objects this transport class
126          introduces two additional intermediate objects:  The SAS PHY
127          as represented by struct sas_phy defines an "outgoing" PHY on
128          a SAS HBA or Expander, and the SAS remote PHY represented by
129          struct sas_rphy defines an "incoming" PHY on a SAS Expander or
130          end device.  Note that this is purely a software concept, the
131          underlying hardware for a PHY and a remote PHY is the exactly
132          the same.
133        </p><p>
134          There is no concept of a SAS port in this code, users can see
135          what PHYs form a wide port based on the port_identifier attribute,
136          which is the same for all PHYs in a port.
137        </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="SATA_transport"></a>SATA transport class</h3></div></div></div><p>
138          The SATA transport is handled by libata, which has its own book of
139          documentation in this directory.
140        </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="SPI_transport"></a>Parallel SCSI (SPI) transport class</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-spi-schedule-dv-device.html"><span class="phrase">spi_schedule_dv_device</span></a></span><span class="refpurpose"> &#8212; 
141  schedule domain validation to occur on the device
142 </span></dt><dt><span class="refentrytitle"><a href="API-spi-display-xfer-agreement.html"><span class="phrase">spi_display_xfer_agreement</span></a></span><span class="refpurpose"> &#8212; 
143     Print the current target transfer agreement
144 </span></dt><dt><span class="refentrytitle"><a href="API-spi-populate-tag-msg.html"><span class="phrase">spi_populate_tag_msg</span></a></span><span class="refpurpose"> &#8212; 
145     place a tag message in a buffer
146 </span></dt></dl></div><p>
147          The file drivers/scsi/scsi_transport_spi.c defines transport
148          attributes for traditional (fast/wide/ultra) SCSI busses.
149        </p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="SRP_transport"></a>SCSI RDMA (SRP) transport class</h3></div></div></div><div class="toc"><dl class="toc"><dt><span class="refentrytitle"><a href="API-srp-tmo-valid.html"><span class="phrase">srp_tmo_valid</span></a></span><span class="refpurpose"> &#8212; 
150  check timeout combination validity
151 </span></dt><dt><span class="refentrytitle"><a href="API-srp-start-tl-fail-timers.html"><span class="phrase">srp_start_tl_fail_timers</span></a></span><span class="refpurpose"> &#8212; 
152     start the transport layer failure timers
153 </span></dt><dt><span class="refentrytitle"><a href="API-srp-reconnect-rport.html"><span class="phrase">srp_reconnect_rport</span></a></span><span class="refpurpose"> &#8212; 
154     reconnect to an SRP target port
155 </span></dt><dt><span class="refentrytitle"><a href="API-srp-rport-get.html"><span class="phrase">srp_rport_get</span></a></span><span class="refpurpose"> &#8212; 
156     increment rport reference count
157 </span></dt><dt><span class="refentrytitle"><a href="API-srp-rport-put.html"><span class="phrase">srp_rport_put</span></a></span><span class="refpurpose"> &#8212; 
158     decrement rport reference count
159 </span></dt><dt><span class="refentrytitle"><a href="API-srp-rport-add.html"><span class="phrase">srp_rport_add</span></a></span><span class="refpurpose"> &#8212; 
160     add a SRP remote port to the device hierarchy
161 </span></dt><dt><span class="refentrytitle"><a href="API-srp-rport-del.html"><span class="phrase">srp_rport_del</span></a></span><span class="refpurpose"> &#8212; 
162     remove a SRP remote port
163 </span></dt><dt><span class="refentrytitle"><a href="API-srp-remove-host.html"><span class="phrase">srp_remove_host</span></a></span><span class="refpurpose"> &#8212; 
164     tear down a Scsi_Host's SRP data structures
165 </span></dt><dt><span class="refentrytitle"><a href="API-srp-stop-rport-timers.html"><span class="phrase">srp_stop_rport_timers</span></a></span><span class="refpurpose"> &#8212; 
166     stop the transport layer recovery timers
167 </span></dt><dt><span class="refentrytitle"><a href="API-srp-attach-transport.html"><span class="phrase">srp_attach_transport</span></a></span><span class="refpurpose"> &#8212; 
168     instantiate SRP transport template
169 </span></dt><dt><span class="refentrytitle"><a href="API-srp-release-transport.html"><span class="phrase">srp_release_transport</span></a></span><span class="refpurpose"> &#8212; 
170     release SRP transport template instance
171 </span></dt></dl></div><p>
172          The file drivers/scsi/scsi_transport_srp.c defines transport
173          attributes for SCSI over Remote Direct Memory Access.
174        </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re95.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="mid_layer.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-fc-get-event-number.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
175   .//drivers/scsi/constants.c
176  &#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">fc_get_event_number</span></td></tr></table></div></body></html>
177