aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2007-12-18 20:03:34 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:59:51 -0500
commit5727ef1b2e797a1922f5bc239b6afb2b4cfb80bc (patch)
tree16fb0c8afcb1c5282fcc45ffa90c8e34b0daa6d4 /include/net/cfg80211.h
parented1b6cc7f80f831e192704b05b9917f9cc37be15 (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.h55
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 */
104enum 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 */
124struct 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 */
93struct wiphy; 134struct 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 */
134struct cfg80211_ops { 181struct 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 */