A handful of changes:

* fixes for the recent S1G work
  * a docbook build time improvement
  * API to pass beacon rate to lower-level driver
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEH1e1rEeCd0AIMq6MB8qZga/fl8QFAl9+7MQACgkQB8qZga/f
 l8SOqw/8Cr0/QTy2DMNGZwsIcNgLjYvgKckZFWFhyyJtYnFHUa+VX1fVO07xoQpG
 PWgHnDRR39rm6ZJt0n61h0C5wxwibggU8oGBNV3cYRDTwefR/WPWJ9UJs9NSVKA+
 PJQt9iqKGneEq3KjISaKvWLFdWUHePorOVyZr8tLYlerGma17kLG6nunB7gg6CCn
 VSQrnVyeF7oEs7agkFtdaPpIQ2ieTxD9Xl2p2y3bMFRLVJopaBGHrWaGq1e7UKme
 c5W9cIwOxIvieqcn03/lkwS5KEaG5OXqL+pL1zJiN69OWpjp3X4DFMP8f7xTrmFj
 xK9SRTnR7CU3yvlfSQuNJgJn4+2zussn+VgzY5sDBW3FPAFy0NNvlA5vVnZgPJ61
 AkfE8wNiaVAPLA8ckxN6VV9CiV1JDx5w2FrnCPhA7weX0l3PpAaojA5xG6HCDEHx
 LfNr9NbRLiTZdz8YkDEUU+GCCfnYBAbYXO/lMQK56L2T+HOu3yVE9nYuUQNRCCkK
 gDr9biOYrWpYC1r3mD+i+0guaH3ZRpO/skoD0So25YxCP+j/AkDJXSjflTkaU9P2
 XmgXxjxVX8JFrg29XciiGW6a4TOWS3caMvwxb0PlzfPaNREuglH3ygFHVnWsAt2G
 GZIgc3OggRdUIK4zoX3jsZQAgDK4B9ym70zujSY7JdIamxaHmO4=
 =TrMG
 -----END PGP SIGNATURE-----

Merge tag 'mac80211-next-for-net-next-2020-10-08' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next

Johannes Berg says:

====================
A handful of changes:
 * fixes for the recent S1G work
 * a docbook build time improvement
 * API to pass beacon rate to lower-level driver
====================

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jakub Kicinski 2020-10-10 09:12:52 -07:00
commit 16573e7cb5
13 changed files with 240 additions and 495 deletions

View File

