Skip to content

Commit

Permalink
nl80211: allow the use of DFS channel in mesh
Browse files Browse the repository at this point in the history
This permits the use of DFS channel once the CAC is conducted and
no radar is detected.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
chunyeow authored and jmberg-intel committed Dec 4, 2013
1 parent ad7e718 commit 33dde2b
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions net/wireless/mesh.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
const struct mesh_config *conf)
{
struct wireless_dev *wdev = dev->ieee80211_ptr;
u8 radar_detect_width = 0;
int err;

BUILD_BUG_ON(IEEE80211_MAX_SSID_LEN != IEEE80211_MAX_MESH_ID_LEN);
Expand Down Expand Up @@ -177,8 +178,16 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
if (!cfg80211_reg_can_beacon(&rdev->wiphy, &setup->chandef))
return -EINVAL;

err = cfg80211_can_use_chan(rdev, wdev, setup->chandef.chan,
CHAN_MODE_SHARED);
err = cfg80211_chandef_dfs_required(wdev->wiphy, &setup->chandef);
if (err < 0)
return err;
if (err)
radar_detect_width = BIT(setup->chandef.width);

err = cfg80211_can_use_iftype_chan(rdev, wdev, wdev->iftype,
setup->chandef.chan,
CHAN_MODE_SHARED,
radar_detect_width);
if (err)
return err;

Expand Down

0 comments on commit 33dde2b

Please sign in to comment.