| /* |
| * Copyright (c) 2019 The Linux Foundation. All rights reserved. |
| * |
| * Permission to use, copy, modify, and/or distribute this software for |
| * any purpose with or without fee is hereby granted, provided that the |
| * above copyright notice and this permission notice appear in all |
| * copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
| * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
| * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
| * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
| * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| * PERFORMANCE OF THIS SOFTWARE. |
| */ |
| |
| // |
| // DO NOT EDIT! This file is automatically generated |
| // These definitions are tied to a particular hardware layout |
| |
| |
| #ifndef _L_SIG_A_INFO_H_ |
| #define _L_SIG_A_INFO_H_ |
| #if !defined(__ASSEMBLER__) |
| #endif |
| |
| |
| // ################ START SUMMARY ################# |
| // |
| // Dword Fields |
| // 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] |
| // |
| // ################ END SUMMARY ################# |
| |
| #define NUM_OF_DWORDS_L_SIG_A_INFO 1 |
| |
| struct l_sig_a_info { |
| uint32_t rate : 4, //[3:0] |
| lsig_reserved : 1, //[4] |
| length : 12, //[16:5] |
| parity : 1, //[17] |
| tail : 6, //[23:18] |
| pkt_type : 4, //[27:24] |
| captured_implicit_sounding : 1, //[28] |
| reserved : 3; //[31:29] |
| }; |
| |
| /* |
| |
| rate |
| |
| This format is originally defined for OFDM as a 4 bit |
| field but the 5th bit was added to indicate 11b formatted |
| frames. In the standard bit [4] is specified as reserved. |
| For 11b frames this L-SIG is transformed in the PHY into the |
| 11b preamble format. The following are the rates: |
| |
| <enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps) |
| |
| <enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps) |
| |
| <enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps) |
| |
| <enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps) |
| |
| <enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps) |
| |
| <enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps) |
| |
| <enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps) |
| |
| <enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps) |
| |
| <legal 8-15> |
| |
| lsig_reserved |
| |
| Reserved: Should be set to 0 by the MAC and ignored by |
| the PHY |
| |
| <legal 0> |
| |
| length |
| |
| The length indicates the number of octets in this MPDU. |
| Note that when using mixed mode 11n preamble this length |
| provides the spoofed length for the PPDU. This length |
| provides part of the information to derive the actually PPDU |
| length. For legacy OFDM and 11B frames the maximum length |
| is |
| |
| <legal all> |
| |
| parity |
| |
| 11a/n/ac TX: This field provides even parity over the |
| first 18 bits of the signal field which means that the sum |
| of 1s in the signal field will always be even on |
| |
| 11a/n/ac RX: this field contains the received parity |
| field from the L-SIG symbol for the current packet. |
| |
| <legal 0-1> |
| |
| tail |
| |
| The 6 bits of tail is always set to 0 is used to flush |
| the BCC encoder and decoder. <legal 0> |
| |
| pkt_type |
| |
| Only used on the RX side. |
| |
| Note: This is not really part of L-SIG |
| |
| |
| |
| Packet type: |
| |
| <enum 0 dot11a>802.11a PPDU type |
| |
| <enum 1 dot11b>802.11b PPDU type |
| |
| <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type |
| |
| <enum 3 dot11ac>802.11ac PPDU type |
| |
| <enum 4 dot11ax>802.11ax PPDU type |
| |
| <enum 5 dot11ba>802.11ba (WUR) PPDU type |
| |
| captured_implicit_sounding |
| |
| Only used on the RX side. |
| |
| Note: This is not really part of L-SIG |
| |
| |
| |
| This indicates that the PHY has captured implicit |
| sounding. |
| |
| reserved |
| |
| Reserved: Should be set to 0 by the transmitting MAC and |
| ignored by the PHY <legal 0> |
| */ |
| |
| |
| /* Description L_SIG_A_INFO_0_RATE |
| |
| This format is originally defined for OFDM as a 4 bit |
| field but the 5th bit was added to indicate 11b formatted |
| frames. In the standard bit [4] is specified as reserved. |
| For 11b frames this L-SIG is transformed in the PHY into the |
| 11b preamble format. The following are the rates: |
| |
| <enum 8 ofdm_48_mbps> 64-QAM 2/3 (48 Mbps) |
| |
| <enum 9 ofdm_24_mbps> 16-QAM 1/2 (24 Mbps) |
| |
| <enum 10 ofdm_12_mbps> QPSK 1/2 (12 Mbps) |
| |
| <enum 11 ofdm_6_mbps> BPSK 1/2 (6 Mbps) |
| |
| <enum 12 ofdm_54_mbps> 64-QAM 3/4 (54 Mbps) |
| |
| <enum 13 ofdm_36_mbps> 16-QAM 3/4 (36 Mbps) |
| |
| <enum 14 ofdm_18_mbps> QPSK 1/2 (18 Mbps) |
| |
| <enum 15 ofdm_9_mbps> BPSK 3/4 (9 Mbps) |
| |
| <legal 8-15> |
| */ |
| #define L_SIG_A_INFO_0_RATE_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_RATE_LSB 0 |
| #define L_SIG_A_INFO_0_RATE_MASK 0x0000000f |
| |
| /* Description L_SIG_A_INFO_0_LSIG_RESERVED |
| |
| Reserved: Should be set to 0 by the MAC and ignored by |
| the PHY |
| |
| <legal 0> |
| */ |
| #define L_SIG_A_INFO_0_LSIG_RESERVED_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_LSIG_RESERVED_LSB 4 |
| #define L_SIG_A_INFO_0_LSIG_RESERVED_MASK 0x00000010 |
| |
| /* Description L_SIG_A_INFO_0_LENGTH |
| |
| The length indicates the number of octets in this MPDU. |
| Note that when using mixed mode 11n preamble this length |
| provides the spoofed length for the PPDU. This length |
| provides part of the information to derive the actually PPDU |
| length. For legacy OFDM and 11B frames the maximum length |
| is |
| |
| <legal all> |
| */ |
| #define L_SIG_A_INFO_0_LENGTH_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_LENGTH_LSB 5 |
| #define L_SIG_A_INFO_0_LENGTH_MASK 0x0001ffe0 |
| |
| /* Description L_SIG_A_INFO_0_PARITY |
| |
| 11a/n/ac TX: This field provides even parity over the |
| first 18 bits of the signal field which means that the sum |
| of 1s in the signal field will always be even on |
| |
| 11a/n/ac RX: this field contains the received parity |
| field from the L-SIG symbol for the current packet. |
| |
| <legal 0-1> |
| */ |
| #define L_SIG_A_INFO_0_PARITY_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_PARITY_LSB 17 |
| #define L_SIG_A_INFO_0_PARITY_MASK 0x00020000 |
| |
| /* Description L_SIG_A_INFO_0_TAIL |
| |
| The 6 bits of tail is always set to 0 is used to flush |
| the BCC encoder and decoder. <legal 0> |
| */ |
| #define L_SIG_A_INFO_0_TAIL_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_TAIL_LSB 18 |
| #define L_SIG_A_INFO_0_TAIL_MASK 0x00fc0000 |
| |
| /* Description L_SIG_A_INFO_0_PKT_TYPE |
| |
| Only used on the RX side. |
| |
| Note: This is not really part of L-SIG |
| |
| |
| |
| Packet type: |
| |
| <enum 0 dot11a>802.11a PPDU type |
| |
| <enum 1 dot11b>802.11b PPDU type |
| |
| <enum 2 dot11n_mm>802.11n Mixed Mode PPDU type |
| |
| <enum 3 dot11ac>802.11ac PPDU type |
| |
| <enum 4 dot11ax>802.11ax PPDU type |
| |
| <enum 5 dot11ba>802.11ba (WUR) PPDU type |
| */ |
| #define L_SIG_A_INFO_0_PKT_TYPE_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_PKT_TYPE_LSB 24 |
| #define L_SIG_A_INFO_0_PKT_TYPE_MASK 0x0f000000 |
| |
| /* Description L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING |
| |
| Only used on the RX side. |
| |
| Note: This is not really part of L-SIG |
| |
| |
| |
| This indicates that the PHY has captured implicit |
| sounding. |
| */ |
| #define L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING_LSB 28 |
| #define L_SIG_A_INFO_0_CAPTURED_IMPLICIT_SOUNDING_MASK 0x10000000 |
| |
| /* Description L_SIG_A_INFO_0_RESERVED |
| |
| Reserved: Should be set to 0 by the transmitting MAC and |
| ignored by the PHY <legal 0> |
| */ |
| #define L_SIG_A_INFO_0_RESERVED_OFFSET 0x00000000 |
| #define L_SIG_A_INFO_0_RESERVED_LSB 29 |
| #define L_SIG_A_INFO_0_RESERVED_MASK 0xe0000000 |
| |
| |
| #endif // _L_SIG_A_INFO_H_ |