The SMP target port actions in SAS expander.

Shinji Ugawa ugawa-sxa at necst.nec.co.jp
Tue Mar 9 21:49:48 PST 2004


* From the T10 Reflector (t10 at t10.org), posted by:
* Shinji Ugawa <ugawa-sxa at necst.nec.co.jp>
*
Hi all,

  The SMP target port in SAS expander is an important unit for the SMP 
functions processing (i.e. it processes the PHY CONTROL function for any
other PHYs in the expander). I thought that the expander should not hang 
its SMP target port.
  So, I have two questions about the SMP target port actions in SAS 
expander device.


//////////
/// Question-1. 
//
  What should the SMP target port do, if the SMP target port never receives
  a SMP_REQUEST frame when that port has connected with a SMP initiator port?

  method-aa.
    The SMP target port is forever waiting to receive the SMP_REQUEST frame
    or BREAK primitive from SMP initiator port.
  method-bb. 
    When the SMP target port detects a timeout of any Time Limit timer, it 
    sends a BREAK primitive to SMP initiator port. But it is difficult to 
    decide that an initial value of this timer is dealt with any SAS domains.


//////////
/// Question-2.
//
  The SSP port discards a received frame which has illegal SOF-EOF sequence,
  in SAS-1.1 spec 7.16.7.7. And I thought that the SMP target port should 
  discard a received SMP_REQUEST frame which has illegal SOF-EOF sequence.

  Example-1.
    1st. The SMP initiator port has transmitted a SMP_REQUEST frame. Please 
         refer to the figure below. The SMP target port receives two
         SMP_REQUEST frames because the first idle dword has changed to the
         SOF primitive for bit errors (i.e. The SMP_REQUEST(BBB) is 
         incomplete for the targe port).
              ------> time
    initiator [idle dw][idle dw][idle dw][idle dw]-[SOF]-[SMP_REQUEST(AAA)]-[EOF]...
       target [__SOF__][_____SMP_REQUEST(BBB)____]-[SOF]-[SMP_REQUEST(AAA)]-[EOF]...

    method-aa.
         The SMP target port should process the complete SMP_REQUEST(AAA)
         frame and it should discard the SMP_REQUEST(BBB) frame.
    method-bb.
         The SMP target port should transmit a BREAK primitive for the 
         breaking a SMP connection when it has received the SMP_REQUEST(BBB)
         frame.

    What do you think about both methods?


  Example-2.
    I believe that the SMP initiator port transmits a single SMP_REQUEST
    frame. What if the SMP target port has received double SMP_REQUEST 
    frames in once SMP connection by something accident?
              ------> time
       target [SOF]-[SMP_REQUEST(1st)]-[EOF]-[SOF]-[SMP_REQUEST(2nd)]-[EOF]...

    I thought that the SMP target port should be processing the first
    SMP_REQUEST frame and it will discard the second SMP_REQUEST frame.
    Otherwise, the SMP target port should transmit a BREAK primitive 
    for the breaking the SMP connection.


-- Thanks
Shinji Ugawa
NEC System Technologies, Ltd.
  External:(+81)89-947-7901
*
* 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