diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-12-18 20:03:34 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:59:51 -0500 |
commit | 5727ef1b2e797a1922f5bc239b6afb2b4cfb80bc (patch) | |
tree | 16fb0c8afcb1c5282fcc45ffa90c8e34b0daa6d4 /include/net/cfg80211.h | |
parent | ed1b6cc7f80f831e192704b05b9917f9cc37be15 (diff) |
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/cfg80211.h')
-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 fc94852e967b..df650935e268 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -89,6 +89,47 @@ struct beacon_parameters { | |||
89 | int head_len, tail_len; | 89 | int head_len, tail_len; |
90 | }; | 90 | }; |
91 | 91 | ||
92 | /** | ||
93 | * enum station_flags - station flags | ||
94 | * | ||
95 | * Station capability flags. Note that these must be the bits | ||
96 | * according to the nl80211 flags. | ||
97 | * | ||
98 | * @STATION_FLAG_CHANGED: station flags were changed | ||
99 | * @STATION_FLAG_AUTHORIZED: station is authorized to send frames (802.1X) | ||
100 | * @STATION_FLAG_SHORT_PREAMBLE: station is capable of receiving frames | ||
101 | * with short preambles | ||
102 | * @STATION_FLAG_WME: station is WME/QoS capable | ||
103 | */ | ||
104 | enum station_flags { | ||
105 | STATION_FLAG_CHANGED = 1<<0, | ||
106 | STATION_FLAG_AUTHORIZED = 1<<NL80211_STA_FLAG_AUTHORIZED, | ||
107 | STATION_FLAG_SHORT_PREAMBLE = 1<<NL80211_STA_FLAG_SHORT_PREAMBLE, | ||
108 | STATION_FLAG_WME = 1<<NL80211_STA_FLAG_WME, | ||
109 | }; | ||
110 | |||
111 | /** | ||
112 | * struct station_parameters - station parameters | ||
113 | * | ||
114 | * Used to change and create a new station. | ||
115 | * | ||
116 | * @vlan: vlan interface station should belong to | ||
117 | * @supported_rates: supported rates in IEEE 802.11 format | ||
118 | * (or NULL for no change) | ||
119 | * @supported_rates_len: number of supported rates | ||
120 | * @station_flags: station flags (see &enum station_flags) | ||
121 | * @listen_interval: listen interval or -1 for no change | ||
122 | * @aid: AID or zero for no change | ||
123 | */ | ||
124 | struct station_parameters { | ||
125 | u8 *supported_rates; | ||
126 | struct net_device *vlan; | ||
127 | u32 station_flags; | ||
128 | int listen_interval; | ||
129 | u16 aid; | ||
130 | u8 supported_rates_len; | ||
131 | }; | ||
132 | |||
92 | /* from net/wireless.h */ | 133 | /* from net/wireless.h */ |
93 | struct wiphy; | 134 | struct wiphy; |
94 | 135 | ||
@@ -130,6 +171,12 @@ struct wiphy; | |||
130 | * interface. This should reject the call when no beacon has been | 171 | * interface. This should reject the call when no beacon has been |
131 | * configured. | 172 | * configured. |
132 | * @del_beacon: Remove beacon configuration and stop sending the beacon. | 173 | * @del_beacon: Remove beacon configuration and stop sending the beacon. |
174 | * | ||
175 | * @add_station: Add a new station. | ||
176 | * | ||
177 | * @del_station: Remove a station; @mac may be NULL to remove all stations. | ||
178 | * | ||
179 | * @change_station: Modify a given station. | ||
133 | */ | 180 | */ |
134 | struct cfg80211_ops { | 181 | struct cfg80211_ops { |
135 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, | 182 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, |
@@ -155,6 +202,14 @@ struct cfg80211_ops { | |||
155 | int (*set_beacon)(struct wiphy *wiphy, struct net_device *dev, | 202 | int (*set_beacon)(struct wiphy *wiphy, struct net_device *dev, |
156 | struct beacon_parameters *info); | 203 | struct beacon_parameters *info); |
157 | int (*del_beacon)(struct wiphy *wiphy, struct net_device *dev); | 204 | int (*del_beacon)(struct wiphy *wiphy, struct net_device *dev); |
205 | |||
206 | |||
207 | int (*add_station)(struct wiphy *wiphy, struct net_device *dev, | ||
208 | u8 *mac, struct station_parameters *params); | ||
209 | int (*del_station)(struct wiphy *wiphy, struct net_device *dev, | ||
210 | u8 *mac); | ||
211 | int (*change_station)(struct wiphy *wiphy, struct net_device *dev, | ||
212 | u8 *mac, struct station_parameters *params); | ||
158 | }; | 213 | }; |
159 | 214 | ||
160 | #endif /* __NET_CFG80211_H */ | 215 | #endif /* __NET_CFG80211_H */ |