{nl,cfg,mac}80211: Add support of setting non-forwarding entity in Mesh
A mesh node that joins the mesh network is by default a forwarding entity. This patch allows the mesh node to set as non-forwarding entity. Whenever dot11MeshForwarding is set to 0, the mesh node can prevent itself from forwarding the traffic which is not destined to him. Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
2da8f419e7
commit
94f9065648
@@ -55,6 +55,7 @@ const struct mesh_config default_mesh_config = {
|
||||
.min_discovery_timeout = MESH_MIN_DISCOVERY_TIMEOUT,
|
||||
.dot11MeshHWMPRannInterval = MESH_RANN_INTERVAL,
|
||||
.dot11MeshGateAnnouncementProtocol = false,
|
||||
.dot11MeshForwarding = true,
|
||||
};
|
||||
|
||||
const struct mesh_setup default_mesh_setup = {
|
||||
|
@@ -3258,6 +3258,8 @@ static int nl80211_get_mesh_config(struct sk_buff *skb,
|
||||
cur_params.dot11MeshHWMPRannInterval);
|
||||
NLA_PUT_U8(msg, NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
|
||||
cur_params.dot11MeshGateAnnouncementProtocol);
|
||||
NLA_PUT_U8(msg, NL80211_MESHCONF_FORWARDING,
|
||||
cur_params.dot11MeshForwarding);
|
||||
nla_nest_end(msg, pinfoattr);
|
||||
genlmsg_end(msg, hdr);
|
||||
return genlmsg_reply(msg, info);
|
||||
@@ -3289,6 +3291,7 @@ static const struct nla_policy nl80211_meshconf_params_policy[NL80211_MESHCONF_A
|
||||
[NL80211_MESHCONF_HWMP_ROOTMODE] = { .type = NLA_U8 },
|
||||
[NL80211_MESHCONF_HWMP_RANN_INTERVAL] = { .type = NLA_U16 },
|
||||
[NL80211_MESHCONF_GATE_ANNOUNCEMENTS] = { .type = NLA_U8 },
|
||||
[NL80211_MESHCONF_FORWARDING] = { .type = NLA_U8 },
|
||||
};
|
||||
|
||||
static const struct nla_policy
|
||||
@@ -3378,6 +3381,8 @@ do {\
|
||||
dot11MeshGateAnnouncementProtocol, mask,
|
||||
NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
|
||||
nla_get_u8);
|
||||
FILL_IN_MESH_PARAM_IF_SET(tb, cfg, dot11MeshForwarding,
|
||||
mask, NL80211_MESHCONF_FORWARDING, nla_get_u8);
|
||||
if (mask_out)
|
||||
*mask_out = mask;
|
||||
|
||||
|
Reference in New Issue
Block a user