aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-08 18:39:41 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-08 18:39:41 -0400
commit54dceb008ffcbe003bea9017cad1227a83b6fc3f (patch)
treed4e3345ead16da19efe38dbf97ade38309f8b4f7 /include
parent11a100f844f6096787ab20e19f17d72abc957a8f (diff)
parentb46372710ab536c0967f76be5dc41341583d4a54 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-next-2.6
Diffstat (limited to 'include')
-rw-r--r--include/linux/ieee80211.h6
-rw-r--r--include/net/mac80211.h43
2 files changed, 34 insertions, 15 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index cffd6d0094f9..a1630ba0b87c 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -99,6 +99,8 @@
99#define IEEE80211_MAX_SSID_LEN 32 99#define IEEE80211_MAX_SSID_LEN 32
100#define IEEE80211_MAX_MESH_ID_LEN 32 100#define IEEE80211_MAX_MESH_ID_LEN 32
101#define IEEE80211_QOS_CTL_LEN 2 101#define IEEE80211_QOS_CTL_LEN 2
102#define IEEE80211_QOS_CTL_TID_MASK 0x000F
103#define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007
102 104
103struct ieee80211_hdr { 105struct ieee80211_hdr {
104 __le16 frame_control; 106 __le16 frame_control;
@@ -658,6 +660,10 @@ struct ieee80211_bar {
658 __le16 start_seq_num; 660 __le16 start_seq_num;
659} __attribute__((packed)); 661} __attribute__((packed));
660 662
663/* 802.11 BAR control masks */
664#define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL 0x0000
665#define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA 0x0004
666
661/** 667/**
662 * struct ieee80211_ht_cap - HT capabilities 668 * struct ieee80211_ht_cap - HT capabilities
663 * 669 *
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 3a204acad901..656442c6b1c3 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -42,7 +42,7 @@
42 * tasklet function. 42 * tasklet function.
43 * 43 *
44 * NOTE: If the driver opts to use the _irqsafe() functions, it may not also 44 * NOTE: If the driver opts to use the _irqsafe() functions, it may not also
45 * use the non-irqsafe functions! 45 * use the non-IRQ-safe functions!
46 */ 46 */
47 47
48/** 48/**
@@ -85,7 +85,7 @@ enum ieee80211_notification_types {
85 * struct ieee80211_ht_bss_info - describing BSS's HT characteristics 85 * struct ieee80211_ht_bss_info - describing BSS's HT characteristics
86 * 86 *
87 * This structure describes most essential parameters needed 87 * This structure describes most essential parameters needed
88 * to describe 802.11n HT characteristics in a BSS 88 * to describe 802.11n HT characteristics in a BSS.
89 * 89 *
90 * @primary_channel: channel number of primery channel 90 * @primary_channel: channel number of primery channel
91 * @bss_cap: 802.11n's general BSS capabilities (e.g. channel width) 91 * @bss_cap: 802.11n's general BSS capabilities (e.g. channel width)
@@ -201,9 +201,9 @@ struct ieee80211_bss_conf {
201}; 201};
202 202
203/** 203/**
204 * enum mac80211_tx_flags - flags to transmission information/status 204 * enum mac80211_tx_control_flags - flags to describe transmission information/status
205 * 205 *
206 * These flags are used with the @flags member of &ieee80211_tx_info 206 * These flags are used with the @flags member of &ieee80211_tx_info.
207 * 207 *
208 * @IEEE80211_TX_CTL_REQ_TX_STATUS: request TX status callback for this frame. 208 * @IEEE80211_TX_CTL_REQ_TX_STATUS: request TX status callback for this frame.
209 * @IEEE80211_TX_CTL_DO_NOT_ENCRYPT: send this frame without encryption; 209 * @IEEE80211_TX_CTL_DO_NOT_ENCRYPT: send this frame without encryption;
@@ -212,11 +212,12 @@ struct ieee80211_bss_conf {
212 * @IEEE80211_TX_CTL_USE_CTS_PROTECT: use CTS protection for the frame (e.g., 212 * @IEEE80211_TX_CTL_USE_CTS_PROTECT: use CTS protection for the frame (e.g.,
213 * for combined 802.11g / 802.11b networks) 213 * for combined 802.11g / 802.11b networks)
214 * @IEEE80211_TX_CTL_NO_ACK: tell the low level not to wait for an ack 214 * @IEEE80211_TX_CTL_NO_ACK: tell the low level not to wait for an ack
215 * @IEEE80211_TX_CTL_RATE_CTRL_PROBE 215 * @IEEE80211_TX_CTL_RATE_CTRL_PROBE: TBD
216 * @IEEE80211_TX_CTL_CLEAR_PS_FILT: clear powersave filter for destination 216 * @IEEE80211_TX_CTL_CLEAR_PS_FILT: clear powersave filter for destination
217 * station 217 * station
218 * @IEEE80211_TX_CTL_REQUEUE: 218 * @IEEE80211_TX_CTL_REQUEUE: TBD
219 * @IEEE80211_TX_CTL_FIRST_FRAGMENT: this is a first fragment of the frame 219 * @IEEE80211_TX_CTL_FIRST_FRAGMENT: this is a first fragment of the frame
220 * @IEEE80211_TX_CTL_SHORT_PREAMBLE: TBD
220 * @IEEE80211_TX_CTL_LONG_RETRY_LIMIT: this frame should be send using the 221 * @IEEE80211_TX_CTL_LONG_RETRY_LIMIT: this frame should be send using the
221 * through set_retry_limit configured long retry value 222 * through set_retry_limit configured long retry value
222 * @IEEE80211_TX_CTL_EAPOL_FRAME: internal to mac80211 223 * @IEEE80211_TX_CTL_EAPOL_FRAME: internal to mac80211
@@ -230,11 +231,14 @@ struct ieee80211_bss_conf {
230 * @IEEE80211_TX_CTL_40_MHZ_WIDTH: send this frame using 40 Mhz channel width 231 * @IEEE80211_TX_CTL_40_MHZ_WIDTH: send this frame using 40 Mhz channel width
231 * @IEEE80211_TX_CTL_DUP_DATA: duplicate data frame on both 20 Mhz channels 232 * @IEEE80211_TX_CTL_DUP_DATA: duplicate data frame on both 20 Mhz channels
232 * @IEEE80211_TX_CTL_SHORT_GI: send this frame using short guard interval 233 * @IEEE80211_TX_CTL_SHORT_GI: send this frame using short guard interval
234 * @IEEE80211_TX_CTL_INJECTED: TBD
233 * @IEEE80211_TX_STAT_TX_FILTERED: The frame was not transmitted 235 * @IEEE80211_TX_STAT_TX_FILTERED: The frame was not transmitted
234 * because the destination STA was in powersave mode. 236 * because the destination STA was in powersave mode.
235 * @IEEE80211_TX_STAT_ACK: Frame was acknowledged 237 * @IEEE80211_TX_STAT_ACK: Frame was acknowledged
236 * @IEEE80211_TX_STAT_AMPDU: The frame was aggregated, so status 238 * @IEEE80211_TX_STAT_AMPDU: The frame was aggregated, so status
237 * is for the whole aggregation. 239 * is for the whole aggregation.
240 * @IEEE80211_TX_STAT_AMPDU_NO_BACK: no block ack was returned,
241 * so consider using block ack request (BAR).
238 */ 242 */
239enum mac80211_tx_control_flags { 243enum mac80211_tx_control_flags {
240 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0), 244 IEEE80211_TX_CTL_REQ_TX_STATUS = BIT(0),
@@ -260,6 +264,7 @@ enum mac80211_tx_control_flags {
260 IEEE80211_TX_STAT_TX_FILTERED = BIT(20), 264 IEEE80211_TX_STAT_TX_FILTERED = BIT(20),
261 IEEE80211_TX_STAT_ACK = BIT(21), 265 IEEE80211_TX_STAT_ACK = BIT(21),
262 IEEE80211_TX_STAT_AMPDU = BIT(22), 266 IEEE80211_TX_STAT_AMPDU = BIT(22),
267 IEEE80211_TX_STAT_AMPDU_NO_BACK = BIT(23),
263}; 268};
264 269
265 270
@@ -277,6 +282,12 @@ enum mac80211_tx_control_flags {
277 * (3) TX status information - driver tells mac80211 what happened 282 * (3) TX status information - driver tells mac80211 what happened
278 * 283 *
279 * @flags: transmit info flags, defined above 284 * @flags: transmit info flags, defined above
285 * @band: TBD
286 * @tx_rate_idx: TBD
287 * @antenna_sel_tx: TBD
288 * @control: union for control data
289 * @status: union for status data
290 * @driver_data: array of driver_data pointers
280 * @retry_count: number of retries 291 * @retry_count: number of retries
281 * @excessive_retries: set to 1 if the frame was retried many times 292 * @excessive_retries: set to 1 if the frame was retried many times
282 * but not acknowledged 293 * but not acknowledged
@@ -559,8 +570,8 @@ enum ieee80211_key_alg {
559 570
560/** 571/**
561 * enum ieee80211_key_len - key length 572 * enum ieee80211_key_len - key length
562 * @WEP40: WEP 5 byte long key 573 * @LEN_WEP40: WEP 5-byte long key
563 * @WEP104: WEP 13 byte long key 574 * @LEN_WEP104: WEP 13-byte long key
564 */ 575 */
565enum ieee80211_key_len { 576enum ieee80211_key_len {
566 LEN_WEP40 = 5, 577 LEN_WEP40 = 5,
@@ -637,7 +648,7 @@ enum set_key_cmd {
637 * enum sta_notify_cmd - sta notify command 648 * enum sta_notify_cmd - sta notify command
638 * 649 *
639 * Used with the sta_notify() callback in &struct ieee80211_ops, this 650 * Used with the sta_notify() callback in &struct ieee80211_ops, this
640 * indicates addition and removal of a station to station table 651 * indicates addition and removal of a station to station table.
641 * 652 *
642 * @STA_NOTIFY_ADD: a station was added to the station table 653 * @STA_NOTIFY_ADD: a station was added to the station table
643 * @STA_NOTIFY_REMOVE: a station being removed from the station table 654 * @STA_NOTIFY_REMOVE: a station being removed from the station table
@@ -1337,7 +1348,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw);
1337 * 1348 *
1338 * This function frees everything that was allocated, including the 1349 * This function frees everything that was allocated, including the
1339 * private data for the driver. You must call ieee80211_unregister_hw() 1350 * private data for the driver. You must call ieee80211_unregister_hw()
1340 * before calling this function 1351 * before calling this function.
1341 * 1352 *
1342 * @hw: the hardware to free 1353 * @hw: the hardware to free
1343 */ 1354 */
@@ -1408,7 +1419,7 @@ void ieee80211_tx_status(struct ieee80211_hw *hw,
1408 struct sk_buff *skb); 1419 struct sk_buff *skb);
1409 1420
1410/** 1421/**
1411 * ieee80211_tx_status_irqsafe - irq-safe transmit status callback 1422 * ieee80211_tx_status_irqsafe - IRQ-safe transmit status callback
1412 * 1423 *
1413 * Like ieee80211_tx_status() but can be called in IRQ context 1424 * Like ieee80211_tx_status() but can be called in IRQ context
1414 * (internally defers to a tasklet.) 1425 * (internally defers to a tasklet.)
@@ -1586,6 +1597,8 @@ unsigned int ieee80211_hdrlen(__le16 fc);
1586 * @keyconf: the parameter passed with the set key 1597 * @keyconf: the parameter passed with the set key
1587 * @skb: the skb for which the key is needed 1598 * @skb: the skb for which the key is needed
1588 * @rc4key: a buffer to which the key will be written 1599 * @rc4key: a buffer to which the key will be written
1600 * @type: TBD
1601 * @key: TBD
1589 */ 1602 */
1590void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf, 1603void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf,
1591 struct sk_buff *skb, 1604 struct sk_buff *skb,
@@ -1636,7 +1649,7 @@ void ieee80211_wake_queues(struct ieee80211_hw *hw);
1636void ieee80211_scan_completed(struct ieee80211_hw *hw); 1649void ieee80211_scan_completed(struct ieee80211_hw *hw);
1637 1650
1638/** 1651/**
1639 * ieee80211_iterate_active_interfaces- iterate active interfaces 1652 * ieee80211_iterate_active_interfaces - iterate active interfaces
1640 * 1653 *
1641 * This function iterates over the interfaces associated with a given 1654 * This function iterates over the interfaces associated with a given
1642 * hardware that are currently active and calls the callback for them. 1655 * hardware that are currently active and calls the callback for them.
@@ -1703,7 +1716,7 @@ void ieee80211_start_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u16 tid);
1703 * 1716 *
1704 * This function must be called by low level driver once it has 1717 * This function must be called by low level driver once it has
1705 * finished with preparations for the BA session. 1718 * finished with preparations for the BA session.
1706 * This version of the function is irq safe. 1719 * This version of the function is IRQ-safe.
1707 */ 1720 */
1708void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra, 1721void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra,
1709 u16 tid); 1722 u16 tid);
@@ -1743,7 +1756,7 @@ void ieee80211_stop_tx_ba_cb(struct ieee80211_hw *hw, u8 *ra, u8 tid);
1743 * 1756 *
1744 * This function must be called by low level driver once it has 1757 * This function must be called by low level driver once it has
1745 * finished with preparations for the BA session tear down. 1758 * finished with preparations for the BA session tear down.
1746 * This version of the function is irq safe. 1759 * This version of the function is IRQ-safe.
1747 */ 1760 */
1748void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra, 1761void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra,
1749 u16 tid); 1762 u16 tid);
@@ -1751,7 +1764,7 @@ void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra,
1751/** 1764/**
1752 * ieee80211_notify_mac - low level driver notification 1765 * ieee80211_notify_mac - low level driver notification
1753 * @hw: pointer as obtained from ieee80211_alloc_hw(). 1766 * @hw: pointer as obtained from ieee80211_alloc_hw().
1754 * @notification_types: enum ieee80211_notification_types 1767 * @notif_type: enum ieee80211_notification_types
1755 * 1768 *
1756 * This function must be called by low level driver to inform mac80211 of 1769 * This function must be called by low level driver to inform mac80211 of
1757 * low level driver status change or force mac80211 to re-assoc for low 1770 * low level driver status change or force mac80211 to re-assoc for low