1 /* 2 * Copyright (c) 2021 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 // $ATH_LICENSE_HW_HDR_C$ 18 // 19 // DO NOT EDIT! This file is automatically generated 20 // These definitions are tied to a particular hardware layout 21 22 23 #ifndef _L_SIG_A_INFO_H_ 24 #define _L_SIG_A_INFO_H_ 25 #if !defined(__ASSEMBLER__) 26 #endif 27 28 29 // ################ START SUMMARY ################# 30 // 31 // Dword Fields 32 // 0 rate[3:0], lsig_reserved[4], length[16:5], parity[17], tail[23:18], pkt_type[27:24], captured_implicit_sounding[28], reserved[31:29] 33 // 34 // ################ END SUMMARY ################# 35 36 #define NUM_OF_DWORDS_L_SIG_A_INFO 1 37 38 struct l_sig_a_info { 39 uint32_t rate : 4, //[3:0] 40 lsig_reserved : 1, //[4] 41 length : 12, //[16:5] 42 parity : 1, //[17] 43 tail : 6, //[23:18] 44 pkt_type : 4, //[27:24] 45 captured_implicit_sounding : 1, //[28] 46 reserved : 3; //[31:29] 47 }; 48 49 /* 50 51 rate 52 53 This format is originally defined for OFDM as a 4 bit 54 field but the 5th bit was added to indicate 11b formatted 55 frames. In the standard bit [4] is specified as reserved. 56 For 11b frames this L-SIG is transformed in the PHY into the 57 11b preamble format. The following are the rates: 58 59 <enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps) 60 61 <enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps) 62 63 <enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps) 64 65 <enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps) 66 67 <enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps) 68 69 <enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps) 70 71 <enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps) 72 73 <enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps) 74 75 <legal 8-15> 76 77 lsig_reserved 78 79 Reserved: Should be set to 0 by the MAC and ignored by 80 the PHY 81 82 <legal 0> 83 84 length 85 86 The length indicates the number of octets in this MPDU. 87 Note that when using mixed mode 11n preamble this length 88 provides the spoofed length for the PPDU. This length 89 provides part of the information to derive the actually PPDU 90 length. For legacy OFDM and 11B frames the maximum length 91 is 92 93 <legal all> 94 95 parity 96 97 11a/n/ac TX: This field provides even parity over the 98 first 18 bits of the signal field which means that the sum 99 of 1s in the signal field will always be even on 100 101 11a/n/ac RX: this field contains the received parity 102 field from the L-SIG symbol for the current packet. 103 104 <legal 0-1> 105 106 tail 107 108 The 6 bits of tail is always set to 0 is used to flush 109 the BCC encoder and decoder. <legal 0> 110 111 pkt_type 112 113 Only used on the RX side. 114 115 Note: This is not really part of L-SIG 116 117 118 119 Packet type: 120 121 <enum 0 dot11a>802.11a PPDU type 122 123 <enum 1 dot11b>802.11b PPDU type 124 125 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 126 127 <enum 3 dot11ac>802.11ac PPDU type 128 129 <enum 4 dot11ax>802.11ax PPDU type 130 131 captured_implicit_sounding 132 133 Only used on the RX side. 134 135 Note: This is not really part of L-SIG 136 137 138 139 This indicates that the PHY has captured implicit 140 sounding. 141 142 reserved 143 144 Reserved: Should be set to 0 by the transmitting MAC and 145 ignored by the PHY <legal 0> 146 */ 147 148 149 /* Description L_SIG_A_INFO_0_RATE 150 151 This format is originally defined for OFDM as a 4 bit 152 field but the 5th bit was added to indicate 11b formatted 153 frames. In the standard bit [4] is specified as reserved. 154 For 11b frames this L-SIG is transformed in the PHY into the 155 11b preamble format. The following are the rates: 156 157 <enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps) 158 159 <enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps) 160 161 <enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps) 162 163 <enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps) 164 165 <enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps) 166 167 <enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps) 168 169 <enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps) 170 171 <enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps) 172 173 <legal 8-15> 174 */ 175 #define L_SIG_A_INFO_0_RATE_OFFSET 0x00000000 176 #define L_SIG_A_INFO_0_RATE_LSB 0 177 #define L_SIG_A_INFO_0_RATE_MASK 0x0000000f 178 179 /* Description L_SIG_A_INFO_0_LSIG_RESERVED 180 181 Reserved: Should be set to 0 by the MAC and ignored by 182 the PHY 183 184 <legal 0> 185 */ 186 #define L_SIG_A_INFO_0_LSIG_RESERVED_OFFSET 0x00000000 187 #define L_SIG_A_INFO_0_LSIG_RESERVED_LSB 4 188 #define L_SIG_A_INFO_0_LSIG_RESERVED_MASK 0x00000010 189 190 /* Description L_SIG_A_INFO_0_LENGTH 191 192 The length indicates the number of octets in this MPDU. 193 Note that when using mixed mode 11n preamble this length 194 provides the spoofed length for the PPDU. This length 195 provides part of the information to derive the actually PPDU 196 length. For legacy OFDM and 11B frames the maximum length 197 is 198 199 <legal all> 200 */ 201 #define L_SIG_A_INFO_0_LENGTH_OFFSET 0x00000000 202 #define L_SIG_A_INFO_0_LENGTH_LSB 5 203 #define L_SIG_A_INFO_0_LENGTH_MASK 0x0001ffe0 204 205 /* Description L_SIG_A_INFO_0_PARITY 206 207 11a/n/ac TX: This field provides even parity over the 208 first 18 bits of the signal field which means that the sum 209 of 1s in the signal field will always be even on 210 211 11a/n/ac RX: this field contains the received parity 212 field from the L-SIG symbol for the current packet. 213 214 <legal 0-1> 215 */ 216 #define L_SIG_A_INFO_0_PARITY_OFFSET 0x00000000 217 #define L_SIG_A_INFO_0_PARITY_LSB 17 218 #define L_SIG_A_INFO_0_PARITY_MASK 0x00020000 219 220 /* Description L_SIG_A_INFO_0_TAIL 221 222 The 6 bits of tail is always set to 0 is used to flush 223 the BCC encoder and decoder. <legal 0> 224 */ 225 #define L_SIG_A_INFO_0_TAIL_OFFSET 0x00000000 226 #define L_SIG_A_INFO_0_TAIL_LSB 18 227 #define L_SIG_A_INFO_0_TAIL_MASK 0x00fc0000 228 229 /* Description L_SIG_A_INFO_0_PKT_TYPE 230 231 Only used on the RX side. 232 233 Note: This is not really part of L-SIG 234 235 236 237 Packet type: 238 239 <enum 0 dot11a>802.11a PPDU type 240 241 <enum 1 dot11b>802.11b PPDU type 242 243 <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type 244 245 <enum 3 dot11ac>802.11ac PPDU type 246 247 <enum 4 dot11ax>802.11ax PPDU type 248 */ 249 #define L_SIG_A_INFO_0_PKT_TYPE_OFFSET 0x00000000 250 #define L_SIG_A_INFO_0_PKT_TYPE_LSB 24 251 #define L_SIG_A_INFO_0_PKT_TYPE_MASK 0x0f000000 252 253 /* Description L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING 254 255 Only used on the RX side. 256 257 Note: This is not really part of L-SIG 258 259 260 261 This indicates that the PHY has captured implicit 262 sounding. 263 */ 264 #define L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING_OFFSET 0x00000000 265 #define L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING_LSB 28 266 #define L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING_MASK 0x10000000 267 268 /* Description L_SIG_A_INFO_0_RESERVED 269 270 Reserved: Should be set to 0 by the transmitting MAC and 271 ignored by the PHY <legal 0> 272 */ 273 #define L_SIG_A_INFO_0_RESERVED_OFFSET 0x00000000 274 #define L_SIG_A_INFO_0_RESERVED_LSB 29 275 #define L_SIG_A_INFO_0_RESERVED_MASK 0xe0000000 276 277 278 #endif // _L_SIG_A_INFO_H_ 279