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 3. 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> </td><th width="60%" align="center">Chapter 3. SCSI mid layer</th><td width="20%" align="right"> <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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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"> — 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> </td><td width="20%" align="center"><a accesskey="u" href="mid_layer.html">Up</a></td><td width="40%" align="right"> <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  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">fc_get_event_number</span></td></tr></table></div></body></html> 177