SAS SMP frame type errors

Elliott, Robert (Server Storage) Elliott at hp.com
Sat Feb 1 13:49:25 PST 2003


* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert (Server Storage)" <Elliott at hp.com>
*
How about:
	Receivers shall not check the contents of the SMP FRAME TYPE
field.

This way, the SMP target won't have to return a misnamed UNKNOWN SMP
FUNCTION or SMP FUNCTION FAILED response, and we don't have to
add a new UNKNOWN SMP FRAME TYPE response or create a new transport
layer error case.


Currently the SMP target link layer sends BREAK and the SMP initiator 
link layer indicates a failure in these cases:
a) CRC error
b) number of data dwords < 2 (i.e. none, or just the CRC)
c) number of data dwords > 258

Otherwise, they pass the incoming frame to the transport layer;
the target link layer then waits for a Tx Frame.  The transport 
layers just pass incoming frames to the management application 
layer.


I plan to make several corrections to the SMP link and transport
layers:
1. the SMP link layers show parameters being passed between states
of the same state machine (Request Break and Request Close), which
makes no sense (especially when there is no transition in the
same direction). This was broken in sas-r02c to sas-r02d. 

2. the target management layer should be able to request a BREAK
(in any target transport layer or link layer state)

3. the initiator management layer should be able to request
a BREAK (in any initiator transport layer or link layer state,
not just the last state)

4. have the target link layer send BREAK if there are 2 dwords
(just the SMP FRAME TYPE and CRC).  It will not check the contents
of the first dword.

5. require the transport and application layers ignore the 
SMP FRAME TYPE field.

-- 
Rob Elliott, elliott at hp.com 
Hewlett-Packard Industry Standard Server Storage Advanced Technology 
https://ecardfile.com/id/RobElliott 


-----Original Message-----
From: Elliott, Robert (Server Storage) 
Sent: Thursday, January 30, 2003 5:21 PM
To: t10 at t10.org
Subject: SAS SMP frame type errors


The SMP frame type field in the first byte of an SMP frame (see 9.4 in
sas-r03b) contains either: 
40h SMP_REQUEST    (initiator port to target port) 
41h SMP_RESPONSE  (target port to initiator port) 
What if the SMP target port receives a frame where this field is not set
to 40h? 
One letter ballot comments suggests that an SMP_RESPONSE shall be
returned with a function result of SMP FUNCTION FAILED.  I think that
simply discarding the frame is better.  That's what SSP specifies for
unknown frame types.  The same rule would apply to SMP initiators
receiving bad frames.
One slight problem with discarding, though: the SMP link layer on the
target side only accepts one frame then expects to send something back.
It won't know the SMP transport layer has chosen to discard the frame
and plans no reply.  We could require the SMP transport layer to break
the connection if it discards the frame so we don't leave the SMP link
layer waiting for a frame to send.  
-- 
Rob Elliott, elliott at hp.com 
Hewlett-Packard Industry Standard Server Storage Advanced Technology 
https://ecardfile.com/id/RobElliott 
*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org




More information about the T10 mailing list