[pve-devel] [PATCH ifupdown2] add ovs support for fakebridge.

Alexandre Derumier aderumier at odiso.com
Fri Oct 14 09:22:35 CEST 2022


This was request by a proxmox user on ifupdown2 github issues.

https://github.com/CumulusNetworks/ifupdown2/issues/245

It was possible to do it with ifupdown1, but not ifupdown2.

The patch is already applied upstream
https://github.com/CumulusNetworks/ifupdown2/pull/246

example to define a fake ovs bridge with vlan10:

auto vmbr0
iface vmbr0 inet manual
        ovs_type OVSBridge

auto vmbr0v10
iface vmbr0v10 inet manual
        ovs_type OVSBridge
        ovs_bridge vmbr0
        ovs_options vmbr0 10

Signed-off-by: Alexandre Derumier <aderumier at odiso.com>
---
 debian/patches/series                         |  3 +-
 .../0001-ovs-add-support-for-fakebridge.patch | 57 +++++++++++++++++++
 2 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 debian/patches/upstream/0001-ovs-add-support-for-fakebridge.patch

diff --git a/debian/patches/series b/debian/patches/series
index a005387..ccfd03d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,4 +11,5 @@ pve/0010-postinst-rm-update-network-config-compatibility.patch
 pve/0011-d-rules-drop-now-default-with-systemd.patch
 pve/0012-d-rules-add-dh_installsystemd-override-for-compat-12.patch
 pve/0013-postinst-reload-network-config-on-first-install.patch
-pve/0014-fix-pointopoint-regression.patch
\ No newline at end of file
+pve/0014-fix-pointopoint-regression.patch
+upstream/0001-ovs-add-support-for-fakebridge.patch
\ No newline at end of file
diff --git a/debian/patches/upstream/0001-ovs-add-support-for-fakebridge.patch b/debian/patches/upstream/0001-ovs-add-support-for-fakebridge.patch
new file mode 100644
index 0000000..7e9eb67
--- /dev/null
+++ b/debian/patches/upstream/0001-ovs-add-support-for-fakebridge.patch
@@ -0,0 +1,57 @@
+From 39b395b1fd41e5ac4066c5afd19b6ab9c17b8b14 Mon Sep 17 00:00:00 2001
+From: alexandre derumier <aderumier at odiso.com>
+Date: Thu, 1 Sep 2022 19:18:21 +0200
+Subject: [PATCH] addons: openvswitch : add support for fakebridge.
+
+Fake bridge are are ovsbridge child of a parent bridge with a specific vlan tag.
+
+```
+auto br-parent
+iface br-parent inet manual
+        ovs_type OVSBridge
+
+auto br-fakev10
+iface br-fakev10 inet manual
+        ovs_type OVSBridge
+        ovs_bridge br-parent
+        ovs_options br-parent 10
+
+```
+---
+ ifupdown2/addons/openvswitch.py | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/ifupdown2/addons/openvswitch.py b/ifupdown2/addons/openvswitch.py
+index 2c9a76f7..0a124ba2 100644
+--- a/ifupdown2/addons/openvswitch.py
++++ b/ifupdown2/addons/openvswitch.py
+@@ -74,6 +74,10 @@ class openvswitch(Addon, moduleBase):
+                     "required": False,
+                     "example": ["ovs-ports-condone-regex ^[a-zA-Z0-9]+_v[0-9]{1,4}$"]
+             },
++            'ovs-bridge': {
++                'help': 'Optional parent bridge for fake bridges',
++                'required': False,
++            },
+         }
+     }
+ 
+@@ -147,13 +151,17 @@ def _addbridge (self, ifaceobj):
+         ovsextra = ifaceobj.get_attr_value('ovs-extra')
+         ovsmtu = ifaceobj.get_attr_value_first ('ovs-mtu')
+         ovsportscondoneregex = self._get_ovs_port_condone_regex(ifaceobj)
++        ovsparent = ifaceobj.get_attr_value_first ('ovs-bridge')
+ 
+         cmd_list = []
+ 
+         cmd = "--may-exist add-br %s"%(iface)
++        if ovsparent is not None and ovsoptions:
++            cmd = cmd + " %s" %(ovsoptions)
++
+         cmd_list.append(cmd)
+ 
+-        if ovsoptions:
++        if ovsparent is None and ovsoptions:
+             cmd = "set bridge %s %s" %(iface, ovsoptions)
+             cmd_list.append(cmd)
+ 
-- 
2.30.2





More information about the pve-devel mailing list