[pve-devel] [PATCH v2 pve-common 3/4] Inotify : write network config : add bridge-vids
Wolfgang Bumiller
w.bumiller at proxmox.com
Wed Jun 20 10:41:24 CEST 2018
On Wed, Jun 20, 2018 at 07:36:56AM +0200, Alexandre Derumier wrote:
> default is 2-4094 if user don't have specified.
>
> mandatory for ifupdown2 and compatible with
> current promox ifupdown bridgevlanport script
> ---
> src/PVE/INotify.pm | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
> index 5d8a773..94712d5 100644
> --- a/src/PVE/INotify.pm
> +++ b/src/PVE/INotify.pm
> @@ -813,7 +813,8 @@ sub __read_etc_network_interfaces {
> 'bridge-vlan-aware' => 'bridge_vlan_aware',
> 'bridge-fd' => 'bridge_fd',
> 'bridge-stp' => 'bridge_stp',
> - 'bridge-ports' => 'bridge_ports'
> + 'bridge-ports' => 'bridge_ports',
> + 'bridge-vids' => 'bridge_vids'
> };
>
> my $line;
> @@ -1091,6 +1092,8 @@ sub __interface_to_string {
>
> if( defined($d->{bridge_vlan_aware})) {
> $raw .= "\tbridge-vlan-aware yes\n";
> + $v = defined($d->{bridge_vids}) ? $d->{bridge_vids} : "2-4094";
> + $raw .= "\tbridge-vids $v\n";
An existing bridge-vids is still in $d->{options} btw. so this would be
duplicated. There was no test catching this though.
I'll add one in a followup:
--- >8 ---
>From f6c4a56381915ffaac4571173e986594000f84fc Mon Sep 17 00:00:00 2001
From: Wolfgang Bumiller <w.bumiller at proxmox.com>
Date: Wed, 20 Jun 2018 10:27:08 +0200
Subject: [PATCH common] INotify: write network: don't duplicate bridge-vids
Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
---
src/PVE/INotify.pm | 3 ++-
test/etc_network_interfaces/t.parsed_options.pl | 35 +++++++++++++++++++++++++
2 files changed, 37 insertions(+), 1 deletion(-)
create mode 100644 test/etc_network_interfaces/t.parsed_options.pl
diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
index d745f0b..0b9ea4a 100644
--- a/src/PVE/INotify.pm
+++ b/src/PVE/INotify.pm
@@ -896,7 +896,7 @@ sub __read_etc_network_interfaces {
} else {
$d->{$id} = 'off';
}
- } elsif ($id eq 'bridge_fd') {
+ } elsif ($id eq 'bridge_fd' || $id eq 'bridge_vids') {
$d->{$id} = $value;
} elsif ($id eq 'bridge_vlan_aware') {
$d->{$id} = 1;
@@ -1096,6 +1096,7 @@ sub __interface_to_string {
$raw .= "\tbridge-vids $v\n";
}
$done->{bridge_vlan_aware} = 1;
+ $done->{bridge_vids} = 1;
} elsif ($d->{type} eq 'bond') {
diff --git a/test/etc_network_interfaces/t.parsed_options.pl b/test/etc_network_interfaces/t.parsed_options.pl
new file mode 100644
index 0000000..40b5b11
--- /dev/null
+++ b/test/etc_network_interfaces/t.parsed_options.pl
@@ -0,0 +1,35 @@
+save('proc_net_dev', <<'/proc/net/dev');
+eth0:
+eth1:
+/proc/net/dev
+
+# Check for dropped or duplicated options
+
+my $ip = '192.168.0.2';
+my $nm = '255.255.255.0';
+my $gw = '192.168.0.1';
+my $ip6 = 'fc05::2';
+my $nm6 = '112';
+my $gw6 = 'fc05::1';
+
+# Load
+my $cfg = load('base') . <<"CHECK";
+iface eth1 inet manual
+
+auto vmbr0
+iface vmbr0 inet static
+ address 10.0.0.2
+ netmask 255.255.255.0
+ gateway 10.0.0.1
+ bridge-ports eth0
+ bridge-stp off
+ bridge-fd 0
+ bridge-vlan-aware yes
+ bridge-vids 2-4094
+
+CHECK
+
+r $cfg;
+expect $cfg;
+
+1;
--
2.11.0
More information about the pve-devel
mailing list