all lists on lists.proxmox.com
 help / color / mirror / Atom feed
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




  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.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal