summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2010-06-28 15:56:53 -0400
committerjim-p <jimp@pfsense.org>2010-06-28 15:59:03 -0400
commit9e3aadbe90cb6708fa86471fef45be5965bea602 (patch)
tree77a987f5a3c82469d4763781274dbeb28aab52d4 /etc
parente88ace756391836878b81e8b4fb88776d96872c5 (diff)
downloadpfsense-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.inc21
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']))
OpenPOWER on IntegriCloud