@ -12,79 +12,32 @@ Device registration
:doc: Device registration :doc: Device registration
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_channel_flags :functions:
ieee80211_channel_flags
.. kernel-doc:: include/net/cfg80211.h ieee80211_channel
:functions: ieee80211_channel ieee80211_rate_flags
ieee80211_rate
.. kernel-doc:: include/net/cfg80211.h ieee80211_sta_ht_cap
:functions: ieee80211_rate_flags ieee80211_supported_band
cfg80211_signal_type
.. kernel-doc:: include/net/cfg80211.h wiphy_params_flags
:functions: ieee80211_rate wiphy_flags
wiphy
.. kernel-doc:: include/net/cfg80211.h wireless_dev
:functions: ieee80211_sta_ht_cap wiphy_new
wiphy_read_of_freq_limits
.. kernel-doc:: include/net/cfg80211.h wiphy_register
:functions: ieee80211_supported_band wiphy_unregister
wiphy_free
.. kernel-doc:: include/net/cfg80211.h wiphy_name
:functions: cfg80211_signal_type wiphy_dev
wiphy_priv
.. kernel-doc:: include/net/cfg80211.h priv_to_wiphy
:functions: wiphy_params_flags set_wiphy_dev
wdev_priv
.. kernel-doc:: include/net/cfg80211.h ieee80211_iface_limit
:functions: wiphy_flags ieee80211_iface_combination
cfg80211_check_combinations
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy
.. kernel-doc:: include/net/cfg80211.h
:functions: wireless_dev
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_new
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_read_of_freq_limits
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_register
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_unregister
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_free
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_name
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_dev
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_priv
.. kernel-doc:: include/net/cfg80211.h
:functions: priv_to_wiphy
.. kernel-doc:: include/net/cfg80211.h
:functions: set_wiphy_dev
.. kernel-doc:: include/net/cfg80211.h
:functions: wdev_priv
.. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_iface_limit
.. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_iface_combination
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_check_combinations
Actions and configuration Actions and configuration
========================= =========================
@ -93,139 +46,52 @@ Actions and configuration
:doc: Actions and configuration :doc: Actions and configuration
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_ops :functions:
cfg80211_ops
.. kernel-doc:: include/net/cfg80211.h vif_params
:functions: vif_params key_params
survey_info_flags
.. kernel-doc:: include/net/cfg80211.h survey_info
:functions: key_params cfg80211_beacon_data
cfg80211_ap_settings
.. kernel-doc:: include/net/cfg80211.h station_parameters
:functions: survey_info_flags rate_info_flags
rate_info
.. kernel-doc:: include/net/cfg80211.h station_info
:functions: survey_info monitor_flags
mpath_info_flags
.. kernel-doc:: include/net/cfg80211.h mpath_info
:functions: cfg80211_beacon_data bss_parameters
ieee80211_txq_params
.. kernel-doc:: include/net/cfg80211.h cfg80211_crypto_settings
:functions: cfg80211_ap_settings cfg80211_auth_request
cfg80211_assoc_request
.. kernel-doc:: include/net/cfg80211.h cfg80211_deauth_request
:functions: station_parameters cfg80211_disassoc_request
cfg80211_ibss_params
.. kernel-doc:: include/net/cfg80211.h cfg80211_connect_params
:functions: rate_info_flags cfg80211_pmksa
cfg80211_rx_mlme_mgmt
.. kernel-doc:: include/net/cfg80211.h cfg80211_auth_timeout
:functions: rate_info cfg80211_rx_assoc_resp
cfg80211_assoc_timeout
.. kernel-doc:: include/net/cfg80211.h cfg80211_tx_mlme_mgmt
:functions: station_info cfg80211_ibss_joined
cfg80211_connect_resp_params
.. kernel-doc:: include/net/cfg80211.h cfg80211_connect_done
:functions: monitor_flags cfg80211_connect_result
cfg80211_connect_bss
.. kernel-doc:: include/net/cfg80211.h cfg80211_connect_timeout
:functions: mpath_info_flags cfg80211_roamed
cfg80211_disconnected
.. kernel-doc:: include/net/cfg80211.h cfg80211_ready_on_channel
:functions: mpath_info cfg80211_remain_on_channel_expired
cfg80211_new_sta
.. kernel-doc:: include/net/cfg80211.h cfg80211_rx_mgmt
:functions: bss_parameters cfg80211_mgmt_tx_status
cfg80211_cqm_rssi_notify
.. kernel-doc:: include/net/cfg80211.h cfg80211_cqm_pktloss_notify
:functions: ieee80211_txq_params cfg80211_michael_mic_failure
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_crypto_settings
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_auth_request
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_assoc_request
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_deauth_request
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_disassoc_request
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_ibss_params
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_connect_params
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_pmksa
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_rx_mlme_mgmt
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_auth_timeout
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_rx_assoc_resp
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_assoc_timeout
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_tx_mlme_mgmt
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_ibss_joined
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_connect_resp_params
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_connect_done
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_connect_result
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_connect_bss
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_connect_timeout
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_roamed
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_disconnected
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_ready_on_channel
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_remain_on_channel_expired
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_new_sta
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_rx_mgmt
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_mgmt_tx_status
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_cqm_rssi_notify
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_cqm_pktloss_notify
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_michael_mic_failure
Scanning and BSS list handling Scanning and BSS list handling
============================== ==============================
@ -234,34 +100,17 @@ Scanning and BSS list handling
:doc: Scanning and BSS list handling :doc: Scanning and BSS list handling
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_ssid :functions:
cfg80211_ssid
.. kernel-doc:: include/net/cfg80211.h cfg80211_scan_request
:functions: cfg80211_scan_request cfg80211_scan_done
cfg80211_bss
.. kernel-doc:: include/net/cfg80211.h cfg80211_inform_bss
:functions: cfg80211_scan_done cfg80211_inform_bss_frame_data
cfg80211_inform_bss_data
.. kernel-doc:: include/net/cfg80211.h cfg80211_unlink_bss
:functions: cfg80211_bss cfg80211_find_ie
ieee80211_bss_get_ie
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_inform_bss
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_inform_bss_frame_data
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_inform_bss_data
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_unlink_bss
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_find_ie
.. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_bss_get_ie
Utility functions Utility functions
================= =================
@ -270,25 +119,14 @@ Utility functions
:doc: Utility functions :doc: Utility functions
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_channel_to_frequency :functions:
ieee80211_channel_to_frequency
.. kernel-doc:: include/net/cfg80211.h ieee80211_frequency_to_channel
:functions: ieee80211_frequency_to_channel ieee80211_get_channel
ieee80211_get_response_rate
.. kernel-doc:: include/net/cfg80211.h ieee80211_hdrlen
:functions: ieee80211_get_channel ieee80211_get_hdrlen_from_skb
ieee80211_radiotap_iterator
.. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_get_response_rate
.. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_hdrlen
.. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_get_hdrlen_from_skb
.. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_radiotap_iterator
Data path helpers Data path helpers
================= =================
@ -297,13 +135,10 @@ Data path helpers
:doc: Data path helpers :doc: Data path helpers
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: ieee80211_data_to_8023 :functions:
ieee80211_data_to_8023
.. kernel-doc:: include/net/cfg80211.h ieee80211_amsdu_to_8023s
:functions: ieee80211_amsdu_to_8023s cfg80211_classify8021d
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_classify8021d
Regulatory enforcement infrastructure Regulatory enforcement infrastructure
===================================== =====================================
@ -312,13 +147,10 @@ Regulatory enforcement infrastructure
:doc: Regulatory enforcement infrastructure :doc: Regulatory enforcement infrastructure
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: regulatory_hint :functions:
regulatory_hint
.. kernel-doc:: include/net/cfg80211.h wiphy_apply_custom_regulatory
:functions: wiphy_apply_custom_regulatory freq_reg_info
.. kernel-doc:: include/net/cfg80211.h
:functions: freq_reg_info
RFkill integration RFkill integration
================== ==================
@ -327,13 +159,10 @@ RFkill integration
:doc: RFkill integration :doc: RFkill integration
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_rfkill_set_hw_state :functions:
wiphy_rfkill_set_hw_state
.. kernel-doc:: include/net/cfg80211.h wiphy_rfkill_start_polling
:functions: wiphy_rfkill_start_polling wiphy_rfkill_stop_polling
.. kernel-doc:: include/net/cfg80211.h
:functions: wiphy_rfkill_stop_polling
Test mode Test mode
========= =========
@ -342,13 +171,8 @@ Test mode
:doc: Test mode :doc: Test mode
.. kernel-doc:: include/net/cfg80211.h .. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_testmode_alloc_reply_skb :functions:
cfg80211_testmode_alloc_reply_skb
.. kernel-doc:: include/net/cfg80211.h cfg80211_testmode_reply
:functions: cfg80211_testmode_reply cfg80211_testmode_alloc_event_skb
cfg80211_testmode_event
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_testmode_alloc_event_skb
.. kernel-doc:: include/net/cfg80211.h
:functions: cfg80211_testmode_event

