240 lines
4.8 KiB
ReStructuredText
240 lines
4.8 KiB
ReStructuredText
=============================
|
|
mac80211 subsystem (advanced)
|
|
=============================
|
|
|
|
Information contained within this part of the book is of interest only
|
|
for advanced interaction of mac80211 with drivers to exploit more
|
|
hardware capabilities and improve performance.
|
|
|
|
LED support
|
|
===========
|
|
|
|
Mac80211 supports various ways of blinking LEDs. Wherever possible,
|
|
device LEDs should be exposed as LED class devices and hooked up to the
|
|
appropriate trigger, which will then be triggered appropriately by
|
|
mac80211.
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_get_tx_led_name
|
|
ieee80211_get_rx_led_name
|
|
ieee80211_get_assoc_led_name
|
|
ieee80211_get_radio_led_name
|
|
ieee80211_tpt_blink
|
|
ieee80211_tpt_led_trigger_flags
|
|
ieee80211_create_tpt_led_trigger
|
|
|
|
Hardware crypto acceleration
|
|
============================
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: Hardware crypto acceleration
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
set_key_cmd
|
|
ieee80211_key_conf
|
|
ieee80211_key_flags
|
|
ieee80211_get_tkip_p1k
|
|
ieee80211_get_tkip_p1k_iv
|
|
ieee80211_get_tkip_p2k
|
|
|
|
Powersave support
|
|
=================
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: Powersave support
|
|
|
|
Beacon filter support
|
|
=====================
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: Beacon filter support
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions: ieee80211_beacon_loss
|
|
|
|
Multiple queues and QoS support
|
|
===============================
|
|
|
|
TBD
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions: ieee80211_tx_queue_params
|
|
|
|
Access point mode support
|
|
=========================
|
|
|
|
TBD
|
|
|
|
Some parts of the if_conf should be discussed here instead
|
|
|
|
Insert notes about VLAN interfaces with hw crypto here or in the hw
|
|
crypto chapter.
|
|
|
|
support for powersaving clients
|
|
-------------------------------
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: AP support for powersaving clients
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_get_buffered_bc
|
|
ieee80211_beacon_get
|
|
ieee80211_sta_eosp
|
|
ieee80211_frame_release_type
|
|
ieee80211_sta_ps_transition
|
|
ieee80211_sta_ps_transition_ni
|
|
ieee80211_sta_set_buffered
|
|
ieee80211_sta_block_awake
|
|
|
|
Supporting multiple virtual interfaces
|
|
======================================
|
|
|
|
TBD
|
|
|
|
Note: WDS with identical MAC address should almost always be OK
|
|
|
|
Insert notes about having multiple virtual interfaces with different MAC
|
|
addresses here, note which configurations are supported by mac80211, add
|
|
notes about supporting hw crypto with it.
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_iterate_active_interfaces
|
|
ieee80211_iterate_active_interfaces_atomic
|
|
|
|
Station handling
|
|
================
|
|
|
|
TODO
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_sta
|
|
sta_notify_cmd
|
|
ieee80211_find_sta
|
|
ieee80211_find_sta_by_ifaddr
|
|
|
|
Hardware scan offload
|
|
=====================
|
|
|
|
TBD
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions: ieee80211_scan_completed
|
|
|
|
Aggregation
|
|
===========
|
|
|
|
TX A-MPDU aggregation
|
|
---------------------
|
|
|
|
.. kernel-doc:: net/mac80211/agg-tx.c
|
|
:doc: TX A-MPDU aggregation
|
|
|
|
.. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-tx.c
|
|
|
|
RX A-MPDU aggregation
|
|
---------------------
|
|
|
|
.. kernel-doc:: net/mac80211/agg-rx.c
|
|
:doc: RX A-MPDU aggregation
|
|
|
|
.. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions: ieee80211_ampdu_mlme_action
|
|
|
|
Spatial Multiplexing Powersave (SMPS)
|
|
=====================================
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:doc: Spatial multiplexing power save
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_request_smps
|
|
ieee80211_smps_mode
|
|
|
|
TBD
|
|
|
|
This part of the book describes the rate control algorithm interface and
|
|
how it relates to mac80211 and drivers.
|
|
|
|
Rate Control API
|
|
================
|
|
|
|
TBD
|
|
|
|
.. kernel-doc:: include/net/mac80211.h
|
|
:functions:
|
|
ieee80211_start_tx_ba_session
|
|
ieee80211_start_tx_ba_cb_irqsafe
|
|
ieee80211_stop_tx_ba_session
|
|
ieee80211_stop_tx_ba_cb_irqsafe
|
|
ieee80211_rate_control_changed
|
|
ieee80211_tx_rate_control
|
|
|
|
TBD
|
|
|
|
This part of the book describes mac80211 internals.
|
|
|
|
Key handling
|
|
============
|
|
|
|
Key handling basics
|
|
-------------------
|
|
|
|
.. kernel-doc:: net/mac80211/key.c
|
|
:doc: Key handling basics
|
|
|
|
MORE TBD
|
|
--------
|
|
|
|
TBD
|
|
|
|
Receive processing
|
|
==================
|
|
|
|
TBD
|
|
|
|
Transmit processing
|
|
===================
|
|
|
|
TBD
|
|
|
|
Station info handling
|
|
=====================
|
|
|
|
Programming information
|
|
-----------------------
|
|
|
|
.. kernel-doc:: net/mac80211/sta_info.h
|
|
:functions:
|
|
sta_info
|
|
ieee80211_sta_info_flags
|
|
|
|
STA information lifetime rules
|
|
------------------------------
|
|
|
|
.. kernel-doc:: net/mac80211/sta_info.c
|
|
:doc: STA information lifetime rules
|
|
|
|
Aggregation Functions
|
|
=====================
|
|
|
|
.. kernel-doc:: net/mac80211/sta_info.h
|
|
:functions:
|
|
sta_ampdu_mlme
|
|
tid_ampdu_tx
|
|
tid_ampdu_rx
|
|
|
|
Synchronisation Functions
|
|
=========================
|
|
|
|
TBD
|
|
|
|
Locking, lots of RCU
|