diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-12-16 21:49:14 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-12-19 13:37:46 +0100 |
commit | a7022e65c68ad89d6eb64f21aa4831c3822403d4 (patch) | |
tree | 7f00a23cf59d36eac93e99435d78adf486a0d242 /include/net/mac80211.h | |
parent | 34a3740d6b392896b71e36cd5cd68837a8f94a5c (diff) | |
download | op-kernel-dev-a7022e65c68ad89d6eb64f21aa4831c3822403d4.zip op-kernel-dev-a7022e65c68ad89d6eb64f21aa4831c3822403d4.tar.gz |
mac80211: add helper functions for tracking P2P NoA state
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 531785f..f838af8 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h @@ -4652,4 +4652,51 @@ bool ieee80211_tx_prepare_skb(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct sk_buff *skb, int band, struct ieee80211_sta **sta); +/** + * struct ieee80211_noa_data - holds temporary data for tracking P2P NoA state + * + * @next_tsf: TSF timestamp of the next absent state change + * @has_next_tsf: next absent state change event pending + * + * @absent: descriptor bitmask, set if GO is currently absent + * + * private: + * + * @count: count fields from the NoA descriptors + * @desc: adjusted data from the NoA + */ +struct ieee80211_noa_data { + u32 next_tsf; + bool has_next_tsf; + + u8 absent; + + u8 count[IEEE80211_P2P_NOA_DESC_MAX]; + struct { + u32 start; + u32 duration; + u32 interval; + } desc[IEEE80211_P2P_NOA_DESC_MAX]; +}; + +/** + * ieee80211_parse_p2p_noa - initialize NoA tracking data from P2P IE + * + * @attr: P2P NoA IE + * @data: NoA tracking data + * @tsf: current TSF timestamp + * + * Return: number of successfully parsed descriptors + */ +int ieee80211_parse_p2p_noa(const struct ieee80211_p2p_noa_attr *attr, + struct ieee80211_noa_data *data, u32 tsf); + +/** + * ieee80211_update_p2p_noa - get next pending P2P GO absent state change + * + * @data: NoA tracking data + * @tsf: current TSF timestamp + */ +void ieee80211_update_p2p_noa(struct ieee80211_noa_data *data, u32 tsf); + #endif /* MAC80211_H */ |