| |
| /* Copyright (c) 2022, Qualcomm Innovation Center, Inc. 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 _EXPECTED_RESPONSE_H_ |
| #define _EXPECTED_RESPONSE_H_ |
| #if !defined(__ASSEMBLER__) |
| #endif |
| |
| #define NUM_OF_DWORDS_EXPECTED_RESPONSE 6 |
| |
| #define NUM_OF_QWORDS_EXPECTED_RESPONSE 3 |
| |
| |
| struct expected_response { |
| #ifndef WIFI_BIT_ORDER_BIG_ENDIAN |
| uint32_t tx_ad2_31_0 : 32; // [31:0] |
| uint32_t tx_ad2_47_32 : 16, // [15:0] |
| expected_response_type : 5, // [20:16] |
| response_to_response : 3, // [23:21] |
| su_ba_user_number : 1, // [24:24] |
| response_info_part2_required : 1, // [25:25] |
| transmitted_bssid_check_en : 1, // [26:26] |
| reserved_1 : 5; // [31:27] |
| uint32_t ndp_sta_partial_aid_2_8_0 : 11, // [10:0] |
| reserved_2 : 10, // [20:11] |
| ndp_sta_partial_aid1_8_0 : 11; // [31:21] |
| uint32_t ast_index : 16, // [15:0] |
| capture_ack_ba_sounding : 1, // [16:16] |
| capture_sounding_1str_20mhz : 1, // [17:17] |
| capture_sounding_1str_40mhz : 1, // [18:18] |
| capture_sounding_1str_80mhz : 1, // [19:19] |
| capture_sounding_1str_160mhz : 1, // [20:20] |
| capture_sounding_1str_240mhz : 1, // [21:21] |
| capture_sounding_1str_320mhz : 1, // [22:22] |
| reserved_3a : 9; // [31:23] |
| uint32_t fcs : 9, // [8:0] |
| reserved_4a : 1, // [9:9] |
| crc : 4, // [13:10] |
| scrambler_seed : 7, // [20:14] |
| reserved_4b : 11; // [31:21] |
| uint32_t tlv64_padding : 32; // [31:0] |
| #else |
| uint32_t tx_ad2_31_0 : 32; // [31:0] |
| uint32_t reserved_1 : 5, // [31:27] |
| transmitted_bssid_check_en : 1, // [26:26] |
| response_info_part2_required : 1, // [25:25] |
| su_ba_user_number : 1, // [24:24] |
| response_to_response : 3, // [23:21] |
| expected_response_type : 5, // [20:16] |
| tx_ad2_47_32 : 16; // [15:0] |
| uint32_t ndp_sta_partial_aid1_8_0 : 11, // [31:21] |
| reserved_2 : 10, // [20:11] |
| ndp_sta_partial_aid_2_8_0 : 11; // [10:0] |
| uint32_t reserved_3a : 9, // [31:23] |
| capture_sounding_1str_320mhz : 1, // [22:22] |
| capture_sounding_1str_240mhz : 1, // [21:21] |
| capture_sounding_1str_160mhz : 1, // [20:20] |
| capture_sounding_1str_80mhz : 1, // [19:19] |
| capture_sounding_1str_40mhz : 1, // [18:18] |
| capture_sounding_1str_20mhz : 1, // [17:17] |
| capture_ack_ba_sounding : 1, // [16:16] |
| ast_index : 16; // [15:0] |
| uint32_t reserved_4b : 11, // [31:21] |
| scrambler_seed : 7, // [20:14] |
| crc : 4, // [13:10] |
| reserved_4a : 1, // [9:9] |
| fcs : 9; // [8:0] |
| uint32_t tlv64_padding : 32; // [31:0] |
| #endif |
| }; |
| |
| |
| /* Description TX_AD2_31_0 |
| |
| Lower 32 bits of the transmitter address (AD2) of the last |
| packet which was transmitted, which is used by RXPCU in |
| Proxy STA mode. |
| */ |
| |
| #define EXPECTED_RESPONSE_TX_AD2_31_0_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_TX_AD2_31_0_LSB 0 |
| #define EXPECTED_RESPONSE_TX_AD2_31_0_MSB 31 |
| #define EXPECTED_RESPONSE_TX_AD2_31_0_MASK 0x00000000ffffffff |
| |
| |
| /* Description TX_AD2_47_32 |
| |
| Upper 16 bits of the transmitter address (AD2) of the last |
| packet which was transmitted, which is used by RXPCU in |
| Proxy STA mode. |
| */ |
| |
| #define EXPECTED_RESPONSE_TX_AD2_47_32_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_TX_AD2_47_32_LSB 32 |
| #define EXPECTED_RESPONSE_TX_AD2_47_32_MSB 47 |
| #define EXPECTED_RESPONSE_TX_AD2_47_32_MASK 0x0000ffff00000000 |
| |
| |
| /* Description EXPECTED_RESPONSE_TYPE |
| |
| Provides insight for RXPCU of what type of response is expected |
| in the medium. |
| |
| Mainly used for debugging purposes. |
| |
| No matter what RXPCU receives, it shall always report it |
| to TXPCU. |
| |
| Only special scenario where RXPCU will have to generate |
| a RECEIVED_RESPONSE_INFO TLV , even when no actual MPDU |
| with passing FCS was received is when the response_type |
| is set to: frameless_phyrx_response_accepted |
| |
| <enum 0 no_response_expected>After transmission of this |
| frame, no response in SIFS time is expected |
| |
| When TXPCU sees this setting, it shall not generated the |
| EXPECTED_RESPONSE TLV. |
| |
| RXPCU should never see this setting |
| <enum 1 ack_expected>An ACK frame is expected as response |
| |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 2 ba_64_bitmap_expected>BA with 64 bitmap is expected. |
| |
| |
| PDG DOES NOT use the size info to calculated response duration. |
| The length of the response will have to be programmed by |
| SW in the per-BW 'Expected_ppdu_resp_length' field. |
| |
| For TXPCU only the fact that it is a BA is important. Actual |
| received BA size is not important |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 3 ba_256_expected>BA with 256 bitmap is expected. |
| |
| PDG DOES NOT use the size info to calculated response duration. |
| The length of the response will have to be programmed by |
| SW in the per-BW 'Expected_ppdu_resp_length' field. |
| |
| For TXPCU only the fact that it is a BA is important. Actual |
| received BA size is not important |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 4 actionnoack_expected>SW sets this after sending |
| NDP or BR-Poll. |
| |
| As PDG has no idea on how long the reception is going to |
| be, the reception time of the response will have to be |
| programmed by SW in the 'Extend_duration_value_bw...' field |
| |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 5 ack_ba_expected>PDG uses the size info and assumes |
| single BA format with ACK and 64 bitmap embedded. |
| If SW expects more bitmaps in case of multi-TID, is shall |
| program the 'Extend_duration_value_bw...' field for additional |
| duration time. |
| For TXPCU only the fact that an ACK and/or BA is received |
| is important. Reception of only ACK or BA is also considered |
| a success. |
| SW also typically sets this when sending VHT single MPDU. |
| Some chip vendors might send BA rather than ACK in response |
| to VHT single MPDU but still we want to accept BA as well. |
| |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 6 cts_expected>SW sets this after queuing RTS frame |
| as standalone packet and sending it. |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 7 ack_data_expected>SW sets this after sending PS-Poll. |
| |
| |
| For TXPCU either ACK and/or data reception is considered |
| success. |
| PDG basis it's response duration calculation on an ACK. |
| For the data portion, SW shall program the 'Extend_duration_value_bw...' |
| field |
| <enum 8 ndp_ack_expected>Reserved for 11ah usage. |
| <enum 9 ndp_modified_ack>Reserved for 11ah usage |
| <enum 10 ndp_ba_expected>Reserved for 11ah usage. |
| <enum 11 ndp_cts_expected>Reserved for 11ah usage |
| <enum 12 ndp_ack_or_ndp_modified_ack_expected>Reserved for |
| 11ah usage |
| <enum 13 ul_mu_ba_expected>NOT SUPPORTED IN NAPIER AX AND |
| HASTINGS |
| |
| TXPCU expects UL MU OFDMA or UL MU MIMO reception. |
| As PDG does not know how RUs are assigned for the uplink |
| portion, PDG can not calculate the uplink duration. Therefor |
| SW shall program the 'Extend_duration_value_bw...' field |
| |
| |
| RXPCU will report any frame received, irrespective of it |
| having been UL MU or SU It is TXPCUs responsibility to |
| distinguish between the UL MU or SU |
| |
| TXPCU can check in TLV RECEIVED_RESPONSE_INFO MU_Response_BA_bitmap |
| if indeed BA was received |
| <enum 14 ul_mu_ba_and_data_expected>NOT SUPPORTED IN NAPIER |
| AX AND HASTINGS |
| |
| TXPCU expects UL MU OFDMA or UL MU MIMO reception. |
| As PDG does not know how RUs are assigned for the uplink |
| portion, PDG can not calculate the uplink duration. Therefor |
| SW shall program the 'Extend_duration_value_bw...' field |
| |
| |
| RXPCU will report any frame received, irrespective of it |
| having been UL MU or SU It is TXPCUs responsibility to |
| distinguish between the UL MU or SU |
| |
| TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_data_bitmap |
| and MU_Response_BA_bitmap if indeed BA and data was received |
| |
| <enum 15 ul_mu_cbf_expected>NOT SUPPORTED IN NAPIER AX AND |
| HASTINGS |
| |
| When selected, CBF frames are expected to be received in |
| MU reception (uplink OFDMA or uplink MIMO) |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received |
| TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_cbf_bitmap |
| if indeed CBF frames were received. |
| <enum 16 ul_mu_frames_expected>When selected, MPDU frames |
| are expected in the MU reception (uplink OFDMA or uplink |
| MIMO) |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received |
| |
| TXPCU can check in TLV RECEIVED_RESPONSE_INFO, field MU_Response_bitmap |
| if indeed frames were received. |
| <enum 17 any_response_to_this_device>Any response expected |
| to be send to this device in SIFS time is acceptable. |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received |
| |
| For TXPCU, UL MU or SU is both acceptable. |
| |
| Can be used for complex OFDMA scenarios. PDG can not calculate |
| the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' |
| field |
| <enum 18 any_response_accepted>Any frame in the medium to |
| this or any other device, is acceptable as response. |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received |
| |
| For TXPCU, UL MU or SU is both acceptable. |
| |
| Can be used for complex OFDMA scenarios. PDG can not calculate |
| the uplink duration. Therefor SW shall program the 'Extend_duration_value_bw...' |
| field |
| <enum 19 frameless_phyrx_response_accepted>Any MU frameless |
| reception generated by the PHY is acceptable. |
| |
| PHY indicates this type of reception explicitly in TLV PHYRX_RSSI_LEGACY, |
| field Reception_type == reception_is_frameless |
| |
| RXPCU will report any frame received, irrespective of it |
| having been UL MU or SU. |
| |
| This can be used for complex MU-MIMO or OFDMA scenarios, |
| like receiving MU-CTS. |
| |
| PDG can not calculate the uplink duration. Therefor SW shall |
| program the 'Extend_duration_value_bw...' field |
| <enum 20 ranging_ndp_and_lmr_expected>SW sets this after |
| sending ranging NDPA followed by NDP as an ISTA and NDP |
| and LMR (Action No Ack) are expected as back-to-back reception |
| in SIFS. |
| |
| As PDG has no idea on how long the reception is going to |
| be, the reception time of the response will have to be |
| programmed by SW in the 'Extend_duration_value_bw...' field |
| |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 21 ba_512_expected>BA with 512 bitmap is expected. |
| |
| |
| PDG DOES NOT use the size info to calculated response duration. |
| The length of the response will have to be programmed by |
| SW in the per-BW 'Expected_ppdu_resp_length' field. |
| |
| For TXPCU only the fact that it is a BA is important. Actual |
| received BA size is not important |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 22 ba_1024_expected>BA with 1024 bitmap is expected. |
| |
| |
| PDG DOES NOT use the size info to calculated response duration. |
| The length of the response will have to be programmed by |
| SW in the per-BW 'Expected_ppdu_resp_length' field. |
| |
| For TXPCU only the fact that it is a BA is important. Actual |
| received BA size is not important |
| |
| RXPCU is just expecting any response. It is TXPCU who checks |
| that the right response was received. |
| <enum 23 ul_mu_ranging_cts2s_expected>When selected, CTS2S |
| frames are expected to be received in MU reception (uplink |
| OFDMA) |
| |
| RXPCU shall check each response for CTS2S and report to |
| TXPCU. |
| |
| TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields |
| 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed CTS2S |
| frames were received. |
| <enum 24 ul_mu_ranging_ndp_expected>When selected, UL NDP |
| frames are expected to be received in MU reception (uplink |
| spatial multiplexing) |
| |
| RXPCU shall check each response for NDP and report to TXPCU. |
| |
| |
| TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields |
| 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed NDP |
| frames were received. |
| <enum 25 ul_mu_ranging_lmr_expected>When selected, LMR frames |
| are expected to be received in MU reception (uplink OFDMA |
| or uplink MIMO) |
| |
| RXPCU shall check each response for LMR and report to TXPCU. |
| |
| |
| TXPCU can check in the TLV 'RECEIVED_RESPONSE_INFO,' fields |
| 'MU_Response_bitmap' and 'TB_Ranging_Resp' if indeed LMR |
| frames were received. |
| */ |
| |
| #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_LSB 48 |
| #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MSB 52 |
| #define EXPECTED_RESPONSE_EXPECTED_RESPONSE_TYPE_MASK 0x001f000000000000 |
| |
| |
| /* Description RESPONSE_TO_RESPONSE |
| |
| Field indicates if after receiving the PPDU response (indicated |
| in the field above), TXPCU is expected to generate a reponse |
| to the response |
| |
| In case a response to response is expected, RXPCU shall |
| first acknowledge the proper reception of the received frames, |
| so that TXPCU can first wrapup that portion of the FES. |
| |
| <enum 0 None> No response after response allowed. |
| <enum 1 SU_BA> The response after response that TXPCU is |
| allowed to generate is a single BA. Even if RXPCU is indicating |
| that multiple users are received, TXPCU shall only send |
| a BA for 1 STA. Response_to_response rates can be found |
| in fields 'response_to_response_rate_info_bw...' |
| <enum 2 MU_BA> The response after response that TXPCU is |
| allowed to generate is only Multi Destination Multi User |
| BA. Response_to_response rates can be found in fields 'response_to_response_rate_info_bw...' |
| |
| |
| <enum 3 RESPONSE_TO_RESPONSE_CMD> A response to response |
| is expected to be generated. In other words, RXPCU will |
| likely indicate to TXPCU at the end of upcoming reception |
| that a response is needed. TXPCU is however to ignore this |
| indication from RXPCU, and assume for a moment that no |
| response to response is needed, as all the details on how |
| to handle this is provided in the next scheduling command, |
| which is marked as a 'response_to_response' type. |
| |
| <legal 0-3> |
| */ |
| |
| #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_LSB 53 |
| #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MSB 55 |
| #define EXPECTED_RESPONSE_RESPONSE_TO_RESPONSE_MASK 0x00e0000000000000 |
| |
| |
| /* Description SU_BA_USER_NUMBER |
| |
| Field only valid when Response_to_response is SU_BA |
| |
| Indicates the user number of which the BA will be send after |
| receiving the uplink OFDMA. |
| */ |
| |
| #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_LSB 56 |
| #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MSB 56 |
| #define EXPECTED_RESPONSE_SU_BA_USER_NUMBER_MASK 0x0100000000000000 |
| |
| |
| /* Description RESPONSE_INFO_PART2_REQUIRED |
| |
| Field only valid when Response_type is NOT set to No_response_expected |
| |
| |
| When set to 1, RXPCU shall generate the RECEIVED_RESPONSE_INFO_PART2 |
| TLV after having received the response frame. TXPCU shall |
| wait for this TLV before sending the TX_FES_STATUS_END |
| TLV. |
| |
| When NOT set, RXPCU shall NOT generate the above mentioned |
| TLV. TXPCU shall not wait for this TLV and after having |
| received RECEIVED_RESPONSE_INFO TLV, it can immediately |
| generate the TX_FES_STATUS_END TLV. |
| |
| <legal all> |
| */ |
| |
| #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_LSB 57 |
| #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MSB 57 |
| #define EXPECTED_RESPONSE_RESPONSE_INFO_PART2_REQUIRED_MASK 0x0200000000000000 |
| |
| |
| /* Description TRANSMITTED_BSSID_CHECK_EN |
| |
| When set to 1, RXPCU shall assume group addressed frame |
| with Tx_AD2 equal to TBSSID was sent. RxPCU should properly |
| handle receive frame(s) from STA(s) which A1 is TBSSID |
| or any VAPs.When NOT set, RXPCU shall compare received frame's |
| A1 with Tx_AD2 only. |
| <legal all> |
| */ |
| |
| #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_LSB 58 |
| #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MSB 58 |
| #define EXPECTED_RESPONSE_TRANSMITTED_BSSID_CHECK_EN_MASK 0x0400000000000000 |
| |
| |
| /* Description RESERVED_1 |
| |
| <legal 0> |
| */ |
| |
| #define EXPECTED_RESPONSE_RESERVED_1_OFFSET 0x0000000000000000 |
| #define EXPECTED_RESPONSE_RESERVED_1_LSB 59 |
| #define EXPECTED_RESPONSE_RESERVED_1_MSB 63 |
| #define EXPECTED_RESPONSE_RESERVED_1_MASK 0xf800000000000000 |
| |
| |
| /* Description NDP_STA_PARTIAL_AID_2_8_0 |
| |
| This field is applicable only in 11ah mode of operation. |
| This field carries the information needed for RxPCU to qualify |
| valid NDP-CTS |
| |
| When an RTS is being transmitted, this field provides the |
| partial AID of STA/BSSID of the transmitter,so the received |
| RA/BSSID of the NDP CTS response frame can be compared |
| to validate it. This value is provided by SW for valiadating |
| the NDP CTS. |
| |
| This filed also carries information for TA of the NDP Modified |
| ACK when an NDP PS-Poll is transmitted. |
| */ |
| |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_LSB 0 |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MSB 10 |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID_2_8_0_MASK 0x00000000000007ff |
| |
| |
| /* Description RESERVED_2 |
| |
| Reserved: Generator should set to 0, consumer shall ignore |
| <legal 0> |
| */ |
| |
| #define EXPECTED_RESPONSE_RESERVED_2_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_RESERVED_2_LSB 11 |
| #define EXPECTED_RESPONSE_RESERVED_2_MSB 20 |
| #define EXPECTED_RESPONSE_RESERVED_2_MASK 0x00000000001ff800 |
| |
| |
| /* Description NDP_STA_PARTIAL_AID1_8_0 |
| |
| This field is applicable only in 11ah mode of operation. |
| This field carries the information needed for RxPCU to qualify |
| valid NDP Modified ACK |
| |
| TxPCU provides the partial AID (RA) of the NDP PS-Poll frame. |
| |
| */ |
| |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_LSB 21 |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MSB 31 |
| #define EXPECTED_RESPONSE_NDP_STA_PARTIAL_AID1_8_0_MASK 0x00000000ffe00000 |
| |
| |
| /* Description AST_INDEX |
| |
| The AST index of the receive Ack/BA. This information is |
| provided from the TXPCU to the RXPCU for receive Ack/BA. |
| |
| */ |
| |
| #define EXPECTED_RESPONSE_AST_INDEX_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_AST_INDEX_LSB 32 |
| #define EXPECTED_RESPONSE_AST_INDEX_MSB 47 |
| #define EXPECTED_RESPONSE_AST_INDEX_MASK 0x0000ffff00000000 |
| |
| |
| /* Description CAPTURE_ACK_BA_SOUNDING |
| |
| If set enables capture of 1str and 2str sounding on Ack |
| or BA as long as the corresponding capture_sounding_1str_##mhz |
| bits is set. |
| |
| If clear the capture of sounding on Ack or BA is disabled |
| even if the corresponding capture_sounding_1str_##mhz is |
| set. |
| */ |
| |
| #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_LSB 48 |
| #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MSB 48 |
| #define EXPECTED_RESPONSE_CAPTURE_ACK_BA_SOUNDING_MASK 0x0001000000000000 |
| |
| |
| /* Description CAPTURE_SOUNDING_1STR_20MHZ |
| |
| Capture sounding for 1 stream 20 MHz receive packets |
| */ |
| |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_LSB 49 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MSB 49 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_20MHZ_MASK 0x0002000000000000 |
| |
| |
| /* Description CAPTURE_SOUNDING_1STR_40MHZ |
| |
| Capture sounding for 1 stream 40 MHz receive packets |
| */ |
| |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_LSB 50 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MSB 50 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_40MHZ_MASK 0x0004000000000000 |
| |
| |
| /* Description CAPTURE_SOUNDING_1STR_80MHZ |
| |
| Capture sounding for 1 stream 80 MHz receive packets |
| */ |
| |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_LSB 51 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MSB 51 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_80MHZ_MASK 0x0008000000000000 |
| |
| |
| /* Description CAPTURE_SOUNDING_1STR_160MHZ |
| |
| Capture sounding for 1 stream 160 MHz receive packets |
| */ |
| |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_LSB 52 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MSB 52 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_160MHZ_MASK 0x0010000000000000 |
| |
| |
| /* Description CAPTURE_SOUNDING_1STR_240MHZ |
| |
| Capture sounding for 1 stream 240 MHz receive packets |
| */ |
| |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_LSB 53 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MSB 53 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_240MHZ_MASK 0x0020000000000000 |
| |
| |
| /* Description CAPTURE_SOUNDING_1STR_320MHZ |
| |
| Capture sounding for 1 stream 320 MHz receive packets |
| */ |
| |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_LSB 54 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MSB 54 |
| #define EXPECTED_RESPONSE_CAPTURE_SOUNDING_1STR_320MHZ_MASK 0x0040000000000000 |
| |
| |
| /* Description RESERVED_3A |
| |
| Reserved: Generator should set to 0, consumer shall ignore |
| <legal 0> |
| */ |
| |
| #define EXPECTED_RESPONSE_RESERVED_3A_OFFSET 0x0000000000000008 |
| #define EXPECTED_RESPONSE_RESERVED_3A_LSB 55 |
| #define EXPECTED_RESPONSE_RESERVED_3A_MSB 63 |
| #define EXPECTED_RESPONSE_RESERVED_3A_MASK 0xff80000000000000 |
| |
| |
| /* Description FCS |
| |
| Tx Frame's FCS[31:23] |
| |
| TODO: describe what this is used for ... |
| |
| For aggregates and NDP frames, this field is reserved and |
| TxPCU should populate this to Zero. |
| */ |
| |
| #define EXPECTED_RESPONSE_FCS_OFFSET 0x0000000000000010 |
| #define EXPECTED_RESPONSE_FCS_LSB 0 |
| #define EXPECTED_RESPONSE_FCS_MSB 8 |
| #define EXPECTED_RESPONSE_FCS_MASK 0x00000000000001ff |
| |
| |
| /* Description RESERVED_4A |
| |
| Reserved: Generator should set to 0, consumer shall ignore |
| <legal 0> |
| */ |
| |
| #define EXPECTED_RESPONSE_RESERVED_4A_OFFSET 0x0000000000000010 |
| #define EXPECTED_RESPONSE_RESERVED_4A_LSB 9 |
| #define EXPECTED_RESPONSE_RESERVED_4A_MSB 9 |
| #define EXPECTED_RESPONSE_RESERVED_4A_MASK 0x0000000000000200 |
| |
| |
| /* Description CRC |
| |
| TODO: describe what this is used for ... |
| |
| Tx SIG's CRC[3:0] |
| */ |
| |
| #define EXPECTED_RESPONSE_CRC_OFFSET 0x0000000000000010 |
| #define EXPECTED_RESPONSE_CRC_LSB 10 |
| #define EXPECTED_RESPONSE_CRC_MSB 13 |
| #define EXPECTED_RESPONSE_CRC_MASK 0x0000000000003c00 |
| |
| |
| /* Description SCRAMBLER_SEED |
| |
| TODO: describe what this is used for ... |
| |
| Tx Frames SERVICE[6:0] |
| */ |
| |
| #define EXPECTED_RESPONSE_SCRAMBLER_SEED_OFFSET 0x0000000000000010 |
| #define EXPECTED_RESPONSE_SCRAMBLER_SEED_LSB 14 |
| #define EXPECTED_RESPONSE_SCRAMBLER_SEED_MSB 20 |
| #define EXPECTED_RESPONSE_SCRAMBLER_SEED_MASK 0x00000000001fc000 |
| |
| |
| /* Description RESERVED_4B |
| |
| Reserved: Generator should set to 0, consumer shall ignore |
| <legal 0> |
| */ |
| |
| #define EXPECTED_RESPONSE_RESERVED_4B_OFFSET 0x0000000000000010 |
| #define EXPECTED_RESPONSE_RESERVED_4B_LSB 21 |
| #define EXPECTED_RESPONSE_RESERVED_4B_MSB 31 |
| #define EXPECTED_RESPONSE_RESERVED_4B_MASK 0x00000000ffe00000 |
| |
| |
| /* Description TLV64_PADDING |
| |
| Automatic DWORD padding inserted while converting TLV32 |
| to TLV64 for 64 bit ARCH |
| <legal 0> |
| */ |
| |
| #define EXPECTED_RESPONSE_TLV64_PADDING_OFFSET 0x0000000000000010 |
| #define EXPECTED_RESPONSE_TLV64_PADDING_LSB 32 |
| #define EXPECTED_RESPONSE_TLV64_PADDING_MSB 63 |
| #define EXPECTED_RESPONSE_TLV64_PADDING_MASK 0xffffffff00000000 |
| |
| |
| |
| #endif // EXPECTED_RESPONSE |