ACA text correction in SSA-SCSI2

Bob Snively Bob.Snively at eng.sun.com
Thu Jan 5 22:01:22 PST 1995


John Scheible writes:


If a Target receives an ACA I/O process while it does not have an Auto
Contingent Allegiance condition for the same nexus, then it returns
Check Condition status.  The sense data contains a sense key of 'Illegal
Request' and an additional sense code of 'Invalid Message Error'.

I ask:

Once an ACA I/O process is responded to by a Check Condition,
then there is in fact an ACA condition present and all other 
commands in the same string (that probably also have the ACA
attribute set) will then be accepted.  Now we have a case where
the invalid string of commands becomes validated and will be
executed.  Ideas?

John Scheible writes:


1) Add the following to the first sentence "(ACA control bit=0
   processing is not supported)".


I point out:

SAM, rev 16, section 6.1.2 says:

The NACA bit is used to control the rules for handling an ACA
condition cuased by the command....  All logical units shall
implement support for the NACA value of zero and may support the
NACA value of one.  The ability to support a NACA value of one
is indicated in standard INQUIRY data.

SAM, rev 16, section 6.6.1.1 further says:

If the ACA bit was set to zero, the SCSI-2 contingent
allegiance rules shall apply.

Seems to me that this is not consistent with John's 
requested modification.

Furthermore, I have not read the latest and greatest revision
of the SSA documents, but I seem to remember that auto-sense
was provided in the FCP and SBP manner, which should render
ACA a much less critical function.



Bob Snively
Sun Microsystems Computer Company
Mail Stop UMPK 12-204
2550 Garcia Avenue
Mountain View
California 94043-1100

Phone:		(415) 786-6694
FAX:		(415) 786-6458
e-mail:		bob.snively at Eng.sun.com


----- Begin Included Message -----

>From ssa-owner at dt.wdc.com Fri Jan  6 07:49 PST 1995
Date: Fri, 6 Jan 95 07:33:38 PST
To: ssa at dt.wdc.com
Subject: ACA text correction in SSA-SCSI2
Sender: ssa-owner at dt.wdc.com
X-Message-Number: 31
Precedence: bulk
Content-Type: text
Content-Length: 3533
X-Lines: 77

   The ACA description in the SSA-SCSI and SSA-SCS2 documents is in
error.  The original text is shown below.  After examining SAM rev 15, I
have the following suggestions.

1) Add the following to the first sentence "(ACA control bit=0
   processing is not supported)".

2) Change the last sentence of the first paragraph from "This would
   result in the Auto Contingent Allegiance Condition being reset
   inadvertently." to "If the SCSI-2 concept of Contingent Allegiance
   were implemented, these additional commands would reset the
   Contingent Allegiance inadvertently."(SSA-SCSI did not say Auto)

3) Delete paragraph 4 (Sense data is cleared...retrieve the sense data),
   as it is incorrect.

Thanks,
John Scheible
scheible at vnet.ibm.com

======================VV=ORIGINAL (ERRONEOUS) TEXT=VV===================
3.1.2. Auto Contingent Allegiance Condition

In SSA-SCSI2 the SCSI-2 Contingent Allegiance Condition is replaced by
the SCSI-3 Auto Contingent Allegiance Condition.  This is necessary
because an SSA Initiator can send further SCSI_command messages prior to
receiving the Check Condition status for a previous command.  This would
result in the Auto Contingent Allegiance Condition being reset
inadvertently.

When a Target sends Check Condition status to an Initiator it creates an
Auto Contingent Allegiance condition for that Initiator and Logical Unit
or Target Routine.  The Auto Contingent Allegiance condition causes the
Target to either suspend or purge queued I/O processes for that nexus,
depending on the value of the QErr bit in Mode Sense/Select parameter
page 0Ah.

The Auto Contingent Allegiance condition also causes subsequent I/O
processes received for the same nexus to be rejected with Auto
Contingent Allegiance Active status (30h), unless the Queue_ctl field
specifies Auto Contingent Allegiance.  Such an I/O process will be
referred to as an ACA I/O process.  ACA I/O processes are executed
normally during an Auto Contingent Allegiance condition.

Sense data is cleared after completion of the first command of an ACA
I/O process for the nexus that has the Auto Contingent Allegiance
condition.  Typically an Initiator will issue an ACA Request Sense
command first to retrieve the sense data.

Only one ACA I/O process can be active for a given nexus at a time.  If
a Target receives an ACA I/O process while it has another active ACA I/O
process for the same nexus then it rejects the second I/O process with
Auto Contingent Allegiance Active status.

If a Target receives an ACA I/O process while it does not have an Auto
Contingent Allegiance condition for the same nexus, then it returns
Check Condition status.  The sense data contains a sense key of 'Illegal
Request' and an additional sense code of 'Invalid Message Error'.

The Auto Contingent Allegiance condition is reset by any of the
following:

 *  Clear_ACA_condition message
 *  Device_reset message
 *  SCSI Hard Reset conditions (including Total/Absolute reset)
 *  Internal Target reset

After the Auto Contingent Allegiance condition is reset by a
Clear_ACA_condition message, the Target resumes processing suspended I/O
processes for that nexus.

The Auto Contingent Allegiance condition is associated with a particular
Initiator and Logical Unit or Target routine.  It does not affect other
I/O processes.  Multiple Auto Contingent Allegiance conditions can exist
for different Initiators, Logical Units and Target routines at the same
time.
======================AA=ORIGINAL (ERRONEOUS) TEXT=AA===================


----- End Included Message -----





More information about the T10 mailing list