aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2008-09-09 08:42:50 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-09-11 15:53:39 -0400
commitde1ede7ac3bd300f9aa565d0f93f6cf9ba74bb1a (patch)
tree82e48b4140e9444104639a97aa55be03c5020466 /net/mac80211/ieee80211_i.h
parent5825fe100d654fff89aa67a1e202af1f8a7f0ad0 (diff)
mac80211: make BA session handling independent of STA mode
The aggregation handling isn't dependent on anything related to our STA-mode implementation, and doesn't need to depend on it for frame processing. This patch moves the relevant code to ht.c and adds a hook in rx.c. For now, the relevant action frames are only processed in STA/IBSS modes, but that's now something we can easily change. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r--net/mac80211/ieee80211_i.h39
1 files changed, 23 insertions, 16 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index b10e70715db0..60ec7ad27643 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -909,22 +909,6 @@ int ieee80211_sta_disassociate(struct ieee80211_sub_if_data *sdata, u16 reason);
909void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata, 909void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata,
910 u32 changed); 910 u32 changed);
911u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata); 911u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata);
912int ieee80211_ht_cap_ie_to_ht_info(struct ieee80211_ht_cap *ht_cap_ie,
913 struct ieee80211_ht_info *ht_info);
914int ieee80211_ht_addt_info_ie_to_ht_bss_info(
915 struct ieee80211_ht_addt_info *ht_add_info_ie,
916 struct ieee80211_ht_bss_info *bss_info);
917void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata, const u8 *da,
918 u16 tid, u8 dialog_token, u16 start_seq_num,
919 u16 agg_size, u16 timeout);
920void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, const u8 *da, u16 tid,
921 u16 initiator, u16 reason_code);
922void ieee80211_send_bar(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, u16 ssn);
923
924void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da,
925 u16 tid, u16 initiator, u16 reason);
926void sta_addba_resp_timer_expired(unsigned long data);
927void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr);
928u64 ieee80211_sta_get_rates(struct ieee80211_local *local, 912u64 ieee80211_sta_get_rates(struct ieee80211_local *local,
929 struct ieee802_11_elems *elems, 913 struct ieee802_11_elems *elems,
930 enum ieee80211_band band); 914 enum ieee80211_band band);
@@ -977,6 +961,29 @@ int ieee80211_master_start_xmit(struct sk_buff *skb, struct net_device *dev);
977int ieee80211_monitor_start_xmit(struct sk_buff *skb, struct net_device *dev); 961int ieee80211_monitor_start_xmit(struct sk_buff *skb, struct net_device *dev);
978int ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev); 962int ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev);
979 963
964/* HT */
965int ieee80211_ht_cap_ie_to_ht_info(struct ieee80211_ht_cap *ht_cap_ie,
966 struct ieee80211_ht_info *ht_info);
967int ieee80211_ht_addt_info_ie_to_ht_bss_info(
968 struct ieee80211_ht_addt_info *ht_add_info_ie,
969 struct ieee80211_ht_bss_info *bss_info);
970void ieee80211_send_bar(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, u16 ssn);
971
972void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da,
973 u16 tid, u16 initiator, u16 reason);
974void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr);
975void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata,
976 struct sta_info *sta,
977 struct ieee80211_mgmt *mgmt, size_t len);
978void ieee80211_process_addba_resp(struct ieee80211_local *local,
979 struct sta_info *sta,
980 struct ieee80211_mgmt *mgmt,
981 size_t len);
982void ieee80211_process_addba_request(struct ieee80211_local *local,
983 struct sta_info *sta,
984 struct ieee80211_mgmt *mgmt,
985 size_t len);
986
980/* utility functions/constants */ 987/* utility functions/constants */
981extern void *mac80211_wiphy_privid; /* for wiphy privid */ 988extern void *mac80211_wiphy_privid; /* for wiphy privid */
982extern const unsigned char rfc1042_header[6]; 989extern const unsigned char rfc1042_header[6];