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