| /* |
| * 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. |
| */ |
| |
| #ifndef _HE_SIG_A_MU_UL_INFO_H_ |
| #define _HE_SIG_A_MU_UL_INFO_H_ |
| #if !defined(__ASSEMBLER__) |
| #endif |
| |
| |
| // ################ START SUMMARY ################# |
| // |
| // Dword Fields |
| // 0 format_indication[0], bss_color_id[6:1], spatial_reuse[22:7], reserved_0a[23], transmit_bw[25:24], reserved_0b[31:26] |
| // 1 txop_duration[6:0], reserved_1a[15:7], crc[19:16], tail[25:20], reserved_1b[31:26] |
| // |
| // ################ END SUMMARY ################# |
| |
| #define NUM_OF_DWORDS_HE_SIG_A_MU_UL_INFO 2 |
| |
| struct he_sig_a_mu_ul_info { |
| uint32_t format_indication : 1, //[0] |
| bss_color_id : 6, //[6:1] |
| spatial_reuse : 16, //[22:7] |
| reserved_0a : 1, //[23] |
| transmit_bw : 2, //[25:24] |
| reserved_0b : 6; //[31:26] |
| uint32_t txop_duration : 7, //[6:0] |
| reserved_1a : 9, //[15:7] |
| crc : 4, //[19:16] |
| tail : 6, //[25:20] |
| reserved_1b : 6; //[31:26] |
| }; |
| |
| /* |
| |
| format_indication |
| |
| Indicates whether the transmission is SU PPDU or a |
| trigger based UL MU PDDU |
| |
| <enum 0 HE_SIGA_FORMAT_HE_TRIG> |
| |
| <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU> |
| |
| <legal all> |
| |
| bss_color_id |
| |
| BSS color ID |
| |
| <legal all> |
| |
| spatial_reuse |
| |
| Spatial reuse |
| |
| |
| |
| <legal all> |
| |
| reserved_0a |
| |
| Note: spec indicates this shall be set to 1 |
| |
| <legal 1> |
| |
| transmit_bw |
| |
| Bandwidth of the PPDU. |
| |
| |
| |
| <enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz |
| |
| <enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz |
| |
| <enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz |
| |
| <enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz |
| |
| |
| |
| On RX side, Field Used by MAC HW |
| |
| <legal 0-3> |
| |
| reserved_0b |
| |
| <legal 0> |
| |
| txop_duration |
| |
| Indicates the remaining time in the current TXOP <legal |
| all> |
| |
| reserved_1a |
| |
| Set to value indicated in the trigger frame |
| |
| <legal 255> |
| |
| crc |
| |
| CRC for HE-SIG-A contents. |
| |
| This CRC may also cover some fields of L-SIG (TBD) |
| |
| <legal all> |
| |
| tail |
| |
| BCC encoding (similar to VHT-SIG-A) with 6 tail bits is |
| used |
| |
| <legal 0> |
| |
| reserved_1b |
| |
| <legal 0> |
| */ |
| |
| |
| /* Description HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION |
| |
| Indicates whether the transmission is SU PPDU or a |
| trigger based UL MU PDDU |
| |
| <enum 0 HE_SIGA_FORMAT_HE_TRIG> |
| |
| <enum 1 HE_SIGA_FORMAT_SU_OR_EXT_SU> |
| |
| <legal all> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_OFFSET 0x00000000 |
| #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_LSB 0 |
| #define HE_SIG_A_MU_UL_INFO_0_FORMAT_INDICATION_MASK 0x00000001 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID |
| |
| BSS color ID |
| |
| <legal all> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_OFFSET 0x00000000 |
| #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_LSB 1 |
| #define HE_SIG_A_MU_UL_INFO_0_BSS_COLOR_ID_MASK 0x0000007e |
| |
| /* Description HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE |
| |
| Spatial reuse |
| |
| |
| |
| <legal all> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_OFFSET 0x00000000 |
| #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_LSB 7 |
| #define HE_SIG_A_MU_UL_INFO_0_SPATIAL_REUSE_MASK 0x007fff80 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_0_RESERVED_0A |
| |
| Note: spec indicates this shall be set to 1 |
| |
| <legal 1> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_OFFSET 0x00000000 |
| #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_LSB 23 |
| #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0A_MASK 0x00800000 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW |
| |
| Bandwidth of the PPDU. |
| |
| |
| |
| <enum 0 HE_SIG_A_MU_UL_BW20> 20 Mhz |
| |
| <enum 1 HE_SIG_A_MU_UL_BW40> 40 Mhz |
| |
| <enum 2 HE_SIG_A_MU_UL_BW80> 80 Mhz |
| |
| <enum 3 HE_SIG_A_MU_UL_BW160> 160 MHz or 80+80 MHz |
| |
| |
| |
| On RX side, Field Used by MAC HW |
| |
| <legal 0-3> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_OFFSET 0x00000000 |
| #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_LSB 24 |
| #define HE_SIG_A_MU_UL_INFO_0_TRANSMIT_BW_MASK 0x03000000 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_0_RESERVED_0B |
| |
| <legal 0> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_OFFSET 0x00000000 |
| #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_LSB 26 |
| #define HE_SIG_A_MU_UL_INFO_0_RESERVED_0B_MASK 0xfc000000 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION |
| |
| Indicates the remaining time in the current TXOP <legal |
| all> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_OFFSET 0x00000004 |
| #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_LSB 0 |
| #define HE_SIG_A_MU_UL_INFO_1_TXOP_DURATION_MASK 0x0000007f |
| |
| /* Description HE_SIG_A_MU_UL_INFO_1_RESERVED_1A |
| |
| Set to value indicated in the trigger frame |
| |
| <legal 255> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_OFFSET 0x00000004 |
| #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_LSB 7 |
| #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1A_MASK 0x0000ff80 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_1_CRC |
| |
| CRC for HE-SIG-A contents. |
| |
| This CRC may also cover some fields of L-SIG (TBD) |
| |
| <legal all> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_1_CRC_OFFSET 0x00000004 |
| #define HE_SIG_A_MU_UL_INFO_1_CRC_LSB 16 |
| #define HE_SIG_A_MU_UL_INFO_1_CRC_MASK 0x000f0000 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_1_TAIL |
| |
| BCC encoding (similar to VHT-SIG-A) with 6 tail bits is |
| used |
| |
| <legal 0> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_1_TAIL_OFFSET 0x00000004 |
| #define HE_SIG_A_MU_UL_INFO_1_TAIL_LSB 20 |
| #define HE_SIG_A_MU_UL_INFO_1_TAIL_MASK 0x03f00000 |
| |
| /* Description HE_SIG_A_MU_UL_INFO_1_RESERVED_1B |
| |
| <legal 0> |
| */ |
| #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_OFFSET 0x00000004 |
| #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_LSB 26 |
| #define HE_SIG_A_MU_UL_INFO_1_RESERVED_1B_MASK 0xfc000000 |
| |
| |
| #endif // _HE_SIG_A_MU_UL_INFO_H_ |