diff options
author | Luis Carlos Cobo <luisca@cozybit.com> | 2008-02-23 15:17:11 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-06 15:30:41 -0500 |
commit | ee3858551ae6d044578f598f8001db5f1a9fd52e (patch) | |
tree | 5a9b61aecccb65210e29850c34801f3cfe6259a9 /net/mac80211/sta_info.h | |
parent | 33b64eb2b1b1759cbdafbe5c59df652f1e7c746e (diff) | |
download | op-kernel-dev-ee3858551ae6d044578f598f8001db5f1a9fd52e.zip op-kernel-dev-ee3858551ae6d044578f598f8001db5f1a9fd52e.tar.gz |
mac80211: mesh data structures and first mesh changes
Includes integration in struct sta_info of mesh peer link elements, previously
on their own mesh peer link table.
Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/sta_info.h')
-rw-r--r-- | net/mac80211/sta_info.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index 86eed40..9d1d7a0 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h @@ -107,6 +107,18 @@ struct tid_ampdu_rx { struct timer_list session_timer; }; +#ifdef CONFIG_MAC80211_MESH +enum plink_state { + LISTEN, + OPN_SNT, + OPN_RCVD, + CNF_RCVD, + ESTAB, + HOLDING, + BLOCKED +}; +#endif + /** * struct sta_ampdu_mlme - STA aggregation information. * @@ -144,6 +156,8 @@ struct sta_info { unsigned long rx_bytes, tx_bytes; unsigned long tx_retry_failed, tx_retry_count; unsigned long tx_filtered_count; + /* moving percentage of failed MSDUs */ + unsigned int fail_avg; unsigned int wep_weak_iv_count; /* number of RX frames with weak IV */ @@ -192,6 +206,20 @@ struct sta_info { struct sta_ampdu_mlme ampdu_mlme; u8 timer_to_tid[STA_TID_NUM]; /* convert timer id to tid */ u8 tid_to_tx_q[STA_TID_NUM]; /* map tid to tx queue */ +#ifdef CONFIG_MAC80211_MESH + /* mesh peer link attributes */ + __le16 llid; /* Local link ID */ + __le16 plid; /* Peer link ID */ + __le16 reason; /* Buffer for cancel reason on HOLDING state */ + enum plink_state plink_state; + u32 plink_timeout; + struct timer_list plink_timer; + u8 plink_retries; /* Retries in establishment */ + bool ignore_plink_timer; + spinlock_t plink_lock; /* For peer_state reads / updates and other + updates in the structure. Ensures robust + transitions for the peerlink FSM */ +#endif #ifdef CONFIG_MAC80211_DEBUGFS struct sta_info_debugfsdentries { @@ -234,6 +262,8 @@ static inline void __sta_info_get(struct sta_info *sta) } struct sta_info * sta_info_get(struct ieee80211_local *local, u8 *addr); +struct sta_info *sta_info_get_by_idx(struct ieee80211_local *local, int idx, + struct net_device *dev); void sta_info_put(struct sta_info *sta); struct sta_info *sta_info_add(struct ieee80211_local *local, struct net_device *dev, u8 *addr, gfp_t gfp); |