Commit 8b73d13a authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville

mac80211_hwsim: implement ampdu action

Not that we actually ever aggregate anything, but
it could potentially be useful anyhow to simulate
aggregation sessions.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 0f78231b
...@@ -841,6 +841,31 @@ static int mac80211_hwsim_testmode_cmd(struct ieee80211_hw *hw, ...@@ -841,6 +841,31 @@ static int mac80211_hwsim_testmode_cmd(struct ieee80211_hw *hw,
} }
#endif #endif
static int mac80211_hwsim_ampdu_action(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
enum ieee80211_ampdu_mlme_action action,
struct ieee80211_sta *sta, u16 tid, u16 *ssn)
{
switch (action) {
case IEEE80211_AMPDU_TX_START:
ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid);
break;
case IEEE80211_AMPDU_TX_STOP:
ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
break;
case IEEE80211_AMPDU_TX_OPERATIONAL:
break;
case IEEE80211_AMPDU_RX_START:
case IEEE80211_AMPDU_RX_STOP:
break;
default:
return -EOPNOTSUPP;
}
return 0;
}
static const struct ieee80211_ops mac80211_hwsim_ops = static const struct ieee80211_ops mac80211_hwsim_ops =
{ {
.tx = mac80211_hwsim_tx, .tx = mac80211_hwsim_tx,
...@@ -855,6 +880,7 @@ static const struct ieee80211_ops mac80211_hwsim_ops = ...@@ -855,6 +880,7 @@ static const struct ieee80211_ops mac80211_hwsim_ops =
.set_tim = mac80211_hwsim_set_tim, .set_tim = mac80211_hwsim_set_tim,
.conf_tx = mac80211_hwsim_conf_tx, .conf_tx = mac80211_hwsim_conf_tx,
CFG80211_TESTMODE_CMD(mac80211_hwsim_testmode_cmd) CFG80211_TESTMODE_CMD(mac80211_hwsim_testmode_cmd)
.ampdu_action = mac80211_hwsim_ampdu_action,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment