diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-03-08 09:51:18 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-03-08 10:48:09 -0300 |
commit | be2c39b648acf388c5e62f35961b1ddf0d9394ad (patch) | |
tree | 7849fbe15860f9efe6d48586e341765768ff37c8 | |
parent | 3f3252f6421234a27cab4bf71575317e78d6dcaa (diff) | |
download | pfsense-be2c39b648acf388c5e62f35961b1ddf0d9394ad.zip pfsense-be2c39b648acf388c5e62f35961b1ddf0d9394ad.tar.gz |
When parent is not assigned, reset it and all vlans without mtu set to default
-rw-r--r-- | etc/inc/interfaces.inc | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 1e62611..3349c19 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -2944,22 +2944,25 @@ function interface_configure($interface = "wan", $reloadall = false, $linkupeven } } } else { - $bigmtu = interface_vlan_mtu_configured($realhwif, $wancfg['mtu']); - if ($wancfg['mtu'] >= $bigmtu) { - /* All vlans need to use the same mtu value as their parent. */ - foreach ($vlanifs as $vlan) { - if ($vlan['vlanif'] == $realif) - continue; - $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']); - if (!empty($assignedport)) { - $portmtu = $config['interfaces'][$assignedport]['mtu']; - if (empty($portmtu)) - pfSense_interface_mtu($vlan['vlanif'], $wancfg['mtu']); - } else - pfSense_interface_mtu($vlan['vlanif'], $wancfg['mtu']); - } - pfSense_interface_mtu($realhwif, $wancfg['mtu']); + /* Parent is not assigned, back to default */ + if (get_interface_mtu($realhwif) != $mtu) + pfSense_interface_mtu($realhwif, $mtu); + + /* All vlans need to use the same mtu value as their parent. */ + foreach ($vlanifs as $vlan) { + if ($vlan['vlanif'] == $realif) + continue; + $assignedport = convert_real_interface_to_friendly_interface_name($vlan['vlanif']); + if (!empty($assignedport)) { + $portmtu = $config['interfaces'][$assignedport]['mtu']; + if (empty($portmtu)) + pfSense_interface_mtu($vlan['vlanif'], $mtu); + } else + pfSense_interface_mtu($vlan['vlanif'], $mtu); } + + if (get_interface_mtu($realif) != $wancfg['mtu']) + pfSense_interface_mtu($realif, $wancfg['mtu']); } } else { foreach ($vlanifs as $vlan) { |