diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nl80211.h | 19 | ||||
-rw-r--r-- | include/net/cfg80211.h | 22 | ||||
-rw-r--r-- | include/net/mac80211.h | 9 |
3 files changed, 50 insertions, 0 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 2be7c63bc0f2..447c02a5190e 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -89,6 +89,8 @@ | |||
89 | * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC | 89 | * @NL80211_CMD_DEL_PATH: Remove a mesh path identified by %NL80211_ATTR_MAC |
90 | * or, if no MAC address given, all mesh paths, on the interface identified | 90 | * or, if no MAC address given, all mesh paths, on the interface identified |
91 | * by %NL80211_ATTR_IFINDEX. | 91 | * by %NL80211_ATTR_IFINDEX. |
92 | * @NL80211_CMD_SET_BSS: Set BSS attributes for BSS identified by | ||
93 | * %NL80211_ATTR_IFINDEX. | ||
92 | * | 94 | * |
93 | * @NL80211_CMD_MAX: highest used command number | 95 | * @NL80211_CMD_MAX: highest used command number |
94 | * @__NL80211_CMD_AFTER_LAST: internal use | 96 | * @__NL80211_CMD_AFTER_LAST: internal use |
@@ -127,6 +129,8 @@ enum nl80211_commands { | |||
127 | NL80211_CMD_NEW_MPATH, | 129 | NL80211_CMD_NEW_MPATH, |
128 | NL80211_CMD_DEL_MPATH, | 130 | NL80211_CMD_DEL_MPATH, |
129 | 131 | ||
132 | NL80211_CMD_SET_BSS, | ||
133 | |||
130 | /* add commands here */ | 134 | /* add commands here */ |
131 | 135 | ||
132 | /* used to define NL80211_CMD_MAX below */ | 136 | /* used to define NL80211_CMD_MAX below */ |
@@ -134,6 +138,11 @@ enum nl80211_commands { | |||
134 | NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 | 138 | NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1 |
135 | }; | 139 | }; |
136 | 140 | ||
141 | /* | ||
142 | * Allow user space programs to use #ifdef on new commands by defining them | ||
143 | * here | ||
144 | */ | ||
145 | #define NL80211_CMD_SET_BSS NL80211_CMD_SET_BSS | ||
137 | 146 | ||
138 | /** | 147 | /** |
139 | * enum nl80211_attrs - nl80211 netlink attributes | 148 | * enum nl80211_attrs - nl80211 netlink attributes |
@@ -192,6 +201,12 @@ enum nl80211_commands { | |||
192 | * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of | 201 | * @NL80211_ATTR_MNTR_FLAGS: flags, nested element with NLA_FLAG attributes of |
193 | * &enum nl80211_mntr_flags. | 202 | * &enum nl80211_mntr_flags. |
194 | * | 203 | * |
204 | * @NL80211_ATTR_BSS_CTS_PROT: whether CTS protection is enabled (u8, 0 or 1) | ||
205 | * @NL80211_ATTR_BSS_SHORT_PREAMBLE: whether short preamble is enabled | ||
206 | * (u8, 0 or 1) | ||
207 | * @NL80211_ATTR_BSS_SHORT_SLOT_TIME: whether short slot time enabled | ||
208 | * (u8, 0 or 1) | ||
209 | * | ||
195 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 210 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
196 | * @__NL80211_ATTR_AFTER_LAST: internal use | 211 | * @__NL80211_ATTR_AFTER_LAST: internal use |
197 | */ | 212 | */ |
@@ -235,6 +250,10 @@ enum nl80211_attrs { | |||
235 | NL80211_ATTR_MPATH_NEXT_HOP, | 250 | NL80211_ATTR_MPATH_NEXT_HOP, |
236 | NL80211_ATTR_MPATH_INFO, | 251 | NL80211_ATTR_MPATH_INFO, |
237 | 252 | ||
253 | NL80211_ATTR_BSS_CTS_PROT, | ||
254 | NL80211_ATTR_BSS_SHORT_PREAMBLE, | ||
255 | NL80211_ATTR_BSS_SHORT_SLOT_TIME, | ||
256 | |||
238 | /* add attributes here, update the policy in nl80211.c */ | 257 | /* add attributes here, update the policy in nl80211.c */ |
239 | 258 | ||
240 | __NL80211_ATTR_AFTER_LAST, | 259 | __NL80211_ATTR_AFTER_LAST, |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index e00750836ba5..7afef14d5c5b 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -268,6 +268,23 @@ struct mpath_info { | |||
268 | u8 flags; | 268 | u8 flags; |
269 | }; | 269 | }; |
270 | 270 | ||
271 | /** | ||
272 | * struct bss_parameters - BSS parameters | ||
273 | * | ||
274 | * Used to change BSS parameters (mainly for AP mode). | ||
275 | * | ||
276 | * @use_cts_prot: Whether to use CTS protection | ||
277 | * (0 = no, 1 = yes, -1 = do not change) | ||
278 | * @use_short_preamble: Whether the use of short preambles is allowed | ||
279 | * (0 = no, 1 = yes, -1 = do not change) | ||
280 | * @use_short_slot_time: Whether the use of short slot time is allowed | ||
281 | * (0 = no, 1 = yes, -1 = do not change) | ||
282 | */ | ||
283 | struct bss_parameters { | ||
284 | int use_cts_prot; | ||
285 | int use_short_preamble; | ||
286 | int use_short_slot_time; | ||
287 | }; | ||
271 | 288 | ||
272 | /* from net/wireless.h */ | 289 | /* from net/wireless.h */ |
273 | struct wiphy; | 290 | struct wiphy; |
@@ -318,6 +335,8 @@ struct wiphy; | |||
318 | * @change_station: Modify a given station. | 335 | * @change_station: Modify a given station. |
319 | * | 336 | * |
320 | * @set_mesh_cfg: set mesh parameters (by now, just mesh id) | 337 | * @set_mesh_cfg: set mesh parameters (by now, just mesh id) |
338 | * | ||
339 | * @change_bss: Modify parameters for a given BSS. | ||
321 | */ | 340 | */ |
322 | struct cfg80211_ops { | 341 | struct cfg80211_ops { |
323 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, | 342 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, |
@@ -370,6 +389,9 @@ struct cfg80211_ops { | |||
370 | int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev, | 389 | int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev, |
371 | int idx, u8 *dst, u8 *next_hop, | 390 | int idx, u8 *dst, u8 *next_hop, |
372 | struct mpath_info *pinfo); | 391 | struct mpath_info *pinfo); |
392 | |||
393 | int (*change_bss)(struct wiphy *wiphy, struct net_device *dev, | ||
394 | struct bss_parameters *params); | ||
373 | }; | 395 | }; |
374 | 396 | ||
375 | #endif /* __NET_CFG80211_H */ | 397 | #endif /* __NET_CFG80211_H */ |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 0fdc3dabc964..7c399a9c11da 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -158,12 +158,14 @@ struct ieee80211_low_level_stats { | |||
158 | * also implies a change in the AID. | 158 | * also implies a change in the AID. |
159 | * @BSS_CHANGED_ERP_CTS_PROT: CTS protection changed | 159 | * @BSS_CHANGED_ERP_CTS_PROT: CTS protection changed |
160 | * @BSS_CHANGED_ERP_PREAMBLE: preamble changed | 160 | * @BSS_CHANGED_ERP_PREAMBLE: preamble changed |
161 | * @BSS_CHANGED_ERP_SLOT: slot timing changed | ||
161 | * @BSS_CHANGED_HT: 802.11n parameters changed | 162 | * @BSS_CHANGED_HT: 802.11n parameters changed |
162 | */ | 163 | */ |
163 | enum ieee80211_bss_change { | 164 | enum ieee80211_bss_change { |
164 | BSS_CHANGED_ASSOC = 1<<0, | 165 | BSS_CHANGED_ASSOC = 1<<0, |
165 | BSS_CHANGED_ERP_CTS_PROT = 1<<1, | 166 | BSS_CHANGED_ERP_CTS_PROT = 1<<1, |
166 | BSS_CHANGED_ERP_PREAMBLE = 1<<2, | 167 | BSS_CHANGED_ERP_PREAMBLE = 1<<2, |
168 | BSS_CHANGED_ERP_SLOT = 1<<3, | ||
167 | BSS_CHANGED_HT = 1<<4, | 169 | BSS_CHANGED_HT = 1<<4, |
168 | }; | 170 | }; |
169 | 171 | ||
@@ -177,6 +179,7 @@ enum ieee80211_bss_change { | |||
177 | * @aid: association ID number, valid only when @assoc is true | 179 | * @aid: association ID number, valid only when @assoc is true |
178 | * @use_cts_prot: use CTS protection | 180 | * @use_cts_prot: use CTS protection |
179 | * @use_short_preamble: use 802.11b short preamble | 181 | * @use_short_preamble: use 802.11b short preamble |
182 | * @use_short_slot: use short slot time (only relevant for ERP) | ||
180 | * @dtim_period: num of beacons before the next DTIM, for PSM | 183 | * @dtim_period: num of beacons before the next DTIM, for PSM |
181 | * @timestamp: beacon timestamp | 184 | * @timestamp: beacon timestamp |
182 | * @beacon_int: beacon interval | 185 | * @beacon_int: beacon interval |
@@ -192,6 +195,7 @@ struct ieee80211_bss_conf { | |||
192 | /* erp related data */ | 195 | /* erp related data */ |
193 | bool use_cts_prot; | 196 | bool use_cts_prot; |
194 | bool use_short_preamble; | 197 | bool use_short_preamble; |
198 | bool use_short_slot; | ||
195 | u8 dtim_period; | 199 | u8 dtim_period; |
196 | u16 beacon_int; | 200 | u16 beacon_int; |
197 | u16 assoc_capability; | 201 | u16 assoc_capability; |
@@ -420,6 +424,11 @@ struct ieee80211_rx_status { | |||
420 | * @IEEE80211_CONF_PS: Enable 802.11 power save mode | 424 | * @IEEE80211_CONF_PS: Enable 802.11 power save mode |
421 | */ | 425 | */ |
422 | enum ieee80211_conf_flags { | 426 | enum ieee80211_conf_flags { |
427 | /* | ||
428 | * TODO: IEEE80211_CONF_SHORT_SLOT_TIME will be removed once drivers | ||
429 | * have been converted to use bss_info_changed() for slot time | ||
430 | * configuration | ||
431 | */ | ||
423 | IEEE80211_CONF_SHORT_SLOT_TIME = (1<<0), | 432 | IEEE80211_CONF_SHORT_SLOT_TIME = (1<<0), |
424 | IEEE80211_CONF_RADIOTAP = (1<<1), | 433 | IEEE80211_CONF_RADIOTAP = (1<<1), |
425 | IEEE80211_CONF_SUPPORT_HT_MODE = (1<<2), | 434 | IEEE80211_CONF_SUPPORT_HT_MODE = (1<<2), |