kern/152853: tftpd (and likely other udp traffic) fails over em(4)
unless rxcsum/txcsum disabled
Mike Andrews
mandrews at bit0.com
Sun Dec 5 21:30:09 UTC 2010
>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 at 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:
More information about the freebsd-bugs
mailing list