Mike Christie wrote: > The nice thing about iscsi is that the RFC is only a 200 pages (less if > you do not count the indexes and graphs). For libfc, I have been trying > to figure out what is going wrong with the abort transmission and I > think I found in the depths of fc-fs. > > In fc_fcp.c, we seem to only call exch_done if sp->seq_ptr is set. > However in fc_seq_exch_abort we seem to want to start a new sequence for > the abort. I think if there is an open sequence are we supposed to send > the abort with the SEQ_ID and SEQ_CNT like in 13.3.2.3.2 of fc-ls: > > If the last Sequence is open and the Sequence Initiator of the last > Sequence transmits the ABTS frame, > the SEQ_ID of this ABTS frame shall match the SEQ_ID of the last > Sequence transmitted by the last > Sequence Initiator. The SEQ_CNT of the ABTS frame shall be one greater > than the SEQ_CNT of the last > Data frame transmitted for this last Sequence. > > Instead it looks like we use the next SEQ_ID and the SEQ_CNT looks like > it will be 0. > > So I think the protocol bits are messed up, but I think we have a bug in > the code in the implementation. Because we are trying to use a new > sequence by reusing ep->seq, it seems like if ep->seq was being used for > a seq then we are going to hit the warn on because the state is not yet > completed:
I mean it looks like if fc_fcp sees sp->seq_ptr, then the ep->seq is being used by the sequence that was for the scsi_cmnd's exchange so we cannot reuse it at that time. _______________________________________________ devel mailing list [email protected] http://www.open-fcoe.org/mailman/listinfo/devel