View File

@ -15,25 +15,14 @@ appropriate trigger, which will then be triggered appropriately by
mac80211. mac80211.
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_get_tx_led_name :functions:
ieee80211_get_tx_led_name
.. kernel-doc:: include/net/mac80211.h ieee80211_get_rx_led_name
:functions: ieee80211_get_rx_led_name ieee80211_get_assoc_led_name
ieee80211_get_radio_led_name
.. kernel-doc:: include/net/mac80211.h ieee80211_tpt_blink
:functions: ieee80211_get_assoc_led_name ieee80211_tpt_led_trigger_flags
ieee80211_create_tpt_led_trigger
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_get_radio_led_name
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_tpt_blink
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_tpt_led_trigger_flags
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_create_tpt_led_trigger
Hardware crypto acceleration Hardware crypto acceleration
============================ ============================
@ -42,22 +31,13 @@ Hardware crypto acceleration
:doc: Hardware crypto acceleration :doc: Hardware crypto acceleration
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: set_key_cmd :functions:
set_key_cmd
.. kernel-doc:: include/net/mac80211.h ieee80211_key_conf
:functions: ieee80211_key_conf ieee80211_key_flags
ieee80211_get_tkip_p1k
.. kernel-doc:: include/net/mac80211.h ieee80211_get_tkip_p1k_iv
:functions: ieee80211_key_flags ieee80211_get_tkip_p2k
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_get_tkip_p1k
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_get_tkip_p1k_iv
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_get_tkip_p2k
Powersave support Powersave support
================= =================
@ -99,28 +79,15 @@ support for powersaving clients
:doc: AP support for powersaving clients :doc: AP support for powersaving clients
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_get_buffered_bc :functions:
ieee80211_get_buffered_bc
.. kernel-doc:: include/net/mac80211.h ieee80211_beacon_get
:functions: ieee80211_beacon_get ieee80211_sta_eosp
ieee80211_frame_release_type
.. kernel-doc:: include/net/mac80211.h ieee80211_sta_ps_transition
:functions: ieee80211_sta_eosp ieee80211_sta_ps_transition_ni
ieee80211_sta_set_buffered
.. kernel-doc:: include/net/mac80211.h ieee80211_sta_block_awake
:functions: ieee80211_frame_release_type
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_sta_ps_transition
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_sta_ps_transition_ni
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_sta_set_buffered
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_sta_block_awake
Supporting multiple virtual interfaces Supporting multiple virtual interfaces
====================================== ======================================
@ -134,10 +101,9 @@ addresses here, note which configurations are supported by mac80211, add
notes about supporting hw crypto with it. notes about supporting hw crypto with it.
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_iterate_active_interfaces :functions:
ieee80211_iterate_active_interfaces
.. kernel-doc:: include/net/mac80211.h ieee80211_iterate_active_interfaces_atomic
:functions: ieee80211_iterate_active_interfaces_atomic
Station handling Station handling
================ ================
@ -145,16 +111,11 @@ Station handling
TODO TODO
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_sta :functions:
ieee80211_sta
.. kernel-doc:: include/net/mac80211.h sta_notify_cmd
:functions: sta_notify_cmd ieee80211_find_sta
ieee80211_find_sta_by_ifaddr
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_find_sta
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_find_sta_by_ifaddr
Hardware scan offload Hardware scan offload
===================== =====================
@ -193,10 +154,9 @@ Spatial Multiplexing Powersave (SMPS)
:doc: Spatial multiplexing power save :doc: Spatial multiplexing power save
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_request_smps :functions:
ieee80211_request_smps
.. kernel-doc:: include/net/mac80211.h ieee80211_smps_mode
:functions: ieee80211_smps_mode
TBD TBD
@ -209,22 +169,13 @@ Rate Control API
TBD TBD
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_start_tx_ba_session :functions:
ieee80211_start_tx_ba_session
.. kernel-doc:: include/net/mac80211.h ieee80211_start_tx_ba_cb_irqsafe
:functions: ieee80211_start_tx_ba_cb_irqsafe ieee80211_stop_tx_ba_session
ieee80211_stop_tx_ba_cb_irqsafe
.. kernel-doc:: include/net/mac80211.h ieee80211_rate_control_changed
:functions: ieee80211_stop_tx_ba_session ieee80211_tx_rate_control
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_stop_tx_ba_cb_irqsafe
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_rate_control_changed
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_tx_rate_control
TBD TBD
@ -261,10 +212,9 @@ Programming information
----------------------- -----------------------
.. kernel-doc:: net/mac80211/sta_info.h .. kernel-doc:: net/mac80211/sta_info.h
:functions: sta_info :functions:
sta_info
.. kernel-doc:: net/mac80211/sta_info.h ieee80211_sta_info_flags
:functions: ieee80211_sta_info_flags
STA information lifetime rules STA information lifetime rules
------------------------------ ------------------------------
@ -276,13 +226,10 @@ Aggregation Functions
===================== =====================
.. kernel-doc:: net/mac80211/sta_info.h .. kernel-doc:: net/mac80211/sta_info.h
:functions: sta_ampdu_mlme :functions:
sta_ampdu_mlme
.. kernel-doc:: net/mac80211/sta_info.h tid_ampdu_tx
:functions: tid_ampdu_tx tid_ampdu_rx
.. kernel-doc:: net/mac80211/sta_info.h
:functions: tid_ampdu_rx
Synchronisation Functions Synchronisation Functions
========================= =========================

