From affe8a552ef1f7b8e59f3b60fd1421aa46f45b03 Mon Sep 17 00:00:00 2001 From: jim-p Date: Mon, 3 Jun 2019 14:21:05 -0400 Subject: [PATCH] Set IPsec VTI MTU to configured value at boot. Implements #9111 (cherry picked from commit 3334f9c4cd7111c624ba2395b91c065d7dd338b1) --- src/etc/inc/interfaces.inc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index dde20276ea..6e0aaca33c 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -1453,6 +1453,21 @@ function interface_ipsec_vti_configure($ph1ent) { file_put_contents("/tmp/{$ipsecif}_router{$gwtype}", $addr['right']); } } + /* Check/set the MTU if the user configured a custom value. + * https://redmine.pfsense.org/issues/9111 */ + $currentvtimtu = get_interface_mtu($ipsecif); + foreach ($config['interfaces'] as $tmpinterface) { + if ($tmpinterface['if'] == $ipsecif) { + if (isset($tmpinterface['mtu']) && is_numericint($tmpinterface['mtu'])) { + $vtimtu = $tmpinterface['mtu']; + } + } + } + if (is_numericint($vtimtu)) { + if ($vtimtu != $currentvtimtu) { + mwexec("/sbin/ifconfig {$ipsecif} mtu {$vtimtu}"); + } + } system_routing_configure(convert_real_interface_to_friendly_interface_name($ipsecif)); } }