diff options
author | colin@cozybit.com <colin@cozybit.com> | 2008-10-21 15:03:48 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-10-31 19:00:39 -0400 |
commit | 93da9cc17c5ae8a751886fd4732db89ad5e9bdb9 (patch) | |
tree | 5c8c16eaeca4c6e4555682a4ab1b448cdbe21595 /include/net/cfg80211.h | |
parent | 4a68ec535ef1043319928f601d633f78e650a16f (diff) |
Add nl80211 commands to get and set o11s mesh networking parameters
The two new commands are NL80211_CMD_GET_MESH_PARAMS and
NL80211_CMD_SET_MESH_PARAMS. There is a new attribute enum,
NL80211_ATTR_MESH_PARAMS, which enumerates the various mesh configuration
parameters.
Moved struct mesh_config from mac80211/ieee80211_i.h to net/cfg80211.h.
nl80211_get_mesh_params and nl80211_set_mesh_params unpack the netlink messages
and ask the driver to get or set the configuration. This is done via two new
function stubs, get_mesh_params and set_mesh_params, in struct cfg80211_ops.
Signed-off-by: Colin McCabe <colin@cozybit.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 0e85ec39b638..03e1e88c6a09 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -347,6 +347,25 @@ struct ieee80211_regdomain { | |||
347 | .flags = reg_flags, \ | 347 | .flags = reg_flags, \ |
348 | } | 348 | } |
349 | 349 | ||
350 | struct mesh_config { | ||
351 | /* Timeouts in ms */ | ||
352 | /* Mesh plink management parameters */ | ||
353 | u16 dot11MeshRetryTimeout; | ||
354 | u16 dot11MeshConfirmTimeout; | ||
355 | u16 dot11MeshHoldingTimeout; | ||
356 | u16 dot11MeshMaxPeerLinks; | ||
357 | u8 dot11MeshMaxRetries; | ||
358 | u8 dot11MeshTTL; | ||
359 | bool auto_open_plinks; | ||
360 | /* HWMP parameters */ | ||
361 | u8 dot11MeshHWMPmaxPREQretries; | ||
362 | u32 path_refresh_time; | ||
363 | u16 min_discovery_timeout; | ||
364 | u32 dot11MeshHWMPactivePathTimeout; | ||
365 | u16 dot11MeshHWMPpreqMinInterval; | ||
366 | u16 dot11MeshHWMPnetDiameterTraversalTime; | ||
367 | }; | ||
368 | |||
350 | /* from net/wireless.h */ | 369 | /* from net/wireless.h */ |
351 | struct wiphy; | 370 | struct wiphy; |
352 | 371 | ||
@@ -397,6 +416,12 @@ struct wiphy; | |||
397 | * | 416 | * |
398 | * @change_station: Modify a given station. | 417 | * @change_station: Modify a given station. |
399 | * | 418 | * |
419 | * @get_mesh_params: Put the current mesh parameters into *params | ||
420 | * | ||
421 | * @set_mesh_params: Set mesh parameters. | ||
422 | * The mask is a bitfield which tells us which parameters to | ||
423 | * set, and which to leave alone. | ||
424 | * | ||
400 | * @set_mesh_cfg: set mesh parameters (by now, just mesh id) | 425 | * @set_mesh_cfg: set mesh parameters (by now, just mesh id) |
401 | * | 426 | * |
402 | * @change_bss: Modify parameters for a given BSS. | 427 | * @change_bss: Modify parameters for a given BSS. |
@@ -452,7 +477,12 @@ struct cfg80211_ops { | |||
452 | int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev, | 477 | int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev, |
453 | int idx, u8 *dst, u8 *next_hop, | 478 | int idx, u8 *dst, u8 *next_hop, |
454 | struct mpath_info *pinfo); | 479 | struct mpath_info *pinfo); |
455 | 480 | int (*get_mesh_params)(struct wiphy *wiphy, | |
481 | struct net_device *dev, | ||
482 | struct mesh_config *conf); | ||
483 | int (*set_mesh_params)(struct wiphy *wiphy, | ||
484 | struct net_device *dev, | ||
485 | const struct mesh_config *nconf, u32 mask); | ||
456 | int (*change_bss)(struct wiphy *wiphy, struct net_device *dev, | 486 | int (*change_bss)(struct wiphy *wiphy, struct net_device *dev, |
457 | struct bss_parameters *params); | 487 | struct bss_parameters *params); |
458 | }; | 488 | }; |