On Tue, 2014-02-04 at 12:17 +0530, santosh kulkarni wrote: > Hi Nab, > > On Tuesday 04 February 2014 02:20 AM, Nicholas A. Bellinger wrote: > > Hi Santosh, > > > > On Mon, 2014-02-03 at 17:50 +0530, santosh kulkarni wrote: > >> Hi, > >> > >> Am currently working on a case where we are sending few WRITE10 PDUs and > >> we are getting R2Ts and responding each of them with a DataOut PDU.Now > >> we are receiving a Positive response for the DataOuts. > >> We are sending a SNACK of type1(status) with begrun and runlength set to > >> 0x0. > >> Now the target throws in the following dmesg. > >> > >> > >> Got Status SNACK Begrun: 0x00000000, RunLength: 0x00000000 but already > >> got ExpStatSN: 0x9a9ccd6b on CID: 0. > >> > >> The behavior seems to be different from what RFC states which expects > >> the Response PDU of all DataOuts to be resent.(entire run) > >> > >> RFC states > >> > >> > >> 10.16.6. BegRun > >> > >> The DataSN, R2TSN, or StatSN of the first PDU whose retransmission is > >> requested (Data/R2T and Status SNACK), or the next expected DataSN > >> (DataACK SNACK). > >> > >> "BegRun 0 when used in conjunction with RunLength 0 means resend all > >> unacknowledged Data-In, R2T or Response PDUs." > >> > >> BegRun MUST be 0 for a R-Data SNACK. > >> > >> > >> Is LIO behaving accordingly? > >> > >> > > So the original check that your hitting is to ensure that the initiator > > is not sending BegRun for StatSNs that have already been explicitly > > acknowledged by ExpStatSN during the normal course of operation. > > > > However as stated in 10.16.6 above, the BegRun = 0 value in the context > > of SNACK TYPE 1 is requesting to re-send unacknowledged response PDUs > > starting from the connection's current ExpStatSN value. > > > > Care to test the following patch..? > Tested the below LIO patch. Results are below. > > 1) With patch. > Only last Response PDU is being sent. *Not the whole run.*.(Probably > 'cause the last response is never explicitly acknowledged by the next > WRITE ) > But SNACK type 1 begrun=0x0 and runlength=0x0 expects the entire > response Run to be resent. > However, we are not getting dmesg error. > > I'll need a wireshark dump for more context to determine what the 'whole run' is supposed to be. With the patch in place, logic in iscsit_handle_status_snack() attempts to send a recovery status for everything between the last received ExpStatSN in an incoming request, and the last StatSN sent in a outgoing response. >From your perspective, what is the whole run supposed to entail..? --nab -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html