diff --git a/src/etc/inc/interfaces.lib.inc b/src/etc/inc/interfaces.lib.inc index 52845be32..0913836bd 100644 --- a/src/etc/inc/interfaces.lib.inc +++ b/src/etc/inc/interfaces.lib.inc @@ -245,6 +245,7 @@ function configure_interface_hardware($ifs) if (!stristr($ifs, "_vlan") && is_array($intf_details)) { // get current settings $csum_set = in_array('rxcsum', $intf_details['options']) || in_array('txcsum', $intf_details['options']); + $csumv6_set = in_array('rxcsum6', $intf_details['options']) || in_array('txcsum6', $intf_details['options']); $tso_set = in_array('tso4', $intf_details['options']) || in_array('tso6', $intf_details['options']); $lro_set = in_array('lro', $intf_details['options']); @@ -254,6 +255,12 @@ function configure_interface_hardware($ifs) } elseif (!isset($config['system']['disablechecksumoffloading']) && !$csum_set) { legacy_interface_flags($ifs, 'txcsum rxcsum', false); } + if (isset($config['system']['disablechecksumoffloading']) && $csumv6_set) { + legacy_interface_flags($ifs, '-txcsum6 -rxcsum6', false); + } elseif (!isset($config['system']['disablechecksumoffloading']) && !$csumv6_set) { + legacy_interface_flags($ifs, 'txcsum6 rxcsum6', false); + } + // TCP segmentation offloading if (isset($config['system']['disablesegmentationoffloading']) && $tso_set) { legacy_interface_flags($ifs, '-tso', false);