nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 #ifndef RATES_H
2 #define RATES_H
3  
4 /* Rate Defines */
5  
6 /* Valid rates for the Supported Rates and Extended Supported Rates IEs.
7 * Encoding is the rate in 500kbps units, rouding up for fractional values.
8 * 802.11-2012, section 6.5.5.2, DATA_RATE parameter enumerates all the values.
9 * The rate values cover DSSS, HR/DSSS, ERP, and OFDM phy rates.
10 * The defines below do not cover the rates specific to 10MHz, {3, 4.5, 27},
11 * and 5MHz, {1.5, 2.25, 3, 4.5, 13.5}, which are not supported by Broadcom devices.
12 */
13  
14 #define RATES_RATE_1M 2 /* 1 Mbps in 500kbps units DSSS */
15 #define RATES_RATE_2M 4 /* 2 Mbps in 500kbps units DSSS */
16 #define RATES_RATE_5M5 11 /* 5.5 Mbps in 500kbps units DSSS */
17 #define RATES_RATE_11M 22 /* 11 Mbps in 500kbps units DSSS */
18 #define RATES_RATE_6M 12 /* 6 Mbps in 500kbps units OFDM */
19 #define RATES_RATE_9M 18 /* 9 Mbps in 500kbps units OFDN */
20 #define RATES_RATE_12M 24 /* 12 Mbps in 500kbps units OFDM */
21 #define RATES_RATE_18M 36 /* 18 Mbps in 500kbps units OFDM */
22 #define RATES_RATE_24M 48 /* 24 Mbps in 500kbps units OFDM */
23 #define RATES_RATE_36M 72 /* 36 Mbps in 500kbps units OFDM */
24 #define RATES_RATE_48M 96 /* 48 Mbps in 500kbps units OFDM */
25 #define RATES_RATE_54M 108 /* 54 Mbps in 500kbps units OFDM */
26 #define RATES_RATE_MAX 108 /* highest rate (54 Mbps) in 500kbps units */
27  
28 #define RATES_RATE_MASK 0x000000FF
29  
30 #define RATES_VHT_MCS_MASK 0x0000000F
31 #define RATES_VHT_MCS_SHIFT 0
32 #define RATES_VHT_MCS(n) ((n << RATES_VHT_MCS_SHIFT) & RATES_VHT_MCS_MASK)
33  
34 #define RATES_VHT_NSS_MASK 0x000000F0
35 #define RATES_VHT_NSS_SHIFT 4
36 #define RATES_VHT_NSS(n) ((n << RATES_VHT_NSS_SHIFT) & RATES_VHT_NSS_MASK)
37  
38 #define RATES_HT_MCS_MASK 0x00000007
39 #define RATES_HT_MCS_SHIFT 0
40 #define RATES_HT_MCS(n) ((n << RATES_HT_MCS_SHIFT) & RATES_HT_MCS_MASK)
41  
42 #define RATES_HT_NSS_MASK 0x00000078
43 #define RATES_HT_NSS_SHIFT 3
44 #define RATES_HT_NSS(n) ((n << RATES_HT_NSS_SHIFT) & RATES_HT_NSS_MASK)
45  
46 #define RATES_TXEXP_MASK 0x00000300
47 #define RATES_TXEXP_SHIFT 8
48  
49 #define RATES_BW_MASK 0x00070000
50 #define RATES_BW_SHIFT 16
51  
52 #define RATES_STBC 0x00100000
53 #define RATES_TXBF 0x00200000
54 #define RATES_LDPC_CODING 0x00400000
55 #define RATES_SHORT_GI 0x00800000
56 #define RATES_SHORT_PREAMBLE 0x00800000
57 #define RATES_ENCODING_MASK 0x03000000
58 #define RATES_OVERRIDE_RATE 0x40000000
59 #define RATES_OVERRIDE_MODE 0x80000000
60  
61 #define RATES_ENCODE_RATE 0x00000000
62 #define RATES_ENCODE_HT 0x01000000
63 #define RATES_ENCODE_VHT 0x02000000
64  
65 #define BW_20MHZ 1
66 #define BW_40MHZ 2
67 #define BW_80MHZ 3
68 #define BW_160MHZ 4
69  
70 #define RATES_BW_UNSPECIFIED 0x00000000
71 #define RATES_BW_20MHZ (BW_20MHZ << RATES_BW_SHIFT)
72 #define RATES_BW_40MHZ (BW_40MHZ << RATES_BW_SHIFT)
73 #define RATES_BW_80MHZ (BW_80MHZ << RATES_BW_SHIFT)
74 #define RATES_BW_160MHZ (BW_160MHZ << RATES_BW_SHIFT)
75  
76 #define RATES_SET_HT(mcs) (RATES_OVERRIDE_RATE | RATES_OVERRIDE_MODE | RATES_ENCODE_HT | (RATES_HT_MCS_MASK & mcs))
77 #define RATES_SET_VHT(mcs) (RATES_OVERRIDE_RATE | RATES_OVERRIDE_MODE | RATES_ENCODE_VHT | RATES_VHT_NSS(1) | (RATES_VHT_MCS_MASK & mcs))
78  
79 #endif /* RATES_H */