From 8ce1fcb0f3478e56af119cfbd34152b449eee775 Mon Sep 17 00:00:00 2001 From: anolis-bot Date: Fri, 14 Jan 2022 13:48:31 +0800 Subject: [PATCH] import nmstate-1.1.0-3.el8.src.rpm --- ...mstatectl-fix-long-arguments-support.patch | 53 ++++ ...rve-existing-ethtool-settings-when-u.patch | 105 ++++++++ ...nore-for-ovs-port-when-removing-them.patch | 87 +++++++ ...of-empty-next_hop_address-and-destin.patch | 13 +- BZ_1931355-SRIOV-wait-VF-mount-decrease.patch | 166 ------------ BZ_1931751-nmstate-fix-return-code.patch | 29 --- ...h-unmanaged-interface-unless-desired.patch | 223 ---------------- BZ_1961912-fix-ovs-interface-activation.patch | 137 ---------- ...-not-use-unmanaged-interface-for-dns.patch | 163 ------------ ...ovs_running-in-container-environment.patch | 222 ---------------- ...eactivate-profile-when-route-removed.patch | 86 ------ BZ_1966379_fix_bond_opt_tlb_dynamic_lb.patch | 74 ------ BZ_1966457_Fix_bond_fail_over_mac.patch | 35 --- BZ_1966457_only_validate_desired_bond.patch | 32 --- BZ_1979220_static_ip_on_ovs_same_name.patch | 245 ------------------ ...x-BCM57416-failure-when-creating-VFs.patch | 125 --------- ...face-metadata-after-RouteRule-metada.patch | 103 -------- nmstate-1.0.2.tar.gz | Bin 112671 -> 0 bytes nmstate-1.0.2.tar.gz.asc | 16 -- nmstate-1.1.0.tar.gz | Bin 0 -> 121004 bytes nmstate-1.1.0.tar.gz.asc | 16 ++ nmstate.gpg | 0 nmstate.spec | 75 +++--- 23 files changed, 306 insertions(+), 1699 deletions(-) create mode 100755 0001-nmstatectl-fix-long-arguments-support.patch create mode 100755 0002-nm-ethtool-Preserve-existing-ethtool-settings-when-u.patch create mode 100755 0003-ovs-fix-state-ignore-for-ovs-port-when-removing-them.patch rename BZ_1986285-nispor-fix-show-of-empty-next_hop_address-and-destin.patch => 0004-nispor-fix-show-of-empty-next_hop_address-and-destin.patch (86%) mode change 100644 => 100755 delete mode 100644 BZ_1931355-SRIOV-wait-VF-mount-decrease.patch delete mode 100644 BZ_1931751-nmstate-fix-return-code.patch delete mode 100644 BZ_1932247-nm-Don-t-touch-unmanaged-interface-unless-desired.patch delete mode 100644 BZ_1961912-fix-ovs-interface-activation.patch delete mode 100644 BZ_1961914-do-not-use-unmanaged-interface-for-dns.patch delete mode 100644 BZ_1964439-ovs-Fix-is_ovs_running-in-container-environment.patch delete mode 100644 BZ_1964440-nm-ipv4-Deactivate-profile-when-route-removed.patch delete mode 100644 BZ_1966379_fix_bond_opt_tlb_dynamic_lb.patch delete mode 100644 BZ_1966457_Fix_bond_fail_over_mac.patch delete mode 100644 BZ_1966457_only_validate_desired_bond.patch delete mode 100644 BZ_1979220_static_ip_on_ovs_same_name.patch delete mode 100644 BZ_1979515-SR-IOV-Fix-BCM57416-failure-when-creating-VFs.patch delete mode 100644 BZ_1979943-ovs-Regenerate-iface-metadata-after-RouteRule-metada.patch delete mode 100644 nmstate-1.0.2.tar.gz delete mode 100644 nmstate-1.0.2.tar.gz.asc create mode 100755 nmstate-1.1.0.tar.gz create mode 100755 nmstate-1.1.0.tar.gz.asc mode change 100644 => 100755 nmstate.gpg mode change 100644 => 100755 nmstate.spec diff --git a/0001-nmstatectl-fix-long-arguments-support.patch b/0001-nmstatectl-fix-long-arguments-support.patch new file mode 100755 index 0000000..4334857 --- /dev/null +++ b/0001-nmstatectl-fix-long-arguments-support.patch @@ -0,0 +1,53 @@ +From 99c7f643bab33a26c317e1b72ca3b8490cb1ea60 Mon Sep 17 00:00:00 2001 +From: Fernando Fernandez Mancera +Date: Fri, 16 Jul 2021 08:57:27 +0200 +Subject: [PATCH 1/4] nmstatectl: fix long arguments support + +The support for long arguments is broken. This patch is fixing it and +solving the following errors: + +``` +[root@d0b4a6a0f7a5 nmstate-workspace]# nmstatectl show --running-config +usage: nmstatectl [-h] [--version] + {commit,edit,rollback,set,apply,show,version,gc} ... +nmstatectl: error: unrecognized arguments: --running-config +[root@d0b4a6a0f7a5 nmstate-workspace]# nmstatectl show --show-secrets +usage: nmstatectl [-h] [--version] + {commit,edit,rollback,set,apply,show,version,gc} ... +nmstatectl: error: unrecognized arguments: --show-secrets +``` + +Integration test case added. + +Signed-off-by: Fernando Fernandez Mancera +Signed-off-by: Gris Ge +--- + nmstatectl/nmstatectl.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/nmstatectl/nmstatectl.py b/nmstatectl/nmstatectl.py +index a9f4cb6..6f83069 100644 +--- a/nmstatectl/nmstatectl.py ++++ b/nmstatectl/nmstatectl.py +@@ -223,14 +223,16 @@ def setup_subcommand_show(subparsers): + dest="yaml", + ) + parser_show.add_argument( +- "-r, --running-config", ++ "-r", ++ "--running-config", + help="Show running configurations", + default=False, + action="store_true", + dest="running_config", + ) + parser_show.add_argument( +- "-s, --show-secrets", ++ "-s", ++ "--show-secrets", + help="Show secrets also", + default=False, + action="store_true", +-- +2.32.0 + diff --git a/0002-nm-ethtool-Preserve-existing-ethtool-settings-when-u.patch b/0002-nm-ethtool-Preserve-existing-ethtool-settings-when-u.patch new file mode 100755 index 0000000..5f5ebec --- /dev/null +++ b/0002-nm-ethtool-Preserve-existing-ethtool-settings-when-u.patch @@ -0,0 +1,105 @@ +From b1cb57d1dc4bba6592ba5cfc5c810a2ad19ac941 Mon Sep 17 00:00:00 2001 +From: Gris Ge +Date: Thu, 22 Jul 2021 18:40:50 +0800 +Subject: [PATCH 2/4] nm ethtool: Preserve existing ethtool settings when + undesired + +When user does not define ethtool settings in desire state, +we should preserve existing ethtool setting. + +Integration test case included. + +Signed-off-by: Gris Ge +Signed-off-by: Fernando Fernandez Mancera +--- + libnmstate/nm/connection.py | 18 +++--------------- + libnmstate/nm/ethtool.py | 26 +++++++++++++++++++++++++- + 2 files changed, 28 insertions(+), 16 deletions(-) + +diff --git a/libnmstate/nm/connection.py b/libnmstate/nm/connection.py +index 5d60f6d..5a79c6f 100644 +--- a/libnmstate/nm/connection.py ++++ b/libnmstate/nm/connection.py +@@ -22,8 +22,6 @@ + import uuid + + from libnmstate.error import NmstatePluginError +-from libnmstate.ifaces import IfaceEthtool +-from libnmstate.schema import Ethtool + from libnmstate.schema import Interface + from libnmstate.schema import InterfaceType + from libnmstate.schema import LinuxBridge as LB +@@ -240,19 +238,9 @@ def create_new_nm_simple_conn(iface, nm_profile): + if iface.ieee_802_1x_conf: + settings.append(create_802_1x_setting(iface.ieee_802_1x_conf)) + +- if Ethtool.CONFIG_SUBTREE in iface.original_desire_dict: +- iface_ethtool = IfaceEthtool( +- iface.original_desire_dict[Ethtool.CONFIG_SUBTREE] +- ) +- iface_ethtool.canonicalize( +- iface.original_desire_dict[Ethtool.CONFIG_SUBTREE] +- ) +- setting = create_ethtool_setting( +- iface_ethtool, +- nm_profile, +- ) +- if setting: +- settings.append(setting) ++ ethtool_setting = create_ethtool_setting(iface, nm_profile) ++ if ethtool_setting: ++ settings.append(ethtool_setting) + + nm_simple_conn = NM.SimpleConnection.new() + for setting in settings: +diff --git a/libnmstate/nm/ethtool.py b/libnmstate/nm/ethtool.py +index 466f4f9..3cad1bf 100644 +--- a/libnmstate/nm/ethtool.py ++++ b/libnmstate/nm/ethtool.py +@@ -22,6 +22,7 @@ import logging + from .common import NM + from .common import GLib + ++from libnmstate.ifaces import IfaceEthtool + from libnmstate.schema import Ethtool + + +@@ -59,7 +60,7 @@ _NM_COALESCE_OPT_NAME_MAP = { + } + + +-def create_ethtool_setting(iface_ethtool, base_con_profile): ++def _create_ethtool_setting(iface_ethtool, base_con_profile): + nm_setting = None + + if base_con_profile: +@@ -159,3 +160,26 @@ def nm_set_pause(nm_setting, autoneg, rx, tx): + tx_value, + ) + # pylint: enable=no-member ++ ++ ++def create_ethtool_setting(iface, base_con_profile): ++ if Ethtool.CONFIG_SUBTREE in iface.original_desire_dict: ++ iface_ethtool = IfaceEthtool( ++ iface.original_desire_dict[Ethtool.CONFIG_SUBTREE] ++ ) ++ iface_ethtool.canonicalize( ++ iface.original_desire_dict[Ethtool.CONFIG_SUBTREE] ++ ) ++ return _create_ethtool_setting( ++ iface_ethtool, ++ base_con_profile, ++ ) ++ else: ++ # Preserve existing setting but not create new ++ if base_con_profile: ++ ethtool_setting = base_con_profile.get_setting_by_name( ++ NM.SETTING_ETHTOOL_SETTING_NAME ++ ) ++ if ethtool_setting: ++ return ethtool_setting.duplicate() ++ return None +-- +2.32.0 + diff --git a/0003-ovs-fix-state-ignore-for-ovs-port-when-removing-them.patch b/0003-ovs-fix-state-ignore-for-ovs-port-when-removing-them.patch new file mode 100755 index 0000000..ba000ef --- /dev/null +++ b/0003-ovs-fix-state-ignore-for-ovs-port-when-removing-them.patch @@ -0,0 +1,87 @@ +From f4d190653c55d399b32afc956b2b4a1ff8d20101 Mon Sep 17 00:00:00 2001 +From: Fernando Fernandez Mancera +Date: Mon, 26 Jul 2021 09:58:23 +0200 +Subject: [PATCH 3/4] ovs: fix state=ignore for ovs port when removing them + +When removing an ovs port while the interface is marked as ignored, the +interface should not being removed from the ovs bridge as the user +specidied it should be ignored. + +Example: + +``` +interfaces: +- name: dummy0 + type: dummy + state: ignore +- name: ovsbr0 + type: ovs-bridge + state: up + bridge: + port: + - name: ovs0 +``` + +Integration test case added. + +Signed-off-by: Fernando Fernandez Mancera +Signed-off-by: Gris Ge +--- + libnmstate/nm/profiles.py | 22 ++++++++++++++++++++-- + 1 file changed, 20 insertions(+), 2 deletions(-) + +diff --git a/libnmstate/nm/profiles.py b/libnmstate/nm/profiles.py +index beda5c7..3b0b6be 100644 +--- a/libnmstate/nm/profiles.py ++++ b/libnmstate/nm/profiles.py +@@ -23,6 +23,8 @@ + import logging + from operator import attrgetter + ++from libnmstate.schema import Interface ++from libnmstate.schema import InterfaceState + from libnmstate.schema import InterfaceType + + from .common import NM +@@ -359,7 +361,7 @@ def _delete_orphan_nm_ovs_port_profiles( + continue + # When OVS port has no child, delete it + ovs_bridge_iface = ovs_bridge_profile.iface +- if not _nm_ovs_port_has_child( ++ if not _nm_ovs_port_has_child_or_is_ignored( + nm_profile, ovs_bridge_iface, net_state + ): + ProfileDelete( +@@ -404,7 +406,9 @@ def _use_uuid_as_controller_and_parent(nm_profiles): + nm_profile.update_parent(uuid) + + +-def _nm_ovs_port_has_child(nm_profile, ovs_bridge_iface, net_state): ++def _nm_ovs_port_has_child_or_is_ignored( ++ nm_profile, ovs_bridge_iface, net_state ++): + ovs_port_uuid = nm_profile.get_uuid() + ovs_port_name = nm_profile.get_interface_name() + for ovs_iface_name in ovs_bridge_iface.port: +@@ -415,4 +419,18 @@ def _nm_ovs_port_has_child(nm_profile, ovs_bridge_iface, net_state): + and ovs_iface.controller_type == InterfaceType.OVS_PORT + ): + return True ++ # Gather the ovs bridge interface from the current state in order to check ++ # if any port is ignored in the original desired state. ++ current_ovs_bridge = net_state.ifaces.get_cur_iface( ++ ovs_bridge_iface.name, InterfaceType.OVS_BRIDGE ++ ) ++ if current_ovs_bridge: ++ for port_name in current_ovs_bridge.port: ++ port_iface = net_state.ifaces.all_kernel_ifaces.get(port_name) ++ if ( ++ port_iface ++ and port_iface.original_desire_dict.get(Interface.STATE) ++ == InterfaceState.IGNORE ++ ): ++ return True + return False +-- +2.32.0 + diff --git a/BZ_1986285-nispor-fix-show-of-empty-next_hop_address-and-destin.patch b/0004-nispor-fix-show-of-empty-next_hop_address-and-destin.patch old mode 100644 new mode 100755 similarity index 86% rename from BZ_1986285-nispor-fix-show-of-empty-next_hop_address-and-destin.patch rename to 0004-nispor-fix-show-of-empty-next_hop_address-and-destin.patch index d653412..40be31b --- a/BZ_1986285-nispor-fix-show-of-empty-next_hop_address-and-destin.patch +++ b/0004-nispor-fix-show-of-empty-next_hop_address-and-destin.patch @@ -1,7 +1,8 @@ -From ab55d90e31a121f1cb18d79582a8f4d2a138df91 Mon Sep 17 00:00:00 2001 +From 369ed3210ecedfa1deda88a6eb7cacc19a47f89d Mon Sep 17 00:00:00 2001 From: Fernando Fernandez Mancera Date: Mon, 26 Jul 2021 16:13:15 +0200 -Subject: [PATCH] nispor: fix show of empty next_hop_address and destination +Subject: [PATCH 4/4] nispor: fix show of empty next_hop_address and + destination The correct way of representing an empty next_hop_address is using "0.0.0.0" for IPv4 and "::" for IPv6. This configuration is valid @@ -33,10 +34,10 @@ Integration test case added. Ref: https://bugzilla.redhat.com/1985879 Signed-off-by: Fernando Fernandez Mancera +Signed-off-by: Gris Ge --- - libnmstate/nispor/route.py | 13 +++++++++---- - tests/integration/route_test.py | 30 +++++++++++++++++++++++++++++- - 2 files changed, 38 insertions(+), 5 deletions(-) + libnmstate/nispor/route.py | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libnmstate/nispor/route.py b/libnmstate/nispor/route.py index 510ddc3..9852ba5 100644 @@ -81,5 +82,5 @@ index 510ddc3..9852ba5 100644 return { Route.TABLE_ID: np_rt.table, -- -2.31.1 +2.32.0 diff --git a/BZ_1931355-SRIOV-wait-VF-mount-decrease.patch b/BZ_1931355-SRIOV-wait-VF-mount-decrease.patch deleted file mode 100644 index f215f9f..0000000 --- a/BZ_1931355-SRIOV-wait-VF-mount-decrease.patch +++ /dev/null @@ -1,166 +0,0 @@ -From 80c97b27707b036f0a54988ade4bda3ccb342b34 Mon Sep 17 00:00:00 2001 -From: Fernando Fernandez Mancera -Date: Mon, 22 Feb 2021 12:03:11 +0100 -Subject: [PATCH 1/2] SR-IOV: increase the verification timeout if SR-IOV is - present - -Certain drivers like i40e take a long time to modify the VFs in the -kernel. Nmstate is timing out on verification because of that. In order -to fix this, nmstate is incresing the verification time if SR-IOV is -present on the desired state. - -Signed-off-by: Fernando Fernandez Mancera -Signed-off-by: Gris Ge ---- - libnmstate/ifaces/ethernet.py | 6 ++++++ - libnmstate/netapplier.py | 18 +++++++++++++++++- - 2 files changed, 23 insertions(+), 1 deletion(-) - -diff --git a/libnmstate/ifaces/ethernet.py b/libnmstate/ifaces/ethernet.py -index 292b7bc..ca8501b 100644 ---- a/libnmstate/ifaces/ethernet.py -+++ b/libnmstate/ifaces/ethernet.py -@@ -65,6 +65,12 @@ class EthernetIface(BaseIface): - def is_peer(self): - return self._is_peer - -+ @property -+ def is_sriov(self): -+ return self.raw.get(Ethernet.CONFIG_SUBTREE, {}).get( -+ Ethernet.SRIOV_SUBTREE -+ ) -+ - def create_sriov_vf_ifaces(self): - return [ - EthernetIface( -diff --git a/libnmstate/netapplier.py b/libnmstate/netapplier.py -index cf208d1..3c5759b 100644 ---- a/libnmstate/netapplier.py -+++ b/libnmstate/netapplier.py -@@ -24,6 +24,7 @@ import time - - from libnmstate import validator - from libnmstate.error import NmstateVerificationError -+from libnmstate.schema import InterfaceType - - from .nmstate import create_checkpoints - from .nmstate import destroy_checkpoints -@@ -37,6 +38,7 @@ from .version import get_version - MAINLOOP_TIMEOUT = 35 - VERIFY_RETRY_INTERNAL = 1 - VERIFY_RETRY_TIMEOUT = 5 -+VERIFY_RETRY_TIMEOUT_INCREASE = 4 - - - def apply( -@@ -109,7 +111,13 @@ def _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk): - plugin.apply_changes(net_state, save_to_disk) - verified = False - if verify_change: -- for _ in range(VERIFY_RETRY_TIMEOUT): -+ if _net_state_contains_sriov_interface(net_state): -+ # If SR-IOV is present, the verification timeout is being increased -+ # to avoid timeouts due to slow drivers like i40e. -+ verify_retry = VERIFY_RETRY_TIMEOUT * VERIFY_RETRY_TIMEOUT_INCREASE -+ else: -+ verify_retry = VERIFY_RETRY_TIMEOUT -+ for _ in range(verify_retry): - try: - _verify_change(plugins, net_state) - verified = True -@@ -120,6 +128,14 @@ def _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk): - _verify_change(plugins, net_state) - - -+def _net_state_contains_sriov_interface(net_state): -+ for iface in net_state.ifaces.all_kernel_ifaces.values(): -+ if iface.type == InterfaceType.ETHERNET and iface.is_sriov: -+ return True -+ -+ return False -+ -+ - def _verify_change(plugins, net_state): - current_state = show_with_plugins(plugins) - net_state.verify(current_state) --- -2.27.0 - - -From 439fe3a51a82060c5b62974c6c9fbdf403c4196b Mon Sep 17 00:00:00 2001 -From: Fernando Fernandez Mancera -Date: Mon, 22 Feb 2021 13:33:06 +0100 -Subject: [PATCH 2/2] SR-IOV: fail on verification if `total_vfs` does not - match vfs len - -Signed-off-by: Fernando Fernandez Mancera -Signed-off-by: Gris Ge ---- - libnmstate/ifaces/ethernet.py | 11 +++++++++++ - libnmstate/ifaces/ifaces.py | 14 ++++++++++++++ - 2 files changed, 25 insertions(+) - -diff --git a/libnmstate/ifaces/ethernet.py b/libnmstate/ifaces/ethernet.py -index ca8501b..55772ce 100644 ---- a/libnmstate/ifaces/ethernet.py -+++ b/libnmstate/ifaces/ethernet.py -@@ -61,6 +61,14 @@ class EthernetIface(BaseIface): - .get(Ethernet.SRIOV.TOTAL_VFS, 0) - ) - -+ @property -+ def sriov_vfs(self): -+ return ( -+ self.raw.get(Ethernet.CONFIG_SUBTREE, {}) -+ .get(Ethernet.SRIOV_SUBTREE, {}) -+ .get(Ethernet.SRIOV.VFS_SUBTREE, []) -+ ) -+ - @property - def is_peer(self): - return self._is_peer -@@ -108,6 +116,9 @@ class EthernetIface(BaseIface): - for i in range(self.sriov_total_vfs, old_sriov_total_vfs) - ] - -+ def check_total_vfs_matches_vf_list(self, total_vfs): -+ return total_vfs == len(self.sriov_vfs) -+ - - def _capitalize_sriov_vf_mac(state): - vfs = ( -diff --git a/libnmstate/ifaces/ifaces.py b/libnmstate/ifaces/ifaces.py -index 44c9e61..6c94a98 100644 ---- a/libnmstate/ifaces/ifaces.py -+++ b/libnmstate/ifaces/ifaces.py -@@ -238,6 +238,8 @@ class Ifaces: - if new_iface.name not in self._kernel_ifaces: - new_iface.mark_as_desired() - new_ifaces.append(new_iface) -+ else: -+ self._kernel_ifaces[new_iface.name].mark_as_desired() - for new_iface in new_ifaces: - self._kernel_ifaces[new_iface.name] = new_iface - -@@ -656,6 +658,18 @@ class Ifaces: - cur_iface.state_for_verify(), - ) - ) -+ elif ( -+ iface.type == InterfaceType.ETHERNET and iface.is_sriov -+ ): -+ if not cur_iface.check_total_vfs_matches_vf_list( -+ iface.sriov_total_vfs -+ ): -+ raise NmstateVerificationError( -+ "The NIC exceeded the waiting time for " -+ "verification and it is failing because " -+ "the `total_vfs` does not match the VF " -+ "list length." -+ ) - - def gen_dns_metadata(self, dns_state, route_state): - iface_metadata = dns_state.gen_metadata(self, route_state) --- -2.27.0 - diff --git a/BZ_1931751-nmstate-fix-return-code.patch b/BZ_1931751-nmstate-fix-return-code.patch deleted file mode 100644 index 78b6774..0000000 --- a/BZ_1931751-nmstate-fix-return-code.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b26ab850172a41557cad42cc011bd00d7c108c88 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Tue, 23 Feb 2021 13:52:19 +0800 -Subject: [PATCH] nmstatectl: Fix return code of set command - -The deprecated command `set` should still return the error like -old behaviour. - -Signed-off-by: Gris Ge ---- - nmstatectl/nmstatectl.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nmstatectl/nmstatectl.py b/nmstatectl/nmstatectl.py -index df59942..c94d603 100644 ---- a/nmstatectl/nmstatectl.py -+++ b/nmstatectl/nmstatectl.py -@@ -323,7 +323,7 @@ def show(args): - - def set(args): - warnings.warn("Using 'set' is deprecated, use 'apply' instead.") -- apply(args) -+ return apply(args) - - - def apply(args): --- -2.27.0 - diff --git a/BZ_1932247-nm-Don-t-touch-unmanaged-interface-unless-desired.patch b/BZ_1932247-nm-Don-t-touch-unmanaged-interface-unless-desired.patch deleted file mode 100644 index ea46af7..0000000 --- a/BZ_1932247-nm-Don-t-touch-unmanaged-interface-unless-desired.patch +++ /dev/null @@ -1,223 +0,0 @@ -From ccdcd8f86544a6364109a0c0142d05a5afacf64e Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Tue, 2 Mar 2021 15:31:20 +0800 -Subject: [PATCH] nm: Don't touch unmanaged interface unless desired - -We should ignore NetworkManager unmanaged interface when applying and -verifying unless certain interface listed in desired state explicitly. - -Introduced new plugin interface -`NmstatePlugin.get_ignored_kernel_interface_names()` where plugin may -include a list of interface names which should be ignored during -verification stage. - -Integration test case added to simulate CNV usage on partial editing -a linux bridge holding NM unmanaged interface. - -Signed-off-by: Gris Ge ---- - libnmstate/ifaces/base_iface.py | 3 ++ - libnmstate/ifaces/ifaces.py | 26 ++++++++-------- - libnmstate/netapplier.py | 6 ++++ - libnmstate/nispor/plugin.py | 6 +++- - libnmstate/nm/plugin.py | 25 ++++++++++++++++ - libnmstate/plugin.py | 7 +++++ - tests/integration/linux_bridge_test.py | 8 +---- - tests/integration/nm/linux_bridge_test.py | 36 ++++++++++++++++++++++- - 8 files changed, 95 insertions(+), 22 deletions(-) - -diff --git a/libnmstate/ifaces/base_iface.py b/libnmstate/ifaces/base_iface.py -index 227c1d20..e3f2a1ca 100644 ---- a/libnmstate/ifaces/base_iface.py -+++ b/libnmstate/ifaces/base_iface.py -@@ -322,6 +322,9 @@ class BaseIface: - def mark_as_up(self): - self.raw[Interface.STATE] = InterfaceState.UP - -+ def mark_as_ignored(self): -+ self.raw[Interface.STATE] = InterfaceState.IGNORE -+ - @property - def is_controller(self): - return False -diff --git a/libnmstate/ifaces/ifaces.py b/libnmstate/ifaces/ifaces.py -index 6c94a986..efa24aa3 100644 ---- a/libnmstate/ifaces/ifaces.py -+++ b/libnmstate/ifaces/ifaces.py -@@ -95,7 +95,6 @@ class Ifaces: - self._kernel_ifaces = {} - self._user_space_ifaces = _UserSpaceIfaces() - self._cur_user_space_ifaces = _UserSpaceIfaces() -- self._ignored_ifaces = set() - if cur_iface_infos: - for iface_info in cur_iface_infos: - cur_iface = _to_specific_iface_obj(iface_info, save_to_disk) -@@ -143,10 +142,6 @@ class Ifaces: - ): - # Ignore interface with unknown type - continue -- if iface.is_ignore: -- self._ignored_ifaces.add( -- (iface.name, iface.type, iface.is_user_space_only) -- ) - if cur_iface: - iface.merge(cur_iface) - iface.mark_as_desired() -@@ -169,6 +164,10 @@ class Ifaces: - - self._pre_edit_validation_and_cleanup() - -+ @property -+ def _ignored_ifaces(self): -+ return [iface for iface in self.all_ifaces() if iface.is_ignore] -+ - def _apply_copy_mac_from(self): - for iface in self.all_kernel_ifaces.values(): - if iface.type not in ( -@@ -284,7 +283,7 @@ class Ifaces: - if not defiend in desire state - """ - for iface in self.all_ifaces(): -- if iface.is_up and iface.is_controller: -+ if iface.is_desired and iface.is_up and iface.is_controller: - for port_name in iface.port: - port_iface = self._kernel_ifaces[port_name] - if not port_iface.is_desired and not port_iface.is_up: -@@ -550,13 +549,14 @@ class Ifaces: - return None - - def _remove_iface(self, iface_name, iface_type): -- cur_iface = self._cur_kernel_ifaces.get(iface_name, iface_type) -+ cur_iface = self._user_space_ifaces.get(iface_name, iface_type) - if cur_iface: - self._user_space_ifaces.remove(cur_iface) - else: - cur_iface = self._kernel_ifaces.get(iface_name) - if ( -- iface_type -+ cur_iface -+ and iface_type - and iface_type != InterfaceType.UNKNOWN - and iface_type == cur_iface.type - ): -@@ -813,14 +813,14 @@ class Ifaces: - port_controller_map[port_name] = iface.name - - def _remove_ignore_interfaces(self, ignored_ifaces): -- for iface_name, iface_type, _ in ignored_ifaces: -- self._remove_iface(iface_name, iface_type) -+ for iface in ignored_ifaces: -+ self._remove_iface(iface.name, iface.type) - - # Only kernel interface can be used as port - ignored_kernel_iface_names = set( -- iface_name -- for iface_name, _, is_user_space_only in ignored_ifaces -- if not is_user_space_only -+ iface.name -+ for iface in ignored_ifaces -+ if not iface.is_user_space_only - ) - - # Remove ignored port -diff --git a/libnmstate/netapplier.py b/libnmstate/netapplier.py -index 3c5759b4..a020f003 100644 ---- a/libnmstate/netapplier.py -+++ b/libnmstate/netapplier.py -@@ -107,8 +107,14 @@ def rollback(*, checkpoint=None): - - - def _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk): -+ for plugin in plugins: -+ for iface_name in plugin.get_ignored_kernel_interface_names(): -+ iface = net_state.ifaces.all_kernel_ifaces.get(iface_name) -+ if iface and not iface.is_desired: -+ iface.mark_as_ignored() - for plugin in plugins: - plugin.apply_changes(net_state, save_to_disk) -+ - verified = False - if verify_change: - if _net_state_contains_sriov_interface(net_state): -diff --git a/libnmstate/nispor/plugin.py b/libnmstate/nispor/plugin.py -index dc0ea760..19b21d56 100644 ---- a/libnmstate/nispor/plugin.py -+++ b/libnmstate/nispor/plugin.py -@@ -159,7 +159,11 @@ class NisporPlugin(NmstatePlugin): - np_state = NisporNetState.retrieve() - logging.debug(f"Nispor: current network state {np_state}") - for iface in net_state.ifaces.all_ifaces(): -- if iface.is_desired: -+ if iface.is_ignore: -+ logging.debug( -+ f"Nispor: Interface {iface.name} {iface.type} ignored" -+ ) -+ elif iface.is_desired: - logging.debug( - f"Nispor: desired network state {iface.to_dict()}" - ) -diff --git a/libnmstate/nm/plugin.py b/libnmstate/nm/plugin.py -index 302b4cca..335d93c7 100644 ---- a/libnmstate/nm/plugin.py -+++ b/libnmstate/nm/plugin.py -@@ -36,6 +36,7 @@ from .checkpoint import get_checkpoints - from .common import NM - from .context import NmContext - from .device import get_device_common_info -+from .device import get_iface_type - from .device import list_devices - from .dns import get_running as get_dns_running - from .dns import get_running_config as get_dns_running_config -@@ -268,6 +269,21 @@ class NetworkManagerPlugin(NmstatePlugin): - ) - return NmProfiles(None).generate_config_strings(net_state) - -+ def get_ignored_kernel_interface_names(self): -+ """ -+ Return a list of unmanged kernel interface names. -+ """ -+ ignored_ifaces = set() -+ for nm_dev in list_devices(self.client): -+ if ( -+ nm_dev -+ and nm_dev.get_iface() -+ and not nm_dev.get_managed() -+ and _is_kernel_iface(nm_dev) -+ ): -+ ignored_ifaces.add(nm_dev.get_iface()) -+ return list(ignored_ifaces) -+ - - def _remove_ovs_bridge_unsupported_entries(iface_info): - """ -@@ -283,3 +299,12 @@ def _remove_ovs_bridge_unsupported_entries(iface_info): - - def _nm_utils_decode_version(): - return f"{NM.MAJOR_VERSION}.{NM.MINOR_VERSION}.{NM.MICRO_VERSION}" -+ -+ -+def _is_kernel_iface(nm_dev): -+ iface_type = get_iface_type(nm_dev) -+ return iface_type != InterfaceType.UNKNOWN and iface_type not in ( -+ InterfaceType.OVS_BRIDGE, -+ InterfaceType.OVS_INTERFACE, -+ InterfaceType.OVS_PORT, -+ ) -diff --git a/libnmstate/plugin.py b/libnmstate/plugin.py -index ef3874ff..e1d9ad58 100644 ---- a/libnmstate/plugin.py -+++ b/libnmstate/plugin.py -@@ -128,3 +128,10 @@ class NmstatePlugin(metaclass=ABCMeta): - persistently. - """ - return [] -+ -+ def get_ignored_kernel_interface_names(self): -+ """ -+ Return a list of kernel interface names which should be ignored -+ during verification stage. -+ """ -+ return [] --- -2.29.2 - diff --git a/BZ_1961912-fix-ovs-interface-activation.patch b/BZ_1961912-fix-ovs-interface-activation.patch deleted file mode 100644 index 81109e5..0000000 --- a/BZ_1961912-fix-ovs-interface-activation.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 95d77329b30c9a9a435a881941e27f9a1bed074e Mon Sep 17 00:00:00 2001 -From: Fernando Fernandez Mancera -Date: Wed, 5 May 2021 10:14:40 +0200 -Subject: [PATCH 1/2] nm.profile: do not activate new interfaces twice - -The current code is always adding the action MODIFIED if the interface -is marked as up on the desired state. When a new interface is being -added, Nmstate is adding two actions MODIFIED and NEW_*, that is -incorrect. - -This patch is improving the performance when creating new interfaces. - -Signed-off-by: Fernando Fernandez Mancera -Signed-off-by: Gris Ge ---- - libnmstate/nm/profile.py | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/libnmstate/nm/profile.py b/libnmstate/nm/profile.py -index b4814d9..e117dfe 100644 ---- a/libnmstate/nm/profile.py -+++ b/libnmstate/nm/profile.py -@@ -164,7 +164,6 @@ class NmProfile: - if self._iface.is_virtual and self._nm_dev: - self._add_action(NmProfile.ACTION_DELETE_DEVICE) - elif self._iface.is_up and not self._needs_veth_activation(): -- self._add_action(NmProfile.ACTION_MODIFIED) - if not self._nm_dev: - if self._iface.type == InterfaceType.OVS_PORT: - self._add_action(NmProfile.ACTION_NEW_OVS_PORT) -@@ -176,6 +175,8 @@ class NmProfile: - self._add_action(NmProfile.ACTION_NEW_VXLAN) - else: - self._add_action(NmProfile.ACTION_NEW_IFACES) -+ else: -+ self._add_action(NmProfile.ACTION_MODIFIED) - - elif self._iface.is_down: - if self._nm_ac: --- -2.31.1 - - -From 9ea925a9a978671881e428abf82aac39c01376e8 Mon Sep 17 00:00:00 2001 -From: Fernando Fernandez Mancera -Date: Wed, 5 May 2021 10:52:32 +0200 -Subject: [PATCH 2/2] nm.profile: activate modified ovs-port first - -When removing an ovs-br with an ovs-iface attached and creating a new -ovs-br with the ovs-iface attached in the same transaction the order of -the activations is important. - -The ovs-port must be activated before the ovs-iface. If not, NM will -throw a dependency error. This error is correct because the ovs-iface -depends on the ovs-port, so it must be updated first. - -This fixes: - -``` -Traceback (most recent call last): - File "/usr/lib/python3.6/site-packages/libnmstate/nm/checkpoint.py", line 93, in _refresh_checkpoint_timeout - self._dbuspath, self._timeout, cancellable, cb, cb_data -TypeError: Argument 1 does not allow None as a value -^CTraceback (most recent call last): - File "/usr/lib/python3.6/site-packages/libnmstate/nmstate.py", line 53, in plugin_context - yield plugins - File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 78, in apply - _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk) - File "/usr/lib/python3.6/site-packages/libnmstate/netapplier.py", line 116, in _apply_ifaces_state - plugin.apply_changes(net_state, save_to_disk) - File "/usr/lib/python3.6/site-packages/libnmstate/nm/plugin.py", line 204, in apply_changes - NmProfiles(self.context).apply_config(net_state, save_to_disk) - File "/usr/lib/python3.6/site-packages/libnmstate/nm/profiles.py", line 89, in apply_config - self._ctx.wait_all_finish() - File "/usr/lib/python3.6/site-packages/libnmstate/nm/context.py", line 213, in wait_all_finish - raise tmp_error -libnmstate.error.NmstateLibnmError: Activate profile uuid:3a359cd0-d68a-4c7a-ae50-f97b47390142 iface:net type: ovs-interface failed: reason= -``` - -Integration test added - -Ref: https://bugzilla.redhat.com/1947287 - -Signed-off-by: Fernando Fernandez Mancera -Signed-off-by: Gris Ge ---- - libnmstate/nm/profile.py | 13 ++++++++++++- - 1 file changed, 12 insertions(+), 1 deletion(-) - -diff --git a/libnmstate/nm/profile.py b/libnmstate/nm/profile.py -index e117dfe..b655885 100644 ---- a/libnmstate/nm/profile.py -+++ b/libnmstate/nm/profile.py -@@ -69,6 +69,8 @@ class NmProfile: - ACTION_OTHER_MASTER = "other_master" - ACTION_DELETE_PROFILE = "delete_profile" - ACTION_TOP_MASTER = "top_master" -+ ACTION_MODIFIED_OVS_PORT = "modified_ovs_port" -+ ACTION_MODIFIED_OVS_IFACE = "modified_ovs_iface" - - # This is order on group for activation/deactivation - ACTIONS = ( -@@ -81,6 +83,8 @@ class NmProfile: - ACTION_NEW_OVS_IFACE, - ACTION_NEW_VETH, - ACTION_NEW_VETH_PEER, -+ ACTION_MODIFIED_OVS_PORT, -+ ACTION_MODIFIED_OVS_IFACE, - ACTION_MODIFIED, - ACTION_NEW_VLAN, - ACTION_NEW_VXLAN, -@@ -176,7 +180,12 @@ class NmProfile: - else: - self._add_action(NmProfile.ACTION_NEW_IFACES) - else: -- self._add_action(NmProfile.ACTION_MODIFIED) -+ if self._iface.type == InterfaceType.OVS_PORT: -+ self._add_action(NmProfile.ACTION_MODIFIED_OVS_PORT) -+ if self._iface.type == InterfaceType.OVS_INTERFACE: -+ self._add_action(NmProfile.ACTION_MODIFIED_OVS_IFACE) -+ else: -+ self._add_action(NmProfile.ACTION_MODIFIED) - - elif self._iface.is_down: - if self._nm_ac: -@@ -420,6 +429,8 @@ class NmProfile: - def do_action(self, action): - if action in ( - NmProfile.ACTION_MODIFIED, -+ NmProfile.ACTION_MODIFIED_OVS_PORT, -+ NmProfile.ACTION_MODIFIED_OVS_IFACE, - NmProfile.ACTION_ACTIVATE_FIRST, - NmProfile.ACTION_TOP_MASTER, - NmProfile.ACTION_NEW_IFACES, --- -2.31.1 - diff --git a/BZ_1961914-do-not-use-unmanaged-interface-for-dns.patch b/BZ_1961914-do-not-use-unmanaged-interface-for-dns.patch deleted file mode 100644 index c6b7af3..0000000 --- a/BZ_1961914-do-not-use-unmanaged-interface-for-dns.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 72edab395316ba1ae69ea4d788b0572c935759ac Mon Sep 17 00:00:00 2001 -From: Fernando Fernandez Mancera -Date: Tue, 27 Apr 2021 10:19:02 +0200 -Subject: [PATCH] net_state: mark ifaces as ignored earlier - -Nmstate is not touching unmanaged interfaces if they are not being -included in the desired state. If an unmanaged interface has a default -gateway configured and we try to add a dns server, Nmstate will pick the -unmanaged interface because at that point it is not marked as ignored. - -As the interface is being marked as ignored later, the changes are not -being applied and is failing on verification. In order to avoid this, -the unmanaged interfaces should be marked as ignored earlier so they are -not considered for DNS/Routes changes. - -Ref: https://bugzilla.redhat.com/1944582 - -Signed-off-by: Fernando Fernandez Mancera -Signed-off-by: Gris Ge ---- - libnmstate/dns.py | 11 +++++++++-- - libnmstate/net_state.py | 13 +++++++++++-- - libnmstate/netapplier.py | 19 +++++++++++++------ - 3 files changed, 33 insertions(+), 10 deletions(-) - -diff --git a/libnmstate/dns.py b/libnmstate/dns.py -index 1fb2cc8..d44a869 100644 ---- a/libnmstate/dns.py -+++ b/libnmstate/dns.py -@@ -133,7 +133,7 @@ class DnsState: - Return tuple: (ipv4_iface, ipv6_iface) - """ - ipv4_iface, ipv6_iface = self._find_ifaces_with_static_gateways( -- route_state -+ ifaces, route_state - ) - if not (ipv4_iface and ipv6_iface): - ( -@@ -147,7 +147,7 @@ class DnsState: - - return ipv4_iface, ipv6_iface - -- def _find_ifaces_with_static_gateways(self, route_state): -+ def _find_ifaces_with_static_gateways(self, ifaces, route_state): - """ - Return tuple of interfaces with IPv4 and IPv6 static gateways. - """ -@@ -158,6 +158,11 @@ class DnsState: - if ipv4_iface and ipv6_iface: - return (ipv4_iface, ipv6_iface) - if route.is_gateway: -+ # Only interfaces not ignored can be considered as valid -+ # static gateway for nameservers. -+ iface = ifaces.all_kernel_ifaces.get(iface_name) -+ if iface and iface.is_ignore: -+ continue - if route.is_ipv6: - ipv6_iface = iface_name - else: -@@ -168,6 +173,8 @@ class DnsState: - ipv4_iface = None - ipv6_iface = None - for iface in ifaces.all_kernel_ifaces.values(): -+ if iface.is_ignore: -+ continue - if ipv4_iface and ipv6_iface: - return (ipv4_iface, ipv6_iface) - for family in (Interface.IPV4, Interface.IPV6): -diff --git a/libnmstate/net_state.py b/libnmstate/net_state.py -index 5dc7b43..713b7dc 100644 ---- a/libnmstate/net_state.py -+++ b/libnmstate/net_state.py -@@ -1,5 +1,5 @@ - # --# Copyright (c) 2020 Red Hat, Inc. -+# Copyright (c) 2020-2021 Red Hat, Inc. - # - # This file is part of nmstate - # -@@ -26,8 +26,8 @@ from libnmstate.schema import Interface - from libnmstate.schema import Route - from libnmstate.schema import RouteRule - --from .ifaces import Ifaces - from .dns import DnsState -+from .ifaces import Ifaces - from .route import RouteState - from .route_rule import RouteRuleState - from .state import state_match -@@ -37,6 +37,7 @@ class NetState: - def __init__( - self, - desire_state, -+ ignored_ifnames=[], - current_state=None, - save_to_disk=True, - gen_conf_mode=False, -@@ -49,6 +50,8 @@ class NetState: - save_to_disk, - gen_conf_mode, - ) -+ if not gen_conf_mode: -+ self._mark_ignored_kernel_ifaces(ignored_ifnames) - self._route = RouteState( - self._ifaces, - desire_state.get(Route.KEY), -@@ -70,6 +73,12 @@ class NetState: - self._ifaces.gen_route_metadata(self._route) - self._ifaces.gen_route_rule_metadata(self._route_rule, self._route) - -+ def _mark_ignored_kernel_ifaces(self, ignored_ifnames): -+ for iface_name in ignored_ifnames: -+ iface = self._ifaces.all_kernel_ifaces.get(iface_name) -+ if iface and not iface.is_desired: -+ iface.mark_as_ignored() -+ - def verify(self, current_state): - self._ifaces.verify(current_state.get(Interface.KEY)) - self._dns.verify(current_state.get(DNS.KEY)) -diff --git a/libnmstate/netapplier.py b/libnmstate/netapplier.py -index a020f00..202494d 100644 ---- a/libnmstate/netapplier.py -+++ b/libnmstate/netapplier.py -@@ -73,7 +73,10 @@ def apply( - validator.validate_capabilities( - desired_state, plugins_capabilities(plugins) - ) -- net_state = NetState(desired_state, current_state, save_to_disk) -+ ignored_ifnames = _get_ignored_interface_names(plugins) -+ net_state = NetState( -+ desired_state, ignored_ifnames, current_state, save_to_disk -+ ) - checkpoints = create_checkpoints(plugins, rollback_timeout) - _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk) - if commit: -@@ -107,11 +110,6 @@ def rollback(*, checkpoint=None): - - - def _apply_ifaces_state(plugins, net_state, verify_change, save_to_disk): -- for plugin in plugins: -- for iface_name in plugin.get_ignored_kernel_interface_names(): -- iface = net_state.ifaces.all_kernel_ifaces.get(iface_name) -- if iface and not iface.is_desired: -- iface.mark_as_ignored() - for plugin in plugins: - plugin.apply_changes(net_state, save_to_disk) - -@@ -145,3 +143,12 @@ def _net_state_contains_sriov_interface(net_state): - def _verify_change(plugins, net_state): - current_state = show_with_plugins(plugins) - net_state.verify(current_state) -+ -+ -+def _get_ignored_interface_names(plugins): -+ ifaces = set() -+ for plugin in plugins: -+ for iface_name in plugin.get_ignored_kernel_interface_names(): -+ ifaces.add(iface_name) -+ -+ return ifaces --- -2.31.1 - diff --git a/BZ_1964439-ovs-Fix-is_ovs_running-in-container-environment.patch b/BZ_1964439-ovs-Fix-is_ovs_running-in-container-environment.patch deleted file mode 100644 index 5856e10..0000000 --- a/BZ_1964439-ovs-Fix-is_ovs_running-in-container-environment.patch +++ /dev/null @@ -1,222 +0,0 @@ -From 48c7645ce8849ac31298e6c2b1d5661d0f581279 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Mon, 17 May 2021 16:09:52 +0800 -Subject: [PATCH 1/2] ovs: Fix `is_ovs_running()` in container environment. - -In k8s container environment, the OVS database socket -/var/run/openvswitch/db.sock is mounted from host, so NM can managed it -without the ovs daemon running in container. - -To support that, this patch removed the top level checking on -`is_ovs_running()` and trust plugin raise the proper error on failure. - -Patched the NM plugin to check the error -`NM.DeviceStateReason.OVSDB_FAILED` on activation failure, raise -`NmstateDependencyError` if OVS DB failed to connected. - -NM will not raise any error when creating OVS internal interface with -OVSDB mounted to /dev/null, NM will keep showing the OVS interface as -ACTIVATING, changed the fallback checker to give only 30 seconds for OVS -interface to exit `NM.DeviceState.PREPARE`, if not treat it as OVS -daemon malfunctioning. - -Updated integration test case to mask(mount /dev/null) the OVS DB socket -file for simulating the stopped OVS daemon. - -Signed-off-by: Gris Ge -Signed-off-by: Fernando Fernandez Mancera ---- - libnmstate/ifaces/ovs.py | 15 ---------- - libnmstate/nm/active_connection.py | 47 ++++++++++++++++++++++++++---- - libnmstate/nm/plugin.py | 3 +- - libnmstate/validator.py | 16 +++------- - tests/integration/ovs_test.py | 41 +++++++++++--------------- - 5 files changed, 64 insertions(+), 58 deletions(-) - -diff --git a/libnmstate/ifaces/ovs.py b/libnmstate/ifaces/ovs.py -index 24d4aba..28892ad 100644 ---- a/libnmstate/ifaces/ovs.py -+++ b/libnmstate/ifaces/ovs.py -@@ -19,7 +19,6 @@ - - from copy import deepcopy - from operator import itemgetter --import subprocess - import warnings - - from libnmstate.error import NmstateValueError -@@ -252,20 +251,6 @@ class OvsInternalIface(BaseIface): - self._info.pop(Interface.MAC, None) - - --def is_ovs_running(): -- try: -- subprocess.run( -- ("systemctl", "status", "openvswitch"), -- stdout=subprocess.DEVNULL, -- stderr=subprocess.DEVNULL, -- check=True, -- timeout=SYSTEMCTL_TIMEOUT_SECONDS, -- ) -- return True -- except Exception: -- return False -- -- - def is_ovs_lag_port(port_state): - return port_state.get(OVSBridge.Port.LINK_AGGREGATION_SUBTREE) is not None - -diff --git a/libnmstate/nm/active_connection.py b/libnmstate/nm/active_connection.py -index ddf93a7..150256f 100644 ---- a/libnmstate/nm/active_connection.py -+++ b/libnmstate/nm/active_connection.py -@@ -20,6 +20,7 @@ - import logging - - from libnmstate.error import NmstateLibnmError -+from libnmstate.error import NmstateDependencyError - from libnmstate.error import NmstateInternalError - - from .common import GLib -@@ -33,6 +34,7 @@ from .ipv6 import is_dynamic as is_ipv6_dynamic - - NM_AC_STATE_CHANGED_SIGNAL = "state-changed" - FALLBACK_CHECKER_INTERNAL = 15 -+MAX_OVS_IFACE_PREPARE_TIME = FALLBACK_CHECKER_INTERNAL * 2 - GIO_ERROR_DOMAIN = "g-io-error-quark" - - -@@ -92,6 +94,7 @@ class ProfileActivation: - self._dev_handlers = set() - self._action = None - self._fallback_checker = None -+ self._fallback_checker_counter = 0 - - def run(self): - specific_object = None -@@ -336,19 +339,53 @@ class ProfileActivation: - self._activation_clean_up() - self._ctx.finish_async(self._action) - elif not is_activating(self._nm_ac, self._nm_dev): -- reason = f"{self._nm_ac.get_state_reason()}" -+ nm_ac_reason = f"{self._nm_ac.get_state_reason()}" -+ nm_dev_reason = None - if self._nm_dev: -- reason += f" {self._nm_dev.get_state_reason()}" -+ nm_dev_reason = self._nm_dev.get_state_reason() -+ -+ if nm_dev_reason == NM.DeviceStateReason.OVSDB_FAILED: -+ error = NmstateDependencyError( -+ f"{self._action} failed: failed to communicating with " -+ f"Open vSwitch database, {nm_dev_reason}" -+ ) -+ else: -+ reason = nm_ac_reason + ( -+ str(nm_dev_reason) if nm_dev_reason else "" -+ ) -+ error = NmstateLibnmError( -+ f"{self._action} failed: reason={reason}" -+ ) - self._activation_clean_up() -- self._ctx.fail( -- NmstateLibnmError(f"{self._action} failed: reason={reason}") -- ) -+ self._ctx.fail(error) - - def _fallback_checker_callback(self, _user_data): -+ self._fallback_checker_counter += 1 - nm_dev = get_nm_dev(self._ctx, self._iface_name, self._iface_type) - if nm_dev: - self._nm_dev = nm_dev - self._activation_progress_check() -+ # When OVSDB connection is invalid(such as been mounted as -+ # /dev/null), NM will hang on the activation of ovs internal -+ # interface with state ACITVATING with reason UNKNOWN forever with -+ # no state change signal. The fallback check only found it -+ # as activating which lead us hang till killed by idle timeout. -+ # To prevent that, when we found OVS interface interface in -+ # `NM.DeviceState.PREPARE` on in second call of fallbacker, -+ # we fail the action as NmstateDependencyError. -+ if ( -+ self._fallback_checker_counter -+ >= MAX_OVS_IFACE_PREPARE_TIME / FALLBACK_CHECKER_INTERNAL -+ and nm_dev.get_device_type() == NM.DeviceType.OVS_INTERFACE -+ and nm_dev.get_state() == NM.DeviceState.PREPARE -+ ): -+ self._ctx.fail( -+ NmstateDependencyError( -+ f"{self._action} failed: timeout on creating OVS " -+ "interface, please check Open vSwitch daemon" -+ ) -+ ) -+ - return GLib.SOURCE_CONTINUE - - -diff --git a/libnmstate/nm/plugin.py b/libnmstate/nm/plugin.py -index 335d93c..da933b3 100644 ---- a/libnmstate/nm/plugin.py -+++ b/libnmstate/nm/plugin.py -@@ -23,7 +23,6 @@ from operator import itemgetter - from libnmstate.error import NmstateDependencyError - from libnmstate.error import NmstateNotSupportedError - from libnmstate.error import NmstateValueError --from libnmstate.ifaces.ovs import is_ovs_running - from libnmstate.schema import DNS - from libnmstate.schema import Interface - from libnmstate.schema import InterfaceType -@@ -103,7 +102,7 @@ class NetworkManagerPlugin(NmstatePlugin): - @property - def capabilities(self): - capabilities = [] -- if has_ovs_capability(self.client) and is_ovs_running(): -+ if has_ovs_capability(self.client): - capabilities.append(NmstatePlugin.OVS_CAPABILITY) - if has_team_capability(self.client): - capabilities.append(NmstatePlugin.TEAM_CAPABILITY) -diff --git a/libnmstate/validator.py b/libnmstate/validator.py -index 02890b4..cd3b540 100644 ---- a/libnmstate/validator.py -+++ b/libnmstate/validator.py -@@ -22,7 +22,6 @@ import logging - - import jsonschema as js - --from libnmstate.ifaces.ovs import is_ovs_running - from libnmstate.schema import Interface - from libnmstate.schema import InterfaceType - from libnmstate.error import NmstateDependencyError -@@ -50,7 +49,6 @@ def validate_interface_capabilities(ifaces_state, capabilities): - ifaces_types = {iface_state.get("type") for iface_state in ifaces_state} - has_ovs_capability = NmstatePlugin.OVS_CAPABILITY in capabilities - has_team_capability = NmstatePlugin.TEAM_CAPABILITY in capabilities -- ovs_is_running = is_ovs_running() - for iface_type in ifaces_types: - is_ovs_type = iface_type in ( - InterfaceType.OVS_BRIDGE, -@@ -58,18 +56,12 @@ def validate_interface_capabilities(ifaces_state, capabilities): - InterfaceType.OVS_PORT, - ) - if is_ovs_type and not has_ovs_capability: -- if not ovs_is_running: -- raise NmstateDependencyError( -- "openvswitch service is not started." -- ) -- else: -- raise NmstateDependencyError( -- "Open vSwitch NetworkManager support not installed " -- "and started" -- ) -+ raise NmstateDependencyError( -+ "Open vSwitch support not properly installed or started" -+ ) - elif iface_type == InterfaceType.TEAM and not has_team_capability: - raise NmstateDependencyError( -- "NetworkManager-team plugin not installed and started" -+ "Team support not properly installed or started" - ) - - --- -2.31.1 - diff --git a/BZ_1964440-nm-ipv4-Deactivate-profile-when-route-removed.patch b/BZ_1964440-nm-ipv4-Deactivate-profile-when-route-removed.patch deleted file mode 100644 index 1ffe314..0000000 --- a/BZ_1964440-nm-ipv4-Deactivate-profile-when-route-removed.patch +++ /dev/null @@ -1,86 +0,0 @@ -From af8199135907d300014b5052571ca3e445455af7 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Tue, 25 May 2021 16:50:06 +0800 -Subject: [PATCH 2/2] nm ipv4: Deactivate profile when route removed. - -The bug https://bugzilla.redhat.com/show_bug.cgi?id=1962551 has shown -IPv4 route also share the same problem. - -Whenever we got a route removal, we deactivate that profile via -NetworkManager. - -Integration test case included. - -Signed-off-by: Gris Ge -Signed-off-by: Fernando Fernandez Mancera ---- - libnmstate/nm/profile.py | 5 +++-- - libnmstate/route.py | 19 +++++++---------- - tests/integration/route_test.py | 37 ++++++++++++++++++++++++++++++--- - 3 files changed, 45 insertions(+), 16 deletions(-) - -diff --git a/libnmstate/nm/profile.py b/libnmstate/nm/profile.py -index b655885..6b20b21 100644 ---- a/libnmstate/nm/profile.py -+++ b/libnmstate/nm/profile.py -@@ -49,7 +49,7 @@ from .translator import Api2Nm - IMPORT_NM_DEV_TIMEOUT = 5 - IMPORT_NM_DEV_RETRY_INTERNAL = 0.5 - FALLBACK_CHECKER_INTERNAL = 15 --IPV6_ROUTE_REMOVED = "_ipv6_route_removed" -+ROUTE_REMOVED = "_route_removed" - - - class NmProfile: -@@ -193,9 +193,10 @@ class NmProfile: - elif self._iface.is_virtual and self._nm_dev: - self._add_action(NmProfile.ACTION_DELETE_DEVICE) - -- if self._iface.raw.get(IPV6_ROUTE_REMOVED): -+ if self._iface.raw.get(ROUTE_REMOVED): - # This is a workaround for NM bug: - # https://bugzilla.redhat.com/1837254 -+ # https://bugzilla.redhat.com/1962551 - self._add_action(NmProfile.ACTION_DEACTIVATE_FIRST) - - if self._iface.is_controller and self._iface.is_up: -diff --git a/libnmstate/route.py b/libnmstate/route.py -index cdea198..d373427 100644 ---- a/libnmstate/route.py -+++ b/libnmstate/route.py -@@ -36,7 +36,7 @@ from .state import StateEntry - DEFAULT_ROUTE_TABLE = 254 - - --IPV6_ROUTE_REMOVED = "_ipv6_route_removed" -+ROUTE_REMOVED = "_route_removed" - - - class RouteEntry(StateEntry): -@@ -235,16 +235,13 @@ class RouteState: - for route in route_set: - if not rt.match(route): - new_routes.add(route) -- if route.is_ipv6: -- # The routes match and therefore it is being removed. -- # Nmstate will check if it is an IPv6 route and if so, -- # marking the interface as deactivate first. -- # -- # This is a workaround for NM bug: -- # https://bugzilla.redhat.com/1837254 -- ifaces.all_kernel_ifaces[iface_name].raw[ -- IPV6_ROUTE_REMOVED -- ] = True -+ # The routes match and therefore it is being removed. -+ # marking the interface as deactivate first. -+ # -+ # This is a workaround for NM bug: -+ # https://bugzilla.redhat.com/1837254 -+ # https://bugzilla.redhat.com/1962551 -+ ifaces.all_kernel_ifaces[iface_name].raw[ROUTE_REMOVED] = True - if new_routes != route_set: - self._routes[iface_name] = new_routes - --- -2.31.1 - diff --git a/BZ_1966379_fix_bond_opt_tlb_dynamic_lb.patch b/BZ_1966379_fix_bond_opt_tlb_dynamic_lb.patch deleted file mode 100644 index 1d70d68..0000000 --- a/BZ_1966379_fix_bond_opt_tlb_dynamic_lb.patch +++ /dev/null @@ -1,74 +0,0 @@ -From e503eb8241dda600ef16741c29cab83443ae0528 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Tue, 1 Jun 2021 10:13:33 +0800 -Subject: [PATCH 1/2] nm bond: Fixing `tlb_dynamic_lb` option - -NM only takes 1 or 0 for True/False, currently only "use_carrier" -and "tlb_dynamic_lb" are boolean. - -Integration test case included. NM 1.31 is required for bug -https://bugzilla.redhat.com/show_bug.cgi?id=1959934 - -Signed-off-by: Gris Ge ---- - libnmstate/nm/bond.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libnmstate/nm/bond.py b/libnmstate/nm/bond.py -index cebac4d..067d87f 100644 ---- a/libnmstate/nm/bond.py -+++ b/libnmstate/nm/bond.py -@@ -92,7 +92,7 @@ def _nm_fix_bond_options(option_name, option_value): - option_name, option_value - ) - ) -- elif option_name == "use_carrier": -+ elif option_name in ("use_carrier", "tlb_dynamic_lb"): - option_value = 1 if option_value else 0 - - return str(option_value) --- -2.31.1 - - -From 1d6c7715dfbcb5021016bcd7b4f1f9fa357b2f20 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Tue, 1 Jun 2021 10:41:57 +0800 -Subject: [PATCH 2/2] nm bond: Fix preserving `all_slaves_active` option - -When `all_slaves_active` was previously set via nmstate or NM, follow up -bond modification will fail with: - - NmstateNotImplementedError: Unsupported bond option: 'all_slaves_active'='0' - -This is because the option returned by `_get_bond_options_from_profiles()` is -not canonicalized. - -Expand the check to cover `1` and `0`. - -Integration test case included. - -Signed-off-by: Gris Ge ---- - libnmstate/nm/bond.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/libnmstate/nm/bond.py b/libnmstate/nm/bond.py -index 067d87f..1642319 100644 ---- a/libnmstate/nm/bond.py -+++ b/libnmstate/nm/bond.py -@@ -82,9 +82,9 @@ def create_setting(iface, wired_setting, base_con_profile): - - def _nm_fix_bond_options(option_name, option_value): - if option_name == "all_slaves_active": -- if option_value == "delivered": -+ if option_value in ("delivered", "1"): - option_value = 1 -- elif option_value == "dropped": -+ elif option_value in ("dropped", "0"): - option_value = 0 - else: - raise NmstateNotImplementedError( --- -2.31.1 - diff --git a/BZ_1966457_Fix_bond_fail_over_mac.patch b/BZ_1966457_Fix_bond_fail_over_mac.patch deleted file mode 100644 index c72cc8f..0000000 --- a/BZ_1966457_Fix_bond_fail_over_mac.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b1e94d1aa04f51b2d15711c8e7ab37198b173065 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Tue, 1 Jun 2021 16:33:15 +0800 -Subject: [PATCH] bond: Fix bond fail_over_mac=active - -With bond interface in fail_over_mac=active and active-backup mode, -any future change via nmstate will fail as nmstate is validating -on current state instead of desire state for this bond mac restriction. - -Fixed the code to only validate bond mac restriction on desired or -changed bond interface. - -Integration test case include. - -Signed-off-by: Gris Ge ---- - libnmstate/ifaces/bond.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libnmstate/ifaces/bond.py b/libnmstate/ifaces/bond.py -index 138386e..01859b0 100644 ---- a/libnmstate/ifaces/bond.py -+++ b/libnmstate/ifaces/bond.py -@@ -88,7 +88,7 @@ class BondIface(BaseIface): - - def pre_edit_validation_and_cleanup(self): - super().pre_edit_validation_and_cleanup() -- if self.is_up: -+ if self.is_up and (self.is_desired or self.is_changed): - self._discard_bond_option_when_mode_change() - self._validate_bond_mode() - self._fix_mac_restriced_mode() --- -2.31.1 - diff --git a/BZ_1966457_only_validate_desired_bond.patch b/BZ_1966457_only_validate_desired_bond.patch deleted file mode 100644 index fd4a581..0000000 --- a/BZ_1966457_only_validate_desired_bond.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 355bc8f052e35084405343a0b94ccf06007c31f3 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Wed, 2 Jun 2021 19:53:25 +0800 -Subject: [PATCH] bond: Don't validate current bond status - -If a bond interface is only marked as changed due to other -interface(like bridge port list change), its original desire information -is fully read from current status, there is no need to validate it. - -The fix is only validate on desired bond interface. - -Signed-off-by: Gris Ge ---- - libnmstate/ifaces/bond.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libnmstate/ifaces/bond.py b/libnmstate/ifaces/bond.py -index 01859b0..6311f5f 100644 ---- a/libnmstate/ifaces/bond.py -+++ b/libnmstate/ifaces/bond.py -@@ -88,7 +88,7 @@ class BondIface(BaseIface): - - def pre_edit_validation_and_cleanup(self): - super().pre_edit_validation_and_cleanup() -- if self.is_up and (self.is_desired or self.is_changed): -+ if self.is_up and self.is_desired: - self._discard_bond_option_when_mode_change() - self._validate_bond_mode() - self._fix_mac_restriced_mode() --- -2.31.1 - diff --git a/BZ_1979220_static_ip_on_ovs_same_name.patch b/BZ_1979220_static_ip_on_ovs_same_name.patch deleted file mode 100644 index 5321f17..0000000 --- a/BZ_1979220_static_ip_on_ovs_same_name.patch +++ /dev/null @@ -1,245 +0,0 @@ -From 9f505f21b90cf122539fbe9bc3bf78ef170f5c12 Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Tue, 6 Jul 2021 11:53:55 +0800 -Subject: [PATCH] nm ovs: Fix OVS bridge and interface using the same name - -Nmstate will fail on verification when setting ip to OVS interface -sharing the same name with OVS bridge. - -This is caused by NM plugin does not index with interface type when -retrieving interface applied configure which lead to OVS bridge or OVS -interface applied configure overlapping each other. - -To fix this problem, we use `NetworkManagerPlugin._kernel_nic_applied_configs` -and `NetworkManagerPlugin._userspace_nic_applied_configs()` to -differentiate them. The kernel data is still indexed by interface name, -the user space data is indexed by interface name and type. - -Integration test case included as tier 1 as OpenShift need it. - -Signed-off-by: Gris Ge ---- - libnmstate/nm/device.py | 8 +++++ - libnmstate/nm/plugin.py | 61 ++++++++++++++++++++++++++------------- - libnmstate/nm/profiles.py | 38 ++++++++++++++++++++---- - 3 files changed, 81 insertions(+), 26 deletions(-) - -diff --git a/libnmstate/nm/device.py b/libnmstate/nm/device.py -index 3c58bae..4c97733 100644 ---- a/libnmstate/nm/device.py -+++ b/libnmstate/nm/device.py -@@ -198,3 +198,11 @@ def get_nm_dev(ctx, iface_name, iface_type): - ): - return nm_dev - return None -+ -+ -+def is_kernel_iface(nm_dev): -+ iface_type = get_iface_type(nm_dev) -+ return iface_type != InterfaceType.UNKNOWN and iface_type not in ( -+ InterfaceType.OVS_BRIDGE, -+ InterfaceType.OVS_PORT, -+ ) -diff --git a/libnmstate/nm/plugin.py b/libnmstate/nm/plugin.py -index da933b3..9c774e5 100644 ---- a/libnmstate/nm/plugin.py -+++ b/libnmstate/nm/plugin.py -@@ -36,6 +36,7 @@ from .common import NM - from .context import NmContext - from .device import get_device_common_info - from .device import get_iface_type -+from .device import is_kernel_iface - from .device import list_devices - from .dns import get_running as get_dns_running - from .dns import get_running_config as get_dns_running_config -@@ -63,7 +64,8 @@ class NetworkManagerPlugin(NmstatePlugin): - def __init__(self): - self._ctx = None - self._checkpoint = None -- self.__applied_configs = None -+ self.__kernel_nic_applied_configs = None -+ self.__userspace_nic_applied_configs = None - - @property - def priority(self): -@@ -79,10 +81,28 @@ class NetworkManagerPlugin(NmstatePlugin): - self._ctx = None - - @property -- def _applied_configs(self): -- if self.__applied_configs is None: -- self.__applied_configs = get_all_applied_configs(self.context) -- return self.__applied_configs -+ def _kernel_nic_applied_configs(self): -+ if ( -+ self.__kernel_nic_applied_configs is None -+ or self.__userspace_nic_applied_configs is None -+ ): -+ ( -+ self.__kernel_nic_applied_configs, -+ self.__userspace_nic_applied_configs, -+ ) = get_all_applied_configs(self.context) -+ return self.__kernel_nic_applied_configs -+ -+ @property -+ def _userspace_nic_applied_configs(self): -+ if ( -+ self.__kernel_nic_applied_configs is None -+ or self.__userspace_nic_applied_configs is None -+ ): -+ ( -+ self.__kernel_nic_applied_configs, -+ self.__userspace_nic_applied_configs, -+ ) = get_all_applied_configs(self.context) -+ return self.__userspace_nic_applied_configs - - @property - def checkpoint(self): -@@ -120,8 +140,6 @@ class NetworkManagerPlugin(NmstatePlugin): - def get_interfaces(self): - info = [] - -- applied_configs = self._applied_configs -- - devices_info = [ - (dev, get_device_common_info(dev)) - for dev in list_devices(self.client) -@@ -131,6 +149,16 @@ class NetworkManagerPlugin(NmstatePlugin): - if not dev.get_managed(): - # Skip unmanaged interface - continue -+ if is_kernel_iface(dev): -+ applied_config = self._kernel_nic_applied_configs.get( -+ dev.get_iface() -+ ) -+ else: -+ iface_type = get_iface_type(dev) -+ applied_config = self._userspace_nic_applied_configs.get( -+ f"{dev.get_iface()}{iface_type}" -+ ) -+ - nm_ac = dev.get_active_connection() - if ( - nm_ac -@@ -140,7 +168,6 @@ class NetworkManagerPlugin(NmstatePlugin): - continue - - iface_info = Nm2Api.get_common_device_info(devinfo) -- applied_config = applied_configs.get(iface_info[Interface.NAME]) - - act_con = dev.get_active_connection() - iface_info[Interface.IPV4] = get_ipv4_info(act_con, applied_config) -@@ -193,11 +220,14 @@ class NetworkManagerPlugin(NmstatePlugin): - def get_dns_client_config(self): - return { - DNS.RUNNING: get_dns_running(self.client), -- DNS.CONFIG: get_dns_running_config(self._applied_configs), -+ DNS.CONFIG: get_dns_running_config( -+ self._kernel_nic_applied_configs -+ ), - } - - def refresh_content(self): -- self.__applied_configs = None -+ self.__kernel_nic_applied_configs = None -+ self.__userspace_nic_applied_configs = None - - def apply_changes(self, net_state, save_to_disk): - NmProfiles(self.context).apply_config(net_state, save_to_disk) -@@ -278,7 +308,7 @@ class NetworkManagerPlugin(NmstatePlugin): - nm_dev - and nm_dev.get_iface() - and not nm_dev.get_managed() -- and _is_kernel_iface(nm_dev) -+ and is_kernel_iface(nm_dev) - ): - ignored_ifaces.add(nm_dev.get_iface()) - return list(ignored_ifaces) -@@ -298,12 +328,3 @@ def _remove_ovs_bridge_unsupported_entries(iface_info): - - def _nm_utils_decode_version(): - return f"{NM.MAJOR_VERSION}.{NM.MINOR_VERSION}.{NM.MICRO_VERSION}" -- -- --def _is_kernel_iface(nm_dev): -- iface_type = get_iface_type(nm_dev) -- return iface_type != InterfaceType.UNKNOWN and iface_type not in ( -- InterfaceType.OVS_BRIDGE, -- InterfaceType.OVS_INTERFACE, -- InterfaceType.OVS_PORT, -- ) -diff --git a/libnmstate/nm/profiles.py b/libnmstate/nm/profiles.py -index 905a6c8..90e0e70 100644 ---- a/libnmstate/nm/profiles.py -+++ b/libnmstate/nm/profiles.py -@@ -27,7 +27,9 @@ from libnmstate.schema import InterfaceType - from .common import NM - from .device import is_externally_managed - from .device import list_devices -+from .device import get_iface_type - from .device import get_nm_dev -+from .device import is_kernel_iface - from .dns import get_dns_config_iface_names - from .ipv4 import acs_and_ip_profiles as acs_and_ip4_profiles - from .ipv6 import acs_and_ip_profiles as acs_and_ip6_profiles -@@ -129,7 +131,13 @@ def _append_nm_ovs_port_iface(net_state): - - - def get_all_applied_configs(context): -- applied_configs = {} -+ """ -+ Return two dictionaries. -+ First one for kernel interface with interface name as key. -+ Second one for user space interface with interface name and type as key. -+ """ -+ kernel_nic_applied_configs = {} -+ userspace_nic_applid_configs = {} - for nm_dev in list_devices(context.client): - if ( - nm_dev.get_state() -@@ -150,19 +158,37 @@ def get_all_applied_configs(context): - flags=0, - cancellable=context.cancellable, - callback=_get_applied_config_callback, -- user_data=(iface_name, action, applied_configs, context), -+ user_data=( -+ iface_name, -+ action, -+ kernel_nic_applied_configs, -+ userspace_nic_applid_configs, -+ context, -+ ), - ) - context.wait_all_finish() -- return applied_configs -+ return kernel_nic_applied_configs, userspace_nic_applid_configs - - - def _get_applied_config_callback(nm_dev, result, user_data): -- iface_name, action, applied_configs, context = user_data -+ ( -+ iface_name, -+ action, -+ kernel_nic_applied_configs, -+ userspace_nic_applid_configs, -+ context, -+ ) = user_data - context.finish_async(action) - try: -+ iface_name = nm_dev.get_iface() - remote_conn, _ = nm_dev.get_applied_connection_finish(result) -- # TODO: We should use both interface name and type as key below. -- applied_configs[nm_dev.get_iface()] = remote_conn -+ if is_kernel_iface(nm_dev): -+ kernel_nic_applied_configs[iface_name] = remote_conn -+ else: -+ iface_type = get_iface_type(nm_dev) -+ userspace_nic_applid_configs[ -+ f"{iface_name}{iface_type}" -+ ] = remote_conn - except Exception as e: - logging.warning( - "Failed to retrieve applied config for device " --- -2.32.0 - diff --git a/BZ_1979515-SR-IOV-Fix-BCM57416-failure-when-creating-VFs.patch b/BZ_1979515-SR-IOV-Fix-BCM57416-failure-when-creating-VFs.patch deleted file mode 100644 index b4d9111..0000000 --- a/BZ_1979515-SR-IOV-Fix-BCM57416-failure-when-creating-VFs.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 61e775a19652ff1b17581e53367f05921304edfb Mon Sep 17 00:00:00 2001 -From: Fernando Fernandez Mancera -Date: Thu, 10 Jun 2021 14:55:33 +0200 -Subject: [PATCH 1/2] SR-IOV: Fix BCM57416 failure when creating VFs - -Currently there is not a way to see the relation between a SR-IOV PF and -its VFs. Broadcom BCM57416 follows a different name pattern for PF and -VF, therefore it needs to be parsed if present. - -PF name: ens2f0np0 -VF name: ens2f0v0 - -The different name pattern is due to: - 1. The `n` is for `multi-port PCI device` support. - 2. The `p*` is `phys_port_name` provided by the BCM driver `bnxt_en`. - -Ref: https://bugzilla.redhat.com/1959679 - -Signed-off-by: Fernando Fernandez Mancera ---- - libnmstate/ifaces/ethernet.py | 38 ++++++++++++++++++++++++++++++++--- - libnmstate/nm/profiles.py | 8 ++++++++ - 2 files changed, 43 insertions(+), 3 deletions(-) - -diff --git a/libnmstate/ifaces/ethernet.py b/libnmstate/ifaces/ethernet.py -index 55772ce..a47a718 100644 ---- a/libnmstate/ifaces/ethernet.py -+++ b/libnmstate/ifaces/ethernet.py -@@ -25,6 +25,11 @@ from libnmstate.schema import InterfaceState - from .base_iface import BaseIface - - -+BNXT_DRIVER_PHYS_PORT_PREFIX = "p" -+MULTIPORT_PCI_DEVICE_PREFIX = "n" -+IS_GENERATED_VF_METADATA = "_is_generated_vf" -+ -+ - class EthernetIface(BaseIface): - def __init__(self, info, save_to_disk=True): - super().__init__(info, save_to_disk) -@@ -80,21 +85,48 @@ class EthernetIface(BaseIface): - ) - - def create_sriov_vf_ifaces(self): -- return [ -+ # Currently there is not a way to see the relation between a SR-IOV PF -+ # and its VFs. Broadcom BCM57416 follows a different name pattern for -+ # PF and VF, therefore it needs to be parsed if present. -+ # -+ # PF name: ens2f0np0 -+ # VF name: ens2f0v0 -+ # -+ # The different name pattern is due to: -+ # 1. The `n` is for `multi-port PCI device` support. -+ # 2. The `p*` is `phys_port_name` provided by the BCM driver -+ # `bnxt_en`. -+ # -+ # If the NIC is following the standard pattern "pfname+v+vfid", this -+ # split will not touch it and the vf_pattern will be the PF name. -+ # Ref: https://bugzilla.redhat.com/1959679 -+ vf_pattern = self.name -+ multiport_pattern = ( -+ MULTIPORT_PCI_DEVICE_PREFIX + BNXT_DRIVER_PHYS_PORT_PREFIX -+ ) -+ if len(self.name.split(multiport_pattern)) == 2: -+ vf_pattern = self.name.split(multiport_pattern)[0] -+ -+ vf_ifaces = [ - EthernetIface( - { - # According to manpage of systemd.net-naming-scheme(7), - # SRIOV VF interface will have v{slot} in device name. - # Currently, nmstate has no intention to support - # user-defined udev rule on SRIOV interface naming policy. -- Interface.NAME: f"{self.name}v{i}", -+ Interface.NAME: f"{vf_pattern}v{i}", - Interface.TYPE: InterfaceType.ETHERNET, -- # VF will be in DOWN state initialy. -+ # VF will be in DOWN state initialy - Interface.STATE: InterfaceState.DOWN, - } - ) - for i in range(0, self.sriov_total_vfs) - ] -+ # The generated vf metadata cannot be part of the original dict. -+ for vf in vf_ifaces: -+ vf._info[IS_GENERATED_VF_METADATA] = True -+ -+ return vf_ifaces - - def remove_vfs_entry_when_total_vfs_decreased(self): - vfs_count = len( -diff --git a/libnmstate/nm/profiles.py b/libnmstate/nm/profiles.py -index 90e0e70..ec3ef70 100644 ---- a/libnmstate/nm/profiles.py -+++ b/libnmstate/nm/profiles.py -@@ -40,6 +40,9 @@ from .veth import create_iface_for_nm_veth_peer - from .veth import is_nm_veth_supported - - -+IS_GENERATED_VF_METADATA = "_is_generated_vf" -+ -+ - class NmProfiles: - def __init__(self, context): - self._ctx = context -@@ -63,6 +66,7 @@ class NmProfiles: - all_profiles = [ - NmProfile(self._ctx, iface) - for iface in net_state.ifaces.all_ifaces() -+ if not _is_only_for_verify(iface) - ] - - for profile in all_profiles: -@@ -409,3 +413,7 @@ def _nm_ovs_port_has_child(nm_profile, ovs_bridge_iface, net_state): - ): - return True - return False -+ -+ -+def _is_only_for_verify(iface): -+ return iface.to_dict().get(IS_GENERATED_VF_METADATA) --- -2.31.1 - diff --git a/BZ_1979943-ovs-Regenerate-iface-metadata-after-RouteRule-metada.patch b/BZ_1979943-ovs-Regenerate-iface-metadata-after-RouteRule-metada.patch deleted file mode 100644 index e484490..0000000 --- a/BZ_1979943-ovs-Regenerate-iface-metadata-after-RouteRule-metada.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 55d5092c04a974985c4db8609c73d6b92a674cae Mon Sep 17 00:00:00 2001 -From: Gris Ge -Date: Thu, 8 Jul 2021 15:49:48 +0800 -Subject: [PATCH 2/2] ovs: Regenerate iface metadata after RouteRule metadata - generation - -When desire state only contain route rule for OVS interface route table -ID, NetworkManager will complains: - - A connection with a 'ovs-interface' setting must have a master. - -The root cause is because interface metadata is not generated if desire -state has no interface at all. - -The fix is regenerate interface metadata on changed/desired interface -after route rule metadata generation. - -Integration test case added and marked as tier1 due to RHV requirement. - -Signed-off-by: Gris Ge ---- - libnmstate/ifaces/base_iface.py | 5 ++-- - libnmstate/ifaces/ifaces.py | 4 ++-- - libnmstate/ifaces/linux_bridge.py | 8 +++++-- - libnmstate/net_state.py | 3 +++ - tests/integration/ovs_test.py | 40 +++++++++++++++++++++++++++++++ - 5 files changed, 54 insertions(+), 6 deletions(-) - -diff --git a/libnmstate/ifaces/base_iface.py b/libnmstate/ifaces/base_iface.py -index e3f2a1c..a76491e 100644 ---- a/libnmstate/ifaces/base_iface.py -+++ b/libnmstate/ifaces/base_iface.py -@@ -350,8 +350,9 @@ class BaseIface: - def gen_metadata(self, ifaces): - if self.is_controller and not self.is_absent: - for port_name in self.port: -- port_iface = ifaces.all_kernel_ifaces[port_name] -- port_iface.set_controller(self.name, self.type) -+ port_iface = ifaces.all_kernel_ifaces.get(port_name) -+ if port_iface: -+ port_iface.set_controller(self.name, self.type) - - def update(self, info): - self._info.update(info) -diff --git a/libnmstate/ifaces/ifaces.py b/libnmstate/ifaces/ifaces.py -index efa24aa..c240abd 100644 ---- a/libnmstate/ifaces/ifaces.py -+++ b/libnmstate/ifaces/ifaces.py -@@ -158,7 +158,7 @@ class Ifaces: - self._validate_infiniband_as_bridge_port() - self._validate_infiniband_as_bond_port() - self._apply_copy_mac_from() -- self._gen_metadata() -+ self.gen_metadata() - for iface in self.all_ifaces(): - iface.pre_edit_validation_and_cleanup() - -@@ -569,7 +569,7 @@ class Ifaces: - else: - self._kernel_ifaces[iface.name] = iface - -- def _gen_metadata(self): -+ def gen_metadata(self): - for iface in self.all_ifaces(): - # Generate metadata for all interface in case any of them - # been marked as changed by DNS/Route/RouteRule. -diff --git a/libnmstate/ifaces/linux_bridge.py b/libnmstate/ifaces/linux_bridge.py -index bc7768f..09d68cb 100644 ---- a/libnmstate/ifaces/linux_bridge.py -+++ b/libnmstate/ifaces/linux_bridge.py -@@ -125,9 +125,13 @@ class LinuxBridgeIface(BridgeIface): - super().gen_metadata(ifaces) - if not self.is_absent: - for port_config in self.port_configs: -- ifaces.all_kernel_ifaces[ -+ port_iface = ifaces.all_kernel_ifaces.get( - port_config[LinuxBridge.Port.NAME] -- ].update({BridgeIface.BRPORT_OPTIONS_METADATA: port_config}) -+ ) -+ if port_iface: -+ port_iface.update( -+ {BridgeIface.BRPORT_OPTIONS_METADATA: port_config} -+ ) - - def remove_port(self, port_name): - if self._bridge_config: -diff --git a/libnmstate/net_state.py b/libnmstate/net_state.py -index 713b7dc..780981c 100644 ---- a/libnmstate/net_state.py -+++ b/libnmstate/net_state.py -@@ -72,6 +72,9 @@ class NetState: - self._ifaces.gen_dns_metadata(self._dns, self._route) - self._ifaces.gen_route_metadata(self._route) - self._ifaces.gen_route_rule_metadata(self._route_rule, self._route) -+ # DND/Route/RouteRule might introduced new changed interface -+ # Regnerate interface metadata -+ self._ifaces.gen_metadata() - - def _mark_ignored_kernel_ifaces(self, ignored_ifnames): - for iface_name in ignored_ifnames: --- -2.31.1 - diff --git a/nmstate-1.0.2.tar.gz b/nmstate-1.0.2.tar.gz deleted file mode 100644 index 60473e0ff90d6502ec3cbf5971d48fcf40925815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112671 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¥#FF?6+OF6!oCt%~xFH2Yl`X3y z#F7|}J8m5{Zia7NWr*EK7$w#epD+vLWG`GRb9}pX5hKX0<9~8f&?BIeAGHvJiAoTd zE&L7EGbU`7&4+6i?irJ8%o&6U)u_o0>i89xG*$T@IfFQ3SC&=$$VyZQplruB`IZUB zz|5Hb&S~Qx0CuD!F4$Q;&^9im#-cP2pKm$Z$0L1jc$jy-yNmyZ7^O=PdK?cT6t&!B zLxQS1Yx!(Spm`8XVCYJBTsMFhLt(Tn-G^*6Z>JRyk*ELL0uMICaKy3|48@nUZxTcl z*2B{b6PP4Rpz+FMdWya}?zI7j_htHcoG31N^4ggjZU%*5iY#B~!l`#UBW(6CnL9TL zpKohTOA0ynLg@1)_w#yQ z*qr^1+&}u;S94Cf57)xn2EFjTL2sx6%#aU16 zAP4kfZzo8^Cdl2naiNO|I}1Jql9F}Xo;EwK%Dl7$W3VM}i28SPrv!RjmVN5a_|&!E zMl2UxTVFh&!ZF;2e5$IMzi>zPZ(f;(&&!)MryAkB$iKEbiH~%I_AD<6n=d(rUjxA} zoUHz&+1X%$;w0$-Ufb8oiouEuc{P7!Xx&51A988aIH;_u1E<}YeXSVoT>e)9%<;=^nwAC*Mmg+x2JbuzX6Gar>;J7soEazor1Z#tWKh z)~5&^sW-AqvxqRxOtM#w$#y5-SJCjv$9+1|^OkCvEj-&FY>sLq?6)&Wi)O>6YC*Hy z32~8uC7u$Etd5@O80U=&JJUi;3oxNyKVXWc|DsgZ=P8MNK;M*>jLEA?(En`1k@h_% zend3{O)8~TavVCa`{@m#Ht{$$gqlXg=8w|u2OM(rte^J}!Fmm4jm`;$G|FPzxM=F? z&pMHi!R3t)=WHPsEUJtCKN}-@;$6&>{H|@IpX&)s<$_(6*rap0)8mFuH@JAbn@c(c zcN0mYp5&y z$?78$Ynf^W?7Ym+DHX;=#(3u)SN2bsMtG)=zvr+9DCF$lR#)Wb=q8PCBa$U+^i2Entw=STk-hsM_BqQ;|#2hpw~Hmz*H?TVpVUkIdNh_Tugx7 z`kf)M5sUtsIzfH9>WXlSR55>wM3ZEH*K5cwz$B@0ug(_^6^OtrQ~6GG?xowObT(7* z<68ewBf(FQa|@g(franhAqykw-O8L}b=bUe_g>5z{H z)QmJS=ytXB%vzf<+Mzpo@sd${qQ%6xHo5yOTIO0*)Mr|#nZMv*$W8fa71#_nWWn(1 zn3~GltJCq@IJR;u)t)0Bf7>KK-88md4)y(!i?YVPQPmSHyNrO>l4eiQy!16DPDR<* zN|wMansWk1biAHC7B4N_{NaPGULF6>#L$i6`>nb8(rF4SU+>r0px#HrUyM0I-(ej; z`^<^n-nW3ee7`UI`!Dmb*7?);LUUuV>XtJlYn2U(7pRuBaG5onm42vE+n2IV{DmKeH+s+VFH3I z{TUHUB);6KsRaGuTy(od60cgsqcN_W=&d3FdtiNlCG{nqp)!NswIt!kkjyq3U{$C2 zo_+XQII_M~`s(SCE)&0u@d~RV#D(>9RFy&qqr;yN?HVi5)3%6C%2g#qSxC+Nx7_*4 z@G;IK#st@CkQUx0Yd+s~&ou$yq~zhOJBYM(l2j0@WWfCk|Jn8+zpoOl%L79@b2icU!!q|qHpeP53$NId6EVph7yD7>zWb^9iIm=jp9uS&GxW`V;{A&;fRK#CM0D51#tCk!5$j`Q7TSk0n4}Y9MUSk3Gb>pThcai9Ws#!g&?HI?rtqZoqFIHi- z#NU>6Q~ejTvW>l|yPtmUl{y5y@0s<0?&XosJ#k4>9$}I>5UtDDpsulzLl_gq{(1ZD z@gLTRpi)Pi!%;g?$)4ZQlQelIX2n(ilUm-~O4|teI2*6W{po6o3ubkI2?#E3oRMK*&EqjBTeU^4#NW)(gw2(; zq^TaO`p>9le-p=ZRzkDZ;P*-93e7jcPfh4W_1?c{E5I|sxnQHogFLQITPxmwp>u8o z0qff`l!WK=^y;1{?#0wZY0cP*<(`*pnWLYj{+QbWC83B5L7JBqA9RiZ+!oL88jBlW zh|6SP{C5N2-HfY+7?Z5wUzt1I^JYAMm7+YJ3<#_kTR#?4<>ZG}rd+wK$BPX<q|gxvYO!%@pJV)MWNHN3SzNnxD}4_Pk~?lKs?NY@^ABR&CEo&TuSG z&vu`lwo`*_#SmXCc15pn1_v2D4nMK>|AWGR^Y zp_m(2VwS6Wf3}~uE}FT8dmn`7rCS`ielZ%&slfXw#%Ws|NqHC_-kGCJZBuIOO(PDDWG7Jk2lQxh;5VU{Ba^COj5fWMaFs^14(61#;souLCm+} zNzXZBuPQQ-;uV+*DnH7Sq#p^_W>vuJtIE~hpoi^Sw_k0i<{{{X1eCILYbZjpiKGWH2p&mdn-FhK&E zcn}NsrsV)+^uL2zhalF+_gXdw0I_%ku|t^pzq352`enU=z|T?hFI(`)UoQY7Iw0S* zXhLXZsQ50sh9~50qy1VF@_BvIuHIOy+V50UHVVNm!&ZYbfrj zJL6_=GcL&U;u+BSCn`X_@acy&+E*^QOyizGh=h`6!2P!hHBVx zOe!H>1Tx|tO-O#N6@We%cu@8LK<{kE2qD{C@Y!XjTPs;ZrCXnYp$e^LgAdyWhKU2qR+TRf3qGOSIlJGdOlznc{TzPn^nCkv}%-*JCEBEQkAn=3_)7RkrkLc;?};is8d z!*(P<&j*?;sg~1U&t+fE4e!$cR1_;Sp8;_3n`8GQZc*5vbrda`4{8_~NvKro?V|B^ zqh`nNF{8!hD_oR1VlOdXB?l=gxv7N=&n|U&2Te#~O6u`=)O!_X0EnYvum4_sqAlT| z$IVIvXO^*VfR?>2+cD_4y}muQJP4aAle}k_vkAWcy*-)oW#NyV1e;4+F(O&IfQsX_ z(9`DCX4F*@0SCXlK4=$yPkEs`^mon&kk=`l7m%&pH_WHs`K{LNe9&ux5O+$I(W*H8 zi4vDe_RfT8Gb+=52>0eDol|k>wGICVX`ayozihG3`_R>ux814JYdaPfx#TvI8z)DY z07d)m_d2sNL@i_pIh%ePn9x(qM)zmG4Oy&z3OapNlL^AY8FaV>Wmq7n>3R?mqP%4V zE9;YIa4GS(Hnb*fj(Zb|!n`@J(^)-Kk_PkVfqx-;xh)Yk*8PdULgDl86kiRB%6}M0 t%uvpv*y7Qru)@Sq-KtDR9W20D_f7Td|MvoZ1cL!+i@Il1sA)8){{euF;hg{g diff --git a/nmstate-1.0.2.tar.gz.asc b/nmstate-1.0.2.tar.gz.asc deleted file mode 100644 index ef664a4..0000000 --- a/nmstate-1.0.2.tar.gz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCAAdFiEEfUQ+BAINyWGvqJXerIciWuEsPqMFAmAueEYACgkQrIciWuEs -PqPJxw//UmWdCJgoClFkEpWqWUkjMmfkGh70PoxtuOeNrAYwHv9zCHDBFjLtaDG1 -18+jakwrVIlTiFHZqfz1g3o0Te86w5rKiU2y0FBtBPZ1cdcJZk2Is5wb/JJo78n+ -9sWRfZmSN0SMiJ5HfzhTdZ2RsZYRSaDPSUxchRY03LzsBusxoK8swWu9oUHqmYKd -S3k4skP5ZQvpHtKzq9w1lfU4YAw42sRvXHW/++HqGgE0rypf+Wlcu9C+It9kVLCr -3rdp8iTGTg+LRg7LxFmEsRlmPpxhO25LaxjFvYSFnhE94xOt28KXeHBYs8hPPRwh -+z2w6zJ3hgIrLh10IPzePTWk//KNWDRaAJXQTCma1UE4jdL3+wbxb8H3vl5VCrBU -3fuj3JwfvFU1NuDf+yuJ0sCKzNXaAzpYYgfIaCaPdtBpg5jl2DTEfEF8QZKYuJDU -ueCo6reBAlwJzce433aSzBXshFbHG/RdD09duS3p84Dn6ljEN3GfJwUAC9s9TsAQ -U5+rWog6zMpVke/9yqwEf1KmqtLM3/+Ih30CHb3ZoPTf05KB14k0d1CLDdC9d9dy -gN0w8xjdTUXbUXW/XIvRVX9KWqyNI6lnZoL0MWzPwUmMxwPJkRpAVpLKpgyUrVpD -yjtLTFDZJNmfmbi2b0myFFcc2chaXmYlpLCP8vfRYJA3mCee6Xg= -=b/Mh ------END PGP SIGNATURE----- diff --git a/nmstate-1.1.0.tar.gz b/nmstate-1.1.0.tar.gz new file mode 100755 index 0000000000000000000000000000000000000000..395c07656fe6d6dad010df8519aebb4668615056 GIT binary patch literal 121004 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 z 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 literal 0 HcmV?d00001 diff --git a/nmstate-1.1.0.tar.gz.asc b/nmstate-1.1.0.tar.gz.asc new file mode 100755 index 0000000..3c2d190 --- /dev/null +++ b/nmstate-1.1.0.tar.gz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEE8f1XsqXpyNthgIbGbM3lj+QeKP8FAmDvw+4ACgkQbM3lj+Qe +KP+WjA/+Nky4rMOTNG16iwV8wc0hvWJdHL6XzDnHR2rrUHPGLMg4ia2B5MhYGKpl +/1eQk2UnA2rFTLC2P+TlKJbTFTUytxDvoCbR7ODCmneSJ65txG3XFDEd0soGayn4 +w5UchowGTqGEMu/P1ORihYtYC6b8Q1gHFUomqcvryOtdE6b6lzQAMyU/VrG3vEwG +dSsFWJh6PyMi2WTS5+CAHUYPbs3wZbNxTU74PyHch1Hcl3zwXa3bheqzHZojYh28 +GvvaPXBAHD6xwnCOWTMw3hBgLnjTZKsc62aFqgJ1Zz1VqN+Xlo8mlTZYDGhzwNU3 +m0UfRz2tSeqpbTFty3ObzTfDNYiXe4Y3J6ktD3pjt7Pf/uKY8NNbOKlZ4WhWrqPn +VGB67ci/pcMQjw/vCPVjOQwpjVMm/EaZ6GQw8TAxbsb9tB5w2NoTncMkNNiPNB4/ +5gquK2zZL8hsPqcE5yY/n+2/zgxhO7E7KuE20dbt1BCW+wmS4e77a7cx3EFgLc7f +oTGGuh3T+zdI/kxt5FAUBNnFiPWN9zJjQ8e080j7UIyL1Rhpvp+xG70ujwHvfL1I +qczeFT77eI2aMNU9iX/vbkVdgEKlxD6YDw626PxJR5WQz99zHiKwfDPUf9rJW72q +tAbGZ3DjfMk/VrerOMFDEGPA1V9Fs9kxGye1DIPAVw4IOwAbqE8= +=9EnL +-----END PGP SIGNATURE----- diff --git a/nmstate.gpg b/nmstate.gpg old mode 100644 new mode 100755 diff --git a/nmstate.spec b/nmstate.spec old mode 100644 new mode 100755 index 1e574ec..3d4e265 --- a/nmstate.spec +++ b/nmstate.spec @@ -3,28 +3,18 @@ %define libname libnmstate Name: nmstate -Version: 1.0.2 -Release: 14%{?dist} +Version: 1.1.0 +Release: 3%{?dist} Summary: Declarative network manager API License: LGPLv2+ URL: https://github.com/%{srcname}/%{srcname} Source0: %{url}/releases/download/v%{version}/%{srcname}-%{version}.tar.gz Source1: %{url}/releases/download/v%{version}/%{srcname}-%{version}.tar.gz.asc Source2: https://www.nmstate.io/nmstate.gpg -Patch1: BZ_1931751-nmstate-fix-return-code.patch -Patch2: BZ_1931355-SRIOV-wait-VF-mount-decrease.patch -Patch3: BZ_1932247-nm-Don-t-touch-unmanaged-interface-unless-desired.patch -Patch4: BZ_1961914-do-not-use-unmanaged-interface-for-dns.patch -Patch5: BZ_1961912-fix-ovs-interface-activation.patch -Patch6: BZ_1964439-ovs-Fix-is_ovs_running-in-container-environment.patch -Patch7: BZ_1964440-nm-ipv4-Deactivate-profile-when-route-removed.patch -Patch8: BZ_1966379_fix_bond_opt_tlb_dynamic_lb.patch -Patch9: BZ_1966457_Fix_bond_fail_over_mac.patch -Patch10: BZ_1966457_only_validate_desired_bond.patch -Patch11: BZ_1979220_static_ip_on_ovs_same_name.patch -Patch12: BZ_1979515-SR-IOV-Fix-BCM57416-failure-when-creating-VFs.patch -Patch13: BZ_1979943-ovs-Regenerate-iface-metadata-after-RouteRule-metada.patch -Patch14: BZ_1986285-nispor-fix-show-of-empty-next_hop_address-and-destin.patch +Patch1: 0001-nmstatectl-fix-long-arguments-support.patch +Patch2: 0002-nm-ethtool-Preserve-existing-ethtool-settings-when-u.patch +Patch3: 0003-ovs-fix-state-ignore-for-ovs-port-when-removing-them.patch +Patch4: 0004-nispor-fix-show-of-empty-next_hop_address-and-destin.patch BuildArch: noarch BuildRequires: python3-devel BuildRequires: python3-setuptools @@ -82,8 +72,10 @@ gpgv2 --keyring ./gpgkey-mantainers.gpg %{SOURCE1} %{SOURCE0} %doc README.md %doc examples/ %{_mandir}/man8/nmstatectl.8* +%{_mandir}/man8/nmstate-autoconf.8* %{python3_sitelib}/nmstatectl %{_bindir}/nmstatectl +%{_bindir}/nmstate-autoconf %files -n python3-%{libname} %license LICENSE @@ -97,36 +89,45 @@ gpgv2 --keyring ./gpgkey-mantainers.gpg %{SOURCE1} %{SOURCE0} %{python3_sitelib}/%{libname}/plugins/__pycache__/nmstate_plugin_ovsdb* %changelog -* Wed Jul 28 2021 Fernando Fernandez Mancera - 1.0.2-14 -- Fix showing routes without next-hop-address or destination. RHBZ#1986285 +* Tue Jul 27 2021 Gris Ge - 1.1.0-3 +- Fix state=ignore for OVS interface. RHBZ#1944054 +- Fix verification for next hop address 0.0.0.0. RHBZ#1985879 -* Thu Jul 08 2021 Fernando Fernandez Mancera - 1.0.2-13 -- Fix SR-IOV BCM57416 failure when creating VFs. RHBZ#1979515 -- Fix applying route rule changes over ovs interface. RHBZ#1979943 +* Fri Jul 23 2021 Gris Ge - 1.1.0-2 +- Preserving existing ethtool settings. RHBZ#1984764 -* Tue Jul 06 2021 Gris Ge - 1.0.2-12 -- Fix setting IP on ovs interface sharing the same name with bridge. RHBZ#1979220 +* Thu Jul 15 2021 Gris Ge - 1.1.0-1 +- Upgrade to 1.1.0. -* Thu Jun 03 2021 Gris Ge - 1.0.2-11 -- Only validate desired bone interface. RHBZ#1966457 +* Fri Jul 09 2021 Gris Ge - 1.1.0-0.7.alpha7 +- Upgarde to 1.1.0 alpha7. -* Tue Jun 01 2021 Gris Ge - 1.0.2-10 -- Fix bond option fail_over_mac=active. RHBZ#1966457 +* Thu Jul 01 2021 Gris Ge - 1.1.0-0.6.alpha6 +- Upgrade to 1.1.0 alpha6. -* Tue Jun 01 2021 Gris Ge - 1.0.2-9 -- Fix bond option tlb_dynamic_lb. RHBZ#1966379 +* Mon Jun 21 2021 Fernando Fernandez Mancera - 1.1.0-0.5.alpha4 +- Upgrade to 1.1.0 alpha4. -* Mon May 31 2021 Fernando Fernandez Mancera - 1.0.2-8 -- Remove test changes from patches. +* Wed Jun 16 2021 Fernando Fernandez Mancera - 1.1.0-0.4.alpha3 +- Rebuild to introduce CI gating tier1 tests. RHBZ#1813357 -* Mon May 31 2021 Fernando Fernandez Mancera - 1.0.2-7 -- Fix OVS bugs and route removal bug: RHBZ#1964440 RHBZ#1964439 +* Tue Jun 08 2021 Gris Ge - 1.1.0-0.3.alpha3 +- Upgrade to 1.1.0 alpha3. -* Wed May 19 2021 Gris Ge - 1.0.2-6 -- Fix OVS bugs: RHBZ#1961912 RHBZ#1961913 RHBZ#1961914 +* Mon Jun 07 2021 Fernando Fernandez Mancera - 1.1.0-0.2 +- Upgrade to 1.1.0 alpha2. -* Wed Mar 03 2021 Fernando Fernandez Mancera - 1.0.2-5 -- New patch for fixing unmanaged interfaces being managed. RHBZ#1932247 +* Wed May 19 2021 Wen Liang - 1.1.0-0.1 +- Upgrade to 1.1.0 alpha1. + +* Tue Apr 20 2021 Fernando Fernandez Mancera - 1.0.3-1 +- Upgrade to 1.0.3. RHBZ#1942458 + +* Fri Mar 26 2021 Fernando Fernandez Mancera - 1.0.2-6 +- Rebuild for RHEL 8.5. RHBZ#1935710 + +* Fri Mar 26 2021 Fernando Fernandez Mancera - 1.0.2-5 +- New patch for fixing unmanaged interfaces being managed. RHBZ#1935710 * Tue Feb 23 2021 Gris Ge - 1.0.2-4 - New patch for SRIOV decrease VF amount. RHBZ#1931355 -- Gitee