enum ieee80211_ampdu_mlme_action — A-MPDU actions
enum ieee80211_ampdu_mlme_action { IEEE80211_AMPDU_RX_START, IEEE80211_AMPDU_RX_STOP, IEEE80211_AMPDU_TX_START, IEEE80211_AMPDU_TX_STOP_CONT, IEEE80211_AMPDU_TX_STOP_FLUSH, IEEE80211_AMPDU_TX_STOP_FLUSH_CONT, IEEE80211_AMPDU_TX_OPERATIONAL };
start RX aggregation
stop RX aggregation
start TX aggregation
stop TX aggregation but continue transmitting
queued packets, now unaggregated. After all packets are transmitted the
driver has to call ieee80211_stop_tx_ba_cb_irqsafe
.
stop TX aggregation and flush all packets,
called when the station is removed. There's no need or reason to call
ieee80211_stop_tx_ba_cb_irqsafe
in this case as mac80211 assumes the
session is gone and removes the station.
called when TX aggregation is stopped
but the driver hasn't called ieee80211_stop_tx_ba_cb_irqsafe
yet and
now the connection is dropped and the station will be removed. Drivers
should clean up and drop remaining packets when this is called.
TX aggregation has become operational
These flags are used with the ampdu_action
callback in
struct ieee80211_ops to indicate which action is needed.
Note that drivers MUST be able to deal with a TX aggregation session being stopped even before they OK'ed starting it by calling ieee80211_start_tx_ba_cb_irqsafe, because the peer might receive the addBA frame and send a delBA right away!