Bug 2214540
| Summary: | Cannot delete ovs bridge when it contains unmanaged port | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | Mingyu Shi <mshi> |
| Component: | nmstate | Assignee: | Gris Ge <fge> |
| Status: | CLOSED MIGRATED | QA Contact: | Mingyu Shi <mshi> |
| Severity: | low | Docs Contact: | |
| Priority: | low | ||
| Version: | 9.3 | CC: | ferferna, jiji, jishi, network-qe, sfaye, till |
| Target Milestone: | rc | Keywords: | MigratedToJIRA, Triaged |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-08-17 13:18:16 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Description of problem: Cannot delete ovs bridge when it contains unmanaged port. It works well when testing with linux bridge, bond etc instead of ovs bridge. Version-Release number of selected component (if applicable): nmstate-2.2.12-2.el9.x86_64 nispor-1.2.10-1.el9.x86_64 NetworkManager-1.43.9-1.el9.x86_64 openvswitch2.15-2.15.0-82.el9fdp.x86_64 DISTRO=RHEL-9.3.0-updates-20230611.28 How reproducible: 100% Steps to Reproduce: echo " interfaces: - name: ovsbr0 type: ovs-bridge state: up bridge: port: - name: ovsbr0 " | nmstatectl apply ip link add veth0 type veth peer veth0_p ovs-vsctl add-port ovsbr0 veth0 ip link set veth0 up ip link set veth0_p up echo " interfaces: - name: ovsbr0 type: ovs-bridge state: up bridge: port: - name: veth0 " | nmstatectl apply nmcli dev # veth0 unmanaged echo " interfaces: - name: ovsbr0 type: ovs-bridge state: up bridge: port: - name: ovsbr0 " | nmstatectl apply nmcli dev # veth0 unmanaged echo " interfaces: - name: ovsbr0 type: ovs-interface state: absent - name: ovsbr0 type: ovs-bridge state: absent - name: veth0 type: veth state: absent - name: veth0_p type: veth state: absent " | nmstatectl apply Actual results: [2023-06-13T09:47:08Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:08Z INFO nmstate::iface] Interface ovsbr0 cannot live without controller, marking as absent as it has been detached from its original controller ovsbr0 [2023-06-13T09:47:08Z INFO nmstate::query_apply::net_state] Created checkpoint /org/freedesktop/NetworkManager/Checkpoint/81 [2023-06-13T09:47:08Z INFO nmstate::nm::query_apply::apply] Deleting NM connection for absent interface ovsbr0/ovs-bridge: 8c6dc71d-ae4b-4813-b1d2-30c6fab207f9 [2023-06-13T09:47:08Z INFO nmstate::nm::query_apply::apply] Deleting NM connection for absent interface ovsbr0/ovs-interface: ca7856f7-0e1a-4203-9f77-a2a0ee5fb3e3 [2023-06-13T09:47:08Z INFO nmstate::nm::query_apply::apply] Deleting NM OVS port connection 34bd7940-0281-4374-8cfb-5440ff4c5eef for absent OVS interface ovsbr0 [2023-06-13T09:47:08Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:08Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:08Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:09Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:09Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:09Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:10Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:10Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:10Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:11Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:11Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:11Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:12Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:12Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:12Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:14Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:14Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:14Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:15Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:15Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:15Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:16Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:16Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:16Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:17Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:17Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:17Z INFO nmstate::query_apply::net_state] Retrying on: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:18Z WARN nmstate::ovsdb::show] Unknown OVS interface type [2023-06-13T09:47:18Z ERROR nmstate::query_apply::inter_ifaces] VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) [2023-06-13T09:47:18Z INFO nmstate::query_apply::net_state] Rollbacked to checkpoint /org/freedesktop/NetworkManager/Checkpoint/81 NmstateError: VerificationError: Absent/Down interface ovsbr0/ovs-bridge still found as OvsBridge(OvsBridgeInterface { base: BaseInterface { name: "ovsbr0", profile_name: None, description: None, prop_list: ["ovsdb", "bridge", "iface_type", "state"], iface_type: OvsBridge, state: Up, identifier: Name, mac_address: None, permanent_mac_address: None, mtu: None, min_mtu: None, max_mtu: None, wait_ip: None, ipv4: None, ipv6: None, mptcp: None, controller: Some(""), accept_all_mac_addresses: None, copy_mac_from: None, ovsdb: Some(OvsDbIfaceConfig { external_ids: Some({}), other_config: Some({}) }), ieee8021x: None, lldp: None, ethtool: None, controller_type: None, up_priority: 0, routes: None, _other: {} }, bridge: Some(OvsBridgeConfig { options: Some(OvsBridgeOptions { stp: Some(false), rstp: Some(false), mcast_snooping_enable: Some(false), fail_mode: Some(""), datapath: Some("") }), ports: Some([OvsBridgePortConfig { name: "veth0", bond: None, vlan: None }]) }) }) Expected results: ovs removed Additional info: