Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 01 Jul 2008 07:35:39 -0700
From:      Sam Leffler <sam@freebsd.org>
To:        Andrew Thompson <thompsa@freebsd.org>
Cc:        Pyun YongHyeon <pyunyh@gmail.com>, freebsd-net@freebsd.org, Stefan Lambrev <stefan.lambrev@moneybookers.com>
Subject:   Re: if_bridge turns off checksum offload of members?
Message-ID:  <486A40BB.70006@freebsd.org>
In-Reply-To: <20080701140550.GA379@citylink.fud.org.nz>
References:  <4868A34C.6030304@moneybookers.com>	<20080630101629.GD79537@cdnetworks.co.kr>	<20080701012531.GA92392@citylink.fud.org.nz>	<4869FE2E.4070805@moneybookers.com> <20080701140550.GA379@citylink.fud.org.nz>

next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Thompson wrote:
> On Tue, Jul 01, 2008 at 12:51:42PM +0300, Stefan Lambrev wrote:
>   
>> Hi,
>>
>> May be a stupid questions, but:
>>
>> 1) There are zero matches of IFCAP_TOE in kernel sources .. there is not 
>> support for TOE in 7.0, but may be this is work in progress for 8-current?
>>     
>
> Yes, its in current only. Just remove IFCAP_TOE.
>
>   
>> 2) In #define BRIDGE_IFCAPS_MASK (IFCAP_TOE|IFCAP_TSO|IFCAP_TXCSUM) - TOE 
>> should be repleaced with RXCSUM or just removed?
>> 3) Why RX is never checked? In my case this doesn't matter because em turn 
>> off both TX and RX if only one is disabled, but probably there is a 
>> hardware,
>> that can separate them e.g. RX disabled while TX enabled?
>>     
>
> Rx does not matter, whatever isnt offloaded in hardware is just computed
> locally such as checking the cksum. Its Tx that messes up the bridge, if
> a outgoing packet is generated locally on an interface that has Tx
> offloading, it may actaully be sent out a different bridge member that
> does not have that capability. This would cause it to be sent with an
> invalid checksum for instance.
>
> The bridge used to just disable Tx offloading but this patch you are
> testing makes sure each feature is supported by all members.
>
>   
>> 4) I'm not sure why bridge should not work with two interfaces one of which 
>> support TX and the other does not? At least if I turn on checksum offload
>> only on one of the interfaces the bridge is still working ...
>>
>> Andrew Thompson wrote:
>>
>> - cut -
>>     
>>> This patch should do that, are you able to test it Stefan?
>>>
>>>
>>> cheers,
>>> Andrew
>>>   
>>>       
>> P.S. I saw very good results with netisr2 on a kernel from p4 before few 
>> months .. are there any patches flying around so I can test them with 
>> 7-STABLE? :)
>>
>>     

This issue has come up before.  Handling checksum offload in the bridge 
for devices that are not capable is not a big deal and is important for 
performance.  TSO likewise should be done but we're missing a generic 
TSO support routine to do that (I believe, netbsd has one and linux has 
a GSO mechanism).

    Sam




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?486A40BB.70006>