diff options
author | Chris Buechler <cmb@pfsense.org> | 2009-09-25 19:49:09 -0400 |
---|---|---|
committer | Chris Buechler <cmb@pfsense.org> | 2009-09-25 19:49:09 -0400 |
commit | 369fb26331d05781e42835776c8c31105f57399c (patch) | |
tree | 883a0afe0a99c0acfc338547a73e0dd62cc901e5 /etc | |
parent | 8182c57e41d9efd5e9f7d2da670ce7b2b80802bd (diff) | |
download | pfsense-369fb26331d05781e42835776c8c31105f57399c.zip pfsense-369fb26331d05781e42835776c8c31105f57399c.tar.gz |
Disable checksum offloading on wired interfaces when a wireless interface is bridged.
Resolves #88
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/interfaces.inc | 14 |
1 files changed, 13 insertions, 1 deletions
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 |