I think SMP software developers would be happier with a
full-fledged VERSION field, distinguishing between both major (SAS-2, SAS-3,
...) and minor revisions (SAS-2 revision 10, revision 11, ...). We could
use the SPC-4 version descriptor values, but that format requires 2
bytes.
SAS-1.1 targets were neither required to check nor
prohibited from checking byte 3 (which was labeled Reserved). There was no
SMP response specifically defined to report a non-zero value in a reserved
field, so they must resort to the generic SMP FUNCTION FAILED response if they
care. If the request frame is larger than SAS-1.1, they report INVALID
REQUEST FRAME LENGTH - the unclear case is when the request frame is the correct
SAS-1.1 length, but byte 3 contains a nonzero value.
SAS-2 targets are required to check the value in byte 3,
since it is now a defined REQUEST LENGTH field. A request length
of 00h means the length is as defined in SAS-1.1; non-zero values mean it's
grown longer (or shorter). As of sas2r11, if the request frame is shorter
than the target would like, it assumes all the missing fields are set to
zero.
The IDENTIFY address
frame doesn't seem the best place for this kind of application layer
version information; that frame is generally used for lower-level information
needed to communicate to the target port (you usually retrieve it from the
attached expander, or from initiator vendor-specific registers if directly
attached).
I'd prefer to put this
information into the REPORT GENERAL response within the SAS-1.1 length
of 6 dwords (e.g., in byte 8, or within bytes 20-27). Software
can send REPORT GENERAL with the REQUEST LENGTH field set to 00h to retrieve
those 6 dwords, then start using non-zero REQUEST LENGTH values if the target
reports that it supports SAS-2.
Some time ago a REQUEST LENGTH
field was added into the SMP functions. However, there was no way placed into
SAS-2 to for an initiator to determine if an SMP device supports this SAS-2
request length field (verses the SAS 1.1 with a value of zero in that
byte).
To resolve this I will be
proposing a bit in the IDENTIFY address frame that will indicate if the SMP
device supports a length field in the SMP function. Any comments?
Bye for now,
George Penokie
Dept 9A8 030-3 A410
E-Mail:
gop@us.ibm.com
Internal: 553-5208
External:
507-253-5208yes