site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com 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. 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 (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/adi%40apple.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... This email sent to site_archiver@lists.apple.com 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. This email sent to adi@apple.com smime.p7s
participants (1)
-
Adi Masputra