* [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method.
@ 2013-05-08 18:45 Colleen Twitty
2013-05-08 18:46 ` [PATCH v3 2/2] mac80211: enable Auth Protocol Identifier on mesh config Colleen Twitty
2013-05-13 9:44 ` [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method Johannes Berg
0 siblings, 2 replies; 3+ messages in thread
From: Colleen Twitty @ 2013-05-08 18:45 UTC (permalink / raw)
To: Johannes Berg; +Cc: open80211s, linux-wirelss
Authentication takes place in userspace, but the beacon is
generated in the kernel. Allow userspace to inform the
kernel of the authentication method so the appropriate
mesh config IE can be set prior to beacon generation when
joining the MBSS.
Signed-off-by: Colleen Twitty <colleen@cozybit.com>
---
If user_mpm is set, allow userspace to set authentication bit. (Johannes)
include/net/cfg80211.h | 2 ++
include/uapi/linux/nl80211.h | 5 +++++
net/wireless/mesh.c | 1 +
net/wireless/nl80211.c | 8 ++++++++
4 files changed, 16 insertions(+)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 26e9113..32a2f1b 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1161,6 +1161,7 @@ struct mesh_config {
* @sync_method: which synchronization method to use
* @path_sel_proto: which path selection protocol to use
* @path_metric: which metric to use
+ * @auth_id: which authentication method this mesh is using
* @ie: vendor information elements (optional)
* @ie_len: length of vendor information elements
* @is_authenticated: this mesh requires authentication
@@ -1179,6 +1180,7 @@ struct mesh_setup {
u8 sync_method;
u8 path_sel_proto;
u8 path_metric;
+ u8 auth_id;
const u8 *ie;
u8 ie_len;
bool is_authenticated;
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index b484307..0632071 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -2645,6 +2645,10 @@ enum nl80211_meshconf_params {
* @NL80211_MESH_SETUP_USERSPACE_MPM: Enable this option if userspace will
* implement an MPM which handles peer allocation and state.
*
+ * @NL80211_MESH_SETUP_AUTH_PROTOCOL: Inform the kernel of the authentication
+ * method (u8, as defined in IEEE 8.4.2.100.6, e.g. 0x1 for SAE).
+ * Default is no authentication method required.
+ *
* @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number
*
* @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use
@@ -2658,6 +2662,7 @@ enum nl80211_mesh_setup_params {
NL80211_MESH_SETUP_USERSPACE_AMPE,
NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC,
NL80211_MESH_SETUP_USERSPACE_MPM,
+ NL80211_MESH_SETUP_AUTH_PROTOCOL,
/* keep last */
__NL80211_MESH_SETUP_ATTR_AFTER_LAST,
diff --git a/net/wireless/mesh.c b/net/wireless/mesh.c
index 0bb93f3..9546ad2 100644
--- a/net/wireless/mesh.c
+++ b/net/wireless/mesh.c
@@ -82,6 +82,7 @@ const struct mesh_setup default_mesh_setup = {
.sync_method = IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET,
.path_sel_proto = IEEE80211_PATH_PROTOCOL_HWMP,
.path_metric = IEEE80211_PATH_METRIC_AIRTIME,
+ .auth_id = 0, /* open */
.ie = NULL,
.ie_len = 0,
.is_secure = false,
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 9cdcd9e..5f10f7a 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -4672,6 +4672,7 @@ static const struct nla_policy
[NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL] = { .type = NLA_U8 },
[NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC] = { .type = NLA_U8 },
[NL80211_MESH_SETUP_USERSPACE_AUTH] = { .type = NLA_FLAG },
+ [NL80211_MESH_SETUP_AUTH_PROTOCOL] = { .type = NLA_U8 },
[NL80211_MESH_SETUP_USERSPACE_MPM] = { .type = NLA_FLAG },
[NL80211_MESH_SETUP_IE] = { .type = NLA_BINARY,
.len = IEEE80211_MAX_DATA_LEN },
@@ -4857,6 +4858,13 @@ static int nl80211_parse_mesh_setup(struct genl_info *info,
if (setup->is_secure)
setup->user_mpm = true;
+ if (tb[NL80211_MESH_SETUP_AUTH_PROTOCOL]) {
+ if (!setup->user_mpm)
+ return -EINVAL;
+ setup->auth_id =
+ nla_get_u8(tb[NL80211_MESH_SETUP_AUTH_PROTOCOL]);
+ }
+
return 0;
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH v3 2/2] mac80211: enable Auth Protocol Identifier on mesh config.
2013-05-08 18:45 [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method Colleen Twitty
@ 2013-05-08 18:46 ` Colleen Twitty
2013-05-13 9:44 ` [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method Johannes Berg
1 sibling, 0 replies; 3+ messages in thread
From: Colleen Twitty @ 2013-05-08 18:46 UTC (permalink / raw)
To: Johannes Berg; +Cc: open80211s, linux-wirelss
Previously the mesh_auth_id was disabled. Instead set the
correct mesh authentication bit based on the mesh setup.
Signed-off-by: Colleen Twitty <colleen@cozybit.com>
---
net/mac80211/cfg.c | 1 +
net/mac80211/mesh.c | 1 -
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index 1f51bdf..65b9cab 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1746,6 +1746,7 @@ static int copy_mesh_setup(struct ieee80211_if_mesh *ifmsh,
ifmsh->mesh_pp_id = setup->path_sel_proto;
ifmsh->mesh_pm_id = setup->path_metric;
ifmsh->user_mpm = setup->user_mpm;
+ ifmsh->mesh_auth_id = setup->auth_id;
ifmsh->security = IEEE80211_MESH_SEC_NONE;
if (setup->is_authenticated)
ifmsh->security |= IEEE80211_MESH_SEC_AUTHED;
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 6952760..c13db9a 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -748,7 +748,6 @@ int ieee80211_start_mesh(struct ieee80211_sub_if_data *sdata)
ieee80211_configure_filter(local);
ifmsh->mesh_cc_id = 0; /* Disabled */
- ifmsh->mesh_auth_id = 0; /* Disabled */
/* register sync ops from extensible synchronization framework */
ifmsh->sync_ops = ieee80211_mesh_sync_ops_get(ifmsh->mesh_sp_id);
ifmsh->adjusting_tbtt = false;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method.
2013-05-08 18:45 [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method Colleen Twitty
2013-05-08 18:46 ` [PATCH v3 2/2] mac80211: enable Auth Protocol Identifier on mesh config Colleen Twitty
@ 2013-05-13 9:44 ` Johannes Berg
1 sibling, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2013-05-13 9:44 UTC (permalink / raw)
To: Colleen Twitty; +Cc: open80211s, linux-wirelss
On Wed, 2013-05-08 at 11:45 -0700, Colleen Twitty wrote:
> Authentication takes place in userspace, but the beacon is
> generated in the kernel. Allow userspace to inform the
> kernel of the authentication method so the appropriate
> mesh config IE can be set prior to beacon generation when
> joining the MBSS.
Applied, thanks.
johannes
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-05-13 9:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-08 18:45 [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method Colleen Twitty
2013-05-08 18:46 ` [PATCH v3 2/2] mac80211: enable Auth Protocol Identifier on mesh config Colleen Twitty
2013-05-13 9:44 ` [PATCH v3 1/2] cfg80211: Userspace may inform kernel of mesh auth method Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox