aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJavier Cardona <javier@cozybit.com>2012-03-31 14:31:33 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-04-10 15:20:33 -0400
commitd299a1f21ea7ffd5114d099b2f92c867c495e8b3 (patch)
tree4325e83c1ad096be0d2fa71c52d1ad115ea23ca4 /include
parentdbf498fbafa2c23139d5a990e94ed78bafbbea19 (diff)
{nl,cfg}80211: Support for mesh synchronization
Report Toffset to userspace. Let userspace select the mesh synchronization method. Signed-off-by: Marco Porsch <marco.porsch@s2005.tu-chemnitz.de> Signed-off-by: Pavel Zubarev <pavel.zubarev@gmail.com> 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.h12
-rw-r--r--include/net/cfg80211.h14
2 files changed, 23 insertions, 3 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h
index 1f6e44680fb7..c6d26328a166 100644
--- a/include/linux/nl80211.h
+++ b/include/linux/nl80211.h
@@ -1685,6 +1685,7 @@ enum nl80211_sta_bss_param {
1685 * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected 1685 * @NL80211_STA_INFO_CONNECTED_TIME: time since the station is last connected
1686 * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update. 1686 * @NL80211_STA_INFO_STA_FLAGS: Contains a struct nl80211_sta_flag_update.
1687 * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32) 1687 * @NL80211_STA_INFO_BEACON_LOSS: count of times beacon loss was detected (u32)
1688 * @NL80211_STA_INFO_T_OFFSET: timing offset with respect to this STA (s64)
1688 * @__NL80211_STA_INFO_AFTER_LAST: internal 1689 * @__NL80211_STA_INFO_AFTER_LAST: internal
1689 * @NL80211_STA_INFO_MAX: highest possible station info attribute 1690 * @NL80211_STA_INFO_MAX: highest possible station info attribute
1690 */ 1691 */
@@ -1708,6 +1709,7 @@ enum nl80211_sta_info {
1708 NL80211_STA_INFO_CONNECTED_TIME, 1709 NL80211_STA_INFO_CONNECTED_TIME,
1709 NL80211_STA_INFO_STA_FLAGS, 1710 NL80211_STA_INFO_STA_FLAGS,
1710 NL80211_STA_INFO_BEACON_LOSS, 1711 NL80211_STA_INFO_BEACON_LOSS,
1712 NL80211_STA_INFO_T_OFFSET,
1711 1713
1712 /* keep last */ 1714 /* keep last */
1713 __NL80211_STA_INFO_AFTER_LAST, 1715 __NL80211_STA_INFO_AFTER_LAST,
@@ -2142,6 +2144,9 @@ enum nl80211_mntr_flags {
2142 * 2144 *
2143 * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute 2145 * @NL80211_MESHCONF_ATTR_MAX: highest possible mesh configuration attribute
2144 * 2146 *
2147 * @NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR: maximum number of neighbors
2148 * to synchronize to for 11s default synchronization method (see 11C.12.2.2)
2149 *
2145 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use 2150 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
2146 */ 2151 */
2147enum nl80211_meshconf_params { 2152enum nl80211_meshconf_params {
@@ -2166,6 +2171,7 @@ enum nl80211_meshconf_params {
2166 NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL, 2171 NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
2167 NL80211_MESHCONF_FORWARDING, 2172 NL80211_MESHCONF_FORWARDING,
2168 NL80211_MESHCONF_RSSI_THRESHOLD, 2173 NL80211_MESHCONF_RSSI_THRESHOLD,
2174 NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR,
2169 2175
2170 /* keep last */ 2176 /* keep last */
2171 __NL80211_MESHCONF_ATTR_AFTER_LAST, 2177 __NL80211_MESHCONF_ATTR_AFTER_LAST,
@@ -2205,6 +2211,11 @@ enum nl80211_meshconf_params {
2205 * complete (unsecured) mesh peering without the need of a userspace daemon. 2211 * complete (unsecured) mesh peering without the need of a userspace daemon.
2206 * 2212 *
2207 * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number 2213 * @NL80211_MESH_SETUP_ATTR_MAX: highest possible mesh setup attribute number
2214 *
2215 * @NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC: Enable this option to use a
2216 * vendor specific synchronization method or disable it to use the default
2217 * neighbor offset synchronization
2218 *
2208 * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use 2219 * @__NL80211_MESH_SETUP_ATTR_AFTER_LAST: Internal use
2209 */ 2220 */
2210enum nl80211_mesh_setup_params { 2221enum nl80211_mesh_setup_params {
@@ -2214,6 +2225,7 @@ enum nl80211_mesh_setup_params {
2214 NL80211_MESH_SETUP_IE, 2225 NL80211_MESH_SETUP_IE,
2215 NL80211_MESH_SETUP_USERSPACE_AUTH, 2226 NL80211_MESH_SETUP_USERSPACE_AUTH,
2216 NL80211_MESH_SETUP_USERSPACE_AMPE, 2227 NL80211_MESH_SETUP_USERSPACE_AMPE,
2228 NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC,
2217 2229
2218 /* keep last */ 2230 /* keep last */
2219 __NL80211_MESH_SETUP_ATTR_AFTER_LAST, 2231 __NL80211_MESH_SETUP_ATTR_AFTER_LAST,
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index ac9147778a81..ae3a3bb37bf2 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -521,6 +521,7 @@ struct station_parameters {
521 * @STATION_INFO_ASSOC_REQ_IES: @assoc_req_ies filled 521 * @STATION_INFO_ASSOC_REQ_IES: @assoc_req_ies filled
522 * @STATION_INFO_STA_FLAGS: @sta_flags filled 522 * @STATION_INFO_STA_FLAGS: @sta_flags filled
523 * @STATION_INFO_BEACON_LOSS_COUNT: @beacon_loss_count filled 523 * @STATION_INFO_BEACON_LOSS_COUNT: @beacon_loss_count filled
524 * @STATION_INFO_T_OFFSET: @t_offset filled
524 */ 525 */
525enum station_info_flags { 526enum station_info_flags {
526 STATION_INFO_INACTIVE_TIME = 1<<0, 527 STATION_INFO_INACTIVE_TIME = 1<<0,
@@ -542,7 +543,8 @@ enum station_info_flags {
542 STATION_INFO_CONNECTED_TIME = 1<<16, 543 STATION_INFO_CONNECTED_TIME = 1<<16,
543 STATION_INFO_ASSOC_REQ_IES = 1<<17, 544 STATION_INFO_ASSOC_REQ_IES = 1<<17,
544 STATION_INFO_STA_FLAGS = 1<<18, 545 STATION_INFO_STA_FLAGS = 1<<18,
545 STATION_INFO_BEACON_LOSS_COUNT = 1<<19 546 STATION_INFO_BEACON_LOSS_COUNT = 1<<19,
547 STATION_INFO_T_OFFSET = 1<<20,
546}; 548};
547 549
548/** 550/**
@@ -643,6 +645,7 @@ struct sta_bss_parameters {
643 * @assoc_req_ies_len: Length of assoc_req_ies buffer in octets. 645 * @assoc_req_ies_len: Length of assoc_req_ies buffer in octets.
644 * @sta_flags: station flags mask & values 646 * @sta_flags: station flags mask & values
645 * @beacon_loss_count: Number of times beacon loss event has triggered. 647 * @beacon_loss_count: Number of times beacon loss event has triggered.
648 * @t_offset: Time offset of the station relative to this host.
646 */ 649 */
647struct station_info { 650struct station_info {
648 u32 filled; 651 u32 filled;
@@ -671,6 +674,7 @@ struct station_info {
671 size_t assoc_req_ies_len; 674 size_t assoc_req_ies_len;
672 675
673 u32 beacon_loss_count; 676 u32 beacon_loss_count;
677 s64 t_offset;
674 678
675 /* 679 /*
676 * Note: Add a new enum station_info_flags value for each new field and 680 * Note: Add a new enum station_info_flags value for each new field and
@@ -798,6 +802,8 @@ struct mesh_config {
798 /* ttl used in path selection information elements */ 802 /* ttl used in path selection information elements */
799 u8 element_ttl; 803 u8 element_ttl;
800 bool auto_open_plinks; 804 bool auto_open_plinks;
805 /* neighbor offset synchronization */
806 u32 dot11MeshNbrOffsetMaxNeighbor;
801 /* HWMP parameters */ 807 /* HWMP parameters */
802 u8 dot11MeshHWMPmaxPREQretries; 808 u8 dot11MeshHWMPmaxPREQretries;
803 u32 path_refresh_time; 809 u32 path_refresh_time;
@@ -821,6 +827,7 @@ struct mesh_config {
821 * struct mesh_setup - 802.11s mesh setup configuration 827 * struct mesh_setup - 802.11s mesh setup configuration
822 * @mesh_id: the mesh ID 828 * @mesh_id: the mesh ID
823 * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes 829 * @mesh_id_len: length of the mesh ID, at least 1 and at most 32 bytes
830 * @sync_method: which synchronization method to use
824 * @path_sel_proto: which path selection protocol to use 831 * @path_sel_proto: which path selection protocol to use
825 * @path_metric: which metric to use 832 * @path_metric: which metric to use
826 * @ie: vendor information elements (optional) 833 * @ie: vendor information elements (optional)
@@ -834,8 +841,9 @@ struct mesh_config {
834struct mesh_setup { 841struct mesh_setup {
835 const u8 *mesh_id; 842 const u8 *mesh_id;
836 u8 mesh_id_len; 843 u8 mesh_id_len;
837 u8 path_sel_proto; 844 u8 sync_method;
838 u8 path_metric; 845 u8 path_sel_proto;
846 u8 path_metric;
839 const u8 *ie; 847 const u8 *ie;
840 u8 ie_len; 848 u8 ie_len;
841 bool is_authenticated; 849 bool is_authenticated;