$cfg->{'downdelay'} = $options{'downdelay'};
$cfg->{'updelay'} = $options{'updelay'};
}
+ elsif($param eq 'bond_mode') {
+ $cfg->{'mode'} = $value;
+ }
+ elsif($param eq 'bond_miimon') {
+ $cfg->{'miimon'} = $value;
+ }
+ elsif($param eq 'bond_downdelay') {
+ $cfg->{'downdelay'} = $value;
+ }
+ elsif($param eq 'bond_updelay') {
+ $cfg->{'updelay'} = $value;
+ }
+ elsif($param eq 'slaves') {
+ $cfg->{'partner'} = $value;
+ }
else { $cfg->{$param} = $value; }
}
$cfg->{'dhcp'} = ($method eq 'dhcp');
if (!$cfg->{'up'} && !$amode) { push(@options, ['noauto', '']); }
# Set bonding parameters
-if($cfg->{'bond'} == 1) {
+if(($cfg->{'bond'} == 1) && ($gconfig{'os_version'} >= 5)) {
+ push(@options, ['bond_mode ' . $cfg->{'mode'}]);
+ push(@options, ['bond_miimon ' . $cfg->{'miimon'}]);
+ push(@options, ['bond_updelay ' . $cfg->{'updelay'}]);
+ push(@options, ['bond_downdelay ' . $cfg->{'downdelay'}]);
+ push(@options, ['slaves ' . $cfg->{'partner'}]);
+}
+elsif($cfg->{'bond'} == 1) {
push(@options, ['up', '/sbin/ifenslave ' . $cfg->{'name'} . " " . $cfg->{'partner'}]);
push(@options, ['down', '/sbin/ifenslave -d ' . $cfg->{'name'} . " " . $cfg->{'partner'}]);
}
else{
new_interface_def($cfg->{'fullname'}, 'inet', $method, \@options);
}
- if($cfg->{'bond'} == 1) {
+ if (($cfg->{'bond'} == 1) && ($gconfig{'os_version'} >= 5)) {}
+ elsif ($cfg->{'bond'} == 1) {
new_module_def($cfg->{'fullname'}, $cfg->{'mode'}, $cfg->{'miimon'}, $cfg->{'downdelay'}, $cfg->{'updelay'});
}
}
else{
modify_interface_def($cfg->{'fullname'}, 'inet', $method, \@options, 0);
}
- if($cfg->{'bond'} == 1) {
+ if (($cfg->{'bond'} == 1) && ($gconfig{'os_version'} >= 5)) {}
+ elsif ($cfg->{'bond'} == 1) {
modify_module_def($cfg->{'fullname'}, 0, $cfg->{'mode'}, $cfg->{'miimon'}, $cfg->{'downdelay'}, $cfg->{'updelay'});
}
}
}
local $cmd;
+if (($gconfig{'os_type'} eq 'debian-linux') && ($gconfig{'os_version'} >= 5)) {
+ if ($a->{'up'}) { $cmd .= "ifup $a->{'name'}"; }
+ else { $cmd .= "ifdown $a->{'name'}"; }
+ local $out = &backquote_logged("$cmd 2>&1");
+ if ($?) { &error($out); }
+}
+else {
+
if($a->{'vlan'} == 1) {
$cmd .= "ifconfig $a->{'physical'}.$a->{'vlanid'}";
}
if ($?) { &error($out); }
}
}
+}
# deactivate_interface(&details)
# Shutdown some active interface
local ($still) = grep { $_->{'fullname'} eq $name } &active_interfaces();
if ($still && !&is_ipv6_address($address)) {
# Old version of ifconfig or non-virtual interface.. down it
- local $out = &backquote_logged("ifconfig $name down 2>&1");
- if(&iface_type($name) =~ /^(.*) (VLAN)$/) {
- $out = &backquote_logged("vconfig rem $name 2>&1");
+ if (($gconfig{'os_type'} eq 'debian-linux') && ($gconfig{'os_version'} >= 5)) {
+ local $out = &backquote_logged("ifdown $name 2>&1");
}
- local ($still) = grep { $_->{'fullname'} eq $name }
+ else {
+ local $out = &backquote_logged("ifconfig $name down 2>&1");
+ local ($still) = grep { $_->{'fullname'} eq $name }
&active_interfaces();
- if ($still) {
- &error("<pre>$out</pre>");
+ if ($still) {
+ &error("<pre>$out</pre>");
}
}
+ if(&iface_type($name) =~ /^(.*) (VLAN)$/) {
+ $out = &backquote_logged("vconfig rem $name 2>&1");
+ }
+ }
}
# iface_type(name)