add ovs support for fakebridge.

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>
This commit is contained in:
Alexandre Derumier 2022-10-14 09:22:35 +02:00 committed by Thomas Lamprecht
parent 02c0adc2ae
commit 7aa3a5e6b6
2 changed files with 59 additions and 1 deletions

View 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
pve/0014-fix-pointopoint-regression.patch
upstream/0001-ovs-add-support-for-fakebridge.patch

View File

@ -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)