Subject: iscsi : iscsi specific CHECK CONDITIONS.

From: Santosh Rao <[email-masked]>
Date: Wed, 30 Jan 2002 20:10:17 -0800

All,

iSCSI specifies that SCSI layer CHECK CONDITIONs be used to indicate
some iscsi specific transport errors such as :

- Unexpected unsolicited data  SK=Aborted Cmd. ASC = 0x0c. ASCQ = 0x0c  
- Not enough unsolicited data  SK=Aborted Cmd. ASC = 0x0c. ASCQ =
0x0d.       
- Protocol Service CRC         SK=Aborted Cmd. ASC = 0x47 ASCQ = 0x05  
- SNACK rejected               SK=Aborted Cmd. ASC = 0x11 ASCQ = 0x13   

However, SPC-2 mandates certain restrictions on when the CHECK CONDITION
scsi status may be used for a REPORT LUNs :
"The device server shall return a CHECK CONDITION only when it is unable
to return the requested LUN inventory" Section 7.19

How should an iscsi target indicate a protocol service crc or SNACK
rejected for a REPORT LUNs command ? Would a CHECK CONDITION generated
as above render iscsi targets SPC-2 non-compliant and break any
functionality w.r.t REPORT LUNs ?

Regards,
Santosh

-- 
##################################
Santosh Rao
Software Design Engineer,
HP-UX iSCSI Driver Team,
Hewlett Packard, Cupertino.
email : [email-masked]
Phone : 408-447-3751
##################################

---

From: "Elliott, Robert" <[email-masked]>
Date: Thu, 31 Jan 2002 09:56:29 -0600

> -----Original Message-----
> From: Santosh Rao [mailto:[email-masked]]
> Sent: Wednesday, January 30, 2002 10:10 PM
> To: IPS Reflector; T10 Reflector
> Subject: iscsi : iscsi specific CHECK CONDITIONS.
> 
> iSCSI specifies that SCSI layer CHECK CONDITIONs be used to 
> indicate some iscsi specific transport errors such as :
> 
> - Not enough unsolicited data  
>    SK=Aborted Cmd. ASC = 0x0c. ASCQ = 0x0d.       
> - Protocol Service CRC         
> However, SPC-2 mandates certain restrictions on when the 
> CHECK CONDITION scsi status may be used for a REPORT LUNs:
> "The device server shall return a CHECK CONDITION only when 
> it is unable to return the requested LUN inventory" 
> Section 7.19
> 
> How should an iscsi target indicate a protocol service crc
> or SNACK rejected for a REPORT LUNs command ? Would a 
> CHECK CONDITION generated as above render iscsi targets 
> SPC-2 non-compliant and break any functionality w.r.t 
> REPORT LUNs ?

If you get such errors in the service delivery subsystem, 
the REPORT LUNS is not "able to return the requested 
LUN inventory." The command must be considered unsuccessful 
if a CRC error occurs, the data length is suspect, etc.
I don't think there is any conflict in the wording today.

INQUIRY is worded exactly the same way as REPORT LUNS.

Perhaps the REQUEST SENSE wording is clearer and should
be applied to REPORT LUNS and INQUIRY:

  The device server shall return CHECK CONDITION 
  status for a REQUEST SENSE command only to report 
  exception conditions specific to the command itself. 
  For example:
  a) An invalid field value is detected in the CDB;
  b) An unrecovered parity error is detected by 
     the service delivery subsystem; or
  c) A target malfunction that prevents return of 
     the sense data.

---
Rob Elliott, Compaq Server Storage
[email-masked]