unh interoperability lab
DESCRIPTION
Serial Attached SCSI (SAS) Clause 9. UNH InterOperability Lab. Clause 8. Port Layer Links SAS Link Layer state machines with SSP, SMP, and STP state machines Operation of the Port Layer is transparent No major testable items are be found in Clause 8. Presentation Topics. - PowerPoint PPT PresentationTRANSCRIPT
Improving Networks Worldwide.
UNH InterOperability Lab
Serial Attached SCSI (SAS)Clause 9
Improving Networks Worldwide.
3
SAS Clause 9
Clause 8
• Port Layer– Links SAS Link Layer state machines
with SSP, SMP, and STP state machines
• Operation of the Port Layer is transparent
• No major testable items are be found in Clause 8
4
SAS Clause 9
Presentation Topics
• Transport Layer Protocols– SSP
•Frame Types•Sequencing•Command Mapping•Sample Traces
– SMP– STP
5
SAS Clause 9
SSP Connections
• First, an SSP Connection is opened between two link partners– One must be an SSP Initiator– The other must be an SSP Target– Determined by bits asserted in the
Identify Address Frames
6
SAS Clause 9
SSP Open Frame
• Frame Type– 1 Byte value 0x01, 0x05, 0x06, 0x07, 0x16– 0xF0 through 0xFF are vendor specific– All others are reserved and invalid
7
SAS Clause 9
SSP Open Frame
• Hashed Destination and Source Addresses– 4 byte address calculated from the WWNs of
the source and destination– Details on Hash Algorithm and collision
likelihood found in Annex H of the SAS 2.0 Standard
8
SAS Clause 9
SSP Open Frame
• TLR Control– Valid for only Command Frames
• Reserved for all other frame types
– Used to communicate support for Transport Layer Retries by initiators
– See Section 9.2.1 of SAS 2.0 Standard for more details
9
SAS Clause 9
SSP Open Frame
• Retry Data Frames– Valid only for XFER_RDY Frames
• Reserved for all other frame types
– Set to 1 indicates to initiator to disable Transport Layer Retries for write DATA frames associated with this XFER_RDY
10
SAS Clause 9
SSP Open Frame
• Retransmit– Valid for TASK, RESPONSE, and XFER_RDY
Frames• Reserved for all other frame types
– Set to one indicates the frame is a retransmission
• Circumstances described in 9.2.4 of SAS 2.0 Standard
11
SAS Clause 9
SSP Open Frame
• Changing Data Pointer– Valid for Retransmitted DATA Frame
• Reserved for all other frame types
– Set to one indicates that DATA OFFSET field may not be sequentially increased
– More details in section 9.2.4.5 of SAS 2.0 Standard
12
SAS Clause 9
SSP Open Frame
• Number of Fill Bytes– Valid for DATA and RESPONSE Frames
• Reserved for all other frame types
– Specifies the number of bytes between the Information Unit and the CRC in the frame added to make the size of the frame divisible by 4
– Needed for the CRC calculation to work correctly
13
SAS Clause 9
SSP Open Frame
• Initiator Port Transfer Tag– AKA “Tag”– Used for establishing context for
Commands and Tasks– Assigned by Initiators
14
SAS Clause 9
SSP Open Frame
• Target Port Transfer Tag– AKA “TPTT”– Used for establishing context for DATA
Writes– Assigned by a target– Optionally implemented by targets
15
SAS Clause 9
SSP Open Frame
• Data Offset– Used to discribe where the data is
placed relative to series of data commands
– Valid for only DATA frames• Ignored in all other frames
16
SAS Clause 9
SSP Open Frame
• Information Unit– Non-general information unit
• DATA, XFER_RDY, COMMAND...
– Varies by frame type– Contents covered further in this
presentation (slide 20)
17
SAS Clause 9
SSP Open Frame
• Fill Bytes– Added only if needed– Used to make frame size divisible by
4 for CRC calculations– Number in command specified by
Number Of Fill Bytes Field
18
SAS Clause 9
SSP Open Frame
• CRC – Cyclic Redundancy Check
– CRC is used to detect bit errors inside of transmitted frames
– Transmitter calculates CRC and attaches it to every frame
– Receiver calculates CRC at receiption and if it doesn't match what is received, transmits NAK (CRC ERROR) to the transmitter
19
SAS Clause 9
SSP Open Frame
• CRC – Cyclic Redundancy Check– Computed over the entire SSP Frame– See Annex G of SAS 2.0 Standard for
more information on CRC
20
SAS Clause 9
SSP Connections
• Once the SSP Connection (see Clause 7) is established, five types of frames can be transmitted inside that SSP connection– DATA– XFER_RDY– COMMAND– RESPONSE– TASK
21
SAS Clause 9
SSP Frame Types
• DATA– Carries actual data to and from
targets and initiators
• XFER_RDY– Sent by targets giving initiators
permission to transmit data
• COMMAND– Contains CDBs for commands sent by
initiators
22
SAS Clause 9
SSP Frame Types
• RESPONSE– Sent at the completion of a command
by targets to initiators. Contains information regarding current status and the command status
• TASK– Sent by initiators to targets to
manage outstanding commands and other non-command related activities
23
SAS Clause 9
DATA Frames
• Type: 0x01• Information Unit: Data (Read or
Write)• Originates: From a SSP Initiator or
SSP Target• Information Unit Size: 1 to 1024
Bytes
24
SAS Clause 9
DATA Frames Information Unit
• Only contains data
25
SAS Clause 9
XFER_RDY Frames
• Type: 0x05• Information Unit: Transfer Ready• Originates: SSP Targets Only• Information Unit Size: 12 bytes
26
SAS Clause 9
XFER_RDY Frames Information Unit
• Requested Offset– Specifies an offset in the write data
buffer of the application client which can be transmitted in the context of this XFER_RDY frame.
27
SAS Clause 9
XFER_RDY Frames Information Unit
• Write Data Length– Specifies the number of bytes that
may be transmitted within the context of this XFER_RDY frame.
28
SAS Clause 9
COMMAND Frames
• Type: 0x06• Information Unit: Command• Originates: SSP Initiator Only• Information Unit Size: 28 to 280
bytes
29
SAS Clause 9
COMMAND Frames Information Unit
• Logical Unit Number– Refers to the LUN on the DUT this
command will be routed too
30
SAS Clause 9
COMMAND Frames Information Unit
• Enable First Burst– Set to 1 specifies that the SSP port shall
expect first burst data for the command as defined by the FIRST BURST SIZE field in the Disconnect-Reconnect Mode Page
31
SAS Clause 9
COMMAND Frames Information Unit
• Command Priority– Specifies the importance of the
command relative to other commands with TASK ATTRIBUTE set to 0
32
SAS Clause 9
COMMAND Frames Information Unit
• Task Attribute– Used to control the order of execution
of received commands
33
SAS Clause 9
COMMAND Frames Information Unit
• Task Attribute– Simple: 000b – Relies on COMMAND PRIORITY field
for order of execution via rules defined in SAM-4
34
SAS Clause 9
COMMAND Frames Information Unit
• Task Attribute– Simple: 000b – Relies on COMMAND PRIORITY field
for order of execution via rules defined in SAM-4
35
SAS Clause 9
COMMAND Frames Information Unit
• Task Attribute– Head of Queue: 001b– Specifies the Command is to be
handled according to the HEAD OF QUEUE task attribute defined in SAM-4
36
SAS Clause 9
COMMAND Frames Information Unit
• Task Attribute– Ordered: 010b– Specifies the command is to be
handled according the ORDERED task attribute defined in SAM-4
37
SAS Clause 9
COMMAND Frames Information Unit
• Task Attribute– ACA: 100b– Specifies the command is to be
handled according the rules for an ACA task attribute defined in SAM-4
38
SAS Clause 9
COMMAND Frames Information Unit
• Task Attribute– All other values (011b and 101b-
111b) are reserved and shall be considered invalid
39
SAS Clause 9
COMMAND Frames Information Unit
• Additional CDB Length– Length in Dwords (4 bytes) of the
ADDITIONAL CDB field
40
SAS Clause 9
COMMAND Frames Information Unit
• CDB and Additional CDB Bytes– Together contain the Command
Descriptor/Date Block of the command– Commands are defined in SCSI Command
Standards • SPC, SBC, SSC, etc...
41
SAS Clause 9
CDB Example
• Sample CDB – READ (16) Command– Covered in more detail in the SCSI
presentation
42
SAS Clause 9
TASK Frames
• Type: 0x16• Information Unit: Task
Management Function• Originator: SSP Initiator only• Information Unit Size: 28 bytes
43
SAS Clause 9
TASK Frames Information Unit
• Logical Unit Number– Refers to the LUN on the DUT this
Task Management Function will be routed too
44
SAS Clause 9
TASK Frames Information Unit
• Task Management Function– Specifies the type of task
management function
45
SAS Clause 9
TASK Frames Information Unit• Task Management Function
– 01h: ABORT TASK: Instructs the LUN to abort the task with the IPTT specified in the TASK Frame
– 02: ABORT TASK SET: Instructions the LUN to abort the task set associated with the ITPT specified in the TASK Frame
46
SAS Clause 9
TASK Frames Information Unit• Task Management Function
– 04h: CLEAR TASK SET: Instructs the LUN to clear the task set associated with the IPTT specified in the TASK Frame.
– 08h: LOGICAL UNIT RESET: Instructs the LUN to perform a reset
– 10h: I_T NEXUS RESET: Instructs the LUN to perform an I_T NEXUS RESET
47
SAS Clause 9
TASK Frames Information Unit• Task Management Function
– 20h: Reserved– 40h: CLEAR ACA: Instructs the LUN to
perform a Clear ACA function– 80h: QUERY TASK: Instructs the LUN
to perform a QUERY TASK function on the command associated with the IPTT specified in the TASK Frame
48
SAS Clause 9
RESPONSE Frames
• Type: 0x07• Information Unit: Response
Information Unit• Originator: SSP Target only• Information Unit Size: 24 to 1024
bytes
49
SAS Clause 9
RESPONSE Frames Information Unit
• Status Qualifier & Status– Format Determined by DATAPRES
Field
50
SAS Clause 9
RESPONSE Frames Information Unit
• Datapres– Specifies if no data, response data, or
sense data is contained in this frame
51
SAS Clause 9
REPSONSE Frames Information Unit
• Sense Data Length– Length of any Sense Data contained
within this frame
52
SAS Clause 9
REPSONSE Frames Information Unit
• Response Data Length– Length of any Response Data
contained within this frame
53
SAS Clause 9
REPSONSE Frames Information Unit
• Response Data– # of bytes specified of Response Data
• Sense Data– # of bytes specified of Sense Data
54
SAS Clause 9
Response Data Field
• Additional Response Information– Contains information regarding
certain Task Management Functions as defined in SAM-4
– Reserved otherwise
55
SAS Clause 9
Response Data Field
56
SAS Clause 9
Sequences of SSP Frames
• Test Unit Ready and other Non-Data Commands
57
SAS Clause 9
Sequences of SSP Frames
• Write Command Sequence
58
SAS Clause 9
Sequences of SSP Frames
• Read Command Sequence
59
SAS Clause 9
Sequences of SSP Frames
• Task management sequence
60
SAS Clause 9
SAS Mapping
61
SAS Clause 9
SAS Mapping
• All SCSI Commands are located in the CDB and Additional CDB Bytes Field of a SSP Command Frame
62
SAS Clause 9
Sample Write Command Sequence
• Initiator sends command to target• Target returns XFER_RDY• Initiator send data to target• Target returns response when data
transmission is complete
63
SAS Clause 9
Sample Read Command Sequence
• Initiator sends command to target• Target immediately begins transmitting
data• Target transmits response frame when
data transmission is complete
64
SAS Clause 9
Presentation Topics
• Transport Layer Protocols– SSP
• Frame Types• Sequencing• Command Mapping• Sample Traces
– SMP– STP
65
SAS Clause 9
SMP Frames
• SMP Frame Type– Specifies the frame type– 40h – SMP Request – SMP Initiators Only– 41h – SMP Response – SMP Targets Only
66
SAS Clause 9
Major SMP Functions• REPORT GENERAL
– Returns general information
• DISCOVER– Returns specific information about
specified phy
• REPORT ZONE PERMISSION TABLE– Returns zone permission descriptors
requested (Current, Shadow, Saved, or Default)
67
SAS Clause 9
Major SMP Functions• CONFIGURE ZONE PERMISSION
TABLE– Allows the configuration of the zone
permission descriptors
– ENABLE DISABLE ZONING– Turns zoning on or off on at the
expander device
– REPORT BROADCAST– Returns the Broadcast Descriptors
specified
68
SAS Clause 9
Major SMP Functions• ZONED BROADCAST
– Instructs the zoning device to broadcast the specified zones
69
SAS Clause 9
SMP Frames
• Frame Dependent Bytes– Varies based on the Type of SMP Frame– Size always divisible by 4 bytes for CRC
calculation
• CRC for error detection
70
SAS Clause 9
Presentation Topics
• Transport Layer Protocols– SSP
• Frame Types• Sequencing• Command Mapping• Sample Traces
– SMP– STP
71
SAS Clause 9
STP Connections• SATA Devices transmit an initial FIS
upon a Link Reset– Expander Devices will not forward this FIS to
STP Initiators– Create a Block of Shadow Registers to hold
this information which is reported upon request from an SMP Initiator using the SMP REPORT PHY SATA function
– All Communication between STP Initiators and SATA Devices is done via rules established in the SATA Standard
– SATA BIST Requests shall not be forwarded to SATA Targets by Expander Devices