Subject: RE: iSCSI: Use of the A bit

From: Eddy Quicksall <[email-masked]>
Date: Wed, 13 Mar 2002 15:02:38 -0500

Then my only concern is that the initiator may ignore the A bit if it deems
that the bit is being set aggressively.
 
If it ignored it, then the target would be stalled waiting for he ACK.
 
Eddy

-----Original Message-----
From: BURBRIDGE,MATTHEW (HP-UnitedKingdom,ex2)
[mailto:[email-masked]]
Sent: Wednesday, March 13, 2002 1:39 PM
To: 'Eddy Quicksall'; ips@ece. cmu. edu (E-mail)
Subject: RE: iSCSI: Use of the A bit
Importance: High

Eddy,
 
The target is quite within its rights to use the A bit when at recovery
level 0.  If the session is re-established due to recovery 7.11.4 then the
relevant command is aborted anyway and so there is no reason to keep hold of
the data any way: With recovery level 0 there is no recovery mechanism that
requires the target to keep the data.  Therefore the A bit is redundant when
the recovery level is 0.
 
The spec says that the initiator MUST issue a SNACK if the A bit is set.
However, the MaxBurstSize restriction is there to prevent the initiator from
having to send a SNACK on every PDU in the case where a target inadvertently
sets the A bit in (for example) every data in PDU. The target may set the A
bit more often than the MaxBurstSize but it should not expect a SNACK more
often than this.
 
Matthew Burbridge

-----Original Message-----
From: Eddy Quicksall [mailto:[email-masked]]
Sent: Wednesday, March 13, 2002 3:12 PM
To: ips@ece. cmu. edu (E-mail)
Subject: iSCSI: Use of the A bit

Here is a case that I want to go over and if there is not already a
solution, I think a refinement to the A bit could solve it.
 
The problem is that a target (perhaps an iSCSI disk drive) does not have
enough memory to transfer the full READ request so it must read from the
medium as much as it can, transmit that, when that transmission is known to
be good, read the next bunch, transmit that and so on.
 
The problem we have is that the target must keep the buffer around until the
transfer has been "ack'd" via ExpStatSN. But that status can't be sent
because all of the requested data has not been sent. So the target would
have to refuse to do the command.
 
I was going to use the A bit for this thinking it would force the initiator
to give an "ack" but our current wording does not make this a sure fire
thing:
 
1) The initiator may not want to run at ErrorRecoveryLevel 1.
2) The initiator may ignore the A bit if it deems that the bit is being set
aggressively.
3) The target may set the A bit no more frequently than MaxBurstSize.
 
Comments?

mailto:[email-masked] <mailto:[email-masked]>

---

From: "Rod Harrison" <[email-masked]>
Date: Wed, 13 Mar 2002 21:05:51 -0000

Eddy,

	You were right first time, in draft 11 section 2.5.1.5 paragraph 5
and 9.7.2 state that the A-bit is only supported if ErrorRecoveryLevel
is 1 or higher.

	- Rod

-----Original Message-----
From: [email-masked] [mailto:[email-masked]]On Behalf Of
Eddy Quicksall
Sent: Wednesday, March 13, 2002 8:03 PM
To: BURBRIDGE,MATTHEW (HP-UnitedKingdom,ex2); ips@ece. cmu. edu
(E-mail)
Subject: RE: iSCSI: Use of the A bit

Then my only concern is that the initiator may ignore the A bit if it
deems that the bit is being set aggressively.

Eddy
-----Original Message-----

Eddy,

The target is quite within its rights to use the A bit when at
recovery level 0.  If the session is re-established due to recovery
7.11.4 then the relevant command is aborted anyway and so there is no
reason to keep hold of the data any way: With recovery level 0 there
is no recovery mechanism that requires the target to keep the data.
Therefore the A bit is redundant when the recovery level is 0.

The spec says that the initiator MUST issue a SNACK if the A bit is
set.  However, the MaxBurstSize restriction is there to prevent the
initiator from having to send a SNACK on every PDU in the case where a
target inadvertently sets the A bit in (for example) every data in
PDU. The target may set the A bit more often than the MaxBurstSize but
it should not expect a SNACK more often than this.

Matthew Burbridge
-----Original Message-----
From: Eddy Quicksall [mailto:[email-masked]]
Sent: Wednesday, March 13, 2002 3:12 PM
To: ips@ece. cmu. edu (E-mail)
Subject: iSCSI: Use of the A bit

The problem is that a target (perhaps an iSCSI disk drive) does not
have enough memory to transfer the full READ request so it must read
from the medium as much as it can, transmit that, when that
transmission is known to be good, read the next bunch, transmit that
and so on.

The problem we have is that the target must keep the buffer around
until the transfer has been "ack'd" via ExpStatSN. But that status
can't be sent because all of the requested data has not been sent. So
the target would have to refuse to do the command.

I was going to use the A bit for this thinking it would force the
initiator to give an "ack" but our current wording does not make this
a sure fire thing:

1) The initiator may not want to run at ErrorRecoveryLevel 1.
2) The initiator may ignore the A bit if it deems that the bit is
being set aggressively.
3) The target may set the A bit no more frequently than MaxBurstSize.

Comments?

mailto:[email-masked]