diff options
author | Daniel Drake <dsd@gentoo.org> | 2006-07-18 16:33:27 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-07-27 16:17:28 -0400 |
commit | 5acd0c4153be25269d7cb9a4b09fd6db571c5cc1 (patch) | |
tree | b970a1b9469617597ab1594ca269bc81b020a881 /net/ieee80211/softmac/ieee80211softmac_priv.h | |
parent | d8e2be90d301a0381e9b2528fe2835cf2992bca3 (diff) |
[PATCH] softmac: ERP handling and driver-level notifications
This patch implements ERP handling in softmac so that the drivers can support
protection and preambles properly.
I added a new struct, ieee80211softmac_bss_info, which is used for
BSS-dependent variables like these.
A new hook has been added (bssinfo_change), which allows the drivers to be
notified when anything in bssinfo changes.
I modified the txrates_change API to match the bssinfo_change API. The
existing one is a little messy and the usefulness of providing the old rates
is questionable (and can be implemented at driver level if really necessary).
No drivers are using this API (yet), so this should be safe.
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/ieee80211/softmac/ieee80211softmac_priv.h')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_priv.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_priv.h b/net/ieee80211/softmac/ieee80211softmac_priv.h index fa1f8e3acfc0..0642e090b8a7 100644 --- a/net/ieee80211/softmac/ieee80211softmac_priv.h +++ b/net/ieee80211/softmac/ieee80211softmac_priv.h | |||
@@ -116,9 +116,11 @@ ieee80211softmac_get_network_by_essid(struct ieee80211softmac_device *mac, | |||
116 | struct ieee80211softmac_essid *essid); | 116 | struct ieee80211softmac_essid *essid); |
117 | 117 | ||
118 | /* Rates related */ | 118 | /* Rates related */ |
119 | void ieee80211softmac_process_erp(struct ieee80211softmac_device *mac, | ||
120 | u8 erp_value); | ||
119 | int ieee80211softmac_ratesinfo_rate_supported(struct ieee80211softmac_ratesinfo *ri, u8 rate); | 121 | int ieee80211softmac_ratesinfo_rate_supported(struct ieee80211softmac_ratesinfo *ri, u8 rate); |
120 | u8 ieee80211softmac_lower_rate_delta(struct ieee80211softmac_device *mac, u8 rate, int delta); | 122 | u8 ieee80211softmac_lower_rate_delta(struct ieee80211softmac_device *mac, u8 rate, int delta); |
121 | void ieee80211softmac_init_txrates(struct ieee80211softmac_device *mac); | 123 | void ieee80211softmac_init_bss(struct ieee80211softmac_device *mac); |
122 | void ieee80211softmac_recalc_txrates(struct ieee80211softmac_device *mac); | 124 | void ieee80211softmac_recalc_txrates(struct ieee80211softmac_device *mac); |
123 | static inline u8 lower_rate(struct ieee80211softmac_device *mac, u8 rate) { | 125 | static inline u8 lower_rate(struct ieee80211softmac_device *mac, u8 rate) { |
124 | return ieee80211softmac_lower_rate_delta(mac, rate, 1); | 126 | return ieee80211softmac_lower_rate_delta(mac, rate, 1); |
@@ -133,6 +135,9 @@ static inline u8 get_fallback_rate(struct ieee80211softmac_device *mac, u8 rate) | |||
133 | /*** prototypes from _io.c */ | 135 | /*** prototypes from _io.c */ |
134 | int ieee80211softmac_send_mgt_frame(struct ieee80211softmac_device *mac, | 136 | int ieee80211softmac_send_mgt_frame(struct ieee80211softmac_device *mac, |
135 | void* ptrarg, u32 type, u32 arg); | 137 | void* ptrarg, u32 type, u32 arg); |
138 | int ieee80211softmac_handle_beacon(struct net_device *dev, | ||
139 | struct ieee80211_beacon *beacon, | ||
140 | struct ieee80211_network *network); | ||
136 | 141 | ||
137 | /*** prototypes from _auth.c */ | 142 | /*** prototypes from _auth.c */ |
138 | /* do these have to go into the public header? */ | 143 | /* do these have to go into the public header? */ |
@@ -189,6 +194,7 @@ struct ieee80211softmac_network { | |||
189 | authenticated:1, | 194 | authenticated:1, |
190 | auth_desynced_once:1; | 195 | auth_desynced_once:1; |
191 | 196 | ||
197 | u8 erp_value; /* Saved ERP value */ | ||
192 | u16 capabilities; /* Capabilities bitfield */ | 198 | u16 capabilities; /* Capabilities bitfield */ |
193 | u8 challenge_len; /* Auth Challenge length */ | 199 | u8 challenge_len; /* Auth Challenge length */ |
194 | char *challenge; /* Challenge Text */ | 200 | char *challenge; /* Challenge Text */ |