qcacmn: change to configure and handle undecoded metadata capture

Added change:
1. Set/reset RXDMA MON STATUS ring filter setting and send HTT
   message to capture undecoded frame
2. Handle undecoded frame to update cdp_rx_indication_ppdu structure
   from hal ppdu_info rx status and generate WDI event to deliver it
   to upper layer

Change-Id: I14485f28333b113b5a2fab639611551c2b08af2b
这个提交包含在:
Basamma Yakkanahalli
2022-02-16 16:20:47 +05:30
提交者 Madan Koyyalamudi
父节点 8b712ebbaf
当前提交 e85fbce095
修改 19 个文件,包含 838 行新增6 行删除

查看文件

@@ -1185,6 +1185,7 @@ enum cdp_peer_param_type {
* @CDP_CONFIG_SPECIAL_VAP: Configure Special vap
* @CDP_RESET_SCAN_SPCL_VAP_STATS_ENABLE: Enable scan spcl vap stats reset
* @CDP_ISOLATION: set isolation flag
* @CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE: Undecoded metadata capture
*/
enum cdp_pdev_param_type {
CDP_CONFIG_DEBUG_SNIFFER,
@@ -1219,6 +1220,7 @@ enum cdp_pdev_param_type {
CDP_RESET_SCAN_SPCL_VAP_STATS_ENABLE,
CDP_CONFIG_ENHANCED_STATS_ENABLE,
CDP_ISOLATION,
CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE,
};
/*
@@ -1289,6 +1291,7 @@ enum cdp_pdev_param_type {
* @cdp_psoc_param_en_nss_cfg: set nss cfg
* @cdp_ipa_enabled : set ipa mode
* @cdp_psoc_param_vdev_stats_hw_offload: Configure HW vdev stats offload
* @cdp_pdev_param_undecoded_metadata_enable: Undecoded metadata capture enable
*/
typedef union cdp_config_param_t {
/* peer params */
@@ -1370,6 +1373,7 @@ typedef union cdp_config_param_t {
bool cdp_skip_bar_update;
bool cdp_ipa_enabled;
bool cdp_psoc_param_vdev_stats_hw_offload;
bool cdp_pdev_param_undecoded_metadata_enable;
bool cdp_sawf_enabled;
} cdp_config_param_type;
@@ -2364,6 +2368,37 @@ struct cdp_rx_stats_ppdu_user {
* @nf: noise floor
* @per_chain_rssi: rssi per antenna
* @punc_bw: puncered bw
* @phyrx_abort: rx aborted undecoded frame indication
* @phyrx_abort_reason: abort reason defined in phyrx_abort_request_info
* @l_sig_length: L SIG A length
* @l_sig_a_parity: L SIG A parity
* @l_sig_a_pkt_type: L SIG A info pkt type
* @l_sig_a_implicit_sounding: L SIG A info captured implicit sounding
* @ht_length: num of bytes in PSDU
* @ht_smoothing: Indicate ht_smoothing
* @ht_not_sounding: Indicate ht not sounding
* @ht_aggregation: Indicate ht aggregation
* @ht_stbc: Indicate ht stbc
* @ht_crc: Indicate ht crc
* @vht_crc: Indicate vht crc
* @vht_no_txop_ps: Indicate TXOP power save mode
* @bss_color_id: Indicate BSS color ID
* @beam_change: Indicates whether spatial mapping is changed
* @dl_ul_flag: Differentiates between DL and UL transmission
* @transmit_mcs: Indicates the data MCS
* @ldpc_extra_sym: LDPC extra symbol
* @special_reuse: Spatial reuse
* @ltf_sym: Indictaes HE NSTS
* @txbf: Indicates whether beamforming is applied
* @pe_disambiguity: packet extension disambiguity
* @pre_fec_pad: packet extension a factor
* @dopplar: Doppler support
* @txop_duration: Indicates the remaining time in the current TXOP
* @sig_b_mcs: MCS of HE-SIG-B
* @sig_b_dcm: DCM of HE-SIG-B
* @sig_b_sym: Number of symbols of HE-SIG-B
* @sig_b_comp: Compression mode of HE-SIG-B
* @he_crc: CRC for HE-SIG contents
*/
struct cdp_rx_indication_ppdu {
uint32_t ppdu_id;
@@ -2425,6 +2460,40 @@ struct cdp_rx_indication_ppdu {
struct cdp_rx_ppdu_cfr_info cfr_info;
#endif
uint8_t punc_bw;
#ifdef QCA_UNDECODED_METADATA_SUPPORT
bool phyrx_abort;
uint8_t phyrx_abort_reason;
uint32_t l_sig_length:12,
l_sig_a_parity:1,
l_sig_a_pkt_type:4,
l_sig_a_implicit_sounding:1,
vht_crc:8,
group_id:6;
uint32_t ht_length:16,
ht_smoothing:1,
ht_not_sounding:1,
ht_aggregation:1,
ht_stbc:2,
ht_crc:8,
vht_no_txop_ps:1;
uint32_t bss_color_id:6,
beam_change:1,
dl_ul_flag:1,
transmit_mcs:4,
ldpc_extra_sym:1,
special_reuse:4,
ltf_sym:3,
txbf:1,
pe_disambiguity:1,
pre_fec_pad:4,
dopplar:1;
uint32_t txop_duration:7,
sig_b_mcs:3,
sig_b_dcm:1,
sig_b_sym:4,
sig_b_comp:1,
he_crc:4;
#endif
};
/**

查看文件

@@ -700,6 +700,9 @@ enum WDI_EVENT {
WDI_EVENT_HYBRID_TX,
#ifdef WLAN_FEATURE_11BE_MLO
WDI_EVENT_MLO_TSTMP,
#endif
#ifdef QCA_UNDECODED_METADATA_SUPPORT
WDI_EVENT_RX_PPDU_DESC_UNDECODED_METADATA,
#endif
/* End of new event items */
WDI_EVENT_LAST