]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[smsc75xx] Add driver for SMSC/Microchip LAN75xx USB Ethernet NICs
authorMichael Brown <mcb30@ipxe.org>
Tue, 10 Mar 2015 14:37:18 +0000 (14:37 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 11 Mar 2015 13:38:38 +0000 (13:38 +0000)
commit69062bbc2174f748454126cb09442d75b59ba72d
treec743952ddbde192baf585d0fae18a41a55f563b2
parent6ad02e78bb85f5afebe3d897bc629b26f89abc17
[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>
src/drivers/net/smsc75xx.c [new file with mode: 0644]
src/drivers/net/smsc75xx.h [new file with mode: 0644]
src/include/ipxe/errfile.h