Re: [RFC] dbus: expose per-BSS security capabilities

James Prestwood <[email protected]> Tue, 14 Jul 2026 06:27:10 -0700
Newsgroups dev.linux.lists.iwd
Message-ID <[email protected]>
Hi,

On 7/11/26 1:07 PM, Алексей wrote:
> Hi,
>
> NetworkManager cannot currently distinguish WPA2-Personal, WPA3-Personal,
> and WPA2/WPA3 transition networks when using its iwd backend.
>
> iwd has the required information internally.  scan_bss stores the WPA and
> RSN information elements, and scan_bss_get_rsn_info() exposes the parsed AKM
> and cipher information.  However, the stable D-Bus API reduces all of these
> personal network variants to Network.Type="psk".  BasicServiceSet currently
> exports only Address.
>
> This causes a concrete integration failure.  NetworkManager maps an iwd
> Network with Type="psk" to NM_802_11_AP_SEC_KEY_MGMT_PSK.  A saved NM profile
> with 802-11-wireless-security.key-mgmt="sae" then fails the normal AP/profile
> compatibility check and is removed from Device.AvailableConnections, even
> while iwd is successfully connected to the same network using SAE.
>
> Observed with NetworkManager 1.56.1 and iwd 3.12 on a WPA2/WPA3 transition
> network:
>
>    NM profile key-mgmt:       sae
>    iwd negotiated security:  WPA3-Personal + FT
>    NM AP RsnFlags:           0x188 (CCMP + PSK, no SAE)
>    NM AvailableConnections:  empty
>
> Would it be acceptable to extend net.connman.iwd.BasicServiceSet with stable
> WPA/RSN security capability information?
>
> The information needs to include at least:
>
>    - advertised AKM suites (PSK, FT-PSK, SAE, FT-SAE, and so on)
>    - pairwise and group ciphers
>    - management frame protection capability and requirement
>
> Per-BSS properties seem preferable to a Network-level value because BSSs in
> the same ESS may advertise different capabilities.  A consumer such as
> NetworkManager can aggregate the capabilities when presenting the iwd
> Network as one logical AP while leaving BSS selection and roaming to iwd.
>
> One possible API shape would be an extensible read-only RSN dictionary on
> BasicServiceSet, similar to:
>
>    RSN = {
>        "KeyManagement": ["psk", "sae", "ft-sae"],
>        "Pairwise": ["ccmp"],
>        "Group": "ccmp",
>        "ManagementFrameProtection": "optional"
>    }

Extending the BasicServiceSet interface to include these properties 
seems perfectly reasonable to me.

>
> The exact representation is the main subject of this RFC.  Raw suite
> selectors, separate properties, or an aggregate Network property may fit
> iwd's API conventions better.
>
> A corresponding NetworkManager change would consume these capabilities
> instead of synthesizing PSK-only RsnFlags from Network.Type.  Separately, NM
> should preserve an SAE-only profile policy in the generated iwd profile by
> using:
>
>    [Settings]
>    TransitionDisable=true
>    DisabledTransitionModes=personal
>
> Related reports and downstream investigation:
>
>    https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1489
>    https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1693
>    https://invent.kde.org/plasma/plasma-nm/-/merge_requests/571
>
> There was prior discussion indicating that additional BasicServiceSet
> properties are welcome when the data already exists in scan_bss:
>
>    https://lore.kernel.org/iwd/[email protected]/
>
> If this direction is acceptable, I can follow up with the D-Bus
> documentation, implementation, and tests after agreeing on the property
> format.
>
> Regards,
> Aleks
>
Thanks,

James