SUMMARY OVS Bridge Network tray icon on the KDE panel incorrectly shows a disconnection state when using a OVS bridge via nmcli. Linux Bridge If you pull out the cable, it doesn't show the disconnection state. STEPS TO REPRODUCE OVS Bridge 1) export NET_DEV="enp4s0" export NM_NAME="Wired connection 1" sudo nmcli con add type ovs-bridge conn.interface ovs-bridge con-name ovs-bridge sudo nmcli con add type ovs-port conn.interface port-ovs-bridge master ovs-bridge con-name ovs-bridge-port sudo nmcli con add type ovs-interface slave-type ovs-port conn.interface ovs-bridge master ovs-bridge-port con-name ovs-bridge-int sudo nmcli con add type ovs-port conn.interface ovs-port-eth master ovs-bridge con-name ovs-port-eth sudo nmcli con add type ethernet conn.interface "${NET_DEV}" master ovs-port-eth con-name ovs-port-eth-int sudo nmcli con modify ovs-bridge-int ipv4.method disabled ipv6.method disabled sudo nmcli con modify ovs-bridge-int ipv4.method static ipv4.address "192.168.1.2/24" ipv4.gateway "192.168.1.1" ipv4.dns "8.8.8.8" sudo nmcli con modify ovs-bridge-int 802-3-ethernet.mtu 9000 sudo nmcli con modify ovs-port-eth-int 802-3-ethernet.mtu 9000 sudo nmcli con down "${NM_NAME}" sudo nmcli con up ovs-port-eth-int sudo nmcli con up ovs-bridge-int sudo nmcli con modify "${NM_NAME}" ipv4.method disabled ipv6.method disabled sudo nmcli con delete "${NM_NAME}" 2. Upgrade from Plasma to 6.6.2. 3. Notice the network tray icon showing a disconnection state Linux Bridge 1. Follow the Arch Wiki guide: https://wiki.archlinux.org/title/Network_bridge#With_NetworkManager_2 2. Upgrade from Plasma 6.6.2. 3. Notice the network tray icon showing a connection state. 4. Pull out the cable, tray icon doesn't show the disconnection state. OBSERVED RESULT The network tray icon on the KDE panel shows an unexpected disconnection icon for OVS bridge. The network tray icon on the KDE panel doesn't show the disconnection state when pull out the cable for Linux bridge. EXPECTED RESULT The network tray icon should show a connected state, as it did correctly in Plasma 6.5.5. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Arch Linux KDE Plasma Version: 6.6.2 KDE Frameworks Version: 6.23.0 Qt Version: 6.10.2
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-nm/-/merge_requests/540
When the cable is disconnected, the network bridge does not disappear. Because of this, we do not see the disconnection status. The wired connection exists in the linux network bridge (or OVS bridge), and checking it in the 'setDisconnectedIcon' section seems reasonable
When I follow your steps, I get a bridge network without connectivity. Therefore the icon I'm expecting is a "limited connectivity" icon, not a "disconnected" icon. That's the bug I can reproduce. In connectionIcon.cpp, it's hitting the fallback to show a disconnected icon right above "// Ignore other devices (bond/team etc.)" So the reason why the widget shows a disconnected icon is because plasma-nm doesn't know what kind of device this connection is. There's handling for NetworkManager::Device::Bridge types but apparently the connection isn't being detected as that. I'm not a networking expert, but clearly you are and you're also competent at programming. Would you be willing to look into why this bridge network isn't being detected as a bridge network? If we fix that, I suspect everything will just start working as expected.
} else if (type == NetworkManager::Device::Bridge) { // TODO: use a not-yet created bridge-specific network icon here setConnectionIcon(QStringLiteral("network-wired-activated")); setConnectionTooltipIcon(QStringLiteral("network-wired-activated")); } else if (type == NetworkManager::Device::OvsBridge) { setConnectionIcon(QStringLiteral("network-wired-activated")); setConnectionTooltipIcon(QStringLiteral("network-wired-activated")); } Not resolve problem. When we get the "connected" status and unplug the cable, the "disconnected" status doesn't appear.
A live recording that reproduces the bug (Linux bridge) https://www.youtube.com/watch?v=JXW4W0cW8So Example command for *Linux bridge* export NET_DEV="eth1" export NM_NAME="Wired connection 1" sudo nmcli con add ifname br0 type bridge con-name br0 sudo nmcli con add type bridge-slave ifname "${NET_DEV}" master br0 con-name br0-slave-"${NET_DEV}" sudo ip link show dev br0 sudo ip link show dev "${NET_DEV}" sudo nmcli con modify br0 ipv4.method disabled ipv6.method disabled sudo nmcli con modify br0 ipv4.method static ipv4.address "192.168.1.2/24" ipv4.gateway "192.168.1.1" ipv4.dns "8.8.8.8" sudo nmcli con modify br0-slave-"${NET_DEV}" 802-3-ethernet.mtu 9000 sudo nmcli con modify br0 bridge.stp no sudo nmcli con down "${NM_NAME}" sudo nmcli con up br0 If we add code } else if (type == NetworkManager::Device::OvsBridge) { setConnectionIcon(QStringLiteral("network-wired-activated")); setConnectionTooltipIcon(QStringLiteral("network-wired-activated")); } we will see the same for *OVS bridge*
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-nm/-/merge_requests/568
I rebase my branch. Please check and merge https://invent.kde.org/plasma/plasma-nm/-/merge_requests/568
Git commit 0c02f8388f4cb7f60cd32740534c4c7ecb566c03 by Nate Graham, on behalf of Ivan Perevalov. Committed on 28/05/2026 at 20:11. Pushed by ngraham into branch 'master'. Fix bridge disconnect icon and add OvsBridge support Pulling the cable from a bridge slave port left the tray icon stuck on `network-wired-activated`, because NetworkManager keeps the bridge connection active even after physical link loss. The old code unconditionally set the activated icon for bridge devices. Fix and additions Fix this by explicitly handling `NetworkManager::Device::OvsBridge` network types and checking for the existence of any ethernet carriers; no carriers means no network means disconnected icon. M +21 -7 libs/connectionicon.cpp M +1 -0 libs/connectionicon.h https://invent.kde.org/plasma/plasma-nm/-/commit/0c02f8388f4cb7f60cd32740534c4c7ecb566c03
Git commit 7dcbce9c5dec58297f2ecb83f81dcb86b17cafa6 by Nate Graham. Committed on 28/05/2026 at 20:14. Pushed by ngraham into branch 'Plasma/6.7'. Fix bridge disconnect icon and add OvsBridge support Pulling the cable from a bridge slave port left the tray icon stuck on `network-wired-activated`, because NetworkManager keeps the bridge connection active even after physical link loss. The old code unconditionally set the activated icon for bridge devices. Fix and additions Fix this by explicitly handling `NetworkManager::Device::OvsBridge` network types and checking for the existence of any ethernet carriers; no carriers means no network means disconnected icon. (cherry picked from commit 0c02f8388f4cb7f60cd32740534c4c7ecb566c03) 72ea3c09 Fix bridge disconnect icon and add OvsBridge support Co-authored-by: Ivan Perevalov <i.serocco@gmail.com> M +21 -7 libs/connectionicon.cpp M +1 -0 libs/connectionicon.h https://invent.kde.org/plasma/plasma-nm/-/commit/7dcbce9c5dec58297f2ecb83f81dcb86b17cafa6
Git commit 8ed56480b0b75799279789824831f3d600c22c88 by Nate Graham. Committed on 11/06/2026 at 14:31. Pushed by ngraham into branch 'Plasma/6.6'. Fix bridge disconnect icon and add OvsBridge support Pulling the cable from a bridge slave port left the tray icon stuck on `network-wired-activated`, because NetworkManager keeps the bridge connection active even after physical link loss. The old code unconditionally set the activated icon for bridge devices. Fix and additions Fix this by explicitly handling `NetworkManager::Device::OvsBridge` network types and checking for the existence of any ethernet carriers; no carriers means no network means disconnected icon. (cherry picked from commit 0c02f8388f4cb7f60cd32740534c4c7ecb566c03) 72ea3c09 Fix bridge disconnect icon and add OvsBridge support Co-authored-by: Ivan Perevalov <i.serocco@gmail.com> M +21 -7 libs/connectionicon.cpp M +1 -0 libs/connectionicon.h https://invent.kde.org/plasma/plasma-nm/-/commit/8ed56480b0b75799279789824831f3d600c22c88