if_bridge turns off checksum offload of members?

Stefan Lambrev stefan.lambrev at moneybookers.com
Tue Jul 1 08:40:51 UTC 2008



Andrew Thompson wrote:
> On Mon, Jun 30, 2008 at 07:16:29PM +0900, Pyun YongHyeon wrote:
>   
>> On Mon, Jun 30, 2008 at 12:11:40PM +0300, Stefan Lambrev wrote:
>>  > Greetings,
>>  > 
>>  > I just noticed, that when I add em network card to bridge the checksum 
>>  > offload is turned off.
>>  > I even put in my rc.conf:
>>  > ifconfig_em0="rxcsum up"
>>  > ifconfig_em1="rxcsum up"
>>  > but after reboot both em0 and em1 have this feature disabled.
>>  > 
>>  > Is this expected behavior? Should I care about csum in bridge mode?
>>  > I noticed that enabling checksum offload manually improve things little btw.
>>  > 
>>
>> AFAIK this is intended one, bridge(4) turns off Tx side checksum
>> offload by default. I think disabling Tx checksum offload is
>> required as not all members of a bridge may be able to do checksum
>> offload. The same is true for TSO but it seems that bridge(4)
>> doesn't disable it.
>> If all members of bridge have the same hardware capability I think
>> bridge(4) may not need to disable Tx side hardware assistance. I
>> guess bridge(4) can scan every interface capabilities in a member
>> and can decide what hardware assistance can be activated instead of
>> blindly turning off Tx side hardware assistance.
>>     
>
> This patch should do that, are you able to test it Stefan?
>   
===> if_bridge (all)
cc -O2 -fno-strict-aliasing -pipe -march=nocona  -D_KERNEL -DKLD_MODULE 
-std=c99 -nostdinc   -DHAVE_KERNEL_OPTION_HEADERS -include 
/usr/obj/usr/src/sys/CORE/opt_global.h -I. -I@ -I@/contrib/altq 
-finline-limit=8000 --param inline-unit-growth=100 --param 
large-function-growth=1000 -fno-common -g -fno-omit-frame-pointer 
-I/usr/obj/usr/src/sys/CORE -mcmodel=kernel -mno-red-zone  -mfpmath=387 
-mno-sse -mno-sse2 -mno-mmx -mno-3dnow  -msoft-float 
-fno-asynchronous-unwind-tables -ffreestanding -Wall -Wredundant-decls 
-Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes 
-Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign 
-fformat-extensions -c /usr/src/sys/modules/if_bridge/../../net/if_bridge.c
/usr/src/sys/modules/if_bridge/../../net/if_bridge.c: In function 
'bridge_capabilities':
/usr/src/sys/modules/if_bridge/../../net/if_bridge.c:787: error: 
'IFCAP_TOE' undeclared (first use in this function)
/usr/src/sys/modules/if_bridge/../../net/if_bridge.c:787: error: (Each 
undeclared identifier is reported only once
/usr/src/sys/modules/if_bridge/../../net/if_bridge.c:787: error: for 
each function it appears in.)
*** Error code 1
1 error
*** Error code 2
1 error
*** Error code 2
1 error
*** Error code 2
1 error
*** Error code 2
1 error

I'm building without "-j5" to see if the error message will change :)

I'm using 7-STABLE from Jun 27
>
> cheers,
> Andrew
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"

-- 

Best Wishes,
Stefan Lambrev
ICQ# 24134177



More information about the freebsd-net mailing list