diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-09-09 08:42:50 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-09-11 15:53:39 -0400 |
commit | de1ede7ac3bd300f9aa565d0f93f6cf9ba74bb1a (patch) | |
tree | 82e48b4140e9444104639a97aa55be03c5020466 /net/mac80211/ieee80211_i.h | |
parent | 5825fe100d654fff89aa67a1e202af1f8a7f0ad0 (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.h | 39 |
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); | |||
909 | void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata, | 909 | void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata, |
910 | u32 changed); | 910 | u32 changed); |
911 | u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata); | 911 | u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata); |
912 | int ieee80211_ht_cap_ie_to_ht_info(struct ieee80211_ht_cap *ht_cap_ie, | ||
913 | struct ieee80211_ht_info *ht_info); | ||
914 | int 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); | ||
917 | void 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); | ||
920 | void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata, const u8 *da, u16 tid, | ||
921 | u16 initiator, u16 reason_code); | ||
922 | void ieee80211_send_bar(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, u16 ssn); | ||
923 | |||
924 | void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da, | ||
925 | u16 tid, u16 initiator, u16 reason); | ||
926 | void sta_addba_resp_timer_expired(unsigned long data); | ||
927 | void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr); | ||
928 | u64 ieee80211_sta_get_rates(struct ieee80211_local *local, | 912 | u64 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); | |||
977 | int ieee80211_monitor_start_xmit(struct sk_buff *skb, struct net_device *dev); | 961 | int ieee80211_monitor_start_xmit(struct sk_buff *skb, struct net_device *dev); |
978 | int ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev); | 962 | int ieee80211_subif_start_xmit(struct sk_buff *skb, struct net_device *dev); |
979 | 963 | ||
964 | /* HT */ | ||
965 | int ieee80211_ht_cap_ie_to_ht_info(struct ieee80211_ht_cap *ht_cap_ie, | ||
966 | struct ieee80211_ht_info *ht_info); | ||
967 | int 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); | ||
970 | void ieee80211_send_bar(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, u16 ssn); | ||
971 | |||
972 | void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *da, | ||
973 | u16 tid, u16 initiator, u16 reason); | ||
974 | void ieee80211_sta_tear_down_BA_sessions(struct ieee80211_sub_if_data *sdata, u8 *addr); | ||
975 | void ieee80211_process_delba(struct ieee80211_sub_if_data *sdata, | ||
976 | struct sta_info *sta, | ||
977 | struct ieee80211_mgmt *mgmt, size_t len); | ||
978 | void ieee80211_process_addba_resp(struct ieee80211_local *local, | ||
979 | struct sta_info *sta, | ||
980 | struct ieee80211_mgmt *mgmt, | ||
981 | size_t len); | ||
982 | void 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 */ |
981 | extern void *mac80211_wiphy_privid; /* for wiphy privid */ | 988 | extern void *mac80211_wiphy_privid; /* for wiphy privid */ |
982 | extern const unsigned char rfc1042_header[6]; | 989 | extern const unsigned char rfc1042_header[6]; |