View File

@ -30,31 +30,16 @@ Finally, a discussion of hardware capabilities should be done with
references to other parts of the book. references to other parts of the book.
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_hw :functions:
ieee80211_hw
.. kernel-doc:: include/net/mac80211.h ieee80211_hw_flags
:functions: ieee80211_hw_flags SET_IEEE80211_DEV
SET_IEEE80211_PERM_ADDR
.. kernel-doc:: include/net/mac80211.h ieee80211_ops
:functions: SET_IEEE80211_DEV ieee80211_alloc_hw
ieee80211_register_hw
.. kernel-doc:: include/net/mac80211.h ieee80211_unregister_hw
:functions: SET_IEEE80211_PERM_ADDR ieee80211_free_hw
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_ops
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_alloc_hw
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_register_hw
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_unregister_hw
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_free_hw
PHY configuration PHY configuration
================= =================
@ -65,10 +50,9 @@ This chapter should describe PHY handling including start/stop callbacks
and the various structures used. and the various structures used.
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_conf :functions:
ieee80211_conf
.. kernel-doc:: include/net/mac80211.h ieee80211_conf_flags
:functions: ieee80211_conf_flags
Virtual interfaces Virtual interfaces
================== ==================
@ -123,79 +107,32 @@ functions/definitions
--------------------- ---------------------
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_rx_status :functions:
ieee80211_rx_status
.. kernel-doc:: include/net/mac80211.h mac80211_rx_encoding_flags
:functions: mac80211_rx_encoding_flags mac80211_rx_flags
mac80211_tx_info_flags
.. kernel-doc:: include/net/mac80211.h mac80211_tx_control_flags
:functions: mac80211_rx_flags mac80211_rate_control_flags
ieee80211_tx_rate
.. kernel-doc:: include/net/mac80211.h ieee80211_tx_info
:functions: mac80211_tx_info_flags ieee80211_tx_info_clear_status
ieee80211_rx
.. kernel-doc:: include/net/mac80211.h ieee80211_rx_ni
:functions: mac80211_tx_control_flags ieee80211_rx_irqsafe
ieee80211_tx_status
.. kernel-doc:: include/net/mac80211.h ieee80211_tx_status_ni
:functions: mac80211_rate_control_flags ieee80211_tx_status_irqsafe
ieee80211_rts_get
.. kernel-doc:: include/net/mac80211.h ieee80211_rts_duration
:functions: ieee80211_tx_rate ieee80211_ctstoself_get
ieee80211_ctstoself_duration
.. kernel-doc:: include/net/mac80211.h ieee80211_generic_frame_duration
:functions: ieee80211_tx_info ieee80211_wake_queue
ieee80211_stop_queue
.. kernel-doc:: include/net/mac80211.h ieee80211_wake_queues
:functions: ieee80211_tx_info_clear_status ieee80211_stop_queues
ieee80211_queue_stopped
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_rx
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_rx_ni
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_rx_irqsafe
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_tx_status
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_tx_status_ni
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_tx_status_irqsafe
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_rts_get
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_rts_duration
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_ctstoself_get
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_ctstoself_duration
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_generic_frame_duration
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_wake_queue
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_stop_queue
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_wake_queues
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_stop_queues
.. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_queue_stopped
Frame filtering Frame filtering
=============== ===============
@ -213,7 +150,6 @@ The mac80211 workqueue
:doc: mac80211 workqueue :doc: mac80211 workqueue
.. kernel-doc:: include/net/mac80211.h .. kernel-doc:: include/net/mac80211.h
:functions: ieee80211_queue_work :functions:
ieee80211_queue_work
.. kernel-doc:: include/net/mac80211.h ieee80211_queue_delayed_work
:functions: ieee80211_queue_delayed_work

