[stgt] [PATCH] SBC READ6/10/12/16: Add handling of residual overflow/underflow.
FUJITA Tomonori
fujita.tomonori at lab.ntt.co.jp
Sun Mar 24 23:05:04 CET 2013
On Sun, 24 Mar 2013 07:57:38 -0700
Ronnie Sahlberg <ronniesahlberg at gmail.com> wrote:
> Version 2:
> Simplify the patch based on Alexanders comments.
>
> This patch adds support to return overflow/underflow residuals
> for the cases where the transport layer (iSCSI, ...) specifies
> an EDTL that is not matching the SCSI transdfer length.
>
> Additionally, in case of residual underflow it will also clamp the size of
> returned DATA-IN to the amount of data that was actually read and not the
> EDTL that was requested.
>
> This is from RFC 3720, 10.4.1 :
> bit 6 - (U) set for Residual Underflow. In this case, the Residual
> Count indicates the number of bytes that were not transferred out
> of the number of bytes that were expected to be transferred. For
> a bidirectional operation, the Residual Count contains the
> residual for the write operation.
>
> I have added a specific test for this condition to the testsute in
> libiscsi :
>
> ./bin/iscsi-test-cu -t "TestRead10.testRead10Residuals" \
> iscsi://127.0.0.1/iqn.ronnie.test/1 -V
>
> Suite: TestRead10
> Test: testRead10Residuals ...
> Test invalid READ10 commands
> Block size is 512
> Try reading one block but with iSCSI expected transfer length==0
> Verify that the target returned SUCCESS
> Verify residual overflow flag is set
> Verify we got 512 bytes of residual overflow
> Try reading one block but with iSCSI expected transfer length==10000
> Verify that the target returned SUCCESS
> Verify we got one whole block back from the target
> Verify residual underflow flag is set
> Verify we got 9488 bytes of residual underflow
> Try reading one block but with iSCSI expected transfer length==200
> Verify that the target returned SUCCESS
> Verify we got 200 bytes back from the target
> Verify residual overflow flag is set
> Verify we got 312 bytes of residual overflow
> Try reading two blocks but iSCSI expected transfer length==512 (==one bl
> Verify that the target returned SUCCESS
> Verify we got one whole block back from the target
> Verify residual overflow flag is set
> Verify we got one block of residual overflow
> passed
>
> --Run Summary: Type Total Ran Passed Failed
> suites 1 1 n/a 0
> tests 1 1 1 0
> asserts 24 24 24 0
>
> Signed-off-by: Ronnie Sahlberg <ronniesahlberg at gmail.com>
> ---
> usr/sbc.c | 11 +++++++++++
> 1 files changed, 11 insertions(+), 0 deletions(-)
Applied, thanks guys!
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
More information about the stgt
mailing list