{nl,cfg,mac}80211: Implement RSSI threshold for mesh peering
Mesh peer links are established only if average rssi of the peer candidate satisfies the threshold. This is not in 802.11s specification but was requested by David Fulgham, an open80211s user. This is a way to avoid marginal peer links with stations that are barely within range. This patch adds a new mesh configuration parameter, mesh_rssi_threshold. This feature is supported only for hardwares that report signal in dBm. Signed-off-by: Ashok Nagarajan <ashok@cozybit.com> Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
5809802180
commit
5533513784
@@ -3290,6 +3290,8 @@ static int nl80211_get_mesh_config(struct sk_buff *skb,
|
||||
cur_params.dot11MeshGateAnnouncementProtocol);
|
||||
NLA_PUT_U8(msg, NL80211_MESHCONF_FORWARDING,
|
||||
cur_params.dot11MeshForwarding);
|
||||
NLA_PUT_U32(msg, NL80211_MESHCONF_RSSI_THRESHOLD,
|
||||
cur_params.rssi_threshold);
|
||||
nla_nest_end(msg, pinfoattr);
|
||||
genlmsg_end(msg, hdr);
|
||||
return genlmsg_reply(msg, info);
|
||||
@@ -3322,6 +3324,7 @@ static const struct nla_policy nl80211_meshconf_params_policy[NL80211_MESHCONF_A
|
||||
[NL80211_MESHCONF_HWMP_RANN_INTERVAL] = { .type = NLA_U16 },
|
||||
[NL80211_MESHCONF_GATE_ANNOUNCEMENTS] = { .type = NLA_U8 },
|
||||
[NL80211_MESHCONF_FORWARDING] = { .type = NLA_U8 },
|
||||
[NL80211_MESHCONF_RSSI_THRESHOLD] = { .type = NLA_U32},
|
||||
};
|
||||
|
||||
static const struct nla_policy
|
||||
@@ -3413,6 +3416,8 @@ do {\
|
||||
nla_get_u8);
|
||||
FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshForwarding,
|
||||
mask, NL80211_MESHCONF_FORWARDING, nla_get_u8);
|
||||
FILL_IN_MESH_PARAM_IF_SET(tb, cfg, rssi_threshold,
|
||||
mask, NL80211_MESHCONF_RSSI_THRESHOLD, nla_get_u32);
|
||||
if (mask_out)
|
||||
*mask_out = mask;
|
||||
|
||||
|
Reference in New Issue
Block a user