aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJavier Cardona <javier@cozybit.com>2011-05-03 19:57:07 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-05-11 14:37:47 -0400
commitb130e5cec958bae3867cf6ab09a9b24ba8fada01 (patch)
tree945eca0ace3d299dfd83de7b7e13c60aa36ba2e9 /include
parentf3a57fd148a4afd3c38f558c5b44972cb29ea8ba (diff)
nl80211: Introduce NL80211_MESH_SETUP_USERSPACE_AMPE
Introduce a new configuration option to support AMPE from userspace. Prior to this series we only supported authentication in userspace: an authentication daemon would authenticate peer candidates in userspace and hand them over to the kernel. From that point the mesh stack would take over and establish a peer link (Mesh Peering Management). These patches introduce support for Authenticated Mesh Peering Exchange in userspace. The userspace daemon implements the AMPE protocol and on successfull completion create mesh peers and install encryption keys. Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nl80211.h10
-rw-r--r--include/net/cfg80211.h4
2 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index a75dea9c416e..c53b916036c5 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -1769,6 +1769,15 @@ enum nl80211_meshconf_params {
1769 * @NL80211_MESH_SETUP_USERSPACE_AUTH: Enable this option if an authentication 1769 * @NL80211_MESH_SETUP_USERSPACE_AUTH: Enable this option if an authentication
1770 * daemon will be authenticating mesh candidates. 1770 * daemon will be authenticating mesh candidates.
1771 * 1771 *
1772 * @NL80211_MESH_SETUP_USERSPACE_AMPE: Enable this option if an authentication
1773 * daemon will be securing peer link frames. AMPE is a secured version of Mesh
1774 * Peering Management (MPM) and is implemented with the assistance of a
1775 * userspace daemon. When this flag is set, the kernel will send peer
1776 * management frames to a userspace daemon that will implement AMPE
1777 * functionality (security capabilities selection, key confirmation, and key
1778 * management). When the flag is unset (default), the kernel can autonomously
1779 * complete (unsecured) mesh peering without the need of a userspace daemon.
1780 *
1772 * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number 1781 * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number
1773 * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use 1782 * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use
1774 */ 1783 */
@@ -1778,6 +1787,7 @@ enum nl80211_mesh_setup_params {
1778 NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC, 1787 NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC,
1779 NL80211_MESH_SETUP_IE, 1788 NL80211_MESH_SETUP_IE,
1780 NL80211_MESH_SETUP_USERSPACE_AUTH, 1789 NL80211_MESH_SETUP_USERSPACE_AUTH,
1790 NL80211_MESH_SETUP_USERSPACE_AMPE,
1781 1791
1782 /* keep last */ 1792 /* keep last */
1783 __NL80211_MESH_SETUP_ATTR_AFTER_LAST, 1793 __NL80211_MESH_SETUP_ATTR_AFTER_LAST,
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 0920daf36807..10c17d68059f 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -695,7 +695,8 @@ struct mesh_config {
695 * @path_metric: which metric to use 695 * @path_metric: which metric to use
696 * @ie: vendor information elements (optional) 696 * @ie: vendor information elements (optional)
697 * @ie_len: length of vendor information elements 697 * @ie_len: length of vendor information elements
698 * @is_secure: or not 698 * @is_authenticated: this mesh requires authentication
699 * @is_secure: this mesh uses security
699 * 700 *
700 * These parameters are fixed when the mesh is created. 701 * These parameters are fixed when the mesh is created.
701 */ 702 */
@@ -706,6 +707,7 @@ struct mesh_setup {
706 u8 path_metric; 707 u8 path_metric;
707 const u8 *ie; 708 const u8 *ie;
708 u8 ie_len; 709 u8 ie_len;
710 bool is_authenticated;
709 bool is_secure; 711 bool is_secure;
710}; 712};
711 713