nexmon – Blame information for rev 1
?pathlinks?
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 */ |