diff options
author | Luis Carlos Cobo <luisca@cozybit.com> | 2008-02-23 09:17:06 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-06 15:30:41 -0500 |
commit | 2ec600d672e74488f8d1acf67a0a2baed222564c (patch) | |
tree | e1e552ada4130ac6e01df5ca523c32b8a4a66383 /include | |
parent | cc0672a1066829be7e1b0128a13e36a2d0a15479 (diff) |
nl80211/cfg80211: support for mesh, sta dumping
Added support for mesh id and mesh path operation as well as
station structure dumping.
Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nl80211.h | 119 | ||||
-rw-r--r-- | include/net/cfg80211.h | 139 |
2 files changed, 223 insertions, 35 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index a9f0b93324a2..ea6517e58b04 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -78,6 +78,18 @@ | |||
78 | * or, if no MAC address given, all stations, on the interface identified | 78 | * or, if no MAC address given, all stations, on the interface identified |
79 | * by %NL80211_ATTR_IFINDEX. | 79 | * by %NL80211_ATTR_IFINDEX. |
80 | * | 80 | * |
81 | * @NL80211_CMD_GET_MPATH: Get mesh path attributes for mesh path to | ||
82 | * destination %NL80211_ATTR_MAC on the interface identified by | ||
83 | * %NL80211_ATTR_IFINDEX. | ||
84 | * @NL80211_CMD_SET_MPATH: Set mesh path attributes for mesh path to | ||
85 | * destination %NL80211_ATTR_MAC on the interface identified by | ||
86 | * %NL80211_ATTR_IFINDEX. | ||
87 | * @NL80211_CMD_NEW_PATH: Add a mesh path with given attributes to the | ||
88 | * the interface identified by %NL80211_ATTR_IFINDEX. | ||
89 | * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC | ||
90 | * or, if no MAC address given, all mesh paths, on the interface identified | ||
91 | * by %NL80211_ATTR_IFINDEX. | ||
92 | * | ||
81 | * @NL80211_CMD_MAX: highest used command number | 93 | * @NL80211_CMD_MAX: highest used command number |
82 | * @__NL80211_CMD_AFTER_LAST: internal use | 94 | * @__NL80211_CMD_AFTER_LAST: internal use |
83 | */ | 95 | */ |
@@ -112,6 +124,11 @@ enum nl80211_commands { | |||
112 | 124 | ||
113 | /* add commands here */ | 125 | /* add commands here */ |
114 | 126 | ||
127 | NL80211_CMD_GET_MPATH, | ||
128 | NL80211_CMD_SET_MPATH, | ||
129 | NL80211_CMD_NEW_MPATH, | ||
130 | NL80211_CMD_DEL_MPATH, | ||
131 | |||
115 | /* used to define NL80211_CMD_MAX below */ | 132 | /* used to define NL80211_CMD_MAX below */ |
116 | __NL80211_CMD_AFTER_LAST, | 133 | __NL80211_CMD_AFTER_LAST, |
117 | NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 | 134 | NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 |
@@ -157,13 +174,21 @@ enum nl80211_commands { | |||
157 | * restriction (at most %NL80211_MAX_SUPP_RATES). | 174 | * restriction (at most %NL80211_MAX_SUPP_RATES). |
158 | * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station | 175 | * @NL80211_ATTR_STA_VLAN: interface index of VLAN interface to move station |
159 | * to, or the AP interface the station was originally added to to. | 176 | * to, or the AP interface the station was originally added to to. |
160 | * @NL80211_ATTR_STA_STATS: statistics for a station, part of station info | 177 | * @NL80211_ATTR_STA_INFO: information about a station, part of station info |
161 | * given for %NL80211_CMD_GET_STATION, nested attribute containing | 178 | * given for %NL80211_CMD_GET_STATION, nested attribute containing |
162 | * info as possible, see &enum nl80211_sta_stats. | 179 | * info as possible, see &enum nl80211_sta_info. |
163 | * | 180 | * |
164 | * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands, | 181 | * @NL80211_ATTR_WIPHY_BANDS: Information about an operating bands, |
165 | * consisting of a nested array. | 182 | * consisting of a nested array. |
166 | * | 183 | * |
184 | * @NL80211_ATTR_MESH_ID: mesh id (1-32 bytes). | ||
185 | * @NL80211_ATTR_PLINK_ACTION: action to perform on the mesh peer link. | ||
186 | * @NL80211_ATTR_MPATH_NEXT_HOP: MAC address of the next hop for a mesh path. | ||
187 | * @NL80211_ATTR_MPATH_INFO: information about a mesh_path, part of mesh path | ||
188 | * info given for %NL80211_CMD_GET_MPATH, nested attribute described at | ||
189 | * &enum nl80211_mpath_info. | ||
190 | * | ||
191 | * | ||
167 | * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of | 192 | * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of |
168 | * &enum nl80211_mntr_flags. | 193 | * &enum nl80211_mntr_flags. |
169 | * | 194 | * |
@@ -199,7 +224,7 @@ enum nl80211_attrs { | |||
199 | NL80211_ATTR_STA_LISTEN_INTERVAL, | 224 | NL80211_ATTR_STA_LISTEN_INTERVAL, |
200 | NL80211_ATTR_STA_SUPPORTED_RATES, | 225 | NL80211_ATTR_STA_SUPPORTED_RATES, |
201 | NL80211_ATTR_STA_VLAN, | 226 | NL80211_ATTR_STA_VLAN, |
202 | NL80211_ATTR_STA_STATS, | 227 | NL80211_ATTR_STA_INFO, |
203 | 228 | ||
204 | NL80211_ATTR_WIPHY_BANDS, | 229 | NL80211_ATTR_WIPHY_BANDS, |
205 | 230 | ||
@@ -207,6 +232,11 @@ enum nl80211_attrs { | |||
207 | 232 | ||
208 | /* add attributes here, update the policy in nl80211.c */ | 233 | /* add attributes here, update the policy in nl80211.c */ |
209 | 234 | ||
235 | NL80211_ATTR_MESH_ID, | ||
236 | NL80211_ATTR_STA_PLINK_ACTION, | ||
237 | NL80211_ATTR_MPATH_NEXT_HOP, | ||
238 | NL80211_ATTR_MPATH_INFO, | ||
239 | |||
210 | __NL80211_ATTR_AFTER_LAST, | 240 | __NL80211_ATTR_AFTER_LAST, |
211 | NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 | 241 | NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1 |
212 | }; | 242 | }; |
@@ -223,6 +253,7 @@ enum nl80211_attrs { | |||
223 | * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points | 253 | * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points |
224 | * @NL80211_IFTYPE_WDS: wireless distribution interface | 254 | * @NL80211_IFTYPE_WDS: wireless distribution interface |
225 | * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames | 255 | * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames |
256 | * @NL80211_IFTYPE_MESH_POINT: mesh point | ||
226 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined | 257 | * @NL80211_IFTYPE_MAX: highest interface type number currently defined |
227 | * @__NL80211_IFTYPE_AFTER_LAST: internal use | 258 | * @__NL80211_IFTYPE_AFTER_LAST: internal use |
228 | * | 259 | * |
@@ -238,6 +269,7 @@ enum nl80211_iftype { | |||
238 | NL80211_IFTYPE_AP_VLAN, | 269 | NL80211_IFTYPE_AP_VLAN, |
239 | NL80211_IFTYPE_WDS, | 270 | NL80211_IFTYPE_WDS, |
240 | NL80211_IFTYPE_MONITOR, | 271 | NL80211_IFTYPE_MONITOR, |
272 | NL80211_IFTYPE_MESH_POINT, | ||
241 | 273 | ||
242 | /* keep last */ | 274 | /* keep last */ |
243 | __NL80211_IFTYPE_AFTER_LAST, | 275 | __NL80211_IFTYPE_AFTER_LAST, |
@@ -267,27 +299,78 @@ enum nl80211_sta_flags { | |||
267 | }; | 299 | }; |
268 | 300 | ||
269 | /** | 301 | /** |
270 | * enum nl80211_sta_stats - station statistics | 302 | * enum nl80211_sta_info - station information |
271 | * | 303 | * |
272 | * These attribute types are used with %NL80211_ATTR_STA_STATS | 304 | * These attribute types are used with %NL80211_ATTR_STA_INFO |
273 | * when getting information about a station. | 305 | * when getting information about a station. |
274 | * | 306 | * |
275 | * @__NL80211_STA_STAT_INVALID: attribute number 0 is reserved | 307 | * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved |
276 | * @NL80211_STA_STAT_INACTIVE_TIME: time since last activity (u32, msecs) | 308 | * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs) |
277 | * @NL80211_STA_STAT_RX_BYTES: total received bytes (u32, from this station) | 309 | * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station) |
278 | * @NL80211_STA_STAT_TX_BYTES: total transmitted bytes (u32, to this station) | 310 | * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station) |
279 | * @__NL80211_STA_STAT_AFTER_LAST: internal | 311 | * @__NL80211_STA_INFO_AFTER_LAST: internal |
280 | * @NL80211_STA_STAT_MAX: highest possible station stats attribute | 312 | * @NL80211_STA_INFO_MAX: highest possible station info attribute |
313 | */ | ||
314 | enum nl80211_sta_info { | ||
315 | __NL80211_STA_INFO_INVALID, | ||
316 | NL80211_STA_INFO_INACTIVE_TIME, | ||
317 | NL80211_STA_INFO_RX_BYTES, | ||
318 | NL80211_STA_INFO_TX_BYTES, | ||
319 | NL80211_STA_INFO_LLID, | ||
320 | NL80211_STA_INFO_PLID, | ||
321 | NL80211_STA_INFO_PLINK_STATE, | ||
322 | |||
323 | /* keep last */ | ||
324 | __NL80211_STA_INFO_AFTER_LAST, | ||
325 | NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1 | ||
326 | }; | ||
327 | |||
328 | /** | ||
329 | * enum nl80211_mpath_flags - nl80211 mesh path flags | ||
330 | * | ||
331 | * @NL80211_MPATH_FLAG_ACTIVE: the mesh path is active | ||
332 | * @NL80211_MPATH_FLAG_RESOLVING: the mesh path discovery process is running | ||
333 | * @NL80211_MPATH_FLAG_DSN_VALID: the mesh path contains a valid DSN | ||
334 | * @NL80211_MPATH_FLAG_FIXED: the mesh path has been manually set | ||
335 | * @NL80211_MPATH_FLAG_RESOLVED: the mesh path discovery process succeeded | ||
336 | */ | ||
337 | enum nl80211_mpath_flags { | ||
338 | NL80211_MPATH_FLAG_ACTIVE = 1<<0, | ||
339 | NL80211_MPATH_FLAG_RESOLVING = 1<<1, | ||
340 | NL80211_MPATH_FLAG_DSN_VALID = 1<<2, | ||
341 | NL80211_MPATH_FLAG_FIXED = 1<<3, | ||
342 | NL80211_MPATH_FLAG_RESOLVED = 1<<4, | ||
343 | }; | ||
344 | |||
345 | /** | ||
346 | * enum nl80211_mpath_info - mesh path information | ||
347 | * | ||
348 | * These attribute types are used with %NL80211_ATTR_MPATH_INFO when getting | ||
349 | * information about a mesh path. | ||
350 | * | ||
351 | * @__NL80211_MPATH_INFO_INVALID: attribute number 0 is reserved | ||
352 | * @NL80211_ATTR_MPATH_FRAME_QLEN: number of queued frames for this destination | ||
353 | * @NL80211_ATTR_MPATH_DSN: destination sequence number | ||
354 | * @NL80211_ATTR_MPATH_METRIC: metric (cost) of this mesh path | ||
355 | * @NL80211_ATTR_MPATH_EXPTIME: expiration time for the path, in msec from now | ||
356 | * @NL80211_ATTR_MPATH_FLAGS: mesh path flags, enumerated in | ||
357 | * &enum nl80211_mpath_flags; | ||
358 | * @NL80211_ATTR_MPATH_DISCOVERY_TIMEOUT: total path discovery timeout, in msec | ||
359 | * @NL80211_ATTR_MPATH_DISCOVERY_RETRIES: mesh path discovery retries | ||
281 | */ | 360 | */ |
282 | enum nl80211_sta_stats { | 361 | enum nl80211_mpath_info { |
283 | __NL80211_STA_STAT_INVALID, | 362 | __NL80211_MPATH_INFO_INVALID, |
284 | NL80211_STA_STAT_INACTIVE_TIME, | 363 | NL80211_MPATH_INFO_FRAME_QLEN, |
285 | NL80211_STA_STAT_RX_BYTES, | 364 | NL80211_MPATH_INFO_DSN, |
286 | NL80211_STA_STAT_TX_BYTES, | 365 | NL80211_MPATH_INFO_METRIC, |
366 | NL80211_MPATH_INFO_EXPTIME, | ||
367 | NL80211_MPATH_INFO_FLAGS, | ||
368 | NL80211_MPATH_INFO_DISCOVERY_TIMEOUT, | ||
369 | NL80211_MPATH_INFO_DISCOVERY_RETRIES, | ||
287 | 370 | ||
288 | /* keep last */ | 371 | /* keep last */ |
289 | __NL80211_STA_STAT_AFTER_LAST, | 372 | __NL80211_MPATH_INFO_AFTER_LAST, |
290 | NL80211_STA_STAT_MAX = __NL80211_STA_STAT_AFTER_LAST - 1 | 373 | NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1 |
291 | }; | 374 | }; |
292 | 375 | ||
293 | /** | 376 | /** |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index ab4caf63954f..e00750836ba5 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -12,6 +12,16 @@ | |||
12 | * Copyright 2006, 2007 Johannes Berg <johannes@sipsolutions.net> | 12 | * Copyright 2006, 2007 Johannes Berg <johannes@sipsolutions.net> |
13 | */ | 13 | */ |
14 | 14 | ||
15 | /** | ||
16 | * struct vif_params - describes virtual interface parameters | ||
17 | * @mesh_id: mesh ID to use | ||
18 | * @mesh_id_len: length of the mesh ID | ||
19 | */ | ||
20 | struct vif_params { | ||
21 | u8 *mesh_id; | ||
22 | int mesh_id_len; | ||
23 | }; | ||
24 | |||
15 | /* Radiotap header iteration | 25 | /* Radiotap header iteration |
16 | * implemented in net/wireless/radiotap.c | 26 | * implemented in net/wireless/radiotap.c |
17 | * docs in Documentation/networking/radiotap-headers.txt | 27 | * docs in Documentation/networking/radiotap-headers.txt |
@@ -109,6 +119,19 @@ enum station_flags { | |||
109 | }; | 119 | }; |
110 | 120 | ||
111 | /** | 121 | /** |
122 | * enum plink_action - actions to perform in mesh peers | ||
123 | * | ||
124 | * @PLINK_ACTION_INVALID: action 0 is reserved | ||
125 | * @PLINK_ACTION_OPEN: start mesh peer link establishment | ||
126 | * @PLINK_ACTION_BLOCL: block traffic from this mesh peer | ||
127 | */ | ||
128 | enum plink_actions { | ||
129 | PLINK_ACTION_INVALID, | ||
130 | PLINK_ACTION_OPEN, | ||
131 | PLINK_ACTION_BLOCK, | ||
132 | }; | ||
133 | |||
134 | /** | ||
112 | * struct station_parameters - station parameters | 135 | * struct station_parameters - station parameters |
113 | * | 136 | * |
114 | * Used to change and create a new station. | 137 | * Used to change and create a new station. |
@@ -128,39 +151,52 @@ struct station_parameters { | |||
128 | int listen_interval; | 151 | int listen_interval; |
129 | u16 aid; | 152 | u16 aid; |
130 | u8 supported_rates_len; | 153 | u8 supported_rates_len; |
154 | u8 plink_action; | ||
131 | }; | 155 | }; |
132 | 156 | ||
133 | /** | 157 | /** |
134 | * enum station_stats_flags - station statistics flags | 158 | * enum station_info_flags - station information flags |
135 | * | 159 | * |
136 | * Used by the driver to indicate which info in &struct station_stats | 160 | * Used by the driver to indicate which info in &struct station_info |
137 | * it has filled in during get_station(). | 161 | * it has filled in during get_station() or dump_station(). |
138 | * | 162 | * |
139 | * @STATION_STAT_INACTIVE_TIME: @inactive_time filled | 163 | * @STATION_INFO_INACTIVE_TIME: @inactive_time filled |
140 | * @STATION_STAT_RX_BYTES: @rx_bytes filled | 164 | * @STATION_INFO_RX_BYTES: @rx_bytes filled |
141 | * @STATION_STAT_TX_BYTES: @tx_bytes filled | 165 | * @STATION_INFO_TX_BYTES: @tx_bytes filled |
166 | * @STATION_INFO_LLID: @llid filled | ||
167 | * @STATION_INFO_PLID: @plid filled | ||
168 | * @STATION_INFO_PLINK_STATE: @plink_state filled | ||
142 | */ | 169 | */ |
143 | enum station_stats_flags { | 170 | enum station_info_flags { |
144 | STATION_STAT_INACTIVE_TIME = 1<<0, | 171 | STATION_INFO_INACTIVE_TIME = 1<<0, |
145 | STATION_STAT_RX_BYTES = 1<<1, | 172 | STATION_INFO_RX_BYTES = 1<<1, |
146 | STATION_STAT_TX_BYTES = 1<<2, | 173 | STATION_INFO_TX_BYTES = 1<<2, |
174 | STATION_INFO_LLID = 1<<3, | ||
175 | STATION_INFO_PLID = 1<<4, | ||
176 | STATION_INFO_PLINK_STATE = 1<<5, | ||
147 | }; | 177 | }; |
148 | 178 | ||
149 | /** | 179 | /** |
150 | * struct station_stats - station statistics | 180 | * struct station_info - station information |
151 | * | 181 | * |
152 | * Station information filled by driver for get_station(). | 182 | * Station information filled by driver for get_station() and dump_station. |
153 | * | 183 | * |
154 | * @filled: bitflag of flags from &enum station_stats_flags | 184 | * @filled: bitflag of flags from &enum station_info_flags |
155 | * @inactive_time: time since last station activity (tx/rx) in milliseconds | 185 | * @inactive_time: time since last station activity (tx/rx) in milliseconds |
156 | * @rx_bytes: bytes received from this station | 186 | * @rx_bytes: bytes received from this station |
157 | * @tx_bytes: bytes transmitted to this station | 187 | * @tx_bytes: bytes transmitted to this station |
188 | * @llid: mesh local link id | ||
189 | * @plid: mesh peer link id | ||
190 | * @plink_state: mesh peer link state | ||
158 | */ | 191 | */ |
159 | struct station_stats { | 192 | struct station_info { |
160 | u32 filled; | 193 | u32 filled; |
161 | u32 inactive_time; | 194 | u32 inactive_time; |
162 | u32 rx_bytes; | 195 | u32 rx_bytes; |
163 | u32 tx_bytes; | 196 | u32 tx_bytes; |
197 | u16 llid; | ||
198 | u16 plid; | ||
199 | u8 plink_state; | ||
164 | }; | 200 | }; |
165 | 201 | ||
166 | /** | 202 | /** |
@@ -183,6 +219,56 @@ enum monitor_flags { | |||
183 | MONITOR_FLAG_COOK_FRAMES = 1<<NL80211_MNTR_FLAG_COOK_FRAMES, | 219 | MONITOR_FLAG_COOK_FRAMES = 1<<NL80211_MNTR_FLAG_COOK_FRAMES, |
184 | }; | 220 | }; |
185 | 221 | ||
222 | /** | ||
223 | * enum mpath_info_flags - mesh path information flags | ||
224 | * | ||
225 | * Used by the driver to indicate which info in &struct mpath_info it has filled | ||
226 | * in during get_station() or dump_station(). | ||
227 | * | ||
228 | * MPATH_INFO_FRAME_QLEN: @frame_qlen filled | ||
229 | * MPATH_INFO_DSN: @dsn filled | ||
230 | * MPATH_INFO_METRIC: @metric filled | ||
231 | * MPATH_INFO_EXPTIME: @exptime filled | ||
232 | * MPATH_INFO_DISCOVERY_TIMEOUT: @discovery_timeout filled | ||
233 | * MPATH_INFO_DISCOVERY_RETRIES: @discovery_retries filled | ||
234 | * MPATH_INFO_FLAGS: @flags filled | ||
235 | */ | ||
236 | enum mpath_info_flags { | ||
237 | MPATH_INFO_FRAME_QLEN = BIT(0), | ||
238 | MPATH_INFO_DSN = BIT(1), | ||
239 | MPATH_INFO_METRIC = BIT(2), | ||
240 | MPATH_INFO_EXPTIME = BIT(3), | ||
241 | MPATH_INFO_DISCOVERY_TIMEOUT = BIT(4), | ||
242 | MPATH_INFO_DISCOVERY_RETRIES = BIT(5), | ||
243 | MPATH_INFO_FLAGS = BIT(6), | ||
244 | }; | ||
245 | |||
246 | /** | ||
247 | * struct mpath_info - mesh path information | ||
248 | * | ||
249 | * Mesh path information filled by driver for get_mpath() and dump_mpath(). | ||
250 | * | ||
251 | * @filled: bitfield of flags from &enum mpath_info_flags | ||
252 | * @frame_qlen: number of queued frames for this destination | ||
253 | * @dsn: destination sequence number | ||
254 | * @metric: metric (cost) of this mesh path | ||
255 | * @exptime: expiration time for the mesh path from now, in msecs | ||
256 | * @flags: mesh path flags | ||
257 | * @discovery_timeout: total mesh path discovery timeout, in msecs | ||
258 | * @discovery_retries: mesh path discovery retries | ||
259 | */ | ||
260 | struct mpath_info { | ||
261 | u32 filled; | ||
262 | u32 frame_qlen; | ||
263 | u32 dsn; | ||
264 | u32 metric; | ||
265 | u32 exptime; | ||
266 | u32 discovery_timeout; | ||
267 | u8 discovery_retries; | ||
268 | u8 flags; | ||
269 | }; | ||
270 | |||
271 | |||
186 | /* from net/wireless.h */ | 272 | /* from net/wireless.h */ |
187 | struct wiphy; | 273 | struct wiphy; |
188 | 274 | ||
@@ -230,13 +316,17 @@ struct wiphy; | |||
230 | * @del_station: Remove a station; @mac may be NULL to remove all stations. | 316 | * @del_station: Remove a station; @mac may be NULL to remove all stations. |
231 | * | 317 | * |
232 | * @change_station: Modify a given station. | 318 | * @change_station: Modify a given station. |
319 | * | ||
320 | * @set_mesh_cfg: set mesh parameters (by now, just mesh id) | ||
233 | */ | 321 | */ |
234 | struct cfg80211_ops { | 322 | struct cfg80211_ops { |
235 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, | 323 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, |
236 | enum nl80211_iftype type, u32 *flags); | 324 | enum nl80211_iftype type, u32 *flags, |
325 | struct vif_params *params); | ||
237 | int (*del_virtual_intf)(struct wiphy *wiphy, int ifindex); | 326 | int (*del_virtual_intf)(struct wiphy *wiphy, int ifindex); |
238 | int (*change_virtual_intf)(struct wiphy *wiphy, int ifindex, | 327 | int (*change_virtual_intf)(struct wiphy *wiphy, int ifindex, |
239 | enum nl80211_iftype type, u32 *flags); | 328 | enum nl80211_iftype type, u32 *flags, |
329 | struct vif_params *params); | ||
240 | 330 | ||
241 | int (*add_key)(struct wiphy *wiphy, struct net_device *netdev, | 331 | int (*add_key)(struct wiphy *wiphy, struct net_device *netdev, |
242 | u8 key_index, u8 *mac_addr, | 332 | u8 key_index, u8 *mac_addr, |
@@ -264,7 +354,22 @@ struct cfg80211_ops { | |||
264 | int (*change_station)(struct wiphy *wiphy, struct net_device *dev, | 354 | int (*change_station)(struct wiphy *wiphy, struct net_device *dev, |
265 | u8 *mac, struct station_parameters *params); | 355 | u8 *mac, struct station_parameters *params); |
266 | int (*get_station)(struct wiphy *wiphy, struct net_device *dev, | 356 | int (*get_station)(struct wiphy *wiphy, struct net_device *dev, |
267 | u8 *mac, struct station_stats *stats); | 357 | u8 *mac, struct station_info *sinfo); |
358 | int (*dump_station)(struct wiphy *wiphy, struct net_device *dev, | ||
359 | int idx, u8 *mac, struct station_info *sinfo); | ||
360 | |||
361 | int (*add_mpath)(struct wiphy *wiphy, struct net_device *dev, | ||
362 | u8 *dst, u8 *next_hop); | ||
363 | int (*del_mpath)(struct wiphy *wiphy, struct net_device *dev, | ||
364 | u8 *dst); | ||
365 | int (*change_mpath)(struct wiphy *wiphy, struct net_device *dev, | ||
366 | u8 *dst, u8 *next_hop); | ||
367 | int (*get_mpath)(struct wiphy *wiphy, struct net_device *dev, | ||
368 | u8 *dst, u8 *next_hop, | ||
369 | struct mpath_info *pinfo); | ||
370 | int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev, | ||
371 | int idx, u8 *dst, u8 *next_hop, | ||
372 | struct mpath_info *pinfo); | ||
268 | }; | 373 | }; |
269 | 374 | ||
270 | #endif /* __NET_CFG80211_H */ | 375 | #endif /* __NET_CFG80211_H */ |