Skip to content

WiFi speed shows AP base rate (65 Mbps) instead of actual link rate when using IWD backend #2214

Description

@7yunluo

Description

When NetworkManager uses IWD as the WiFi backend, the WiFi network detail panel shows an incorrect speed of 65 Mbps instead of the actual negotiated link rate.

Root Cause

In core/internal/server/network/networkmanager_wifi.go, the speed is read from AccessPoint.MaxBitrate:

maxBitrate, _ := ap.GetPropertyMaxBitrate()
Rate: maxBitrate / 1000,

With IWD backend, org.freedesktop.NetworkManager.AccessPoint.MaxBitrate returns the AP's base rate (65 Mbps), not the actual link speed.

However, org.freedesktop.NetworkManager.Device.Wireless.Bitrate correctly reports the real negotiated rate.

Evidence

# Wrong value (used by DMS)
$ busctl get-property org.freedesktop.NetworkManager \
    /org/freedesktop/NetworkManager/AccessPoint/1 \
    org.freedesktop.NetworkManager.AccessPoint MaxBitrate
u 65000    # 65 Mbps ❌

# Correct value (not used by DMS)
$ busctl get-property org.freedesktop.NetworkManager \
    /org/freedesktop/NetworkManager/Devices/3 \
    org.freedesktop.NetworkManager.Device.Wireless Bitrate
u 1152800  # 1152 Mbps ✅

# IWD also reports correct values
$ iwctl station wlan0 show
TxBitrate: 864600 Kbit/s
RxBitrate: 576400 Kbit/s

Suggested Fix

For the currently connected network, use Device.Wireless.Bitrate instead of (or in addition to) AccessPoint.MaxBitrate.

Environment

  • OS: Arch Linux (kernel 6.19.11-zen1-1-zen)
  • WiFi card: Qualcomm WCN7850 (FastConnect 7800), driver: ath12k
  • Network stack: NetworkManager + IWD backend
  • DMS version: latest from dms-shell-niri-git

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions