diff options
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 9fdf982d1286..eaa4affd40cd 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -97,6 +97,20 @@ enum ieee80211_max_queues { | |||
97 | }; | 97 | }; |
98 | 98 | ||
99 | /** | 99 | /** |
100 | * enum ieee80211_ac_numbers - AC numbers as used in mac80211 | ||
101 | * @IEEE80211_AC_VO: voice | ||
102 | * @IEEE80211_AC_VI: video | ||
103 | * @IEEE80211_AC_BE: best effort | ||
104 | * @IEEE80211_AC_BK: background | ||
105 | */ | ||
106 | enum ieee80211_ac_numbers { | ||
107 | IEEE80211_AC_VO = 0, | ||
108 | IEEE80211_AC_VI = 1, | ||
109 | IEEE80211_AC_BE = 2, | ||
110 | IEEE80211_AC_BK = 3, | ||
111 | }; | ||
112 | |||
113 | /** | ||
100 | * struct ieee80211_tx_queue_params - transmit queue configuration | 114 | * struct ieee80211_tx_queue_params - transmit queue configuration |
101 | * | 115 | * |
102 | * The information provided in this structure is required for QoS | 116 | * The information provided in this structure is required for QoS |
@@ -205,6 +219,7 @@ enum ieee80211_bss_change { | |||
205 | * @basic_rates: bitmap of basic rates, each bit stands for an | 219 | * @basic_rates: bitmap of basic rates, each bit stands for an |
206 | * index into the rate table configured by the driver in | 220 | * index into the rate table configured by the driver in |
207 | * the current band. | 221 | * the current band. |
222 | * @mcast_rate: per-band multicast rate index + 1 (0: disabled) | ||
208 | * @bssid: The BSSID for this BSS | 223 | * @bssid: The BSSID for this BSS |
209 | * @enable_beacon: whether beaconing should be enabled or not | 224 | * @enable_beacon: whether beaconing should be enabled or not |
210 | * @channel_type: Channel type for this BSS -- the hardware might be | 225 | * @channel_type: Channel type for this BSS -- the hardware might be |
@@ -244,6 +259,7 @@ struct ieee80211_bss_conf { | |||
244 | u16 assoc_capability; | 259 | u16 assoc_capability; |
245 | u64 timestamp; | 260 | u64 timestamp; |
246 | u32 basic_rates; | 261 | u32 basic_rates; |
262 | int mcast_rate[IEEE80211_NUM_BANDS]; | ||
247 | u16 ht_operation_mode; | 263 | u16 ht_operation_mode; |
248 | s32 cqm_rssi_thold; | 264 | s32 cqm_rssi_thold; |
249 | u32 cqm_rssi_hyst; | 265 | u32 cqm_rssi_hyst; |
@@ -1652,6 +1668,11 @@ enum ieee80211_ampdu_mlme_action { | |||
1652 | * and IV16) for the given key from hardware. | 1668 | * and IV16) for the given key from hardware. |
1653 | * The callback must be atomic. | 1669 | * The callback must be atomic. |
1654 | * | 1670 | * |
1671 | * @set_frag_threshold: Configuration of fragmentation threshold. Assign this | ||
1672 | * if the device does fragmentation by itself; if this callback is | ||
1673 | * implemented then the stack will not do fragmentation. | ||
1674 | * The callback can sleep. | ||
1675 | * | ||
1655 | * @set_rts_threshold: Configuration of RTS threshold (if device needs it) | 1676 | * @set_rts_threshold: Configuration of RTS threshold (if device needs it) |
1656 | * The callback can sleep. | 1677 | * The callback can sleep. |
1657 | * | 1678 | * |
@@ -1724,6 +1745,13 @@ enum ieee80211_ampdu_mlme_action { | |||
1724 | * completion of the channel switch. | 1745 | * completion of the channel switch. |
1725 | * | 1746 | * |
1726 | * @napi_poll: Poll Rx queue for incoming data frames. | 1747 | * @napi_poll: Poll Rx queue for incoming data frames. |
1748 | * | ||
1749 | * @set_antenna: Set antenna configuration (tx_ant, rx_ant) on the device. | ||
1750 | * Parameters are bitmaps of allowed antennas to use for TX/RX. Drivers may | ||
1751 | * reject TX/RX mask combinations they cannot support by returning -EINVAL | ||
1752 | * (also see nl80211.h @NL80211_ATTR_WIPHY_ANTENNA_TX). | ||
1753 | * | ||
1754 | * @get_antenna: Get current antenna configuration from device (tx_ant, rx_ant). | ||
1727 | */ | 1755 | */ |
1728 | struct ieee80211_ops { | 1756 | struct ieee80211_ops { |
1729 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); | 1757 | int (*tx)(struct ieee80211_hw *hw, struct sk_buff *skb); |
@@ -1765,6 +1793,7 @@ struct ieee80211_ops { | |||
1765 | struct ieee80211_low_level_stats *stats); | 1793 | struct ieee80211_low_level_stats *stats); |
1766 | void (*get_tkip_seq)(struct ieee80211_hw *hw, u8 hw_key_idx, | 1794 | void (*get_tkip_seq)(struct ieee80211_hw *hw, u8 hw_key_idx, |
1767 | u32 *iv32, u16 *iv16); | 1795 | u32 *iv32, u16 *iv16); |
1796 | int (*set_frag_threshold)(struct ieee80211_hw *hw, u32 value); | ||
1768 | int (*set_rts_threshold)(struct ieee80211_hw *hw, u32 value); | 1797 | int (*set_rts_threshold)(struct ieee80211_hw *hw, u32 value); |
1769 | int (*sta_add)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 1798 | int (*sta_add)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
1770 | struct ieee80211_sta *sta); | 1799 | struct ieee80211_sta *sta); |
@@ -1793,6 +1822,8 @@ struct ieee80211_ops { | |||
1793 | void (*channel_switch)(struct ieee80211_hw *hw, | 1822 | void (*channel_switch)(struct ieee80211_hw *hw, |
1794 | struct ieee80211_channel_switch *ch_switch); | 1823 | struct ieee80211_channel_switch *ch_switch); |
1795 | int (*napi_poll)(struct ieee80211_hw *hw, int budget); | 1824 | int (*napi_poll)(struct ieee80211_hw *hw, int budget); |
1825 | int (*set_antenna)(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant); | ||
1826 | int (*get_antenna)(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant); | ||
1796 | }; | 1827 | }; |
1797 | 1828 | ||
1798 | /** | 1829 | /** |
@@ -2501,6 +2532,21 @@ void ieee80211_sta_block_awake(struct ieee80211_hw *hw, | |||
2501 | struct ieee80211_sta *pubsta, bool block); | 2532 | struct ieee80211_sta *pubsta, bool block); |
2502 | 2533 | ||
2503 | /** | 2534 | /** |
2535 | * ieee80211_ap_probereq_get - retrieve a Probe Request template | ||
2536 | * @hw: pointer obtained from ieee80211_alloc_hw(). | ||
2537 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. | ||
2538 | * | ||
2539 | * Creates a Probe Request template which can, for example, be uploaded to | ||
2540 | * hardware. The template is filled with bssid, ssid and supported rate | ||
2541 | * information. This function must only be called from within the | ||
2542 | * .bss_info_changed callback function and only in managed mode. The function | ||
2543 | * is only useful when the interface is associated, otherwise it will return | ||
2544 | * NULL. | ||
2545 | */ | ||
2546 | struct sk_buff *ieee80211_ap_probereq_get(struct ieee80211_hw *hw, | ||
2547 | struct ieee80211_vif *vif); | ||
2548 | |||
2549 | /** | ||
2504 | * ieee80211_beacon_loss - inform hardware does not receive beacons | 2550 | * ieee80211_beacon_loss - inform hardware does not receive beacons |
2505 | * | 2551 | * |
2506 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. | 2552 | * @vif: &struct ieee80211_vif pointer from the add_interface callback. |
@@ -2640,7 +2686,7 @@ enum rate_control_changed { | |||
2640 | * @rate_idx_mask: user-requested rate mask (not MCS for now) | 2686 | * @rate_idx_mask: user-requested rate mask (not MCS for now) |
2641 | * @skb: the skb that will be transmitted, the control information in it needs | 2687 | * @skb: the skb that will be transmitted, the control information in it needs |
2642 | * to be filled in | 2688 | * to be filled in |
2643 | * @ap: whether this frame is sent out in AP mode | 2689 | * @bss: whether this frame is sent out in AP or IBSS mode |
2644 | */ | 2690 | */ |
2645 | struct ieee80211_tx_rate_control { | 2691 | struct ieee80211_tx_rate_control { |
2646 | struct ieee80211_hw *hw; | 2692 | struct ieee80211_hw *hw; |
@@ -2651,7 +2697,7 @@ struct ieee80211_tx_rate_control { | |||
2651 | bool rts, short_preamble; | 2697 | bool rts, short_preamble; |
2652 | u8 max_rate_idx; | 2698 | u8 max_rate_idx; |
2653 | u32 rate_idx_mask; | 2699 | u32 rate_idx_mask; |
2654 | bool ap; | 2700 | bool bss; |
2655 | }; | 2701 | }; |
2656 | 2702 | ||
2657 | struct rate_control_ops { | 2703 | struct rate_control_ops { |