diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-12-03 03:20:44 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-12-06 16:01:29 -0500 |
commit | 29cbe68c516a48a9a88b3226878570c6cbd83c02 (patch) | |
tree | 4774f8a3a244236234a521baa4d1ae5b3e1494ba /net/wireless/core.h | |
parent | bd90fdcc5fbd99a2a778999610420cf793bd1be2 (diff) |
cfg80211/mac80211: add mesh join/leave commands
Instead of tying mesh activity to interface up,
add join and leave commands for mesh. Since we
must be backward compatible, let cfg80211 handle
joining a mesh if a mesh ID was pre-configured
when the device goes up.
Note that this therefore must modify mac80211 as
well since mac80211 needs to lose the logic to
start the mesh on interface up.
We now allow querying mesh parameters before the
mesh is connected, which simply returns defaults.
Setting them (internally renamed to "update") is
only allowed while connected. Specify them with
the new mesh join command instead where needed.
In mac80211, beaconing must now also follow the
mesh enabled/not enabled state, which is done
by testing the mesh ID.
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/wireless/core.h')
-rw-r--r-- | net/wireless/core.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/net/wireless/core.h b/net/wireless/core.h index ee80ad8dc655..743203bb61ac 100644 --- a/net/wireless/core.h +++ b/net/wireless/core.h | |||
@@ -285,6 +285,19 @@ void __cfg80211_ibss_joined(struct net_device *dev, const u8 *bssid); | |||
285 | int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev, | 285 | int cfg80211_ibss_wext_join(struct cfg80211_registered_device *rdev, |
286 | struct wireless_dev *wdev); | 286 | struct wireless_dev *wdev); |
287 | 287 | ||
288 | /* mesh */ | ||
289 | extern const struct mesh_config default_mesh_config; | ||
290 | int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev, | ||
291 | struct net_device *dev, | ||
292 | const u8 *mesh_id, u8 mesh_id_len, | ||
293 | const struct mesh_config *conf); | ||
294 | int cfg80211_join_mesh(struct cfg80211_registered_device *rdev, | ||
295 | struct net_device *dev, | ||
296 | const u8 *mesh_id, u8 mesh_id_len, | ||
297 | const struct mesh_config *conf); | ||
298 | int cfg80211_leave_mesh(struct cfg80211_registered_device *rdev, | ||
299 | struct net_device *dev); | ||
300 | |||
288 | /* MLME */ | 301 | /* MLME */ |
289 | int __cfg80211_mlme_auth(struct cfg80211_registered_device *rdev, | 302 | int __cfg80211_mlme_auth(struct cfg80211_registered_device *rdev, |
290 | struct net_device *dev, | 303 | struct net_device *dev, |