[Stgt-devel] iSCSI digest offload

Greg Law glaw
Fri Jun 29 15:29:32 CEST 2007

Hi list,

I posted the following yesterday to iet-devel, and they suggested I'd be 
better off talking to you guys, as this is the place for "hot iSCSI 
target" developments.

My company, Solarflare, makes 10gig NICs.  We don't do full TCP offload, 
but we do have support on the card for iSCSI digest offload. Essentially 
this means that if your packets are conveniently formatted, you can have 
iSCSI digests with a very small performance penalty (in terms of both 
throughput and CPU hit).  I say "if your packets are conveniently 
formatted" because the NIC can only offload the digest if an Ethernet 
frame contains exactly one iSCSI PDU in exactly one TCP segment. 
However, providing you use a MaxRecvDataSegmentLength of <= MSS (less 
headers) our experiments show this is almost always the case.

We've implemented our own iSCSI initiator stack on Linux as a 
proof-of-concept, and it gives the performance wins we'd hoped for.  Now 
we want to patch the open-source stacks (target and initiator) to take 
advantage of this feature.  We will also need to patch the Linux TCP 
stack so that (a) we can pass meta data down (to tell the NIC to compute 
and insert digests on tx) and pass meta data back up (to tell the iSCSI 
stack whether the digests computed ok on rx); and (b) to make sure we 
can handle edge-cases such as routing changes etc.

We expect the patch to be quite small - both the TCP and iSCSI parts. We 
plan to do the target first, and follow up with the initiator.

I'd be really interested to hear the list's views on this.  Have you 
heard of anything similar before?  Does it sound like a patch that you 
might be interested in merging (of course, I'm not looking for a 
definitive answer here, just a "could be interesting, providing ....".)

Also, do the tgt and open-iscsi share any code for the iSCSI protocol 
processing?  If not, are there any plans to do so?


Greg Law               glaw at solarflare.com              +44 1223 518 040

More information about the stgt mailing list