ERROR primitive

Elliott, Robert (Server Storage) Elliott at
Thu Feb 13 15:31:50 PST 2003

* From the T10 Reflector (t10 at, posted by:
* "Elliott, Robert (Server Storage)" <Elliott at>
I don't think the proposed sentence quite covers it.

SP_DWS needs to treat it as a valid dword (it isn't a negative with
regards to dword synchronization).  

(Aside: The state machine that implements the "invalid dword count"
reported via the log page or SMP must not count it.  If we assume that
SP_DWS does that counting, I think it works correctly.)

The expander device XL link layer state machine treats it as a special
value (forwards it as an ERROR or converts it to SATA_ERROR [the latter
is missing in sas-r03]).

The SAS device-specific link layer state machines (SL, SSP, STP, and
SMP) and the SL_IR state machine (which could be in a SAS device or an
expander device) could be told to ignore it.  Or, they could be told to
treat it like an "invalid dword."  The former depends on CRC coverage
while the latter would guarantee an error is detected.

SATA will catch an invalid dword in a frame regardless of whether a CRC
error is detected.  SATA 1.0 specification "on detection of a
disparity error or other 8b/10b coding violation during the receipt of a
frame, the Link Layer will retain this error information, and at the
close of the received frame the Link Layer shall provide the negative
acknowledgement, R_ERR, ... and notify the Transport Layer of the

It seems prudent for SAS to treat ERROR (which is just a placeholder for
an invalid dword) the same.

Rob Elliott, elliott at
Hewlett-Packard Industry Standard Server Storage Advanced Technology

> -----Original Message-----
> From: George Penokie [mailto:gop at] 
> Sent: Thursday, February 13, 2003 3:19 PM
> To: t10; Elliott, Robert (Server Storage)
> Cc: Adam M Espeseth
> Subject: ERROR primitive
> * From the T10 Reflector (t10 at, posted by:
> * George Penokie <gop at>
> *
> Rob,
> I don't see anything in the SAS spec that specifies what the 
> link layer should do when an ERROR primitive is received 
> within a frame.  I think its implied that the ERROR is 
> ignored, and the frame will fail the CRC check and will be 
> NAKed anyway.  It might be a good idea to include something
> like:
> ERROR is sent by an expander device when it is forwarding 
> dwords from a SAS or SATA link to a SAS link and it receives 
> an invalid dword.  << ERROR shall be ignored by initiator 
> ports and target ports. >>
> Bye for now,
> George Penokie
> Dept 2C6  114-2 N212
> E-Mail:    gop at
> Internal:  553-5208
> External: 507-253-5208   FAX: 507-253-2880
> *
> * For T10 Reflector information, send a message with
> * 'info t10' (no quotes) in the message body to majordomo at
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at

More information about the T10 mailing list