From 0e7a7e62fbf475c4380f7658334d777d35de2321 Mon Sep 17 00:00:00 2001 From: Rany Hany Date: Sat, 15 Nov 2025 15:32:31 +0000 Subject: [PATCH] wifi-scripts: add beacon_prot and spp_amsdu support This adds support for beacon_prot and spp_amsdu in hostapd and beacon_prot in wpa_supplicant (spp_amsdu is not relevant there). Both options are disabled by default unless set in the config. Signed-off-by: Rany Hany Link: https://github.com/openwrt/openwrt/pull/20793 Signed-off-by: Hauke Mehrtens --- .../files-ucode/usr/share/schema/wireless.wifi-iface.json | 8 ++++++++ .../wifi-scripts/files-ucode/usr/share/ucode/wifi/ap.uc | 2 +- .../files-ucode/usr/share/ucode/wifi/supplicant.uc | 2 +- .../config/wifi-scripts/files/lib/netifd/hostapd.sh | 8 ++++++-- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-iface.json b/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-iface.json index 3e66c6bb18..c246c8fa4f 100644 --- a/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-iface.json +++ b/package/network/config/wifi-scripts/files-ucode/usr/share/schema/wireless.wifi-iface.json @@ -165,6 +165,10 @@ "basic_rate": { "type": "array" }, + "beacon_prot": { + "description": "Management frame protection for Beacon frames", + "type": "boolean" + }, "bss_load_update_period": { "description": "BSS Load update period (in BUs)", "type": "number", @@ -993,6 +997,10 @@ "type": "boolean", "default": false }, + "spp_amsdu": { + "description": "Signaling and Payload Protected A-MSDU", + "type": "boolean" + }, "ssid": { "type": "string" }, diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/ap.uc b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/ap.uc index 4ec8e8f815..e91f8e4ef9 100644 --- a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/ap.uc +++ b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/ap.uc @@ -57,7 +57,7 @@ function iface_setup(config) { 'disassoc_low_ack', 'skip_inactivity_poll', 'ignore_broadcast_ssid', 'uapsd_advertisement_enabled', 'utf8_ssid', 'multi_ap', 'multi_ap_vlanid', 'multi_ap_profile', 'tdls_prohibit', 'bridge', 'wds_sta', 'wds_bridge', 'snoop_iface', 'vendor_elements', 'nas_identifier', 'radius_acct_interim_interval', - 'ocv', 'multicast_to_unicast', 'preamble', 'proxy_arp', 'per_sta_vif', 'mbo', + 'ocv', 'beacon_prot', 'spp_amsdu', 'multicast_to_unicast', 'preamble', 'proxy_arp', 'per_sta_vif', 'mbo', 'bss_transition', 'wnm_sleep_mode', 'wnm_sleep_mode_no_keys', 'qos_map_set', 'max_listen_int', 'dtim_period', 'wmm_enabled', 'start_disabled', 'na_mcast_to_ucast', ]); diff --git a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc index f796ae99a7..6d65b5b248 100644 --- a/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc +++ b/package/network/config/wifi-scripts/files-ucode/usr/share/ucode/wifi/supplicant.uc @@ -176,7 +176,7 @@ function setup_sta(data, config) { network_append_string_vars(config, [ 'ssid' ]); network_append_vars(config, [ 'rsn_overriding', 'scan_ssid', 'noscan', 'disabled', 'multi_ap_profile', 'multi_ap_backhaul_sta', - 'ocv', 'key_mgmt', 'sae_pwe', 'psk', 'sae_password', 'pairwise', 'group', 'bssid', + 'ocv', 'beacon_prot', 'key_mgmt', 'sae_pwe', 'psk', 'sae_password', 'pairwise', 'group', 'bssid', 'proto', 'mesh_fwding', 'mesh_rssi_threshold', 'frequency', 'fixed_freq', 'disable_ht', 'disable_ht40', 'disable_vht', 'vht', 'max_oper_chwidth', 'ht40', 'beacon_int', 'ieee80211w', 'basic_rate', 'mcast_rate', diff --git a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh index b0061cf4c3..81ebebbe2b 100644 --- a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh +++ b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh @@ -401,6 +401,7 @@ hostapd_common_add_bss_config() { config_add_string fils_dhcp config_add_int ocv + config_add_boolean beacon_prot spp_amsdu config_add_boolean apup config_add_string apup_peer_ifname_prefix @@ -562,7 +563,7 @@ hostapd_set_bss_options() { ppsk airtime_bss_weight airtime_bss_limit airtime_sta_weight \ multicast_to_unicast_all proxy_arp per_sta_vif na_mcast_to_ucast \ eap_server eap_user_file ca_cert server_cert private_key private_key_passwd server_id radius_server_clients radius_server_auth_port \ - vendor_elements fils ocv apup rsn_override + vendor_elements fils ocv beacon_prot spp_amsdu apup rsn_override set_default rsn_override 1 set_default fils 0 @@ -634,6 +635,8 @@ hostapd_set_bss_options() { json_for_each_item append_radius_acct_req_attr radius_acct_req_attr [ -n "$ocv" ] && append bss_conf "ocv=$ocv" "$N" + [ -n "$beacon_prot" ] && append bss_conf "beacon_prot=$beacon_prot" "$N" + [ -n "$spp_amsdu" ] && append bss_conf "spp_amsdu=$spp_amsdu" "$N" case "$auth_type" in sae|owe|eap2|eap192) @@ -1331,7 +1334,7 @@ wpa_supplicant_add_network() { json_get_vars \ ssid bssid key rsn_override \ mcast_rate \ - ieee80211w ieee80211r fils ocv \ + ieee80211w ieee80211r fils ocv beacon_prot \ multi_ap \ default_disabled @@ -1389,6 +1392,7 @@ wpa_supplicant_add_network() { } [ -n "$ocv" ] && append network_data "ocv=$ocv" "$N$T" + [ -n "$beacon_prot" ] && append network_data "beacon_prot=$beacon_prot" "$N$T" rsn_overriding=0 case "$htmode" in -- 2.30.2