rt2x00: Add mesh support
This adds initial support for Mesh Point mode. For this we tell mac80211 that we support NL80211_IFTYPE_MESH_POINT. We also need to send beacons. mac80211 will configure our RX filter accordingly. Signed-off-by: Andrey Yurovsky <andrey@cozybit.com> Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
5352ff6510
commit
a07dbea210
|
@ -42,6 +42,7 @@ void rt2x00lib_config_intf(struct rt2x00_dev *rt2x00dev,
|
|||
switch (type) {
|
||||
case NL80211_IFTYPE_ADHOC:
|
||||
case NL80211_IFTYPE_AP:
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
conf.sync = TSF_SYNC_BEACON;
|
||||
break;
|
||||
case NL80211_IFTYPE_STATION:
|
||||
|
|
|
@ -190,7 +190,8 @@ static void rt2x00lib_beacondone_iter(void *data, u8 *mac,
|
|||
struct rt2x00_intf *intf = vif_to_intf(vif);
|
||||
|
||||
if (vif->type != NL80211_IFTYPE_AP &&
|
||||
vif->type != NL80211_IFTYPE_ADHOC)
|
||||
vif->type != NL80211_IFTYPE_ADHOC &&
|
||||
vif->type != NL80211_IFTYPE_MESH_POINT)
|
||||
return;
|
||||
|
||||
/*
|
||||
|
@ -780,7 +781,8 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
|
|||
if (rt2x00dev->ops->bcn->entry_num > 0)
|
||||
rt2x00dev->hw->wiphy->interface_modes |=
|
||||
BIT(NL80211_IFTYPE_ADHOC) |
|
||||
BIT(NL80211_IFTYPE_AP);
|
||||
BIT(NL80211_IFTYPE_AP) |
|
||||
BIT(NL80211_IFTYPE_MESH_POINT);
|
||||
|
||||
/*
|
||||
* Let the driver probe the device to detect the capabilities.
|
||||
|
@ -935,10 +937,11 @@ static void rt2x00lib_resume_intf(void *data, u8 *mac,
|
|||
|
||||
|
||||
/*
|
||||
* Master or Ad-hoc mode require a new beacon update.
|
||||
* AP, Ad-hoc, and Mesh Point mode require a new beacon update.
|
||||
*/
|
||||
if (vif->type == NL80211_IFTYPE_AP ||
|
||||
vif->type == NL80211_IFTYPE_ADHOC)
|
||||
vif->type == NL80211_IFTYPE_ADHOC ||
|
||||
vif->type == NL80211_IFTYPE_MESH_POINT)
|
||||
intf->delayed_flags |= DELAYED_UPDATE_BEACON;
|
||||
|
||||
spin_unlock(&intf->lock);
|
||||
|
|
|
@ -226,6 +226,7 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
|
|||
break;
|
||||
case NL80211_IFTYPE_STATION:
|
||||
case NL80211_IFTYPE_ADHOC:
|
||||
case NL80211_IFTYPE_MESH_POINT:
|
||||
/*
|
||||
* We don't support mixed combinations of
|
||||
* sta and ap interfaces.
|
||||
|
|
Loading…
Reference in New Issue