diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-08 18:39:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-08 18:39:41 -0400 |
commit | 54dceb008ffcbe003bea9017cad1227a83b6fc3f (patch) | |
tree | d4e3345ead16da19efe38dbf97ade38309f8b4f7 /include | |
parent | 11a100f844f6096787ab20e19f17d72abc957a8f (diff) | |
parent | b46372710ab536c0967f76be5dc41341583d4a54 (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.h | 6 | ||||
-rw-r--r-- | include/net/mac80211.h | 43 |
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 | ||
103 | struct ieee80211_hdr { | 105 | struct 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 | */ |
239 | enum mac80211_tx_control_flags { | 243 | enum 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 | */ |
565 | enum ieee80211_key_len { | 576 | enum 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 | */ |
1590 | void ieee80211_get_tkip_key(struct ieee80211_key_conf *keyconf, | 1603 | void 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); | |||
1636 | void ieee80211_scan_completed(struct ieee80211_hw *hw); | 1649 | void 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 | */ |
1708 | void ieee80211_start_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra, | 1721 | void 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 | */ |
1748 | void ieee80211_stop_tx_ba_cb_irqsafe(struct ieee80211_hw *hw, const u8 *ra, | 1761 | void 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 |