1STRUCT IEEE80211_TX_(9) The basic mac80211 driver inte STRUCT IEEE80211_TX_(9)
2
3
4
6 struct_ieee80211_tx_rate - rate selection/status
7
9 struct ieee80211_tx_rate {
10 s8 idx;
11 u16 count:5;
12 u16 flags:11;
13 };
14
16 idx
17 rate index to attempt to send with
18
19 count
20 number of tries in this rate before going to the next rate
21
22 flags
23 rate control flags (enum mac80211_rate_control_flags)
24
26 A value of -1 for idx indicates an invalid rate and, if used in an
27 array of retry rates, that no more rates should be tried.
28
29 When used for transmit status reporting, the driver should always
30 report the rate along with the flags it used.
31
32 struct ieee80211_tx_info contains an array of these structs in the
33 control information, and it will be filled by the rate control
34 algorithm according to what should be sent. For example, if this array
35 contains, in the format { <idx>, <count> } the
36
38 :
39
40 { 3, 2 }, { 2, 2 }, { 1, 4 }, { -1, 0 }, { -1, 0 }
41
42 then this means that the frame should be transmitted up to twice at
43 rate 3, up to twice at rate 2, and up to four times at rate 1 if it
44 doesn't get acknowledged. Say it gets acknowledged by the peer after
45 the fifth attempt, the status
46
48 :
49
50 { 3, 2 }, { 2, 2 }, { 1, 1 }, { -1, 0 } ...
51
52 since it was transmitted twice at rate 3, twice at rate 2 and once at
53 rate 1 after which we received an acknowledgement.
54
56 Johannes Berg <johannes@sipsolutions.net>
57 Author.
58
60Kernel Hackers Manual 3.10 June 2019 STRUCT IEEE80211_TX_(9)