[PATCH 00/15] AP: WNM/MBO, OCE AP, ESP and RRM additions and fixes

Andrei-Alexandru Bleortu me at andrei-z.com
Sun Oct 4 03:41:53 PDT 2026


This series came out of checking hostapd, as the AP of a Wi-Fi 6E
access point (ath11k, three radios), against IEEE Std 802.11-2024 and the
Wi-Fi Agile Multiband, Optimized Connectivity, QoS Management and WMM
specifications.

Fixes:
- 5: a STA that rejects a DSCP policy could make hostapd dereference a
  NULL policy on the next DSCP Policy Response, wildcard query or
  reassociation (reproduced as a SIGSEGV in the new test);
- 9: FILS Request Parameters elements with only the mandatory fields
  were dropped by the parser;
- 13: an RSSI-based rejection sent two MBO-OCE elements;
- 15: an admitted downlink TS got a non-zero Medium Time.

Additions:
- 2: the RNR 20 MHz PSD subfield for a co-located 6 GHz AP (11.49);
- 3, 8: a candidate list in the BSS TM Query response and a generated
  Neighbor Report ANQP-element (Agile Multiband 3.5.1);
- 4: a responder for Link Measurement Requests (11.10.11);
- 6: the Mobility Domain bit in the own neighbor report;
- 7: the Estimated Service Parameters Inbound element (esp=1);
- 10-12: OCE AP for drivers that leave Probe Request frames to hostapd:
  probe suppression, broadcast Probe Responses to OCE STAs, Beacon
  frames instead of Probe Responses on a long Max Channel Time, the
  Transmit Power and IP Subnet Identifier attributes, co-located RNR and
  AP Channel Report;
- 14: the BTM cellular data preference only for cellular capable STAs;
- 1: no_pri_sec_switch as a configuration parameter.

All but 4 (hwsim has no TX power insertion) and 9 (covered by the test in
10) add hwsim tests, which fail without the patch where they test a fix.
The full hwsim suite on this series fails no test that does not also
fail on current main or that is not order-dependent. The series also
runs on ath11k hardware (IPQ5018 + QCN9074), where its elements were
checked in the transmitted Beacon frames.


Andrei-Alexandru Bleortu (15):
  hostapd: Allow the primary/secondary channel switch to be disabled
  AP: Set the RNR 20 MHz PSD subfield for co-located 6 GHz APs
  WNM: Include a candidate list when answering a BSS TM Query
  RRM: Respond to Link Measurement Request frames in AP mode
  DSCP: Fix policy invalidation and empty unsolicited requests
  AP: Set the Mobility Domain bit in the own neighbor report
  AP: Add the Estimated Service Parameters Inbound element
  AP: Generate the Neighbor Report ANQP-element
  Accept FILS Request Parameters elements with only the mandatory fields
  OCE: Probe Request frame handling of an OCE AP
  OCE: Transmit Power and IP Subnet Identifier attributes
  OCE: Report co-located 2.4/5 GHz BSSs and neighbor AP channels
  OCE: Put the RSSI-based rejection attribute in the MBO-OCE element
  MBO: Cellular Data Connection Preference only for cellular capable
    STAs
  WMM: Medium Time zero for an admitted downlink TS

 hostapd/config_file.c           |  13 ++
 hostapd/hostapd.conf            |  33 +++++
 src/ap/ap_config.h              |   3 +
 src/ap/ap_drv_ops.h             |   8 ++
 src/ap/beacon.c                 | 109 ++++++++++++++-
 src/ap/ctrl_iface_ap.c          |  18 ++-
 src/ap/drv_callbacks.c          |  11 ++
 src/ap/gas_serv.c               |  49 ++++++-
 src/ap/hostapd.h                |  12 +-
 src/ap/hw_features.c            |   7 +-
 src/ap/ieee802_11.c             | 240 ++++++++++++++++++++++++++++----
 src/ap/ieee802_11.h             |   4 +
 src/ap/ieee802_11_shared.c      | 109 ++++++++++++---
 src/ap/neighbor_db.c            | 146 ++++++++++++++++++-
 src/ap/neighbor_db.h            |   3 +
 src/ap/robust_av.c              |  17 ++-
 src/ap/rrm.c                    |  65 +++++++++
 src/ap/wmm.c                    |   8 +-
 src/ap/wnm_ap.c                 |  17 ++-
 src/common/ieee802_11_common.c  |   3 +-
 src/common/ieee802_11_defs.h    |  13 +-
 src/drivers/driver.h            |   8 ++
 src/drivers/driver_nl80211.c    |  32 +++++
 tests/hwsim/test_ap_dscp.py     |  33 +++++
 tests/hwsim/test_ap_ht.py       |  36 +++++
 tests/hwsim/test_ap_open.py     |  46 ++++++
 tests/hwsim/test_he.py          |  49 +++++++
 tests/hwsim/test_mbo.py         |  47 +++++++
 tests/hwsim/test_oce.py         | 203 +++++++++++++++++++++++++++
 tests/hwsim/test_rrm.py         |  24 ++++
 tests/hwsim/test_wnm.py         |  61 +++++++-
 tests/hwsim/test_wpas_wmm_ac.py |  11 ++
 32 files changed, 1357 insertions(+), 81 deletions(-)

-- 
2.47.3





More information about the Hostap mailing list