diff options
author | jim-p <jimp@pfsense.org> | 2010-06-28 15:56:53 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2010-06-28 15:59:03 -0400 |
commit | 9e3aadbe90cb6708fa86471fef45be5965bea602 (patch) | |
tree | 77a987f5a3c82469d4763781274dbeb28aab52d4 /etc | |
parent | e88ace756391836878b81e8b4fb88776d96872c5 (diff) | |
download | pfsense-9e3aadbe90cb6708fa86471fef45be5965bea602.zip pfsense-9e3aadbe90cb6708fa86471fef45be5965bea602.tar.gz |
Add checkboxes to disable TSO and LRO since some drivers will misbehave with them set. Resolves #703
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/pfsense-utils.inc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc index e3eef07..8d2e894 100644 --- a/etc/inc/pfsense-utils.inc +++ b/etc/inc/pfsense-utils.inc @@ -215,6 +215,27 @@ function enable_hardware_offloading($interface) { pfSense_interface_capabilities($interface, IFCAP_RXCSUM); } + if($config['system']['disablesegmentationoffloading']) { + if (isset($options['encaps']['tso4'])) + pfSense_interface_capabilities($interface, -IFCAP_TSO); + if (isset($options['encaps']['tso6'])) + pfSense_interface_capabilities($interface, -IFCAP_TSO); + } else { + if (isset($options['caps']['tso4'])) + pfSense_interface_capabilities($interface, IFCAP_TSO); + if (isset($options['caps']['tso6'])) + pfSense_interface_capabilities($interface, IFCAP_TSO); + } + + if($config['system']['disablelargereceiveoffloading']) { + if (isset($options['encaps']['lro'])) + pfSense_interface_capabilities($interface, -IFCAP_LRO); + } else { + if (isset($options['caps']['lro'])) + pfSense_interface_capabilities($interface, IFCAP_LRO); + } + + /* if the NIC supports polling *AND* it is enabled in the GUI */ $polling = isset($config['system']['polling']); if($polling && isset($options['caps']['polling'])) |