DIF 2 SBC Spec AppTag/RefTag Checking Ambiguity Questions
gerry.houlder at seagate.com
Fri Feb 11 15:11:03 PST 2011
Formatted message: <a href="http://www.t10.org/cgi-bin/ac.pl?t=r&f=r1102110_f.htm">HTML-formatted message</a>
The choice is whether the Application Tag disables PI checking or not (i.e.,
by being set to 0xFFFF) is based on the Application Tag value seen in the
data stream. If that value is not 0xFFFF, then the value is checked against
the tag value in the CDB; if they don't compare then an error will result.
Therefore, cases 1 and 3 will disable PI checking because the value read
|from the media is 0xFFFF; the CDB value is immaterial.
Cases 2 and 4 don't fit your pre-conditions (i.e., the precondition says all
LBAs on the media have Application Tag set to 0xFFFF). If these cases did
occur, then PI checking will occur and case 2 will definitely result in
error due to Application Tag mismatch.
Comparable cases can be made for WRITE commands. The Application Tag value
in the write data stream will control whether checking is disabled or not
(0xFFFF disables) and if it is not disabled then the value is checked
against the value supplied in the CDB.
On Mon, Feb 7, 2011 at 6:57 PM, scott taggart <taggart at taggarts.org> wrote:
> * From the T10 Reflector (t10 at t10.org), posted by:
> * scott taggart <taggart at taggarts.org>
> Assume: drive formatted DIF2, ATO=1
> Suppose an LBA has either never been written or was written with a non-32
> byte CDB, thus the LBA will have App & Ref Tags = 0xFFFF and 0xFFFFFFFF
> Now, suppose a read32 is issued to the that LBA (assume app_mask != 0). We
> have 4 cases for app tags in the CDB and device:
> Case 1: CDB App Tag = 0xFFFF, Media App Tag = 0xFFFF
> Case 2: CDB App Tag = 0xFFFF, Media App Tag != 0xFFFF
> Case 3: CDB App Tag != 0xFFFF, Media App Tag = 0xFFFF
> Case 4: CDB App Tag != 0xFFFF, Media App Tag != 0xFFFF
> My questions concern cases 1, 2 & 3.
> 1) For cases 1 & 3, the media has APP=0xFFFF. Are any protection tags
> (APP/REF) ever checked against the CDB? For a non-read 32, they are not but
> it is unclear if, for read32, the 0xFFFF media values disable checking CBD
> checking. If they are checked, how is a software system supposed to "know"
> that an LBA may have been previously written by a non-32 bye write command
> (and thus may have a 0xFFFF tag)? Does any of this imply that mixing
> byte writes with 32-byte reads is not possible or is very difficult unless
> system can track which LBAs have been written?
> 2) For cases 1 & 2, where the CDB app tags are 0xFFFF does this also
> disable the checking of teh CBD tags against the media values (seems like
> the spec does not imply this), regardless of the media's value? If the CDB
> APP tag =0xFFFF is a valid test value, and yet it disables media checking,
> does this mean the CDB values are still compared to the media values or
> If there are sections of the SBC that clarify this, I would appreciate
> * 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