From 369fb26331d05781e42835776c8c31105f57399c Mon Sep 17 00:00:00 2001 From: Chris Buechler Date: Fri, 25 Sep 2009 19:49:09 -0400 Subject: Disable checksum offloading on wired interfaces when a wireless interface is bridged. Resolves #88 --- etc/inc/interfaces.inc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 768255f..e0814d2 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -1687,6 +1687,18 @@ function setup_bridge() { foreach ($bridgearray[$x] as $bridgeif) { mwexec("/sbin/ifconfig {$bridgeif} up"); fwrite($fd, "/sbin/ifconfig {$bridgeif} up \n"); + if($wirelessbridge) { + // disable checksum offloading when a wireless interface is bridged + // but only do so on wired interfaces, wireless don't have checksum offload + // redmine ticket #88 + $friendlyifname = convert_real_interface_to_friendly_interface_name($bridgeif); + if(!is_interface_wireless($friendlyifname)) { + mwexec("/sbin/ifconfig {$bridgeif} -txcsum"); + mwexec("/sbin/ifconfig {$bridgeif} -rxcsum"); + fwrite($fd, "/sbin/ifconfig {$bridgeif} -txcsum \n"); + fwrite($fd, "/sbin/ifconfig {$bridgeif} -rxcsum \n"); + } + } } // setup the bridge @@ -1762,4 +1774,4 @@ function get_interface_mac($interface) { return $mac; } -?> +?> \ No newline at end of file -- cgit v1.1