897 |
897 |
if ($flagsapplied == false) {
|
898 |
898 |
$mtu = get_interface_mtu($bridgeif);
|
899 |
899 |
$mtum = get_interface_mtu($interface);
|
900 |
|
if ($mtu != $mtum && !(substr($interface, 0, 3) == "gif" && $mtu <= 1500)) {
|
|
900 |
/* Reconfigure the bridge mtu if the new member's MTU is lower, or
|
|
901 |
* reconfigure a non-gif interface MTU if the bridge's MTU is lower */
|
|
902 |
if ($mtu > $mtum) {
|
|
903 |
pfSense_interface_mtu($bridgeif, $mtum);
|
|
904 |
} else if ($mtu < $mtum && !(substr($interface, 0, 3) == "gif" && $mtu <= 1500)) {
|
901 |
905 |
pfSense_interface_mtu($interface, $mtu);
|
902 |
906 |
}
|
903 |
907 |
|
... | ... | |
4257 |
4261 |
break;
|
4258 |
4262 |
}
|
4259 |
4263 |
|
|
4264 |
if (($linkupevent == false) || (substr($realif, 0, 4) == "ovpn") || (substr($realif, 0, 5) == "ipsec")) {
|
|
4265 |
$bridgetmp = link_interface_to_bridge($interface);
|
|
4266 |
if (!empty($bridgetmp)) {
|
|
4267 |
interface_bridge_add_member($bridgetmp, $realif);
|
|
4268 |
}
|
|
4269 |
}
|
|
4270 |
|
4260 |
4271 |
if (!platform_booting()) {
|
4261 |
4272 |
link_interface_to_vips($interface, "update");
|
4262 |
4273 |
|
... | ... | |
4270 |
4281 |
array_walk($gif, 'interface_gif_configure');
|
4271 |
4282 |
}
|
4272 |
4283 |
|
4273 |
|
if (($linkupevent == false) || (substr($realif, 0, 4) == "ovpn") || (substr($realif, 0, 5) == "ipsec")) {
|
4274 |
|
unset($bridgetmp);
|
4275 |
|
$bridgetmp = link_interface_to_bridge($interface);
|
4276 |
|
if (!empty($bridgetmp)) {
|
4277 |
|
interface_bridge_add_member($bridgetmp, $realif);
|
4278 |
|
}
|
4279 |
|
}
|
4280 |
|
|
4281 |
4284 |
$grouptmp = link_interface_to_group($interface);
|
4282 |
4285 |
if (!empty($grouptmp)) {
|
4283 |
4286 |
array_walk($grouptmp, 'interface_group_add_member');
|
Add ovpn qinqs to bridges instead of rebuilding them. Fixes #13666
qinq interfaces defined with parent openvpn interfaces are configured late in
rc.bootup, after qinqs for other physical and logical interfaces and bridges are
configured. The resolution to #13225 ensured that these late interfaces were
added to bridges by calling interfaces_bridge_configure() to reconfigure all
bridges interfaces but this had the inadvertent effect of removing all IP
configuration from bridge interfaces, which must be restored via
interface_configure(). This measure was also overly aggressive in destroying all
bridges when few or no openvpn qinqs exist. Since interface_configure() is never
called for these interfaces, they also lack a description at the OS level.
This change:
openvpn interfaces, calling interface_configure() on them.
interface_bridge_add_member() for openvpn and ipsec interfaces, not just
after platform booting is complete.
the bridge or member interface to the lower of their respective MTUs. gif
interface MTUs associated with a bridge MTU <= 1500 are not reconfigured
according to prior precendent.