On Sun, 24 Mar 2013 07:57:38 -0700 Ronnie Sahlberg <ronniesahlberg@xxxxxxxxx> 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@xxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html