Re: TSO / LSO
Re: TSO / LSO
- Subject: Re: TSO / LSO
- From: Adi Masputra <email@hidden>
- Date: Wed, 3 Jan 2007 10:28:44 -0800
On Jan 3, 2007, at 6:44 AM, Andrew Gallatin wrote:
There are 3 problems with the above:
1) The NIC does not advertise any sort of MTU. The stack just sends
down the biggest frame it can (ip_len is 16 bits, so the max is 64K-1
for IPv4..). The NIC is responsible for splitting this into as many
packets as required.
2) The NIC is implicitly informed of the path MTU by the TCP stack
tagging the frame with the TCP MSS (m->m_pkthdr.tso_segsize in FreeBSD
terms). The packets a NIC generates are limited to the MSS + the size
of the template TCP/IP + link-layer headers.
I'm not disagreeing with these points, and I personally know the
benefits
of TCP LSO having involved with it in the past. But I think Terry
brought
some valid points, especially those related to driver capability and the
possibility of an interface filter interposed between IP and the driver.
IIRC, in the TCP LSO case the hardware would generate the IP+TCP headers
based on the template; e.g. the IP ID field and friends get generated
by an entity other than the network stack. This may become an issue
with some interface filters, especially those which splice or re-injects
the packets especially when it's not LSO-aware and expects the TCP
segment to be no larger than the SMSS.
So issues like this needs to be taken into account too; things are much
easier for statically configured filters (as in STREAMS's autopush
scheme) but it gets complicated when filters can be loaded/unloaded
at will. (I'm not saying this can't be solved; in fact, it is solvable
but not that straight-forward.)
Adi
3) There is no need to buffer up an entire window on the NIC. All you
really need to buffer on the NIC is one frame's worth of data (so that
you can properly send the frame on the wire).
Drew
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden