From 69d6401b0875cc8ff6d50fb2ea720c05a4cb6a57 Mon Sep 17 00:00:00 2001 From: Bob Gilligan Date: Tue, 17 Nov 2009 15:36:29 -0800 Subject: Workaround 5100: Disable TSO on NICs using the igb driver. Packets forwarded by NICs using the igb driver are corrupted when TSO is enabled. It appears that a train of back-to-back packets from the same flow coalesced by LRO are not correctly re-generated by TSO. This workaround prevents the problem by disabling TSO. This problem does not occur in the Kenwood code base, so this workaround should NOT be merged forward to Kenwood. --- etc/init.d/vyatta-no-tso | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 etc/init.d/vyatta-no-tso (limited to 'etc') diff --git a/etc/init.d/vyatta-no-tso b/etc/init.d/vyatta-no-tso new file mode 100644 index 0000000..d5d320a --- /dev/null +++ b/etc/init.d/vyatta-no-tso @@ -0,0 +1,36 @@ +# +# Startup script to disable TSO on ethernet interfaces using +# the "igb" driver. This works-around a performance issue +# with this driver in Jenner. Details in: +# +# https://bugzilla.vyatta.com/show_bug.cgi?id=5100 +# + +ACTION=$1 + +start() +{ + for i in /sys/class/net/eth* ; do + if [ -d $i ]; then + ifname=${i#/sys/class/net/} + driver=`/usr/sbin/ethtool -i $ifname | grep ^driver | awk '{print $2}'` + if [ "$driver" = "igb" ]; then + logger -t "vyatta-no-tso" -p local0.warning "Disabling TSO on $ifname" + /usr/sbin/ethtool -K $ifname tso off + fi + fi + done +} + +case "$ACTION" in + start) + start + ;; + *) + echo "usage: $0 start" + exit 1 + ;; +esac + +exit 0 + -- cgit v1.2.3