[pve-devel] [PATCH pve-common] Inotify: write_network_interfaces : always autostart bond slaves interfaces
Alexandre Derumier
aderumier at odiso.com
Sun Jun 7 13:39:47 CEST 2020
Currently, bond slaves are mostly working without autostart,
because bond slaves scripts from ifupdown1 && also ifupdown2
have some kind of hacks to start the slaves.
But if users want to do some tuning on the ifaces, they are not applied.
Also, with ifupdown2 + ovs, this kind of hack is not implemented (yet), so the
slaves of the bond are still down.
Debian/Ubuntu official docs always set "auto ethX" for bond slaves,
it's really more clean like this.
Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
src/PVE/INotify.pm | 2 ++
test/etc_network_interfaces/t.create_network.pl | 10 ++++++++++
test/etc_network_interfaces/t.unknown_order.pl | 6 ++++++
3 files changed, 18 insertions(+)
diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
index 1eaec21..c507515 100644
--- a/src/PVE/INotify.pm
+++ b/src/PVE/INotify.pm
@@ -1487,6 +1487,7 @@ sub __write_etc_network_interfaces {
if ($d->{type} eq 'OVSBond' && $d->{ovs_bonds}) {
foreach my $p (split (/\s+/, $d->{ovs_bonds})) {
my $n = $ifaces->{$p};
+ $n->{autostart} = 1;
die "OVS bond '$iface' - unable to find slave '$p'\n"
if !$n;
die "OVS bond '$iface' - wrong interface type on slave '$p' " .
@@ -1503,6 +1504,7 @@ sub __write_etc_network_interfaces {
my $bond_primary_is_slave = undef;
foreach my $p (split (/\s+/, $d->{slaves})) {
my $n = $ifaces->{$p};
+ $n->{autostart} = 1;
die "bond '$iface' - unable to find slave '$p'\n"
if !$n;
diff --git a/test/etc_network_interfaces/t.create_network.pl b/test/etc_network_interfaces/t.create_network.pl
index 22e7142..b8da513 100644
--- a/test/etc_network_interfaces/t.create_network.pl
+++ b/test/etc_network_interfaces/t.create_network.pl
@@ -109,8 +109,10 @@ iface eth0 inet manual
$eth1_part
+auto eth2
iface eth2 inet manual
+auto eth3
iface eth3 inet manual
iface eth4 inet manual
@@ -167,8 +169,10 @@ iface eth0 inet manual
$eth1_part
+auto eth2
iface eth2 inet manual
+auto eth3
iface eth3 inet manual
iface eth4 inet manual
@@ -284,8 +288,10 @@ iface eth0 inet manual
$eth1_part
+auto eth2
iface eth2 inet manual
+auto eth3
iface eth3 inet manual
iface eth4 inet manual
@@ -398,12 +404,16 @@ iface eth0 inet manual
$eth1_part
+auto eth2
iface eth2 inet manual
+auto eth3
iface eth3 inet manual
+auto eth4
iface eth4 inet manual
+auto eth5
iface eth5 inet manual
auto eth1.100
diff --git a/test/etc_network_interfaces/t.unknown_order.pl b/test/etc_network_interfaces/t.unknown_order.pl
index cd8f51b..44c0392 100644
--- a/test/etc_network_interfaces/t.unknown_order.pl
+++ b/test/etc_network_interfaces/t.unknown_order.pl
@@ -2,16 +2,22 @@ my $base = load('loopback');
sub wanted($) {
my ($ip) = @_;
return $base . <<"IFACES";
+auto eth0
iface eth0 inet manual
+auto eth1
iface eth1 inet manual
+auto eth2
iface eth2 inet manual
+auto eth3
iface eth3 inet manual
+auto eth4
iface eth4 inet manual
+auto eth5
iface eth5 inet manual
iface eth6 inet manual
--
2.20.1
More information about the pve-devel
mailing list