From owner-cvs-all Fri Jun 15 20:38:54 2001 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id DC88F37B40B; Fri, 15 Jun 2001 20:38:44 -0700 (PDT) (envelope-from wpaul@FreeBSD.org) Received: (from wpaul@localhost) by freefall.freebsd.org (8.11.3/8.11.3) id f5G3ciW02406; Fri, 15 Jun 2001 20:38:44 -0700 (PDT) (envelope-from wpaul) Message-Id: <200106160338.f5G3ciW02406@freefall.freebsd.org> From: Bill Paul Date: Fri, 15 Jun 2001 20:38:44 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/dev/nge if_nge.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG wpaul 2001/06/15 20:38:44 PDT Modified files: sys/dev/nge if_nge.c Log: Fix the last serious bug I've been chasing: The DP83820/83821 has an undocumented limitation concerning jumbo frames and TX checksum offload. In order for TX checksum offload to work, the outgoing frame must fit entirely within the TX FIFO, which is 8192 bytes in size. This isn't a problem, until you try to send a 9000-byte frame, at which point the TX DMA engine goes to sleep. It turns out that if you want to send a jumbo frame larger than 8170 bytes (8192 - 64), you have to turn off the TX checksum support. As a workaround, I changed nge_ioctl() so that if the user selects an MTU larger than 8152 bytes, we clear the if_hwassist flags. The flags will be set again once the MTU is reduced to a smaller value. Revision Changes Path 1.11 +43 -25 src/sys/dev/nge/if_nge.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message