aboutsummaryrefslogtreecommitdiffstats
path: root/net/wireless
diff options
context:
space:
mode:
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/mesh.c3
-rw-r--r--net/wireless/nl80211.c5
2 files changed, 8 insertions, 0 deletions
diff --git a/net/wireless/mesh.c b/net/wireless/mesh.c
index 9d3e3b6bfcf4..ba21ab22187b 100644
--- a/net/wireless/mesh.c
+++ b/net/wireless/mesh.c
@@ -23,6 +23,8 @@
23#define MESH_PERR_MIN_INT 100 23#define MESH_PERR_MIN_INT 100
24#define MESH_DIAM_TRAVERSAL_TIME 50 24#define MESH_DIAM_TRAVERSAL_TIME 50
25 25
26#define MESH_RSSI_THRESHOLD 0
27
26/* 28/*
27 * A path will be refreshed if it is used PATH_REFRESH_TIME milliseconds 29 * A path will be refreshed if it is used PATH_REFRESH_TIME milliseconds
28 * before timing out. This way it will remain ACTIVE and no data frames 30 * before timing out. This way it will remain ACTIVE and no data frames
@@ -56,6 +58,7 @@ const struct mesh_config default_mesh_config = {
56 .dot11MeshHWMPRannInterval = MESH_RANN_INTERVAL, 58 .dot11MeshHWMPRannInterval = MESH_RANN_INTERVAL,
57 .dot11MeshGateAnnouncementProtocol = false, 59 .dot11MeshGateAnnouncementProtocol = false,
58 .dot11MeshForwarding = true, 60 .dot11MeshForwarding = true,
61 .rssi_threshold = MESH_RSSI_THRESHOLD,
59}; 62};
60 63
61const struct mesh_setup default_mesh_setup = { 64const struct mesh_setup default_mesh_setup = {
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 1998c3682774..25a470abd21d 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -3290,6 +3290,8 @@ static int nl80211_get_mesh_config(struct sk_buff *skb,
3290 cur_params.dot11MeshGateAnnouncementProtocol); 3290 cur_params.dot11MeshGateAnnouncementProtocol);
3291 NLA_PUT_U8(msg, NL80211_MESHCONF_FORWARDING, 3291 NLA_PUT_U8(msg, NL80211_MESHCONF_FORWARDING,
3292 cur_params.dot11MeshForwarding); 3292 cur_params.dot11MeshForwarding);
3293 NLA_PUT_U32(msg, NL80211_MESHCONF_RSSI_THRESHOLD,
3294 cur_params.rssi_threshold);
3293 nla_nest_end(msg, pinfoattr); 3295 nla_nest_end(msg, pinfoattr);
3294 genlmsg_end(msg, hdr); 3296 genlmsg_end(msg, hdr);
3295 return genlmsg_reply(msg, info); 3297 return genlmsg_reply(msg, info);
@@ -3322,6 +3324,7 @@ static const struct nla_policy nl80211_meshconf_params_policy[NL80211_MESHCONF_A
3322 [NL80211_MESHCONF_HWMP_RANN_INTERVAL] = { .type = NLA_U16 }, 3324 [NL80211_MESHCONF_HWMP_RANN_INTERVAL] = { .type = NLA_U16 },
3323 [NL80211_MESHCONF_GATE_ANNOUNCEMENTS] = { .type = NLA_U8 }, 3325 [NL80211_MESHCONF_GATE_ANNOUNCEMENTS] = { .type = NLA_U8 },
3324 [NL80211_MESHCONF_FORWARDING] = { .type = NLA_U8 }, 3326 [NL80211_MESHCONF_FORWARDING] = { .type = NLA_U8 },
3327 [NL80211_MESHCONF_RSSI_THRESHOLD] = { .type = NLA_U32},
3325}; 3328};
3326 3329
3327static const struct nla_policy 3330static const struct nla_policy
@@ -3413,6 +3416,8 @@ do {\
3413 nla_get_u8); 3416 nla_get_u8);
3414 FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshForwarding, 3417 FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshForwarding,
3415 mask, NL80211_MESHCONF_FORWARDING, nla_get_u8); 3418 mask, NL80211_MESHCONF_FORWARDING, nla_get_u8);
3419 FILL_IN_MESH_PARAM_IF_SET(tb, cfg, rssi_threshold,
3420 mask, NL80211_MESHCONF_RSSI_THRESHOLD, nla_get_u32);
3416 if (mask_out) 3421 if (mask_out)
3417 *mask_out = mask; 3422 *mask_out = mask;
3418 3423