Subject: [storm] What if a SCSI Response PDU has GOOD status and a Data Segment?

From: Ralph Weber <[email-masked]>
Date: Tue, 24 Nov 2009 18:14:07 -0600

One of the questions that T10 has been wrestling with lately
concerns a case where their equivalent of the iSCSI Response
PDU contains a status other than CHECK CONDITION and sense
data in a Data Segment.

What will initiators do if handed one of these beasts?

Note: GOOD is the current favorite doppelganger for CHECK
CONDITION, but BUSY et al. should be considered too when
thinking about what initiators might do.

The current belief in T10 is that initiators most likely
will ignore any Data Segment found in a Response PDU with
GOOD status. This is based on the notion that initiators
do not squander the extra cycles needed to validate entire
format of a Response PDU.

What do the implementers of iSCSI initiators think?

All the best,

.Ralph

---

From: <[email-masked]>
Date: Wed, 25 Nov 2009 12:57:48 -0500

[WG chair hat OFF]

Here's a little more background.  There's an open issue in T10
about whether sending sense data with GOOD status can just be
done, vs. whether the target ought to know in advance that
the initiator is prepared for this.  

In keeping with the IETF advice to be "conservative in what
is sent and liberal in what is accepted", if T10 decides not
to address this at the SCSI level, then it'll be reasonable
to define an iSCSI negotiation key to indicate that the
initiator is prepared to accept (in the sense of "tolerate",
i.e., won't cause an error or worse, rather than any promise
to "process" or "understand") sense data for GOOD status.

In addition (as Ralph suggests), it may make sense (pun intended)
to define this key to cover all status values, not just GOOD,
even though only GOOD is currently under discussion in T10.

Thanks,
--David

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] 
> On Behalf Of Ralph Weber
> Sent: Tuesday, November 24, 2009 7:14 PM
> To: [email-masked]
> Subject: [storm] What if a SCSI Response PDU has GOOD status 
> and a DataSegment?
> 
> _______________________________________________
> storm mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/storm
> 
>

---

From: Julian Satran <[email-masked]>
Date: Thu, 26 Nov 2009 11:21:43 +0200

David,

The key is a good idea ... but not a great one :-)
As you certainly know there are many storage controllers (targets) on the market that support
iSCSI, FCP, iSER and even several at the same time (for different sessions usually as we and T10 never seriously considered I_T nexi on different transports).

Their SCSI layer (in the ones I know about) is completely transport oblivious so the transport is not really the layer you want to introduce status+sense for statuses other than bad (unit check).

At the SCSI level it may make a lot of sense (no pun intended either).  iSCSI will support it (without any key negotiation being required) as iSCSI does not prohibit it :-). I don't recall exactly what FCP had to say on this but I recall vaguely that there is no explicit interdiction. However some silicon vendors might be "surprised" if it happens.

Regards,
Julo

---

From: Suzanne Morgan <[email-masked]>
Date: Mon, 30 Nov 2009 21:05:32 +0000

Ralph,

To answer your earlier question re: behavior of iSCSI initiators 
If the SCSI STATUS is not SCSISTAT_GOOD, Microsoft iSCSI initiator considers the data bytes included with the iSCSI PDU as sense data.  Sense data is subsequently passed to the SCSI layer with the exception of unit attention/bus reset.

Regards,

Suzanne

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Julian Satran
Sent: Thursday, November 26, 2009 1:22 AM
To: [email-masked]
Cc: [email-masked]
Subject: Re: [storm] What if a SCSI Response PDU has GOOD status and a DataSegment?

David,

Regards,
Julo

---

From: <[email-masked]>
Date: Mon, 30 Nov 2009 17:19:29 -0500

Suzanne,

That was part of the question, e.g., what happens if the iSCSI
initiator sees sense data with RESERVATION CONFLICT status as
opposed to CHECK CONDITION status?

The other part of the question is what happens if the Response
PDU comes back with GOOD status *and* sense data?  That's the
immediate change T10 is looking at - returning sense data
with GOOD status (a new sense key value will initially be used).

Thanks,
--David

> On Behalf Of Suzanne Morgan
> Sent: Monday, November 30, 2009 4:06 PM
> To: Julian Satran; Black, David
> Cc: [email-masked]
> Subject: Re: [storm] What if a SCSI Response PDU has GOOD 
> status anda DataSegment?
> 
> Ralph,
> 
> If the SCSI STATUS is not SCSISTAT_GOOD, Microsoft iSCSI 
> initiator considers the data bytes included with the iSCSI 
> PDU as sense data.  Sense data is subsequently passed to the 
> SCSI layer with the exception of unit attention/bus reset.
> 
> Regards,
> 
> Suzanne
> 
> On Behalf Of Julian Satran
> iSCSI, FCP, iSER and even several at the same time (for 
> different sessions usually as we and T10 never seriously 
> considered I_T nexi on different transports).
> 
> Their SCSI layer (in the ones I know about) is completely 
> transport oblivious so the transport is not really the layer 
> you want to introduce status+sense for statuses other than 
> bad (unit check).
> 
> At the SCSI level it may make a lot of sense (no pun intended 
> either).  iSCSI will support it (without any key negotiation 
> being required) as iSCSI does not prohibit it :-). I don't 
> recall exactly what FCP had to say on this but I recall 
> vaguely that there is no explicit interdiction. However some 
> silicon vendors might be "surprised" if it happens.
> 
> Regards,
> Julo
> 
>

---

From: "Mallikarjun Chadalapaka" <[email-masked]>
Date: Mon, 30 Nov 2009 18:49:34 -0800

IMHO, I think the right forum to make a call on this is T10.  Let's leave it
to T10 to define the proper behavior.  If T10 decides that "GOOD with
DataSegment" can simply be done without any new SCSI requirements, I think
we'll have two options.

*Option 1*	
iSCSI should state the following in the main text and elaborate as an
implementer's advice.

Require that "GOOD with DataSegment" status be correctly handled by *iSCSI*
implementations - i.e. although it doesn't imply for higher layers in the
stack.  Next revision of consolidated iSCSI draft should simply make it
clear in that a DataSegment is allowed with any non-CHECK CONDITION status
(RFC 3720 does not prohibit it either).

*Option 2*  
Define a new iSCSI negotiation key to explicitly allow "GOOD with
DataSegment" (or more generally, non-CHECK CONDITION) at the iSCSI level.
   
If T10 OTOH defines new SCSI-isms to formally sanction this case (e.g. mode
pages, commands etc.), iSCSI doesn't need to change anything although still
an iSCSI implementer's note wouldn't hurt.

My preferred option is #1 - i.e. I like us not to add an iSCSI negotiation
key for a SCSI feature.  It's something we have avoided doing so far by
design.

Thanks.

Mallikarjun

> To: [email-masked]@emc.com
> Cc: [email-masked]
> iSCSI, FCP, iSER and even several at the same time (for different
> sessions usually as we and T10 never seriously considered I_T nexi on
> different transports).
> 
> Their SCSI layer (in the ones I know about) is completely transport
> oblivious so the transport is not really the layer you want to
> introduce status+sense for statuses other than bad (unit check).
> 
> At the SCSI level it may make a lot of sense (no pun intended either).
> iSCSI will support it (without any key negotiation being required) as
> iSCSI does not prohibit it :-). I don't recall exactly what FCP had to
> say on this but I recall vaguely that there is no explicit
> interdiction. However some silicon vendors might be "surprised" if it
> happens.
> 
> Regards,
> Julo
> 
>