diff options
author | Jouni Malinen <j@w1.fi> | 2008-11-26 09:15:24 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-12-05 09:32:11 -0500 |
commit | 72bdcf34380917260da41e3c49e10edee04bc5cd (patch) | |
tree | cbfb8e389f58514febf47ea62781517a9df42f25 /include | |
parent | 72eaa43a532b4156966444779829a986a4432f11 (diff) |
nl80211: Add frequency configuration (including HT40)
This patch adds new NL80211_CMD_SET_WIPHY attributes
NL80211_ATTR_WIPHY_FREQ and NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET to allow
userspace to set the operating channel (e.g., hostapd for AP mode).
Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nl80211.h | 23 | ||||
-rw-r--r-- | include/net/cfg80211.h | 9 | ||||
-rw-r--r-- | include/net/mac80211.h | 3 |
3 files changed, 33 insertions, 2 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index e08c8bcfb78d..92f79d2bdd8c 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -26,8 +26,9 @@ | |||
26 | * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request | 26 | * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request |
27 | * to get a list of all present wiphys. | 27 | * to get a list of all present wiphys. |
28 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or | 28 | * @NL80211_CMD_SET_WIPHY: set wiphy parameters, needs %NL80211_ATTR_WIPHY or |
29 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME | 29 | * %NL80211_ATTR_IFINDEX; can be used to set %NL80211_ATTR_WIPHY_NAME, |
30 | * and/or %NL80211_ATTR_WIPHY_TXQ_PARAMS. | 30 | * %NL80211_ATTR_WIPHY_TXQ_PARAMS, %NL80211_ATTR_WIPHY_FREQ, and/or |
31 | * %NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET. | ||
31 | * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request | 32 | * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request |
32 | * or rename notification. Has attributes %NL80211_ATTR_WIPHY and | 33 | * or rename notification. Has attributes %NL80211_ATTR_WIPHY and |
33 | * %NL80211_ATTR_WIPHY_NAME. | 34 | * %NL80211_ATTR_WIPHY_NAME. |
@@ -180,6 +181,14 @@ enum nl80211_commands { | |||
180 | * /sys/class/ieee80211/<phyname>/index | 181 | * /sys/class/ieee80211/<phyname>/index |
181 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) | 182 | * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming) |
182 | * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters | 183 | * @NL80211_ATTR_WIPHY_TXQ_PARAMS: a nested array of TX queue parameters |
184 | * @NL80211_ATTR_WIPHY_FREQ: frequency of the selected channel in MHz | ||
185 | * @NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET: included with NL80211_ATTR_WIPHY_FREQ | ||
186 | * if HT20 or HT40 are allowed (i.e., 802.11n disabled if not included): | ||
187 | * NL80211_SEC_CHAN_NO_HT = HT not allowed (i.e., same as not including | ||
188 | * this attribute) | ||
189 | * NL80211_SEC_CHAN_DISABLED = HT20 only | ||
190 | * NL80211_SEC_CHAN_BELOW = secondary channel is below the primary channel | ||
191 | * NL80211_SEC_CHAN_ABOVE = secondary channel is above the primary channel | ||
183 | * | 192 | * |
184 | * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on | 193 | * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on |
185 | * @NL80211_ATTR_IFNAME: network interface name | 194 | * @NL80211_ATTR_IFNAME: network interface name |
@@ -315,6 +324,8 @@ enum nl80211_attrs { | |||
315 | NL80211_ATTR_BSS_BASIC_RATES, | 324 | NL80211_ATTR_BSS_BASIC_RATES, |
316 | 325 | ||
317 | NL80211_ATTR_WIPHY_TXQ_PARAMS, | 326 | NL80211_ATTR_WIPHY_TXQ_PARAMS, |
327 | NL80211_ATTR_WIPHY_FREQ, | ||
328 | NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET, | ||
318 | 329 | ||
319 | /* add attributes here, update the policy in nl80211.c */ | 330 | /* add attributes here, update the policy in nl80211.c */ |
320 | 331 | ||
@@ -329,6 +340,8 @@ enum nl80211_attrs { | |||
329 | #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY | 340 | #define NL80211_ATTR_HT_CAPABILITY NL80211_ATTR_HT_CAPABILITY |
330 | #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES | 341 | #define NL80211_ATTR_BSS_BASIC_RATES NL80211_ATTR_BSS_BASIC_RATES |
331 | #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS | 342 | #define NL80211_ATTR_WIPHY_TXQ_PARAMS NL80211_ATTR_WIPHY_TXQ_PARAMS |
343 | #define NL80211_ATTR_WIPHY_FREQ NL80211_ATTR_WIPHY_FREQ | ||
344 | #define NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET | ||
332 | 345 | ||
333 | #define NL80211_MAX_SUPP_RATES 32 | 346 | #define NL80211_MAX_SUPP_RATES 32 |
334 | #define NL80211_MAX_SUPP_REG_RULES 32 | 347 | #define NL80211_MAX_SUPP_REG_RULES 32 |
@@ -742,4 +755,10 @@ enum nl80211_txq_q { | |||
742 | NL80211_TXQ_Q_BK | 755 | NL80211_TXQ_Q_BK |
743 | }; | 756 | }; |
744 | 757 | ||
758 | enum nl80211_sec_chan_offset { | ||
759 | NL80211_SEC_CHAN_NO_HT /* No HT */, | ||
760 | NL80211_SEC_CHAN_DISABLED /* HT20 only */, | ||
761 | NL80211_SEC_CHAN_BELOW /* HT40- */, | ||
762 | NL80211_SEC_CHAN_ABOVE /* HT40+ */ | ||
763 | }; | ||
745 | #endif /* __LINUX_NL80211_H */ | 764 | #endif /* __LINUX_NL80211_H */ |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 1d57835d73f2..53b06f6c62ca 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -392,6 +392,9 @@ struct ieee80211_txq_params { | |||
392 | /* from net/wireless.h */ | 392 | /* from net/wireless.h */ |
393 | struct wiphy; | 393 | struct wiphy; |
394 | 394 | ||
395 | /* from net/ieee80211.h */ | ||
396 | struct ieee80211_channel; | ||
397 | |||
395 | /** | 398 | /** |
396 | * struct cfg80211_ops - backend description for wireless configuration | 399 | * struct cfg80211_ops - backend description for wireless configuration |
397 | * | 400 | * |
@@ -450,6 +453,8 @@ struct wiphy; | |||
450 | * @change_bss: Modify parameters for a given BSS. | 453 | * @change_bss: Modify parameters for a given BSS. |
451 | * | 454 | * |
452 | * @set_txq_params: Set TX queue parameters | 455 | * @set_txq_params: Set TX queue parameters |
456 | * | ||
457 | * @set_channel: Set channel | ||
453 | */ | 458 | */ |
454 | struct cfg80211_ops { | 459 | struct cfg80211_ops { |
455 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, | 460 | int (*add_virtual_intf)(struct wiphy *wiphy, char *name, |
@@ -513,6 +518,10 @@ struct cfg80211_ops { | |||
513 | 518 | ||
514 | int (*set_txq_params)(struct wiphy *wiphy, | 519 | int (*set_txq_params)(struct wiphy *wiphy, |
515 | struct ieee80211_txq_params *params); | 520 | struct ieee80211_txq_params *params); |
521 | |||
522 | int (*set_channel)(struct wiphy *wiphy, | ||
523 | struct ieee80211_channel *chan, | ||
524 | enum nl80211_sec_chan_offset); | ||
516 | }; | 525 | }; |
517 | 526 | ||
518 | #endif /* __NET_CFG80211_H */ | 527 | #endif /* __NET_CFG80211_H */ |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 6a1d4ea18186..6e823cc6a4b1 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -507,6 +507,9 @@ static inline int __deprecated __IEEE80211_CONF_SHORT_SLOT_TIME(void) | |||
507 | 507 | ||
508 | struct ieee80211_ht_conf { | 508 | struct ieee80211_ht_conf { |
509 | bool enabled; | 509 | bool enabled; |
510 | int sec_chan_offset; /* 0 = HT40 disabled; -1 = HT40 enabled, secondary | ||
511 | * channel below primary; 1 = HT40 enabled, | ||
512 | * secondary channel above primary */ | ||
510 | }; | 513 | }; |
511 | 514 | ||
512 | /** | 515 | /** |