From: Alexandre Derumier <aderumier@odiso.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH pve-network 1/3] zones: qinq: ovs: fix duplicate ovs_ports with multiple zones/vnets
Date: Thu, 29 Apr 2021 12:14:52 +0200 [thread overview]
Message-ID: <20210429101454.35870-2-aderumier@odiso.com> (raw)
In-Reply-To: <20210429101454.35870-1-aderumier@odiso.com>
Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
---
PVE/Network/SDN/Zones/QinQPlugin.pm | 8 +++---
test/zones/qinq/ovs/expected_sdn_interfaces | 28 ++++++++++++++++++++-
test/zones/qinq/ovs/sdn_config | 7 +++++-
3 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/PVE/Network/SDN/Zones/QinQPlugin.pm b/PVE/Network/SDN/Zones/QinQPlugin.pm
index 0a5abf8..1543fc1 100644
--- a/PVE/Network/SDN/Zones/QinQPlugin.pm
+++ b/PVE/Network/SDN/Zones/QinQPlugin.pm
@@ -82,10 +82,10 @@ sub generate_sdn_config {
push @iface_config, "ovs_options vlan_mode=dot1q-tunnel tag=$stag other_config:qinq-ethtype=$vlanprotocol";
push(@{$config->{$svlan_iface}}, @iface_config) if !$config->{$svlan_iface};
- #redefine main ovs bridge, ifupdown2 will merge ovs_ports
- @iface_config = ();
- push @iface_config, "ovs_ports $svlan_iface";
- push(@{$config->{$bridge}}, @iface_config);
+ #redefine main ovs bridge, ifupdown2 will merge ovs_ports
+ @{$config->{$bridge}}[0] = "ovs_ports" if !@{$config->{$bridge}}[0];
+ my @ovs_ports = split / / , @{$config->{$bridge}}[0];
+ @{$config->{$bridge}}[0] .= " $svlan_iface" if !grep( $_ eq $svlan_iface, @ovs_ports );
#zone vlan aware bridge
@iface_config = ();
diff --git a/test/zones/qinq/ovs/expected_sdn_interfaces b/test/zones/qinq/ovs/expected_sdn_interfaces
index 71c7aa3..068ae7d 100644
--- a/test/zones/qinq/ovs/expected_sdn_interfaces
+++ b/test/zones/qinq/ovs/expected_sdn_interfaces
@@ -6,15 +6,33 @@ iface myvnet
bridge_stp off
bridge_fd 0
+auto myvnet2
+iface myvnet2
+ bridge_ports z_myzone.101
+ bridge_stp off
+ bridge_fd 0
+
+auto myvnet3
+iface myvnet3
+ bridge_ports z_myzone2.100
+ bridge_stp off
+ bridge_fd 0
+
auto sv_myzone
iface sv_myzone
ovs_type OVSIntPort
ovs_bridge vmbr0
ovs_options vlan_mode=dot1q-tunnel tag=10 other_config:qinq-ethtype=802.1q
+auto sv_myzone2
+iface sv_myzone2
+ ovs_type OVSIntPort
+ ovs_bridge vmbr0
+ ovs_options vlan_mode=dot1q-tunnel tag=20 other_config:qinq-ethtype=802.1q
+
auto vmbr0
iface vmbr0
- ovs_ports sv_myzone
+ ovs_ports sv_myzone sv_myzone2
auto z_myzone
iface z_myzone
@@ -23,3 +41,11 @@ iface z_myzone
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
+
+auto z_myzone2
+iface z_myzone2
+ bridge-stp off
+ bridge-ports sv_myzone2
+ bridge-fd 0
+ bridge-vlan-aware yes
+ bridge-vids 2-4094
diff --git a/test/zones/qinq/ovs/sdn_config b/test/zones/qinq/ovs/sdn_config
index 1708d4c..6321603 100644
--- a/test/zones/qinq/ovs/sdn_config
+++ b/test/zones/qinq/ovs/sdn_config
@@ -3,9 +3,14 @@
vnets => {
ids => {
myvnet => { tag => 100, type => "vnet", zone => "myzone" },
+ myvnet2 => { tag => 101, type => "vnet", zone => "myzone" },
+ myvnet3 => { tag => 100, type => "vnet", zone => "myzone2" },
},
},
zones => {
- ids => { myzone => { bridge => "vmbr0", tag => 10, ipam => "pve", type => "qinq" } },
+ ids => {
+ myzone => { bridge => "vmbr0", tag => 10, ipam => "pve", type => "qinq" },
+ myzone2 => { bridge => "vmbr0", tag => 20, ipam => "pve", type => "qinq" },
+ },
},
}
--
2.20.1
next prev parent reply other threads:[~2021-04-29 10:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-29 10:14 [pve-devel] [PATCH pve-network 0/3] zones: qinq : fix mutiples vnets/qinq zones Alexandre Derumier
2021-04-29 10:14 ` Alexandre Derumier [this message]
2021-04-29 10:14 ` [pve-devel] [PATCH pve-network 2/3] zones: qinq: classic bridge: fix bridge zone name with multiple zones/vnets Alexandre Derumier
2021-04-29 10:14 ` [pve-devel] [PATCH pve-network 3/3] zones: qinq: vlanaware bridge: add tests with multiple vnets/zones Alexandre Derumier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210429101454.35870-2-aderumier@odiso.com \
--to=aderumier@odiso.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.