UNH InterOperability Lab
description
Transcript of UNH InterOperability Lab
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