]> git.proxmox.com Git - ifupdown2.git/commitdiff
add ovs support for fakebridge.
authorAlexandre Derumier <aderumier@odiso.com>
Fri, 14 Oct 2022 07:22:35 +0000 (09:22 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 14 Oct 2022 13:21:19 +0000 (15:21 +0200)
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@odiso.com>
debian/patches/series
debian/patches/upstream/0001-ovs-add-support-for-fakebridge.patch [new file with mode: 0644]

index a0053876cdf0d858e3e30c6421e22f11962304a0..ccfd03d85285dd5392917cd453824a9a65e995f1 100644 (file)
@@ -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 (file)
index 0000000..7e9eb67
--- /dev/null
@@ -0,0 +1,57 @@
+From 39b395b1fd41e5ac4066c5afd19b6ab9c17b8b14 Mon Sep 17 00:00:00 2001
+From: alexandre derumier <aderumier@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)