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/linux | |
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/linux')
-rw-r--r-- | include/linux/nl80211.h | 119 |
1 files changed, 101 insertions, 18 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 | /** |