diff options
author | Javier Cardona <javier@cozybit.com> | 2012-03-31 14:31:33 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-04-10 15:20:33 -0400 |
commit | d299a1f21ea7ffd5114d099b2f92c867c495e8b3 (patch) | |
tree | 4325e83c1ad096be0d2fa71c52d1ad115ea23ca4 /include | |
parent | dbf498fbafa2c23139d5a990e94ed78bafbbea19 (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.h | 12 | ||||
-rw-r--r-- | include/net/cfg80211.h | 14 |
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 | */ |
2147 | enum nl80211_meshconf_params { | 2152 | enum 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 | */ |
2210 | enum nl80211_mesh_setup_params { | 2221 | enum 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 | */ |
525 | enum station_info_flags { | 526 | enum 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 | */ |
647 | struct station_info { | 650 | struct 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 { | |||
834 | struct mesh_setup { | 841 | struct 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; |