summaryrefslogtreecommitdiffstats
path: root/etc/inc/interfaces.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2010-08-19 12:45:14 +0000
committerErmal <eri@pfsense.org>2010-08-19 12:45:14 +0000
commit9a4c3eed1841f2ebd118875acc8cdbc1d14e8b7c (patch)
tree758a133f364ad803cedb9b8e0a2e89cdc18d82c9 /etc/inc/interfaces.inc
parent7b87710838513521a0008228fe04b6362aea63b3 (diff)
downloadpfsense-9a4c3eed1841f2ebd118875acc8cdbc1d14e8b7c.zip
pfsense-9a4c3eed1841f2ebd118875acc8cdbc1d14e8b7c.tar.gz
Setup polling per interface rather only at bootup. This is a proper fix and a optimization on large interface cases. Also setup_microcode and polling defaults before configuring interfaces.
Diffstat (limited to 'etc/inc/interfaces.inc')
-rw-r--r--etc/inc/interfaces.inc11
1 files changed, 9 insertions, 2 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index f576458..213936d 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -2372,9 +2372,16 @@ function interface_configure($interface = "wan", $reloadall = false) {
if (!empty($wancfg['mtu']))
pfSense_interface_mtu($realif, $wancfg['mtu']);
+ $options = pfSense_get_interface_addresses($realif);
+ if (is_array($options) && isset($options['caps']['polling'])) {
+ if (isset($config['system']['polling']))
+ pfSense_interface_capabilities($realif, IFCAP_POLLING);
+ else
+ pfSense_interface_capabilities($realif, -IFCAP_POLLING);
+ }
+
/* skip vlans for checksumming and polling */
- if (!stristr($realif, "vlan")) {
- $options = pfSense_get_interface_addresses($realif);
+ if (!stristr($realif, "vlan") && is_array($options)) {
$flags = 0;
if(isset($config['system']['disablechecksumoffloading'])) {
if (isset($options['encaps']['txcsum']))
OpenPOWER on IntegriCloud