diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-12-19 02:03:34 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 14:59:51 -0800 |
commit | 5727ef1b2e797a1922f5bc239b6afb2b4cfb80bc (patch) | |
tree | 16fb0c8afcb1c5282fcc45ffa90c8e34b0daa6d4 /include/net | |
parent | ed1b6cc7f80f831e192704b05b9917f9cc37be15 (diff) | |
download | kernel_goldelico_gta04-5727ef1b2e797a1922f5bc239b6afb2b4cfb80bc.zip kernel_goldelico_gta04-5727ef1b2e797a1922f5bc239b6afb2b4cfb80bc.tar.gz kernel_goldelico_gta04-5727ef1b2e797a1922f5bc239b6afb2b4cfb80bc.tar.bz2 |
cfg80211/nl80211: station handling
This patch adds station handling to cfg80211/nl80211.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/cfg80211.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index fc94852..df65093 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -89,6 +89,47 @@ struct beacon_parameters { int head_len, tail_len; }; +/** + * enum station_flags - station flags + * + * Station capability flags. Note that these must be the bits + * according to the nl80211 flags. + * + * @STATION_FLAG_CHANGED: station flags were changed + * @STATION_FLAG_AUTHORIZED: station is authorized to send frames (802.1X) + * @STATION_FLAG_SHORT_PREAMBLE: station is capable of receiving frames + * with short preambles + * @STATION_FLAG_WME: station is WME/QoS capable + */ +enum station_flags { + STATION_FLAG_CHANGED = 1<<0, + STATION_FLAG_AUTHORIZED = 1<<NL80211_STA_FLAG_AUTHORIZED, + STATION_FLAG_SHORT_PREAMBLE = 1<<NL80211_STA_FLAG_SHORT_PREAMBLE, + STATION_FLAG_WME = 1<<NL80211_STA_FLAG_WME, +}; + +/** + * struct station_parameters - station parameters + * + * Used to change and create a new station. + * + * @vlan: vlan interface station should belong to + * @supported_rates: supported rates in IEEE 802.11 format + * (or NULL for no change) + * @supported_rates_len: number of supported rates + * @station_flags: station flags (see &enum station_flags) + * @listen_interval: listen interval or -1 for no change + * @aid: AID or zero for no change + */ +struct station_parameters { + u8 *supported_rates; + struct net_device *vlan; + u32 station_flags; + int listen_interval; + u16 aid; + u8 supported_rates_len; +}; + /* from net/wireless.h */ struct wiphy; @@ -130,6 +171,12 @@ struct wiphy; * interface. This should reject the call when no beacon has been * configured. * @del_beacon: Remove beacon configuration and stop sending the beacon. + * + * @add_station: Add a new station. + * + * @del_station: Remove a station; @mac may be NULL to remove all stations. + * + * @change_station: Modify a given station. */ struct cfg80211_ops { int (*add_virtual_intf)(struct wiphy *wiphy, char *name, @@ -155,6 +202,14 @@ struct cfg80211_ops { int (*set_beacon)(struct wiphy *wiphy, struct net_device *dev, struct beacon_parameters *info); int (*del_beacon)(struct wiphy *wiphy, struct net_device *dev); + + + int (*add_station)(struct wiphy *wiphy, struct net_device *dev, + u8 *mac, struct station_parameters *params); + int (*del_station)(struct wiphy *wiphy, struct net_device *dev, + u8 *mac); + int (*change_station)(struct wiphy *wiphy, struct net_device *dev, + u8 *mac, struct station_parameters *params); }; #endif /* __NET_CFG80211_H */ |