opengnsys_ipxe/src
Michael Brown 69062bbc21 [smsc75xx] Add driver for SMSC/Microchip LAN75xx USB Ethernet NICs
This driver is functional but any downloads via a TCP-based protocol
tend to perform poorly.  The 1Gbps Ethernet line rate is substantially
higher than the 480Mbps (in practice around 280Mbps) provided by USB2,
and the device has only 32kB of internal buffer memory.  Our 256kB TCP
receive window therefore rapidly overflows the RX FIFO, leading to
multiple dropped packets (usually within the same TCP window) and
hence a low overall throughput.

Reducing the TCP window size so that the RX FIFO does not overflow
greatly increases throughput, but is not a general-purpose solution.

Further investigation is required to determine how other OSes
(e.g. Linux) cope with this scenario.  It is possible that
implementing TCP SACK would provide some benefit.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2015-03-11 13:38:38 +00:00
..
arch [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-05 11:40:13 +00:00
bin Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
config [build] Fix the REQUIRE_SYMBOL mechanism 2015-03-05 00:59:38 +00:00
core [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-05 11:40:13 +00:00
crypto [build] Fix the REQUIRE_SYMBOL mechanism 2015-03-05 00:59:38 +00:00
doc [build] Rename gPXE to iPXE 2010-04-19 23:43:39 +01:00
drivers [smsc75xx] Add driver for SMSC/Microchip LAN75xx USB Ethernet NICs 2015-03-11 13:38:38 +00:00
hci [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-05 11:40:13 +00:00
image [legal] Relicense files under GPL2_OR_LATER_OR_UBDL 2015-03-02 16:35:29 +00:00
include [smsc75xx] Add driver for SMSC/Microchip LAN75xx USB Ethernet NICs 2015-03-11 13:38:38 +00:00
interface [linux] Rewrite headers included in all builds 2015-03-05 02:43:37 +00:00
libgcc [build] Mark __intel_new_proc_init with __libgcc rather than cdecl 2009-08-03 15:56:10 +01:00
net [http] Support MD5-sess Digest authentication 2015-03-09 13:45:09 +00:00
tests [build] Fix the REQUIRE_SYMBOL mechanism 2015-03-05 00:59:38 +00:00
usr [build] Fix the REQUIRE_SYMBOL mechanism 2015-03-05 00:59:38 +00:00
util [build] Fix the REQUIRE_SYMBOL mechanism 2015-03-05 00:59:38 +00:00
.gitignore [build] Add support for local configuration files 2010-03-26 19:07:22 +00:00
Makefile [usb] Add basic support for USB hubs 2015-02-03 12:19:52 +00:00
Makefile.housekeeping [build] Remove obsolete and unused portions of config.c 2015-03-04 14:49:43 +00:00
doxygen.cfg [build] Remove PACKED macro 2010-05-29 23:49:47 +01:00