From owner-freebsd-bugs@FreeBSD.ORG Wed Dec 28 21:10:08 2005 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1749A16A41F for ; Wed, 28 Dec 2005 21:10:08 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id B3F5243D5F for ; Wed, 28 Dec 2005 21:10:07 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id jBSLA7As042244 for ; Wed, 28 Dec 2005 21:10:07 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id jBSLA7N6042243; Wed, 28 Dec 2005 21:10:07 GMT (envelope-from gnats) Date: Wed, 28 Dec 2005 21:10:07 GMT Message-Id: <200512282110.jBSLA7N6042243@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Ralf S. Engelschall" Cc: Subject: Re: kern/91032: invalid IP checksum under if_bridge(4)+em(4) combination X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: "Ralf S. Engelschall" List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Dec 2005 21:10:08 -0000 The following reply was made to PR kern/91032; it has been noted by GNATS. From: "Ralf S. Engelschall" To: Gleb Smirnoff Cc: FreeBSD-gnats-submit@FreeBSD.org Subject: Re: kern/91032: invalid IP checksum under if_bridge(4)+em(4) combination Date: Wed, 28 Dec 2005 22:05:24 +0100 On Wed, Dec 28, 2005, Gleb Smirnoff wrote: > On Wed, Dec 28, 2005 at 09:45:38PM +0100, Ralf S. Engelschall wrote: > R> Another workaround would have been to put into the box a 100baseTX NIC > R> driven by fxp(4) instead of the 1000baseTX NIC driven by em(4). Because > R> the combination of if_bridge(4) and fxp(4) I've running fine with mostly > R> the same configuration on another server. > > Not all fxp(4) cards can do checksum offloading. If you put the one > that can't, then the seconds workaround doesn't differ from the first > one. An problem ins't em specific in this case probably. Yes, of course. I think we actually have two problems here: first if_bridge(4) unconditionally clears the checksum, although I see no reason for doing this in case of non-generated and just forwarded packets. And the second problem (that the checksum is not re-calculated) is more em(4) related or at least related to the packet flow through the system in case a network device is attached to if_bridge(4). > So important questions is: does the fxp card you used can do offloading? According to the ifconfig(8) output on that box and the fact that I do not see any "TXCSUM" in the "options", I would say this particular card is not capable of doing "checksum offloading": | net0: flags=8943 mtu 1500 | options=8 | inet 172.16.120.130 netmask 0xffff0000 broadcast 172.16.255.255 | ether 00:07:e9:d9:4d:43 | media: Ethernet autoselect (100baseTX ) | status: active Ok, then it is clear why the bridging works fine on this FreeBSD 6.0-STABLE box while it was broken (and required the "ifconfig em0 -txcsum") on the other box. -- rse@FreeBSD.org Ralf S. Engelschall FreeBSD.org/~rse rse@engelschall.com FreeBSD committer www.engelschall.com