Date: Sun, 5 Dec 2010 16:05:21 -0500 (EST) From: Mike Andrews <mandrews@bit0.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/152853: tftpd (and likely other udp traffic) fails over em(4) unless rxcsum/txcsum disabled Message-ID: <20101205210521.BF3A914B27@bat.int.bit0.com> Resent-Message-ID: <201012052130.oB5LU8dn080921@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 152853 >Category: kern >Synopsis: tftpd (and likely other udp traffic) fails over em(4) unless rxcsum/txcsum disabled >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Dec 05 21:30:08 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Mike Andrews >Release: FreeBSD 8.2-PRERELEASE amd64 >Organization: Fark, Inc >Environment: System: FreeBSD bat.int.bit0.com 8.2-PRERELEASE FreeBSD 8.2-PRERELEASE #20: Sat Nov 27 23:00:34 EST 2010 mandrews@bat.int.bit0.com:/usr/obj/usr/src/sys/BIT0 amd64 >Description: The tftp server in FreeBSD fails to send any packets -- when a write request comes in (in this example, from a Cisco IOS router), tcpdump shows that FreeBSD receives the write reqeust but then its tftp server never sends a single packet out in response, and the transfer never starts: Dec 5 14:22:29 <ftp.info> bat tftpd[453]: Filename: 'moat-confg' Dec 5 14:22:29 <ftp.info> bat tftpd[453]: Mode: 'octet' Dec 5 14:22:29 <ftp.info> bat tftpd[453]: 172.27.0.1: write request for //moat-confg: success Dec 5 14:22:34 <ftp.warn> bat tftpd[453]: Timeout #0 on DATA block 1 Dec 5 14:22:39 <ftp.warn> bat tftpd[453]: Timeout #1 on DATA block 1 Dec 5 14:22:44 <ftp.warn> bat tftpd[453]: Timeout #2 on DATA block 1 Dec 5 14:22:49 <ftp.warn> bat tftpd[453]: Timeout #3 on DATA block 1 Dec 5 14:22:54 <ftp.warn> bat tftpd[453]: Timeout #4 on DATA block 1 Dec 5 14:22:59 <ftp.err> bat tftpd[453]: Timeout #5 on DATA block 1, giving up On a complete whim, I tried disabling TSO4, TXCSUM, and RXCSUM on the NIC, and to my surprise I found that disabling the latter two made the problem disappear. TSO had no effect -- as you'd expect since tftp is UDP based :) I have not checked to see if this is em(4) specific or what other UDP based services it might affect. It appears that DNS on the same system works fine... >How-To-Repeat: On a system with an Intel gigabit NIC, start a tftp server (via inetd) and try to write a file to it. >Fix: ifconfig em0 -rxcsum -txcsum (It doesn't appear you can turn just one or the other off.) >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101205210521.BF3A914B27>