This patch series adds initial support for Multi-Link operation AP. First, it refactors the driver_nl80211 to support multiple links by introducing internal structs to hold the links and API's to configure links and link stations. Next it allows to start multiple hostapd_iface's and bind them to the same underlying network interface and driver instance. Each hostapd_iface represents a separate link BSS. The events are forwarded to the correct hapd according to the link id. Afterwards we implement advertising and parsing of basic MLE and RNR in beacons, probe responses and during authentication and association stages. Finally, implement WPA authenticator for MLO and also adjust SAE to use the MLD addresses for commit derivation. It needs to be noticed, that this series are minimal and add a very basic MLO implementation which allow to establish SAE/OWE connection and intended to be used mainly for testing purposes. Andrei Otcheretianski (24): driver: Add MLD link id to AP parameters driver_nl80211: Provide link_id in EAPOL_RX and RX_MGMT events driver_nl80211: Support setting up an AP on a specified link driver_nl80211: Properly stop and deinit MLO AP AP: Add some basic MLD configuration options AP: Allow starting multiple interfaces within single MLD driver_nl80211: Select freq according to transmitting link nl80211: Support adding multi link stations AP: Support building basic Multi-Link Element AP: MLO: Handle ML element during authentication AP: MLO: Add MLO information to hostapd_sta_add_params struct AP: MLO: Process EHT ML element from association request AP: MLO: Add ML element to association response AP: Print MLD info in STATUS command AP/wpa_supplicant/driver: Add link id to send eapol callbacks driver_nl80211: use frequency to determine mld link for MLME events AP: Forward link specific events WPA_AUTH: MLO: Store MLO link information WPA_AUTH: MLO: Add MLO KDEs to message 3 of the 4-way handshake AP: Use MLD address for SAE commit derivation AP: Don't process SAE/OWE assoc info on MLD links AP: Use MLD address for traffic tests tests: Clear sae_groups in eht_sae test tests: Add basic MLD hwsim tests Avraham Stern (1): tests: Remove dynamically added hostapd interfaces Ilan Peer (25): nl80211: Refactor i802_bss to support multiple links driver_nl80211: Introduce and implement a callback to add MLO link driver: Allow to provide a link ID when setting a channel AP: Include an RNR element in beacons for MLD AP common: Split ieee8021_parse_elems() common: Add support for clearing elements common: Support parsing link specific association request AP: Split check_assoc_ies() AP: MLO: Make 802.1X SM, authserv and radius client singletons AP: Match Rx frames against MLD address AP: MLO: Handle association callback AP: MLO: Handle deauth/disassoc of MLD station AP: MLO: Handle 802.1X port authorization driver: Specify link ID for 'send_mlme' and 'sta_deauth' callbacks AP: Do not prune station when adding a link station AP: Handle TX status for MLD AP AP: Provide the link ID for an MLD setting when setting VLAN AP/driver: Add link id to the set_tx_queue_params() callback WPA_AUTH: MLO: Add functions to get the AA and SPA WPA_AUTH: MLO: Add MAC KDE to 1st message in 4-way handshake WPA_AUTH: MLO: Validate MLO KDEs in 2nd message of 4-way handshake WPA_AUTH: MLO: Validate MLO KDEs in 4th message of 4-way handshake WPA_AUTH: MLO: Add MLO KDEs to message 1 of the group handshake WPA_AUTH: MLO: Get the correct AA and SPA based on MLD operation AP: Specify the link ID for set_key() callback hostapd/config_file.c | 10 + hostapd/ctrl_iface.c | 7 +- hostapd/main.c | 84 +++ src/ap/ap_config.h | 17 + src/ap/ap_drv_ops.c | 61 +- src/ap/ap_drv_ops.h | 24 +- src/ap/authsrv.c | 38 + src/ap/beacon.c | 55 +- src/ap/ctrl_iface_ap.c | 15 + src/ap/drv_callbacks.c | 86 ++- src/ap/hostapd.c | 125 +++- src/ap/hostapd.h | 5 +- src/ap/ieee802_11.c | 1115 +++++++++++++++++++++++----- src/ap/ieee802_11.h | 11 + src/ap/ieee802_11_eht.c | 680 +++++++++++++++++ src/ap/ieee802_1x.c | 109 ++- src/ap/sta_info.c | 43 +- src/ap/sta_info.h | 34 + src/ap/utils.c | 14 +- src/ap/wpa_auth.c | 892 +++++++++++++++++++--- src/ap/wpa_auth.h | 48 ++ src/ap/wpa_auth_glue.c | 107 ++- src/ap/wpa_auth_i.h | 16 + src/common/ieee802_11_common.c | 433 ++++++++++- src/common/ieee802_11_common.h | 8 + src/common/ieee802_11_defs.h | 11 + src/common/wpa_common.h | 3 + src/drivers/driver.h | 64 +- src/drivers/driver_nl80211.c | 667 +++++++++++++---- src/drivers/driver_nl80211.h | 21 +- src/drivers/driver_nl80211_event.c | 64 +- tests/hwsim/example-hostapd.config | 1 + tests/hwsim/hostapd.py | 77 +- tests/hwsim/hwsim.py | 11 +- tests/hwsim/run-tests.py | 11 +- tests/hwsim/test_eht.py | 301 ++++++++ wpa_supplicant/driver_i.h | 25 +- wpa_supplicant/ibss_rsn.c | 4 +- wpa_supplicant/wpas_glue.c | 2 +- 39 files changed, 4721 insertions(+), 578 deletions(-) -- 2.38.1 _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap