[PATCH v4 0/5] dbus: expose per-BSS RSN capabilities

Aleksman4o <[email protected]> Tue, 28 Jul 2026 18:46:39 +0300
Newsgroups dev.linux.lists.iwd
Message-ID <[email protected]>
From: Aleks Man <[email protected]>

James, thanks for the review.  This revision adds the requested iwctl
support for displaying the new fields.

Network.Type intentionally represents WPA2-Personal, WPA3-Personal, and
transition networks as "psk".  This series exposes the RSN information
that iwd already retains for each BSS so consumers can distinguish those
networks without changing the existing Network API.

The optional BasicServiceSet.RSN dictionary uses the same KeyMgmt,
Pairwise, and Group fields and values as wpa_supplicant's BSS.RSN
property.  NetworkManager can therefore reuse its existing parser rather
than add another translation layer.  Older consumers ignore the optional
property, and consumers can retain their Network.Type fallback for older
iwd versions.

The corresponding NetworkManager MR reads and combines the per-BSS
capabilities for its synthetic ESS access point:
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2464

Validation:

  - make check: 273 passed, 6 skipped, 0 failed.
  - The installed patched iwd exposes the expected KeyMgmt, Pairwise, and
    Group values on a physical WPA2/WPA3 transition BSS.
  - The new iwctl output displays the capabilities in the get-bsses table.
  - An SAE profile auto-connects after restarting iwd and remains visible
    as connected in NetworkManager and the Plasma applet.
  - A NetworkManager disconnect/reconnect completes without a password
    prompt and reconnects as WPA3-Personal with FT.
  - The upstream CI suite passed all checks for v3.

Changes in v4:
  - Add iwctl parsing and display of the BasicServiceSet RSN dictionary,
    as requested by James.
  - Widen get-bsses property values so the capabilities remain readable
    while the table stays within 80 columns.
  - No changes to patches 1-3.

Changes in v3:
  - Shorten the auto-t filename so the generated patch metadata complies
    with GitLint's 80-column limit.  There are no code changes.

Changes in v2:
  - Resend with git-send-email after the Gmail web client corrupted the
    inline v1 patches.  There are no code changes.

RFC:
https://lore.kernel.org/iwd/CAMq8zouhDMRW4Q7qSpMCFftp21wCzuC%[email protected]/

Related NetworkManager issues:
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1489
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1693

Aleks Man (5):
  network: expose RSN capabilities on BSS
  doc: document BasicServiceSet RSN property
  auto-t: test BasicServiceSet RSN property
  client: display BasicServiceSet RSN property
  client: widen BSS property value column

 .../testBasicServiceSetRSN/bss_rsn_test.py    |  70 +++++++++++
 autotests/testBasicServiceSetRSN/hw.conf      |   9 ++
 autotests/testBasicServiceSetRSN/ssidSAE.conf |  11 ++
 .../ssidTransition.conf                       |  12 ++
 .../testBasicServiceSetRSN/ssidWPA2.conf      |   8 ++
 client/bss.c                                  |  76 ++++++++++++
 client/station.c                              |   4 +-
 doc/basic-service-set.txt                     |  23 ++++
 src/network.c                                 | 110 ++++++++++++++++++
 9 files changed, 321 insertions(+), 2 deletions(-)
 create mode 100644 autotests/testBasicServiceSetRSN/bss_rsn_test.py
 create mode 100644 autotests/testBasicServiceSetRSN/hw.conf
 create mode 100644 autotests/testBasicServiceSetRSN/ssidSAE.conf
 create mode 100644 autotests/testBasicServiceSetRSN/ssidTransition.conf
 create mode 100644 autotests/testBasicServiceSetRSN/ssidWPA2.conf

-- 
2.55.0