[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Framing Discussion
Dear Mr. Cheng, You can't fit data to tags if you have lost an iSCSI data header. However you could (in theory) place them in anonymous buffers and tag them later (once you have recovered the header). In this case you either copy them or have the storage-end do some scather-gather on the fragments you have placed in anonymous buffers. Julo "Y P Cheng" <email@example.com> on 21/12/2000 18:21:12 Please respond to "Y P Cheng" <firstname.lastname@example.org> To: "'Ips@Ece. Cmu. Edu'" <email@example.com> cc: Subject: RE: Framing Discussion > I agree with David. For the sake of clarity however I would like to add > that even for those cases in which buffers are anonymous (like > some appliance fileservers or disk controllers) the data that comes > from the wire are not necessarily entire storage data blocks and have > to be placed somewhere within a storage buffer. That particular > placement can be made itself anonymous only by "placing" a > "scather-gather" burden on the storage end of the wire > and that is either expensive or outright impossible. > > Julo > Julo, You lost me on the very last statement. For appliance fileservers or disk controllers, there is typically an small RTOS running. The anonymous non-storage data are received into a small bucket, say 256 bytes, which is passed back to application for processing. These types of data are known as control data like mode-select and login, etc. The component interacting with wire is given a number of these small buckets. There is no scatter-gather burden on the storage end. In the context of TCP/iSCSI implementation, the wire interacting component needs to sort out between solicited and unsolicited iSCSI PDUs. For solicited PDU, it places the data based on target task tags. For unsolicited control data, it places them into these small buckets. For unsolicited disk block data -- like streamed writes -- it places the data into anonymous buffers prepared by the application. Scatter/gather handling is a part of the "wire interacting component" design. No extra burden. In fact, the HBA for an iSCSI initiator or target is specialized in move data to destination buffers quickly. Its main task is parsing the TCP/IP segments. This is the way I understand how an appliance fileserver or disk controller works. Either big companies have total different designs or I must have misunderstood your statement. Y.P. Cheng, Connectcom Solutions.
Last updated: Tue Sep 04 01:06:01 2001
6315 messages in chronological order