diff options
author | Daniel Drake <dsd@gentoo.org> | 2006-07-19 00:33:27 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-07-28 00:17:28 +0400 |
commit | 5acd0c4153be25269d7cb9a4b09fd6db571c5cc1 (patch) | |
tree | b970a1b9469617597ab1594ca269bc81b020a881 /net/ieee80211/softmac/ieee80211softmac_io.c | |
parent | d8e2be90d301a0381e9b2528fe2835cf2992bca3 (diff) | |
download | linux-5acd0c4153be25269d7cb9a4b09fd6db571c5cc1.tar.xz |
[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_io.c')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_io.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_io.c b/net/ieee80211/softmac/ieee80211softmac_io.c index 6ae5a1dc7956..82bfddbf33a2 100644 --- a/net/ieee80211/softmac/ieee80211softmac_io.c +++ b/net/ieee80211/softmac/ieee80211softmac_io.c @@ -467,3 +467,17 @@ ieee80211softmac_send_mgt_frame(struct ieee80211softmac_device *mac, kfree(pkt); return 0; } + +/* Beacon handling */ +int ieee80211softmac_handle_beacon(struct net_device *dev, + struct ieee80211_beacon *beacon, + struct ieee80211_network *network) +{ + struct ieee80211softmac_device *mac = ieee80211_priv(dev); + + if (mac->associated && memcmp(network->bssid, mac->associnfo.bssid, ETH_ALEN) == 0) + ieee80211softmac_process_erp(mac, network->erp_value); + + return 0; +} + |