View File

@ -628,6 +628,8 @@ struct ieee80211_fils_discovery {
* @unsol_bcast_probe_resp_interval: Unsolicited broadcast probe response * @unsol_bcast_probe_resp_interval: Unsolicited broadcast probe response
* interval. * interval.
* @s1g: BSS is S1G BSS (affects Association Request format). * @s1g: BSS is S1G BSS (affects Association Request format).
* @beacon_tx_rate: The configured beacon transmit rate that needs to be passed
* to driver when rate control is offloaded to firmware.
*/ */
struct ieee80211_bss_conf { struct ieee80211_bss_conf {
const u8 *bssid; const u8 *bssid;
@ -698,6 +700,7 @@ struct ieee80211_bss_conf {
struct ieee80211_fils_discovery fils_discovery; struct ieee80211_fils_discovery fils_discovery;
u32 unsol_bcast_probe_resp_interval; u32 unsol_bcast_probe_resp_interval;
bool s1g; bool s1g;
struct cfg80211_bitrate_mask beacon_tx_rate;
}; };
/** /**

View File

@ -13,6 +13,7 @@ mac80211-y := \
ht.o agg-tx.o agg-rx.o \ ht.o agg-tx.o agg-rx.o \
vht.o \ vht.o \
he.o \ he.o \
s1g.o \
ibss.o \ ibss.o \
iface.o \ iface.o \
rate.o \ rate.o \

View File

@ -709,7 +709,8 @@ void sta_set_rate_info_tx(struct sta_info *sta,
u16 brate; u16 brate;
sband = ieee80211_get_sband(sta->sdata); sband = ieee80211_get_sband(sta->sdata);
if (sband) { WARN_ON_ONCE(sband && !sband->bitrates);
if (sband && sband->bitrates) {
brate = sband->bitrates[rate->idx].bitrate; brate = sband->bitrates[rate->idx].bitrate;
rinfo->legacy = DIV_ROUND_UP(brate, 1 << shift); rinfo->legacy = DIV_ROUND_UP(brate, 1 << shift);
} }
@ -1153,6 +1154,9 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev,
} }
} }
if (ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL))
sdata->vif.bss_conf.beacon_tx_rate = params->beacon_rate;
err = ieee80211_assign_beacon(sdata, &params->beacon, NULL); err = ieee80211_assign_beacon(sdata, &params->beacon, NULL);
if (err < 0) if (err < 0)
goto error; goto error;

View File

@ -1928,6 +1928,9 @@ void
ieee80211_he_op_ie_to_bss_conf(struct ieee80211_vif *vif, ieee80211_he_op_ie_to_bss_conf(struct ieee80211_vif *vif,
const struct ieee80211_he_operation *he_op_ie_elem); const struct ieee80211_he_operation *he_op_ie_elem);
/* S1G */
void ieee80211_s1g_sta_rate_init(struct sta_info *sta);
/* Spectrum management */ /* Spectrum management */
void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata, void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata,
struct ieee80211_mgmt *mgmt, struct ieee80211_mgmt *mgmt,

View File

@ -5190,8 +5190,10 @@ static int ieee80211_prep_connection(struct ieee80211_sub_if_data *sdata,
int shift = ieee80211_vif_get_shift(&sdata->vif); int shift = ieee80211_vif_get_shift(&sdata->vif);
/* TODO: S1G Basic Rate Set is expressed elsewhere */ /* TODO: S1G Basic Rate Set is expressed elsewhere */
if (cbss->channel->band == NL80211_BAND_S1GHZ) if (cbss->channel->band == NL80211_BAND_S1GHZ) {
ieee80211_s1g_sta_rate_init(new_sta);
goto skip_rates; goto skip_rates;
}
ieee80211_get_rates(sband, bss->supp_rates, ieee80211_get_rates(sband, bss->supp_rates,
bss->supp_rates_len, bss->supp_rates_len,

View File

@ -53,6 +53,7 @@ void rate_control_rate_init(struct sta_info *sta)
/* TODO: check for minstrel_s1g ? */ /* TODO: check for minstrel_s1g ? */
if (sband->band == NL80211_BAND_S1GHZ) { if (sband->band == NL80211_BAND_S1GHZ) {
ieee80211_s1g_sta_rate_init(sta);
rcu_read_unlock(); rcu_read_unlock();
return; return;
} }

16
net/mac80211/s1g.c Normal file
View File

@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0
/*
* S1G handling
* Copyright(c) 2020 Adapt-IP
*/
#include <linux/ieee80211.h>
#include <net/mac80211.h>
#include "ieee80211_i.h"
void ieee80211_s1g_sta_rate_init(struct sta_info *sta)
{
/* avoid indicating legacy bitrates for S1G STAs */
sta->tx_stats.last_rate.flags |= IEEE80211_TX_RC_S1G_MCS;
sta->rx_stats.last_rate =
STA_STATS_FIELD(TYPE, STA_STATS_RATE_TYPE_S1G);
}

View File

@ -2122,6 +2122,10 @@ static void sta_stats_decode_rate(struct ieee80211_local *local, u32 rate,
int rate_idx = STA_STATS_GET(LEGACY_IDX, rate); int rate_idx = STA_STATS_GET(LEGACY_IDX, rate);
sband = local->hw.wiphy->bands[band]; sband = local->hw.wiphy->bands[band];
if (WARN_ON_ONCE(!sband->bitrates))
break;
brate = sband->bitrates[rate_idx].bitrate; brate = sband->bitrates[rate_idx].bitrate;
if (rinfo->bw == RATE_INFO_BW_5) if (rinfo->bw == RATE_INFO_BW_5)
shift = 2; shift = 2;

View File

@ -823,6 +823,7 @@ enum sta_stats_type {
STA_STATS_RATE_TYPE_HT, STA_STATS_RATE_TYPE_HT,
STA_STATS_RATE_TYPE_VHT, STA_STATS_RATE_TYPE_VHT,
STA_STATS_RATE_TYPE_HE, STA_STATS_RATE_TYPE_HE,
STA_STATS_RATE_TYPE_S1G,
}; };
#define STA_STATS_FIELD_HT_MCS GENMASK( 7, 0) #define STA_STATS_FIELD_HT_MCS GENMASK( 7, 0)

View File

@ -207,7 +207,6 @@ bool cfg80211_chandef_valid(const struct cfg80211_chan_def *chandef)
control_freq = chandef->chan->center_freq; control_freq = chandef->chan->center_freq;
switch (chandef->width) { switch (chandef->width) {
case NL80211_CHAN_WIDTH_1:
case NL80211_CHAN_WIDTH_5: case NL80211_CHAN_WIDTH_5:
case NL80211_CHAN_WIDTH_10: case NL80211_CHAN_WIDTH_10:
case NL80211_CHAN_WIDTH_20: case NL80211_CHAN_WIDTH_20:
@ -218,10 +217,14 @@ bool cfg80211_chandef_valid(const struct cfg80211_chan_def *chandef)
if (chandef->center_freq2) if (chandef->center_freq2)
return false; return false;
break; break;
case NL80211_CHAN_WIDTH_1:
case NL80211_CHAN_WIDTH_2: case NL80211_CHAN_WIDTH_2:
case NL80211_CHAN_WIDTH_4: case NL80211_CHAN_WIDTH_4:
case NL80211_CHAN_WIDTH_8: case NL80211_CHAN_WIDTH_8:
case NL80211_CHAN_WIDTH_16: case NL80211_CHAN_WIDTH_16:
if (chandef->chan->band != NL80211_BAND_S1GHZ)
return false;
control_freq = ieee80211_channel_to_khz(chandef->chan); control_freq = ieee80211_channel_to_khz(chandef->chan);
oper_freq = ieee80211_chandef_to_khz(chandef); oper_freq = ieee80211_chandef_to_khz(chandef);
control_width = nl80211_chan_width_to_mhz( control_width = nl80211_chan_width_to_mhz(