Problems with lagg interface
-
I've found some problems in lagg interface configuration.
First of all, members are the NIC names, so you shouldn't use get_real_interface. Second, a '$' is missing in the laggif variable when adding a laggport. An at the end, 'laggproto' is missing when assigning a proto to the interface.
This is my ending function interface_lagg_configure:
function interface_lagg_configure(&$lagg) {
global $config, $g;if (!is_array($lagg))
return -1;$members = explode(',', $lagg['members']);
if (!count($members))
return -1;$checklist = get_interface_list();
if ($g['booting'] || !(empty($lagg['laggif']))) {
mwexec("/sbin/ifconfig {$lagg['laggif']} destroy");
mwexec("/sbin/ifconfig {$lagg['laggif']} create");
$laggif = $lagg['laggif'];
} else
$laggif = exec("/sbin/ifconfig lagg create");/* Calculate smaller mtu and enforce it */
$smallermtu = 0;
foreach ($members as $member) {
$realif = get_real_interface($member);
$mtu = get_interface_mtu($realif);
if ($smallermtu == 0 && !empty($mtu))
$smallermtu = $mtu;
else if (!empty($mtu) && $mtu < $smallermtu)
$smallermtu = $mtu;
}/* Just in case anything is not working well */
if ($smallermtu == 0)
$smallermtu = 1500;foreach ($members as $member) {
if (!array_key_exists($member, $checklist))
continue;
//$realif = get_real_interface($member);
$realif = $member;
/* make sure the parent interface is up */
mwexec("/sbin/ifconfig {$realif} mtu {$smallermtu}");
if($realif)
interfaces_bring_up($realif);
else
log_error("could not bring realif up – foreach(memebers)");
mwexec("/sbin/ifconfig {$laggif} laggport {$realif}");
}mwexec("/sbin/ifconfig {$laggif} laggproto {$lagg['proto']}");
interfaces_bring_up($laggif);
return $laggif;
} -
Should be fixed now.
Thanks for the report.For reference: https://rcs.pfsense.org/projects/pfsense/repos/mainline/commits/39fbee97c86d4bf9e4fc47d62bac85720402f83f
-
Still one typo after the commit in etc/inc/interfaces.inc:
At line 548:
mwexec("/sbin/ifconfig {laggif} laggport {$member}");
Still one $ missing in laggif, it should be:
mwexec("/sbin/ifconfig {$laggif} laggport {$member}");Best regards
-
Fixed thanks.