From b88a2c8f1cd8e3b659d7d363de241fae29085bb4 Mon Sep 17 00:00:00 2001 From: Fernando Fernandez Mancera Date: Tue, 29 Aug 2023 23:48:59 +0200 Subject: [PATCH] Fix issue with ovs-bridge and ovs-interface sharing names Resolves: RHBZ#2231843 Signed-off-by: Fernando Fernandez Mancera --- ...-ovs-bridge-to-itself-when-creating-.patch | 44 +++++++++++++++++++ nmstate.spec | 6 ++- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 BZ_2231843-nm-do-not-attach-ovs-bridge-to-itself-when-creating-.patch diff --git a/BZ_2231843-nm-do-not-attach-ovs-bridge-to-itself-when-creating-.patch b/BZ_2231843-nm-do-not-attach-ovs-bridge-to-itself-when-creating-.patch new file mode 100644 index 0000000..874a1cb --- /dev/null +++ b/BZ_2231843-nm-do-not-attach-ovs-bridge-to-itself-when-creating-.patch @@ -0,0 +1,44 @@ +From 88b785ee3424fb010da3e70c4337b3b5ebdf5f5e Mon Sep 17 00:00:00 2001 +From: Fernando Fernandez Mancera +Date: Thu, 24 Aug 2023 17:28:26 +0200 +Subject: [PATCH] nm: do not attach ovs-bridge to itself when creating a + profile + +If ovs-bridge and ovs-interface shares name and ovs-interface is +modified, during the creation of the ovs-bridge profile we are setting +itself as a controller. + +That is wrong and NetworkManager is reporting the following error: + +``` +libnmstate.error.NmstateLibnmError: Update profile +uuid:ba206f8f-2ed6-486d-a339-9d1f62c5cb84 iface:br1 type:ovs-bridge +failed with error=nm-connection-error-quark: connection.slave-type: +Cannot set 'master' without 'slave-type' (6) +``` + +In order to solve that, before setting the controller we check that it +is not itself. + +Signed-off-by: Fernando Fernandez Mancera +--- + libnmstate/nm/ovs.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libnmstate/nm/ovs.py b/libnmstate/nm/ovs.py +index f7c589b6..6f732207 100644 +--- a/libnmstate/nm/ovs.py ++++ b/libnmstate/nm/ovs.py +@@ -375,5 +375,8 @@ def set_ovs_iface_controller_info(iface_infos): + + for iface_info in iface_infos: + ctrl_name = pending_changes.get(iface_info[Interface.NAME]) +- if ctrl_name: ++ if ctrl_name and not ( ++ ctrl_name == iface_info[Interface.NAME] ++ and iface_info[Interface.TYPE] == InterfaceType.OVS_BRIDGE ++ ): + iface_info[Interface.CONTROLLER] = ctrl_name +-- +2.41.0 + diff --git a/nmstate.spec b/nmstate.spec index 54eef4e..eb32d73 100644 --- a/nmstate.spec +++ b/nmstate.spec @@ -4,7 +4,7 @@ Name: nmstate Version: 1.4.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Declarative network manager API License: LGPLv2+ URL: https://github.com/%{srcname}/%{srcname} @@ -15,6 +15,7 @@ Source3: %{url}/releases/download/v%{version}/%{srcname}-vendor-%{version # Patches 0X are reserved to downstream only Patch0: BZ_2132570-nm-reverse-IPv6-order-before-adding-them-to-setting.patch Patch1: BZ_2203277-ip-Support-static-route-with-auto-ip.patch +Patch2: BZ_2231843-nm-do-not-attach-ovs-bridge-to-itself-when-creating-.patch BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: gnupg2 @@ -149,6 +150,9 @@ popd /sbin/ldconfig %changelog +* Wed Aug 30 2023 Fernando Fernandez Mancera - 1.4.4-4 +- Fix issue with ovs-bridge and ovs-interface with same name. RHBZ#2231843 + * Tue May 30 2023 Fernando Fernandez Mancera - 1.4.4-3 - Support static route with auto-ip. RHBZ#2203277