Lines Matching defs:rate
578 * index into the rate table configured by the driver in
580 * @beacon_rate: associated AP's beacon TX rate
581 * @mcast_rate: per-band multicast rate index + 1 (0: disabled)
638 * @beacon_tx_rate: The configured beacon transmit rate that needs to be passed
639 * to driver when rate control is offloaded to firmware.
820 * set by rate control algorithms to indicate probe rate, will
857 * @IEEE80211_TX_CTL_NO_CCK_RATE: This frame will be sent at non CCK rate.
859 * frames not being sent at CCK rate in 2GHz band.
865 * @IEEE80211_TX_CTL_USE_MINRATE: This frame will be sent at lowest rate.
866 * This flag is used to send nullfunc frame at minimum rate when
925 * @IEEE80211_TX_CTRL_RATE_INJECT: This frame is injected with rate information
992 * enum mac80211_rate_control_flags - per-rate flags set by the
995 * These flags are set by the Rate control algorithm for each rate during tx,
998 * @IEEE80211_TX_RC_USE_RTS_CTS: Use RTS/CTS exchange for this rate.
1002 * @IEEE80211_TX_RC_MCS: HT rate.
1003 * @IEEE80211_TX_RC_VHT_MCS: VHT MCS rate, in this case the idx field is split
1005 * @IEEE80211_TX_RC_GREEN_FIELD: Indicates whether this rate should be used in
1014 * @IEEE80211_TX_RC_SHORT_GI: Short Guard interval should be used for this rate.
1021 /* rate index is an HT/VHT MCS instead of an index */
1039 /* maximum number of rate stages */
1042 /* maximum number of rate table entries */
1046 * struct ieee80211_tx_rate - rate selection/status
1048 * @idx: rate index to attempt to send with
1049 * @flags: rate control flags (&enum mac80211_rate_control_flags)
1050 * @count: number of tries in this rate before going to the next rate
1052 * A value of -1 for @idx indicates an invalid rate and, if used
1056 * always report the rate along with the flags it used.
1059 * in the control information, and it will be filled by the rate
1067 * up to twice at rate 3, up to twice at rate 2, and up to four
1068 * times at rate 1 if it doesn't get acknowledged. Say it gets
1074 * since it was transmitted twice at rate 3, twice at rate 2
1075 * and once at rate 1 after which we received an acknowledgement.
1085 static inline void ieee80211_rate_set_vht(struct ieee80211_tx_rate *rate,
1090 rate->idx = ((nss - 1) << 4) | mcs;
1094 ieee80211_rate_get_vht_mcs(const struct ieee80211_tx_rate *rate)
1096 return rate->idx & 0xF;
1100 ieee80211_rate_get_vht_nss(const struct ieee80211_tx_rate *rate)
1102 return (rate->idx >> 4) + 1;
1122 * @control.rts_cts_rate_idx: rate for RTS or CTS
1126 * @control.skip_table: skip externally configured rate table
1166 /* rate control */
1177 /* only needed before rate control */
1236 * @rate_idx The actual used rate.
1237 * @try_count How often the rate was tried.
1249 * struct ieee80211_tx_status - extended tx status info for rate control
1309 * in the TX status but the rate control information (it does clear
1326 /* clear the rate counts */
1526 * @rate_idx: index of data rate into band's supported rates or MCS index if
1536 * @eht: EHT specific rate information
2184 * struct ieee80211_sta_rates - station rate selection table
2187 * @rate: transmit rates/flags to be used by default.
2198 } rate[IEEE80211_TX_RATE_TABLE_SIZE];
2237 * @max_rc_amsdu_len: Maximum A-MSDU size in bytes recommended by rate control.
2319 * @rates: rate control selection table
2454 * The hardware or firmware includes rate control, and cannot be
2455 * controlled by the stack. As such, no rate control algorithm
2456 * should be instantiated, and the TX rate reported to userspace
2457 * will be taken from the TX status instead of the rate control
2561 * @IEEE80211_HW_SUPPORTS_RC_TABLE: The driver supports using a rate
2562 * selection table provided by the rate control algorithm.
2610 * When not using minstrel/minstrel_ht rate control, the driver must
2611 * limit the maximum A-MSDU size based on the current tx rate by setting
2643 * @IEEE80211_HW_SUPPORTS_VHT_EXT_NSS_BW: (Hardware) rate control supports VHT
2645 * the selected rate control algorithm sets %RATE_CTRL_CAPA_VHT_EXT_NSS_BW
2646 * but if the rate control is built-in then it must be set by the driver.
2780 * @rate_control_algorithm: rate control algorithm for this hardware.
2793 * @max_rates: maximum number of alternate rate retry stages the hw
2795 * @max_report_rates: maximum number of alternate rate retry stages
3583 * @IEEE80211_RC_SUPP_RATES_CHANGED: The supported rate set of this peer
3746 * individual link. e.g. legacy/HT/VHT/... rate information.
3914 * uses hardware rate control (%IEEE80211_HW_HAS_RATE_CONTROL) since
3915 * otherwise the rate control algorithm is notified directly.
3917 * @sta_rate_tbl_update: Notifies the driver that the rate table changed. This
3918 * is only used if the configured rate control algorithm actually uses
3919 * the new rate table API, and is therefore optional. Must be atomic.
4023 * @set_bitrate_mask: Set a mask of rates to be used for rate control selection
5106 * Call this function in a driver with per-packet rate selection support
5107 * to combine the rate info in the packet tx info with the most recent
5108 * rate selection table for the station entry.
5113 * @dest: buffer for extracted rate/retry information
5126 * to a station. A driver for a device that does rate control in firmware can
5139 * ieee80211_tx_rate_update - transmit rate update callback
5143 * in updating the tx rate in data path.
5146 * @pubsta: the station to update the tx rate for.
5635 * @rate: the rate at which the frame is going to be transmitted.
5638 * length and transmission rate (in 100kbps).
5646 struct ieee80211_rate *rate);
6314 * hardware it can in some cases be calculated from the rate and known frame
6426 * hardware. The template is filled with bssid, ssid and supported rate
6708 * struct ieee80211_tx_rate_control - rate control information for/from RC algo
6715 * @reported_rate: The rate control algorithm can fill this in to indicate
6716 * which rate should be reported to userspace as the current rate and
6717 * used for rate calculations in the mesh network.
6721 * if the selected rate supports it
6722 * @rate_idx_mask: user-requested (legacy) rate mask
6723 * @rate_idx_mcs_mask: user-requested MCS rate mask (NULL if not in use)
6739 * enum rate_control_capabilities - rate control capabilities
6808 /* warn when we cannot find a rate. */
6828 * rate_control_set_rates - pass the sta rate selection to mac80211/driver
6830 * When not doing a rate control probe to test rates, rate control should pass
6831 * its rate selection to mac80211. If the driver supports receiving a station
6832 * rate table, it will use it to ensure that frames are always sent based on
6833 * the most recent rate control module decision.
6837 * @rates: new tx rate set to be used for this station.
7008 * To accurately parse and take into account rate and retransmission fields,
7317 * rate information in the RX status struct and the frame length.
7320 * @status: &struct ieee80211_rx_status containing the transmission rate
7332 * rate information in the TX info struct and the frame length.