diff options
author | Felix Fietkau <nbd@nbd.name> | 2017-04-26 17:11:35 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2017-04-28 10:57:33 +0200 |
commit | 18fb84d986b398c59be6729f38f1c4bbbe8c4e9a (patch) | |
tree | a8c08b180e5b12d34322204914b3df9c19353217 /include/net | |
parent | mac80211: use bitfield macros for encoded rate (diff) | |
download | linux-18fb84d986b398c59be6729f38f1c4bbbe8c4e9a.tar.xz linux-18fb84d986b398c59be6729f38f1c4bbbe8c4e9a.zip |
mac80211: make rate control tx status API more extensible
Rename .tx_status_noskb to .tx_status_ext and pass a new on-stack
struct ieee80211_tx_status instead of struct ieee80211_tx_info.
This struct can be used to pass extra information, e.g. for dynamic tx
power control
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/mac80211.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index f1b58b580080..c9ba79afb136 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -949,6 +949,19 @@ struct ieee80211_tx_info { }; /** + * struct ieee80211_tx_status - extended tx staus info for rate control + * + * @sta: Station that the packet was transmitted for + * @info: Basic tx status information + * @skb: Packet skb (can be NULL if not provided by the driver) + */ +struct ieee80211_tx_status { + struct ieee80211_sta *sta; + struct ieee80211_tx_info *info; + struct sk_buff *skb; +}; + +/** * struct ieee80211_scan_ies - descriptors for different blocks of IEs * * This structure is used to point to different blocks of IEs in HW scan @@ -5471,10 +5484,9 @@ struct rate_control_ops { void (*free_sta)(void *priv, struct ieee80211_sta *sta, void *priv_sta); - void (*tx_status_noskb)(void *priv, - struct ieee80211_supported_band *sband, - struct ieee80211_sta *sta, void *priv_sta, - struct ieee80211_tx_info *info); + void (*tx_status_ext)(void *priv, + struct ieee80211_supported_band *sband, + void *priv_sta, struct ieee80211_tx_status *st); void (*tx_status)(void *priv, struct ieee80211_supported_band *sband, struct ieee80211_sta *sta, void *priv_sta, struct sk_buff *skb); |