summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/errfile.h
diff options
context:
space:
mode:
authorMichael Brown2015-03-10 15:37:18 +0100
committerMichael Brown2015-03-11 14:38:38 +0100
commit69062bbc2174f748454126cb09442d75b59ba72d (patch)
treec743952ddbde192baf585d0fae18a41a55f563b2 /src/include/ipxe/errfile.h
parent[mii] Add generic mii_check_link() function (diff)
downloadipxe-69062bbc2174f748454126cb09442d75b59ba72d.tar.gz
ipxe-69062bbc2174f748454126cb09442d75b59ba72d.tar.xz
ipxe-69062bbc2174f748454126cb09442d75b59ba72d.zip
[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>
Diffstat (limited to 'src/include/ipxe/errfile.h')
-rw-r--r--src/include/ipxe/errfile.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/include/ipxe/errfile.h b/src/include/ipxe/errfile.h
index a3b68327..b096861e 100644
--- a/src/include/ipxe/errfile.h
+++ b/src/include/ipxe/errfile.h
@@ -172,6 +172,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#define ERRFILE_ata ( ERRFILE_DRIVER | 0x00740000 )
#define ERRFILE_srp ( ERRFILE_DRIVER | 0x00750000 )
#define ERRFILE_qib7322 ( ERRFILE_DRIVER | 0x00760000 )
+#define ERRFILE_smsc75xx ( ERRFILE_DRIVER | 0x00770000 )
#define ERRFILE_aoe ( ERRFILE_NET | 0x00000000 )
#define ERRFILE_arp ( ERRFILE_NET | 0x00010000 )