On 02/02/2010 09:57 PM, Jack Z wrote:
Hi all,

In the source code of ver 2.0.871 there's a struct

struct iscsi_segment {
        unsigned char           *data;
        unsigned int            size;
        unsigned int            copied;
        unsigned int            total_size;
        unsigned int            total_copied;

        ......

        iscsi_segment_done_fn_t *done;
};

My understanding is that "copied" is how many bytes are sent out in
the last round and "total_copied" is an accumulative value of how many
bytes have been sent out. Is that correct?

And what do "size" and "total_size" mean respectively?

The segment represents the header or data segment that needs to be sent. That segment has a total_size which is all the bytes that need to be sent/recvd for it to be completely sent. The segment->size is what we are currently trying to send/recv for that segment. So we could have a data segment of 128K (so we want to send/recv 128K bytes), but we end up sending that down a page at a time to the net layer. So segment->totoal_size would be 128K and segment->size would be 4K (page size on x86 would be 4K).



Thank you very much! Any help would be highly appreciated.


What are you working on btw?

--
You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to open-is...@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.

Reply via email to