diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2008-04-30 12:51:21 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-05-07 15:02:26 -0400 |
commit | e100bb64bf7cdeae7f742a65ee1985649a7fd1b4 (patch) | |
tree | 87ed4147c4dc583aba7c27b0717febb6fabdc76a /include/net/mac80211.h | |
parent | 36fc6757fe711def63ea3686bf6ed475d714e114 (diff) |
mac80211: QoS related cleanups
This
* makes the queue number passed to drivers a u16
(as it will be with skb_get_queue_mapping)
* removes the useless queue number defines
* splits hw->queues into hw->queues/ampdu_queues
* removes the debugfs files for per-queue counters
* removes some dead QoS code
* removes the beacon queue configuration for IBSS
so that the drivers now never get a queue number
bigger than (hw->queues + hw->ampdu_queues - 1)
for tx and only in the range 0..hw->queues-1 for
conf_tx.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/mac80211.h')
-rw-r--r-- | include/net/mac80211.h | 66 |
1 files changed, 24 insertions, 42 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index ef701d6fd66a..75a34609eed7 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -98,6 +98,18 @@ struct ieee80211_ht_bss_info { | |||
98 | }; | 98 | }; |
99 | 99 | ||
100 | /** | 100 | /** |
101 | * enum ieee80211_max_queues - maximum number of queues | ||
102 | * | ||
103 | * @IEEE80211_MAX_QUEUES: Maximum number of regular device queues. | ||
104 | * @IEEE80211_MAX_AMPDU_QUEUES: Maximum number of queues usable | ||
105 | * for A-MPDU operation. | ||
106 | */ | ||
107 | enum ieee80211_max_queues { | ||
108 | IEEE80211_MAX_QUEUES = 16, | ||
109 | IEEE80211_MAX_AMPDU_QUEUES = 16, | ||
110 | }; | ||
111 | |||
112 | /** | ||
101 | * struct ieee80211_tx_queue_params - transmit queue configuration | 113 | * struct ieee80211_tx_queue_params - transmit queue configuration |
102 | * | 114 | * |
103 | * The information provided in this structure is required for QoS | 115 | * The information provided in this structure is required for QoS |
@@ -129,42 +141,6 @@ struct ieee80211_tx_queue_stats { | |||
129 | unsigned int count; | 141 | unsigned int count; |
130 | }; | 142 | }; |
131 | 143 | ||
132 | /** | ||
133 | * enum ieee80211_tx_queue - transmit queue number | ||
134 | * | ||
135 | * These constants are used with some callbacks that take a | ||
136 | * queue number to set parameters for a queue. | ||
137 | * | ||
138 | * @IEEE80211_TX_QUEUE_DATA0: data queue 0 | ||
139 | * @IEEE80211_TX_QUEUE_DATA1: data queue 1 | ||
140 | * @IEEE80211_TX_QUEUE_DATA2: data queue 2 | ||
141 | * @IEEE80211_TX_QUEUE_DATA3: data queue 3 | ||
142 | * @IEEE80211_TX_QUEUE_DATA4: data queue 4 | ||
143 | * @IEEE80211_TX_QUEUE_SVP: ?? | ||
144 | * @NUM_TX_DATA_QUEUES: number of data queues | ||
145 | * @IEEE80211_TX_QUEUE_AFTER_BEACON: transmit queue for frames to be | ||
146 | * sent after a beacon | ||
147 | * @IEEE80211_TX_QUEUE_BEACON: transmit queue for beacon frames | ||
148 | * @NUM_TX_DATA_QUEUES_AMPDU: adding more queues for A-MPDU | ||
149 | */ | ||
150 | enum ieee80211_tx_queue { | ||
151 | IEEE80211_TX_QUEUE_DATA0, | ||
152 | IEEE80211_TX_QUEUE_DATA1, | ||
153 | IEEE80211_TX_QUEUE_DATA2, | ||
154 | IEEE80211_TX_QUEUE_DATA3, | ||
155 | IEEE80211_TX_QUEUE_DATA4, | ||
156 | IEEE80211_TX_QUEUE_SVP, | ||
157 | |||
158 | NUM_TX_DATA_QUEUES, | ||
159 | |||
160 | /* due to stupidity in the sub-ioctl userspace interface, the items in | ||
161 | * this struct need to have fixed values. As soon as it is removed, we can | ||
162 | * fix these entries. */ | ||
163 | IEEE80211_TX_QUEUE_AFTER_BEACON = 6, | ||
164 | IEEE80211_TX_QUEUE_BEACON = 7, | ||
165 | NUM_TX_DATA_QUEUES_AMPDU = 16 | ||
166 | }; | ||
167 | |||
168 | struct ieee80211_low_level_stats { | 144 | struct ieee80211_low_level_stats { |
169 | unsigned int dot11ACKFailureCount; | 145 | unsigned int dot11ACKFailureCount; |
170 | unsigned int dot11RTSFailureCount; | 146 | unsigned int dot11RTSFailureCount; |
@@ -315,7 +291,7 @@ struct ieee80211_tx_control { | |||
315 | * position represents antenna number used */ | 291 | * position represents antenna number used */ |
316 | u8 icv_len; /* length of the ICV/MIC field in octets */ | 292 | u8 icv_len; /* length of the ICV/MIC field in octets */ |
317 | u8 iv_len; /* length of the IV field in octets */ | 293 | u8 iv_len; /* length of the IV field in octets */ |
318 | u8 queue; /* hardware queue to use for this frame; | 294 | u16 queue; /* hardware queue to use for this frame; |
319 | * 0 = highest, hw->queues-1 = lowest */ | 295 | * 0 = highest, hw->queues-1 = lowest */ |
320 | u16 aid; /* Station AID */ | 296 | u16 aid; /* Station AID */ |
321 | int type; /* internal */ | 297 | int type; /* internal */ |
@@ -772,7 +748,14 @@ enum ieee80211_hw_flags { | |||
772 | * @max_noise: like @max_rssi, but for the noise value. | 748 | * @max_noise: like @max_rssi, but for the noise value. |
773 | * | 749 | * |
774 | * @queues: number of available hardware transmit queues for | 750 | * @queues: number of available hardware transmit queues for |
775 | * data packets. WMM/QoS requires at least four. | 751 | * data packets. WMM/QoS requires at least four, these |
752 | * queues need to have configurable access parameters. | ||
753 | * | ||
754 | * @ampdu_queues: number of available hardware transmit queues | ||
755 | * for A-MPDU packets, these have no access parameters | ||
756 | * because they're used only for A-MPDU frames. Note that | ||
757 | * mac80211 will not currently use any of the regular queues | ||
758 | * for aggregation. | ||
776 | * | 759 | * |
777 | * @rate_control_algorithm: rate control algorithm for this hardware. | 760 | * @rate_control_algorithm: rate control algorithm for this hardware. |
778 | * If unset (NULL), the default algorithm will be used. Must be | 761 | * If unset (NULL), the default algorithm will be used. Must be |
@@ -791,7 +774,7 @@ struct ieee80211_hw { | |||
791 | unsigned int extra_tx_headroom; | 774 | unsigned int extra_tx_headroom; |
792 | int channel_change_time; | 775 | int channel_change_time; |
793 | int vif_data_size; | 776 | int vif_data_size; |
794 | u8 queues; | 777 | u16 queues, ampdu_queues; |
795 | s8 max_rssi; | 778 | s8 max_rssi; |
796 | s8 max_signal; | 779 | s8 max_signal; |
797 | s8 max_noise; | 780 | s8 max_noise; |
@@ -1069,8 +1052,7 @@ enum ieee80211_ampdu_mlme_action { | |||
1069 | * of assocaited station or AP. | 1052 | * of assocaited station or AP. |
1070 | * | 1053 | * |
1071 | * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), | 1054 | * @conf_tx: Configure TX queue parameters (EDCF (aifs, cw_min, cw_max), |
1072 | * bursting) for a hardware TX queue. The @queue parameter uses the | 1055 | * bursting) for a hardware TX queue. Must be atomic. |
1073 | * %IEEE80211_TX_QUEUE_* constants. Must be atomic. | ||
1074 | * | 1056 | * |
1075 | * @get_tx_stats: Get statistics of the current TX queue status. This is used | 1057 | * @get_tx_stats: Get statistics of the current TX queue status. This is used |
1076 | * to get number of currently queued packets (queue length), maximum queue | 1058 | * to get number of currently queued packets (queue length), maximum queue |
@@ -1150,7 +1132,7 @@ struct ieee80211_ops { | |||
1150 | u32 short_retry, u32 long_retr); | 1132 | u32 short_retry, u32 long_retr); |
1151 | void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 1133 | void (*sta_notify)(struct ieee80211_hw *hw, struct ieee80211_vif *vif, |
1152 | enum sta_notify_cmd, const u8 *addr); | 1134 | enum sta_notify_cmd, const u8 *addr); |
1153 | int (*conf_tx)(struct ieee80211_hw *hw, int queue, | 1135 | int (*conf_tx)(struct ieee80211_hw *hw, u16 queue, |
1154 | const struct ieee80211_tx_queue_params *params); | 1136 | const struct ieee80211_tx_queue_params *params); |
1155 | int (*get_tx_stats)(struct ieee80211_hw *hw, | 1137 | int (*get_tx_stats)(struct ieee80211_hw *hw, |
1156 | struct ieee80211_tx_queue_stats *stats); | 1138 | struct ieee80211_tx_queue_stats *stats); |